# Hack Your Skills! to be Professional Mechatronics
Contoh:
Nah, berikut ini adalah kalkulator sederhana yang memanfaat fungsi eval pada Javascript dan PHP.
Hasil :
PHP + Javascript : Source Code Kalkulator Sangat Sederhana
Kali ini kita coba untuk membuat kalkulator dalam bahasa php dan javascript, kita coba sedikit berbeda dengan kalkulator-kalkulator yang umum dipake atau dibuat orang-orang.
Umumnya, jika kita ingin membuat kalkulator, kita membutuhkan banyak sekali proses. Dari pembuatan layout keypad, hingga menerjemahkan perhitungan sesuai dengan kaidah operasi bilangan. Seperti yang kita tahu, operasi perkalian lebih diutamakan daripada penjumlahan dan pengurangan. Kemudian jika ada kurung, tentu parsingnya akan lebih sulit lagi.
Coba kita sedikit berpikir sederhana. Kita akan memanfaatkan fungsi eval() pada PHP dan Javascript. Eval() adalah fungsi yang digunakan untuk menerjemahkan string ke baris kode. Artinya, jika kita melakukan operasi eval terhadap suatu string, maka string tersebut akan dieksekusi layaknya baris kode.
Contoh:
<?php
eval('echo "haripinter";');
// sama dengan
echo "haripinter";
?>
<script>
eval('alert("haripinter");');
// sama dengan
alert("haripinter");
</script>
Nah, berikut ini adalah kalkulator sederhana yang memanfaat fungsi eval pada Javascript dan PHP.
<form method="get" action="">
<input type="text" id="data" name="data" value="<?php echo @$_GET['data']; ?>"> = <input type="text" id="hasil" name="hasil" value="<?php echo @$_GET['hasil']; ?>"><br/><br/>
<input type="button" value="hitung" onCLick="hitung()"> <input type="submit" value="simpan">
</form><br/><br/><br/>
<script>
function hitung(){
var data = document.getElementById('data').value;
eval('var hasil = '+data+';');
document.getElementById('hasil').value = hasil;
}
</script>
<?php
if(isset($_GET['data'])){
$data = $_GET['data'];
$hasil = $_GET['hasil'];
eval('$php = '.$data.';');
echo "Perhitungan ".$data."<br/>";
echo "Hasil dari javascript = ".$hasil."<br/>";
echo "Hasil dari PHP = ".$php."<br/>";
}
?>
Hasil :
Written by ElangSakti
PHP + Javascript : Source Code Kalkulator Sangat Sederhana
Bahasan: Kali ini kita coba untuk membuat kalkulator dalam bahasa php dan javascript, kita coba sedikit berbeda dengan kalkulator-kalkulator yang u...
Published at Jumat, 04 Oktober 2013, Updated at Jumat, 04 Oktober 2013
Reviewed by dr. on
Rating: 4.7
PHP + Javascript : Source Code Kalkulator Sangat Sederhana
Bahasan: Kali ini kita coba untuk membuat kalkulator dalam bahasa php dan javascript, kita coba sedikit berbeda dengan kalkulator-kalkulator yang u...
Published at Jumat, 04 Oktober 2013, Updated at Jumat, 04 Oktober 2013
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
Menentukan Kaki Transistor (Emitor, Kolektor, Basis)
Perhatikan gambar berikut :
Menentukan Basis
Pencarian dengan AVO Analog
Contoh satu :
Contoh dua :
Menentukan kaki Emitor dan Kolektor
Pencarian dengan AVO Digital
Menentukan kaki Basis
Berarti pin 2 adalah basis.
Menentukan kaki Emitor dan Kolektor
Berikut adalah hasil pengukuran beberapa transisitor :
Cara Menentukan Kaki Transistor dengan AVO Digital / Analog
![]() |
| Gambar AVO digital dan analog |
Sebenarnya kali ini saya ingin fokus pada bagaimana lebih memahami tentang kaki-kaki pada transistor. Ketika melakukan pengukuran atau menentukan kaki-kaki transistor, kita kadang menggunakan AVO digital atau yang analog. Nah, saya mengalami kebingungan ketika hasilnya berbeda. Yang saya tangkap, pengukuran transistor dengan AVO digital dan analog hasilnya berkebalikan. :O Saya tidak tahu apakah AVO saya rusak atau memang begitu dari pabriknya.
Tansistor itu dasarnya adalah diode/dioda. Dan dioda bisa kita identikkan dengan LED. Walaupun LED dan dioda sangat beda dalam implementasinya, tapi LED itu dioda yang mengeluarkan cahaya. Jadi LED itu juga punya pin positif dan negatif. Oke gambar di samping adalah gambar AVO meter yang saya gunakan. Perhatikan pada pemeriksaan LED di bawah ini.
Yang sebelah kanan lednya nyalanya redup. Tapi yand diperhatikan adalah probe kabel positif dan negatifnya. Ada yang aneh bukan? Jika menggunakan AVO yang analog, maka led akan menyala jika positif-negatifnya dibalik.
Nah, hal ini mempengaruhi pada pengukuran transistor juga. Transistor PNP akan terdeteksi sebagai NPN jika didefinisikan dengan warna probe yang kita gunakan. Jika probe merah adalah positif dan probe hitam adalah negatif, maka jika menggunakan AVO analog, transistor akan aktif jika probenya dibalik.
Menentukan Kaki Transistor (Emitor, Kolektor, Basis)
Perhatikan gambar berikut :
![]() |
| Gambar kaki transistor |
Kaki transistor seperti dua buah dioda yang disambung berhadapan atau bertolak belakang. Tentunya jika kita menganggap sisi depan adalah sisi positif dan belakang adalah sisi negatif.
Menentukan Basis
Kaki basis adalah kaki yang berkebalikan dengan kaki emitor dan kolektor. Jika basis positif, maka emitor dan kolektor bernilai negatif. Jika basis negatif, maka emitor dan kolektor adalah positif. Jika dibuat skemanya, transistor jenis NPN dan PNP diambil dari jenis kaki-kaki transistor (Emitor-Basis-Kolektor).
(Emitor-Basis-Kolektor) -> ( E - B - C ) == ( N - P - N ) <- (Negatif-Positif-Negatif)
(Emitor-Basis-Kolektor) -> ( E - B - C ) == ( P - N - P ) <- (Positif-Negatif-Positif)
Pencarian dengan AVO Analog
Ingat : Kabel merah = probe positif, kabel hitam = probe negatif.
Contoh satu :
Misal transistor dengan kaki 1-2-3. Kita ukur dengan AVO analog :
Pengujian pin 1
1. Probe (+) ke pin 1 dan probe (-) ke pin 2, hasilnya : jarum bergerak ke tengah
2. Tahan probe (+) di pin 1, lalu pindah probe (-) ke pin 3, hasilnya : jarum diam
3. Kembalikan probe (-) ke pin 2, lalu pindah probe (+) ke pin 3, hasilnya : jarum bergerak ke tengah
4. Nah, dari langkah diatas, bisa disimpulkan bahwa jarum akan bergerak ketika :
probe (-) di pin 2 dan probe (+) di pin 1
probe (-) di pin 2 dan probe (+) di pin 3
5. Kesimpulannya adalah :
- Pin 2 adalah basis
- Jenis transistor adalah NPN; pin(1-2-3)=probe(P-N-P). Ingat, probe AVO Analog berkebalikan dengan jenis pin pada transistor.
Contoh dua :
Seperti pada contoh pertama, transistor dengan kaki 1-2-3 akan kita cek dengan AVO Analog :
1. Probe (+) ke pin 1 dan probe (-) ke pin 2, hasilnya : jarum diam
2. Tukar probe, probe (-) ke pin 1 dan probe (+) ke pin 2, hasilnya : jarum bergerak ke tengah
3. Tahan probe (-) di pin 1, lalu pindahkan probe (+) ke pin 3, hasilnya : jarum diam
4. Kembalikan probe (+) ke pin 2, lalu pindahkan probe (-) ke pin 3, hasilnya : jarum bergerak ke tengah
5. Dari percobaan di atas, jarum akan bergerak ketika :
probe (+) di pin 2 dan probe (-) di pin 1
probe (+) di pin 2 dan probe (-) di pin 3
6. Kesimpulannya adalah :
- Pin 2 adalah basis
- Jenis transistor adalah PNP; pin(1-2-3)=probe(N-P-N). Ingat, probe AVO Analog berkebalikan dengan jenis pin pada transistor.
Menentukan kaki Emitor dan Kolektor
Untuk menentukan kaki Emitor dan Kolek, caranya adalah dengan membandingkan tahanan antara Basis-Emitor adan tahanan Basis-Kolektor. Kalau kita mengacu pada kasus contoh yang pertama, kaki transistor 1-2-3, kaki 2 adalah basis. Maka kita perlu mengukur tahanan antara kaki 2-1 dan tahanan antara kaki 2-3.
Prinsipnya : tahanan antara Basis-Emitor lebih besar dari tahanan antara Basis-Kolektor. ohm(B-E) > ohm(B-C). Perlu diperhatikan, jika kita menggunakan AVO Analog, maka kita harus sedikit lebih jeli untuk membedakan posisi penunjukan jarum. Sebab selisihnya sangat sedikit. Jadi, untuk mengamatinya, kita harus dari sudut pandangan yang tidak berubah. Sebab sudut pandangan yang berbeda membuat pengukuran tidak sama. Itulah kekurangan AVO meter analog. Hehe.
1. Cek lagi posisi probe (+) ke pin 1 dan probe (-) ke pin 2, anggap saja menunjuk angka 7 pas.
2. Selanjutnya probe (+) di pin 3 dan probe (-) ke pin 2, ternyata jarum menunjuk di bawah angka 7.
Dari pemeriksaan di atas, hambatan/tahanan pin(1-2) atau pin(Emitor-Basis) lebih besar daripada hambatan pin(2-3) atau pin (Basis-Kolektor), sehingga pin 1-2-3 adalah E-B-C (emitor-basis-kolektor)
Penentuan Emitor dan Kolektor agak sulit jika menggunakan AVO Analog, sebab bisa karena kekeliruan pengamatan atau tingkat kepekaan AVO itu sendiri. Sehingga, hal juga bisa dilakukan adalah dengan pengamatan secara visual atau penampakan transistor itu sendiri. Kolektor : Jika di body/badan ada logamnya. Maka salah satu kaki akan terhubung logam tersebut. Nah, kaki yang terhubung ke logam tersebut adalah Kolektor. Periksa dengan AVO, jika short / jarum bergerak menyimpang ketika menyentuhkan pada logam di body dan salah satu pin, maka pin tersebut adalah Kolektor. Sisanya, adalah Emitor. Jika tidak ada logam di body transistor, maka biasanya di sambungan body bagian atas ada tanda garisnya lebih tebal daripada garis sambungan.
Pencarian dengan AVO Digital
Pencarian dengan AVO Digital berkebalikan dengan AVO Analog. Misal pada contoh satu : Transistor NPN terdeteksi dengan probe P-N-P. Sedangkan jika dengan AVO Digital, Transistor NPN akan terdeteksi dengan probe N-P-N. Untuk memulai, putar panah untuk menunjuk ohm yang ada lambang diodanya.
![]() |
| Gambar lambang diode pada multitester digital |
Menentukan kaki Basis
1. Probe (-) pada pin 1 dan probe (+) pada pin 2, hasilnya : lcd menampilkan angka tertentu.
2. Probe (-) pada pin 3 dan probe (+) pada pin 2, hasilnya : lcd menampilkan angka tertentu.
3. Selain itu, tampilan lcd akan diam atau hanya menunjukkan angka 1.
Berarti pin 2 adalah basis.
Menentukan kaki Emitor dan Kolektor
Jika menggunakan AVO Analog berdasarkan hambatan/tahanan. Maka pada AVO digital, yang tampak pada layar adalah voltase bias majunya. Jadi yang muncul pada tampilan lcd adalah voltase. Jika volatse antara pin 1 dan pin 2 lebih besar dari voltase antara pin 3 dan pin 2, maka pin 1 adalah emitor. Perhatikan tabel berikut :
+--------+--------+---------+ | POSISI | PROBE | Voltase | +--------+--------+---------+ | pin 1 | pin 2 | 819 | +-------+-------+-----------+ | pin 3 | pin 2 | 813 | +--------+--------+---------+
Berikut adalah hasil pengukuran beberapa transisitor :
![]() |
| Gambar hasil pengukuran kaki resistor dengan AVO digital dan analog |
Written by ElangSakti
Cara Menentukan Kaki Transistor dengan AVO Digital / Analog
Bahasan: Gambar AVO digital dan analog Sebenarnya kali ini saya ingin fokus pada bagaimana lebih memahami tentang kaki-kaki pada transistor. Ke...
Published at Sabtu, 28 September 2013, Updated at Sabtu, 28 September 2013
Reviewed by dr. on
Rating: 4.7
Cara Menentukan Kaki Transistor dengan AVO Digital / Analog
Bahasan: Gambar AVO digital dan analog Sebenarnya kali ini saya ingin fokus pada bagaimana lebih memahami tentang kaki-kaki pada transistor. Ke...
Published at Sabtu, 28 September 2013, Updated at Sabtu, 28 September 2013
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
Reff: Momentum Ledakan (Bang Irwan)
Momentum Ledakan, Titik Balik Menjadi Karakter Hebat
Bacalah kembali sejarah orang-orang hebat. Pelajari biografi mereka. Resapi nasehat-nasehat mereka. Maka Anda mungkin akan bersepakat dengan saya tentang dari mana mereka memulai. Pada awalnya mereka sama dengan kita, orang-orang biasa dengan beragam profesi dan keyakinan. Mereka memiliki kebutuhan hidup yang sama dengan kita. Mereka juga memiliki mimpi yang tak jauh beda dengan kita. Secara umum, dari tampak luar mereka biasa-biasa saja, tak ada yang istimewa…
Hingga suatu ketika, momentum besar itu datang. Mereka harus menghadapi kenyataan hidup yang tak pernah dibanyangkan sebelumnya. Badai kesulitan datang memporak-porandakan kehidupan mereka. Gelombang ujian silih berganti menghantam bangunan mimpi mereka. Kehidupan merenggut semua yang dicintainya, hingga mereka mendapati dirinya telah berada di tepian jurang kehidupan. Saat hidup hanya menyisakan dua pilihan untuknya: to be or not to be!
Itulah momentum ledakan. Momentum ketika potensi-potensi luar biasa dalam diri mereka yang selama ini tersembunyi oleh kenyamanan, tiba-tiba meledak dalam satu waktu dan melahirkan kerja-kerja luar biasa yang membuatnya dikenang sebagai orang hebat. Tekanan-tekanan hidup itulah yang membuka tabir potensi mereka, menunjukkan kualitas emas mereka, memaksa mereka melakukan pekerjaan-pekerja extraordinary yang mengundang decak kagum. Tapi dibalik itu semua, jauh di kedalaman lubuk hati mereka, bukan decak kagum itulah yang mereka tunggu. Bukan segudang pujian itulah yang ingin mereka raih, apalagi hanya sekedar numpang buku biografi.
Sesungguhnya, mereka hanya sedang bekerja merealisasikan janji mereka pada diri mereka sendiri, bahwa mereka akan bangkit dari keterpurukan dengan hasil apapun. Bahwa mereka harus keluar dari badai itu dengan kondisi apa pun. Mereka hanya sedang membela air mata mereka agar itu tidak jatuh dengan sia-sia. Mereka hanya sedang mendirikian prasasti kenangan untuk berbagai kehilangan sesuatu yang mereka cintai dengan begitu dalam. Dan bahkan sebagian besarnya tidak menyadari bahwa mereka tengah melakukan pekerjaan-pekerjaan besar yang tidak mampu dilakukan oleh orang lain pada umumnya.
Bahkan dalam skala yang lebih besar, momentum ledakan inilah yang menjadi titik awal kebangkitan bangsa-bangsa terhebat dalam sejarah. Bom Atom yang meluluh lantakkan Hiroshima dan Nagasaki adalah momentum yang membentuk jepang menjadi bangsa Raksasa. Jangan hanya terjebak pada persitiwanya, tapi lihatlah berapa banyak darah dan air mata yang mengalir di dalamnya. Bayangkanlah sakit yang mereka rasakan akibat kehilangan ribuan sanak keluarga dan harta benda. Bayangkanlah penderitaan yang mereka tanggung bertahun-tahun setelah persitiwa itu. Maka engkau akan menemukan kegetiran yang luar biasa. Lihatlah Amerika, bukankah Great Depression telah membuat mereka menjadi adikuasa dunia? Lihatlah China, bukankah kegetiran di masa Mao telah membentuk mereka menjadi raksasa ekonomi dunia. Dan lihatlah sejarah bangsa kita, bukankan pendihnya penderitaan selama 350 tahun mendorong para pendahulu kita untuk bangkit dengan slogan: Merdeka atau Mati!!!
Oleh karena itu, jangan pernah mengeluh pada kehidupan. Sebab hidup memeliki caranya sendiri untuk memberikan tempat terhormat bagi setiap manusia yang melaluinya. Jangan pernah meratapi kegetiran, sebab disaat-saat seperti itulah kehidupan sedang bekerja untuk membersihkan jiwa kita dari karat-karat yang menghambat kesuksesan. Maka sambutlah setiap tantangan dan ujian itu dengan gelora keberanian, seperti kata Shakespeare dalam Hamlet, To Be or Not To Be!
Reff: Momentum Ledakan (Bang Irwan)
Written by ElangSakti
Momentum Ledakan, Titik Balik Menjadi Karakter Hebat
Bahasan: Bacalah kembali sejarah orang-orang hebat. Pelajari biografi mereka. Resapi nasehat-nasehat mereka. Maka Anda mungkin akan bersepakat deng...
Published at Sabtu, 03 Agustus 2013, Updated at Sabtu, 03 Agustus 2013
Reviewed by dr. on
Rating: 4.7
Momentum Ledakan, Titik Balik Menjadi Karakter Hebat
Bahasan: Bacalah kembali sejarah orang-orang hebat. Pelajari biografi mereka. Resapi nasehat-nasehat mereka. Maka Anda mungkin akan bersepakat deng...
Published at Sabtu, 03 Agustus 2013, Updated at Sabtu, 03 Agustus 2013
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
1. Integritas
2. Optimisme
3. Menyukai Perubahan
4. Berani Menghadapi Risiko
5. Ulet
6. Katalistis
7. Berdedikasi dan Komit
Kalo boleh menambahkan,
8. Motivator
Kepemimpinan : Ciri / Karakter Menjadi Pemimpin Luar Biasa
Ini bukan tentang pengertian pemimpin atau kepemimpinan, tapi kita bicara tentang ciri dan karakter pemimpin yang luar biasa. Berikut mari kita bahas satu-persatu.
1. Integritas
Integritas adalah melakukan sesuatu sesuai dengan apa yang Anda katakan dan apa yang Anda lakukan. Integritas membuat Anda dapat dipercaya. Integritas membuat orang lain mengandalkan Anda. Integritas adalah penepatan janji-janji Anda. Satu hal yang membuat sebagian besar orang enggan mengikuti anda adalah bila mereka tak sepenuhnya merasa yakin bahwa anda akan membawa mereka menuju ke tujuan yang Anda janjikan. Apakah Anda dikenal sebagai seseorang yang mempunyai integritas? Bila ya, maka Anda layak menjadi seorang pemimpin yang luar biasa.
2. Optimisme
Takkan ada orang yang mau mengikuti bila Anda memandang suram masa depan. Mereka hanya mau mengikuti seseorang yang bisa melihat masa depan dan memberitahukan pada mereka bahwa di depan sana terbentang tempat yang lebih baik dan mereka dapat mencapai tempat itu. Apakah Anda melihat gelas itu separuh kosong? Bila ya, Anda adalah seorang pesimis.
Apakah Anda melihat gelas itu separuh berisi? Bila ya, Anda adalah seorang optimis. Apakah Anda melihatnya sebagai segelas penuh; yaitu separuh berisi air dan separuh lagi berisi udara? Maka Anda adalah seorang yang super optimis. Apakah Anda dikenal sebagai seorang yang optimis? Bila ya, Anda layak menjadi seorang pemimpin yang luar biasa.
3. Menyukai Perubahan
Pemimpin adalah mereka yang melihat adanya kebutuhan akan perubahan, bahkan mereka bersedia untuk memicu perubahan itu. Sedangkan pengikut lebih suka untuk tinggal di tempat mereka sendiri. Pemimpin melihat adanya kebaikan di balik perubahan dan mengkomunikasikannya dengan para pengikut mereka. Jika Anda tidak berubah, Anda takkan tumbuh. Apakah Anda dikenal sebagai seseorang yang memicu perubahan? Jika ya, Anda layak menjadi seorang pemimpin yang luar biasa.
4. Berani Menghadapi Risiko
Kapan pun kita mencoba sesuatu yang baru, kita mengambil risiko. Keberanian untuk mengambil risiko adalah bagian dari pertumbuhan yang teramat penting. Kebanyakan orang menghindari risiko. Karena itu, mereka bukan pemimpin. Para pemimpin menghitung risiko dan keuntungan yang ada di balik risiko. Mereka mengkomunikasikannya pada pengikut mereka dan melangkah pada hari esok yang lebih baik. Apakah Anda dikenal sebagai seorang yang berani mengambil risiko? Jika ya, anda layak menjadi seorang pemimpin yang luar biasa.
5. Ulet
Kecenderungan dari pengikut adalah mereka menyerah saat sesuatunya menjadi sulit. Ketika mereka mencoba untuk yang ke dua atau ke tiga kalinya dan gagal, mereka lalu mencanangkan motto, “Jika Anda gagal di langkah pertama, sudahlah menyerahlah dan lakukan sesuatu yang lain.” Jelas saja mereka melakukan itu, karena mereka bukan pemimpin. Para pemimpin itu tahu apa yang ada di balik tembok batu, dan mereka akan selalu berusaha menggapainya. Lalu mereka mengajak orang lain untuk terus berusaha. Apakah Anda dikenal sebagai seseorang yang ulet, tangguh, dan berdaya tahan tinggi? Jika ya, Anda layak menjadi seorang pemimpin yang luar biasa.
6. Katalistis
Seorang pemimpin adalah seseorang yang secara luar biasa mampu menggerakkan orang lain untuk melangkah. Mereka bisa mengajak orang lain keluar dari zone kenyamanan dan bergerak menuju tujuan mereka. Mereka mampu membangkitkan gairah, antusiasme, dan tindakan dari para pengikut.
Apakah Anda dikenal sebagai seseorang yang mampu menggerakkan orang lain? Jika ya, Anda layak menjadi seorang pemimpin yang luar biasa.7. Berdedikasi dan Komit
Para pengikut menginginkan seseorang yang lebih mencurahkan perhatian dan komit ketimbang diri mereka sendiri. Pengikut akan mengikuti pemimpin yang senantiasa bekerja dan berdedikasi karena mereka melihat betapa pentingnya pencapaian tugas-tugas dan tujuan. Apakah Anda dikenal sebagai seseorang yang komit dan senantiasa mencurahkan perhatian Anda pada tujuan? Jika ya, Anda layak menjadi seorang pemimpin yang luar biasa.
(Chris Widener dalam bukunya yg berjudul: ” 7 Character Traits of Extraordinary Leaders”)
Source: http://www.mail-archive.com/kendal-online@yahoogroups.com/msg00564.htmlKalo boleh menambahkan,
8. Motivator
Pemimpin itu adalah motivator yang tak terasa. Dia adalah motivator untuk pengikutnya dan sekaligus menjadi motivator pada dirinya sendiri. Mempunyai inisiatif tanpa perlu ‘diperintah’ orang lain. Dia peka terhadap lingkungan, peka terhadap kondisi para pengikutnya, dan peka terhadap dimana posisi kelompok yang dia pimpin. Dia mampu mengubah kekurangan menjadi kelebihan, titik lemah menjadi kekuatan, dan tekanan menjadi peluang. Dia juga bisa membakar semangat para pengikutnya tanpa disadari oleh pengikutnya. Yeah, itu sedikit pendapat saya. CMIIW
Jadi, pemimpin itu bisa dipelajari. Hanya saja, lama atau tidaknya kita mempelajarinya tergantung pada kemauan dan sedikit bakat yang kita punya. Pengaruh bakat tidak akan terlalu penting jika kita mempunyai kemauan keras, kemauan batu, kemauan baja, atau kemauan intan. Sebenarnya kita adalah pemimpin untuk diri kita sendiri. Artinya, kita kita semua punya peluang untuk menjadi pemimpin bagi orang lain. Namun, terkadang kita tidak percaya diri bahwa kita punya potensi untuk menjadi pemimpin bagi orang lain.
Untuk memupuk potensi itu, mau tidak mau kita harus berinteraksi dengan orang lain, sesekali belajar menjadi pemimpin (ketua geng, ketua kelompok, ketua kelas, koordinator, dll). Ya, itu adalah sarana untuk mengembangkan keterampilan kita untuk menjadi pemimpin.
Kita semua bisa mengerjakan apa saja yang manusia bisa. Tergantung apakah kita memilih untuk mencobanya, atau mengintip ketakutan.
Written by ElangSakti
Kepemimpinan : Ciri / Karakter Menjadi Pemimpin Luar Biasa
Bahasan: Ini bukan tentang pengertian pemimpin atau kepemimpinan, tapi kita bicara tentang ciri dan karakter pemimpin yang luar biasa. Berikut mari...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7
Kepemimpinan : Ciri / Karakter Menjadi Pemimpin Luar Biasa
Bahasan: Ini bukan tentang pengertian pemimpin atau kepemimpinan, tapi kita bicara tentang ciri dan karakter pemimpin yang luar biasa. Berikut mari...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
-pastikan listrik dari pln tidak padam
-jika padam, maka gagal ngidupin komputer
-pastikan semua kabel power(CPU dan Monitor) sudah tertancap dengan benar
-jika tidak, tancapkan dahulu dengan benar
-ulangi pencet tombol lagi
-jika sudah yakin tekan tombol power monitor
-jika sudah yakin tekan tombol power CPU
-jika tidak yakin, ya periksa lagi
-jika sudah ditekan keduanya, tapi tidak hidup
-periksa apakah kabelnya putus atau tidak
-periksa apakah pada slot/tancepan listik di blakang CPU atau Monitor sudah bener apa tidak
-jika komputer hidup tapi tidak menyala
-ulangi periksa lagi
-periksa kabel video (ke VGA Card) sudah bener apa tidak
-jika tetep tidak hidup, lihat ada bunyi bip apa tidak
-jika..
-jika..
-dan seterusnya[]
Buat Apa Sih Gunanya / Pentingnya Logika dan Algoritma?
Saya pikir, tulisan ini sangat penting bagi siapa saja yang masih bingung tentang Logika dan Algoritma. Saya tidak ingin menggurui Anda. Namun saya ingi berbagi dengan Anda (pembaca) tentang apa yang saya pahami tentang Logika dan Algoritma. Semoga bisa memberi sedikit masukan, but seluruh apa yang saya sampaikan, tolong di CMIIW :D .
Logika dan Algoritma merupakan hal primer yang sangat penting dan sangat mendasar untuk diketahui dan dikuasai oleh Anda khususnya yang ingin benar-benar mendalami IT secara umum. Apalagi bagi Anda yang ingin terjun ke dunia Programming (berbasis Web, Desktop, atau Mobile), Networking, dan lebih-lebih bagi Anda yang suka ‘hack1ng’. Ya, hal tersebut mutlak Anda butuhkan.
Secara sederhana, Logika dan Algoritma merupakan ilmu atau seni untuk menghayal. Saya yakin dengan pernyataan tersebut berdasarkan sedikit pengalaman yang saya alami selama ini. Apalagi berdasarkan kenyataan di sekitar saya (pengalaman teman atau baca pengalaman orang lain di internet) juga mengatakan bahwa Logika dan Algoritma sangat Anda butuhkan jika Anda benar-benar ingin menguasai ilmu-ilmu yang disajikan di IT.
Contoh, ketika Anda ingin membuat program, maka Anda harus bisa berhayal bagaimana bentuk program tersebut. Anda harus mengira-ngira tampilan apa saja yang akan dihadapi oleh pengguna dalam menggunakan program tersebut. Mungkin jumlah tombolnya, aksi untuk tombolnya, dan seterusnya. Anda harus bisa memperkirakan (menghayalkan) bagaimana jika user atau pengguna mengalami kesulitan, jika pengguna melakukan kesalahan untuk menginput data, dan perkiraan-perkiraan lainnya. Intinya, paling tidak Anda bisa memvisualisasikan program yang ingin Anda buat dari awal penggunaan program dijalankan hingga program tersebut ditutup.
Bisa saja Anda membuat program tanpa perencanaan sebelumnya. Saya berani memastikan bahwa selama proses coding(penulisan script) Anda tetap akan terganggu untuk menghayal bagaimana aplikasi Anda nantinya. Kemudian berbagai bugs dan berbagai kekeliruan akan Anda temukan karena sebelumnya tidak pernah Anda prediksi dan Anda khayalkan.
Logika dan Algoritma adalah ilmu atau seni untuk mengurutkan suatu pekerjaan seurut-urutnya. Dalam belajar Logikan dan Algoritma, Anda dituntut untuk menghayalkan atau mengerjakan suatu pekerjaan dengan mengurut secara detail pekerjaan-pekerjaan kecil yang sangat sederhana.
Misalkan untuk menghidupkan komputer. Jika secara garis besar, proses untuk menghudipkan komputer hanya sekedar menekan tombol power pada monitor dan menekan tombol power pada CPU (jika menggunakan PC). Namun, jika diurutkan dengan lebih rinci, secara sederhana mungkin sebagai berikut:
-pastikan listrik dari pln tidak padam
-jika padam, maka gagal ngidupin komputer
-pastikan semua kabel power(CPU dan Monitor) sudah tertancap dengan benar
-jika tidak, tancapkan dahulu dengan benar
-ulangi pencet tombol lagi
-jika sudah yakin tekan tombol power monitor
-jika sudah yakin tekan tombol power CPU
-jika tidak yakin, ya periksa lagi
-jika sudah ditekan keduanya, tapi tidak hidup
-periksa apakah kabelnya putus atau tidak
-periksa apakah pada slot/tancepan listik di blakang CPU atau Monitor sudah bener apa tidak
-jika komputer hidup tapi tidak menyala
-ulangi periksa lagi
-periksa kabel video (ke VGA Card) sudah bener apa tidak
-jika tetep tidak hidup, lihat ada bunyi bip apa tidak
-jika..
-jika..
-dan seterusnya[]
Nah, secara sederhana, maka untuk berpikir terstruktur untuk menyrukturkan dan mengurut suatu pekerjaan seurut-urutnya dan sedetail-detailnya, maka hal tersebutlah yang menjadi target pelajaran Logika dan Algoritma.
Bisa Anda perhatikan, untuk melakukan suatu pekerjaan, dibutuhkan beberapa situasi atau entah apa istilahnya. Cuma, kali ini saya akan istilahkan dengan situasi saja, CMIIW. Situasi yang saya maksud adalah situasi dalam melakukan pekerjaan, situasi pemilihan kondisi(jika, if), dan situasi perulangan(ulangi….).
Perlu Anda ketahui bahwa tidak semua lulusan S1 bisa mahir dan menguasai Logika dan Algoritma. Hal tersebut dibuktikan salah satunya yaitu banyak programmer Web yang masih kecolongan dengan adanya bug SQL Injection, XSS, dan Injection lainnya. Bug tersebut disebabkan karena kesalahan logika berpikir si Programmer (aduh, mungkin lebih halusnya karena ‘kekeliruan’ logika si Programmer, he sama aja!). Untuk yang bukan berbasis web, biasanya pada suatu aplikasi terkena bug OverFlow, maksudnya string buffer tidak diverifikasi sehingga menyebabkan aplikasi tersebut mengalami Crass (bisa ditandai dengan Not rsponding atau aplikasi tiba-tiba mati / terminated). Nah, hal tersebut jiga sangat potensial untuk dijadikan sebagai ‘jalan’ para attacker untuk mengeksploitasi sistem. :)
Kita semua perlu mengasah kemampuan ini, bermain Logika dan Algoritma. Pelajari pengkondisian (if, if-else, if-else-if), perulangan (for, while, etc), logika true-false(And, Or, Not, dan kombinasinya). Tenang saja, Logika dan Algoritma hanya Istilahnya saja yang Keren :P , namun sebenarnya setiap hari kita mempelajarinya (mungkin saja kita tidak sadar). Saya pastikan jika Anda sudah mahir dalam berlogika dan algoritma, membuat aplikasi apa saja, dengan bahasa apa saja, Anda tidak akan kesusahan. Sama halnya ketika Anda sudah paham tentang suatu benda, Anda bisa mengucapkan benda tersebut dengan bahasa Apa saja (jika Anda belajar bahasa benda tersebut).
Jika Anda sudah bisa Bermain Logika dan Algoritma, Anda akan dengan mudah mempelajari source orang lain dan mempelajari alur berpikir orang lain. Jika Anda sudah paham Logika dan Algoritma, ketika Anda diminta untuk menganalisa suatu script, walaupun Anda tidak tahu bahasa pemrograman script tersebut, maka Anda dengan mudah bisa mengetahui alur script tersebut berjalan. Hal ini sudah sering saya hadapi.
Menyesalikan suatu permasalahan yang sangat sulit dengan cara yang sangat sederhana dan terkesan unik adalah kemampuan individu yang sudah menguasai logika dan algoritma sesuai bidang tersebut. Jika Anda sudah demikian, Anda sudah bisa dikatakan sebagai (calon) hack3r dalam bidang Anda.
Written by ElangSakti
Buat Apa Sih Gunanya / Pentingnya Logika dan Algoritma?
Bahasan: Saya pikir, tulisan ini sangat penting bagi siapa saja yang masih bingung tentang Logika dan Algoritma. Saya tidak ingin menggurui Anda. N...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7
Buat Apa Sih Gunanya / Pentingnya Logika dan Algoritma?
Bahasan: Saya pikir, tulisan ini sangat penting bagi siapa saja yang masih bingung tentang Logika dan Algoritma. Saya tidak ingin menggurui Anda. N...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
0×01 Niat dan Kemauan Kuat
0×02 Logika dan Algoritma
0×03 Kreatifitas
0×04 Bakat (optional)
0×05 Berlatih Tiada Henti
0×06 Berbagi
Catatan penting :
Cara / Tips Menjadi Programmer Handal
Bagi kita mahasiswa TI, predikat ‘programmer’ merupakan sesuatu yang tiba-tiba melekat pada diri kita karena di situlah kita bergelut setiap hari, ngoding dan membuat program. Mungkin predikat tersebut adalah predikat minimal yang ‘harus’ kita peroreh sebelum menyandang predikat-predikat yang lain. Misalnya ‘Admin’, ‘System Analyst’, ‘hacker’, ‘carder’ (yang ini janganlah!), dan seterusnya.
Ketika ditanya, “silakan angkat tangan, siapa yang ingin menjadi programmer handal?” Pasti pembaca akan dengan sangat cepat mengangkat tangan. Akan tetapi salah satu kelemahan kita adalah, gerakan kita untuk belajar dan memperbaiki kualitas programming kita tidaklah secepat ketika kita mengangkat tangan. Skill kita jarang kita upgrade hingga level yang lebih tinggi dan hanya berpatokan nilai-nilai dan angka-angka yang akan diberikan dosen. Oouff, OOT.
BTT (Back To Topic).
Untuk menjadi programmer yang handal, ada beberapa hal yang harus kita lakukan. Nah, kriteria-kriteria dalam artikel ini merupakan akumulasi dari pengalaman para programmer yang penulis kenal. ;D
0×01 Niat dan Kemauan Kuat
Yup, pertama niak kita harus benar dan kita harus punya kemauan kuat untuk belajar programming. Tidak hanya programming, semua hal yang ingin kita kuasai(tidak hanya bisa, tapi ahli) harus didasari dengan motifasi yang kuat. Passion, Ambition, and Enthusiasm!
0×02 Logika dan Algoritma
Anda wajib memahami dua istilah tersebut dan melekatkannya pada diri Anda. Logika dan Algoritma adalah pondasi awal untuk mnejadi programmer handal. Perlu diketahui bahwa yang menjadi masalah programmer adalah menyusun logika dan alur kejadian/tindakan aplikasi yang akan dibuat. Ketika sang programmer sudah mentok pada tahap ini, dia tidak akan menemukan solusi apa-apa walaupun dia hafal betul sintaks bahasa yang dipakai. Maka, perkuatlah logika dasar seperti OR, AND, dan NOT. Kemudian pahami algoritma (misal dengan Flowchart, diagram alir, atau Pseudocode), semisal FOR, WHILE, dan seterusnya.
Matematika? Matematika bukan merupakan hal yang sangat penting untuk menjadi seorang programmer yang handal. Hanya saja, kemampuan tersebut sangat membantu jika Anda ingin mendalami programming yang lebih dalam, misalnya tp/ip, penghitungan class IP jaringan, neural network, fuzzy, kompresi, teknik enkripsi/dekripsi, pengolahan citra digital, dan yang lainnya. Minimal Anda bisa melakukan perhitungan biner dan hexadesimal itu mungkin sudah membantu, akan tetapi tetap saja kurang! :)
0×03 Kreatifitas
Ingat, sepandai apapun Anda, jika tidak dibubuhi dengan kreatifitas, Anda akan menjadi ‘sebuah mesin’ yang hanya berpatokan pada sumber-sumber yang Anda pelajari. Anda harus bisa ‘menghayal’, menghayalkan algoritma dan aplikasi yang akan Anda buat. Dengan kreatifitas yang baik, Anda akan bisa memecahkan masalah paling sulit dengan cara yang paling sederhana.
0×04 Bakat (optional)
Memang, bakat adalah sala satu yang menentukan cepat atau tidaknya kita bisa memahami persoalan. Akan tetapi, menjadi programmer itu membutuhkan latihan. Tidak serta merta ‘jedug’ langsung pinter dan handal, tapi butuh proses. Orang yang berbakat menjadi programmer sekalipun, jika tidak pernah mengasah logika dan mencobanya dengan menulis atau membaca source code, sudah pasti dengan pasti dia tidak akan bisa ngoding. Ingat, jika ingin jadi programmer handal, Baca Kode dan Tulis Code. Learning by Doing.
0×05 Berlatih Tiada Henti
Anda akan semakin mahir jika Anda sering berlatih. Programming itu adalah skill, harus latihan, tidak bisa ditawar-tawar. Dan skill itu akan semakin dikuasai dan semakin expert jika sering dilakukan. Seperti halnya skill untuk berenang, Anda tidak akan pandai berenang jika menyentuh air saja takut. Anda harus hidup bersama kode, ya source code. Jadikan ia sarapan atau makan malam Anda. Ingat, seperti yang sudah saya sebutkan, baca kode dan tulis kode!
Untuk pemilihan bahasa pemrograman, jika Anda masih pemula, maka tentukanlah sata bahasa pemrograman yang Anda sukai atau yang banyak diminati orang. Hal ini akan mempermudah Anda jikalau Anda butuh teman untuk berdiskusi dan bertanya, jika banyak orang di sekitar Anda, Anda akan cepat memahami bahasa yang Anda pelajari. Setelah merasa expert pada salah satu bahasa, pelajarilah bahasa yang lain. Ingat, jangan langsung mempelajari beberapa bahasa sekaligus karena hal itu akan membingungkan Anda. Setiap bahasa pemrograman memiliki sintaks yang berbeda.
0×06 Berbagi
Berbagi merupakan hal wajib lainnya setelah kita memahami yang kita pelajari. Dalam agama saja sudah mewajibkan pada kita untuk memanfaatkan ilmu kita dengan cara apapun. Ilmu bermanfaat tatkala kita bisa mengamalkannya atau mengajarkannya. Kita butuh berbagi untuk menguatkan ingatan.
Nah, ketika Anda berbagi tentang apa yang Anda ketauhi, maka ilmu Anda anda akan semakin lekat pada ingatan Anda dan Allah akan menambahkan ilmu lain yang lebih tinggi lagi. Sederhananya, ketika Allah percaya pada Anda untuk menularkan ilmu yang Anda miliki, maka Allah akan kembali menitipkan ilmu baru pada Anda untuk disebarkan lagi.
Berbagi, tidak hanya saling memberi. Anda menuliskannya atau mendokumentasikannya pada sebuah blog, itu pun termasuk berbagi. Berbagi pada orang yang mengakses blog Anda. Jika ada kekeliruan, Anda bisa mendapatkan kritikan atau masukan yang lebih baik dari ‘karya’ Anda itu. Atau mendiskusikannya dalam forum, Anda akan lebih mempunyai referensi banyak tentang bagaimana membuat program atau berlogika yang baik dan lebih efisien. Ketika Anda sudah menjadi programmer, tidak akan ada lagi pertanyaan, “Anda bisa apa?” tapi “Mana efisien atau mana bagus (secara logika dan algoritma) program Anda dengan program si Anu?” Semuanya terus bergulir, sedikit saja Anda lengah, atau sebentar saja Anda berhenti, Anda akan ketinggalan jauh dengan kawan-kawan Anda.[]
Catatan penting :
Tak ada yang instan di dunia ini. Makan aja harus mengunyah dulu dan punya resiko tersedak, lidah kegigit, dll. Tidur aja punya resiko mimpi buruk, ketindihan, dll. So, gelar programmer tidak bisa didapat secara instan dan tidak bisa dibuat sendiri, butuh pengakuan dari orang lain. Yang terpenting adalah, fokus untuk selalu berlatih dan mencoba sehingga gelar tersebut tanpa terasa sudah kita sandang. :)
Written by ElangSakti
Cara / Tips Menjadi Programmer Handal
Bahasan: Bagi kita mahasiswa TI, predikat ‘programmer’ merupakan sesuatu yang tiba-tiba melekat pada diri kita karena di situlah kita bergelut seti...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7
Cara / Tips Menjadi Programmer Handal
Bahasan: Bagi kita mahasiswa TI, predikat ‘programmer’ merupakan sesuatu yang tiba-tiba melekat pada diri kita karena di situlah kita bergelut seti...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
Implementasi dalam script misalnya seperti berikut:
Algortima dan Source Code Menentukan Bilangan Ganjil - Genap
Untuk menentukan suatu bilangan itu ganjil atau genap, kita bisa menggunakan fungsi matematika yang disebut modulo atau modulus. Modulo atau modulus adalah sisa hasil pembagian dalam bentuk bilangan bulat. Misalnya :
4 : 2 = 2 sisa 0; atau 2 x 2 + 0 = 4; 5 : 2 = 2 sisa 1; atau 2 x 2 + 1 = 5; 9 : 2 = 4 sisa 1; atau 2 x 4 + 1 = 9; 11 : 3 = 3 sisa 2; atau 3 x 3 + 2 = 11; 15 : 4 = 3 sisa 2; atau 4 x 3 + 2 = 15;
Nah, sisa 0, 1, 1, 2, dan 2 itu adalah modulo (sisa hasil pembagian). Dalam matematika, operasi modulo bisa dituliskan dengan cara A mod B = C, atau dalam bahasa pemrograman komputer bisa ditulis C = A % B (atau sebaliknya); dimana % adalah tanda untuk modulo.
4 mod 2 = 0; atau 4 % 2 = 0; 5 mod 2 = 1; atau 5 % 2 = 1; 9 mod 2 = 1; atau 9 % 2 = 1; 11 mod 3 = 2; atau 11% 3 = 2; 15 mod 4 = 2; atau 15% 4 = 2;
Jadi, bilangan genap adalah bilangan yang habis dibagi 2, sedangkan bilangan ganjil adalah bilangan yang menghasilkan sisa 1 jika dibagi 2. Dengan kata lain :
if(a%2==0) genap; if(a%2==1) ganjil;
Implementasi dalam script misalnya seperti berikut:
// pada php
<?php
for($a=1; $a<15; $a++){
if($a%2==0){
echo $a." bilangan genap\n";
}else{
echo $a." bilangan ganjil\n";
}
}
?>
// pada java
public class tes{
public static void main(String haripinter[]){
for(int a=1; a<15; a++){
if(a%2==0){
System.out.println(a+" bilangan genap");
}else{
System.out.println(a+" bilangan ganjil");
}
}
}
}
Written by ElangSakti
Algortima dan Source Code Menentukan Bilangan Ganjil - Genap
Bahasan: Untuk menentukan suatu bilangan itu ganjil atau genap, kita bisa menggunakan fungsi matematika yang disebut modulo atau modulus. Modulo at...
Published at Selasa, 16 Juli 2013, Updated at Selasa, 16 Juli 2013
Reviewed by dr. on
Rating: 4.7
Algortima dan Source Code Menentukan Bilangan Ganjil - Genap
Bahasan: Untuk menentukan suatu bilangan itu ganjil atau genap, kita bisa menggunakan fungsi matematika yang disebut modulo atau modulus. Modulo at...
Published at Selasa, 16 Juli 2013, Updated at Selasa, 16 Juli 2013
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
Fungsi-fungsi di atas mengacu pada perhitungan pada posting sebelumnya :
semoga bermanfaat :)
Java ME : Algoritma Kriptografi Elliptic Curve Cryptography (ECC)
ElangSakti
Elliptic Curve Cryptography
,
Enkripsi Pesan
,
Informatika
,
kriptografi
,
kurva eliptik
3 komentar
Dibawah ini adalah algoritma kriptografi kurva eliptik (ECC) dalam basaha java, khususnya J2ME. Pada kelas tersebut ada fungsi-fungsi yang sengaja dibuat untuk melengkapi kekurangan di J2ME, misalnya fungsi Split() untuk memecah string, sementara di J2ME fungsi untuk memecah string tidak ada. Kemudian fungsi powSqrt() sebagai fungsi perpangkatan sebagai pengganti fungsi Math.pow() yang ada juga di J2ME.
- Fungsi isCurve() itu berguna untuk memeriksa apakah pasangan a, b, dan bilangan prima sudah sesuai dengan persamaan kurva eliptik yaitu y^2 = x^3+ax+b.
- Funsi isPrime() untuk memeriksa apakah angka acak yang akan digunakan termasuk bilangan prima atau bukan.
- Fungsi titik() untuk mencari titik-titik yang sesuai dengan persamaan sesua variabel a, b, dan bilangan prima yang ditentukan.
- Fungsi arrAdd() sebagai tool agar proses penambahan array integer lebih mudah.
- Fungsi invers() untuk mencari nilai invers dari suatu bilangan.
- Fungsi kali() untuk implementasi aturan perkalian titik pada kurva eliptik.
- Fungsi jumlah() untuk implementasi aturan penjumlah titik pada kurva eliptik.
Fungsi-fungsi di atas mengacu pada perhitungan pada posting sebelumnya :
- Road to ECC (1) : Perkalian Pada Algoritma Elliptic Curve Cryptography
- Perhitungan Algoritma Kriptografi Elliptic Curve (ECC)
- Algoritma (Fungsi) Pengganti Perpangkatan Math.pow() pada J2ME
import java.util.Vector;
/**
*
* @author x86
*/
public class Curve {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//fungsi y^2 = x^3+ax+b
int a = 1;
int b = 1;
System.out.println("Persamaan yang dipakai y^2 = x^3+x+1");
//bilangan prima (random sesuai persamaan)
int p = 193;
System.out.println("Bilangan Prima (acak random) p="+p);
//System.out.println();
System.out.println("Anggota Himpunan di atas dengan batas atas bilangan prima "+p);
for(int x=0; x<p; x++){
titik(p,a,b,x);
}
System.out.println();
// key (random sesuai persamaan)
int k = 4;
System.out.println("Privat key k (untuk penerima) = "+k);
// titik awal (random sesuai persamaan)
int[] P = {133,78};
System.out.println("Titik awal kurva P = ("+P[0]+","+P[1]+")");
// key public penerima (random sesuai persamaan)
System.out.println("Public Key k.P, dihitung dengan cara mengalikan private key k ke titik awal kurva P");
System.out.println("k*P = "+k+"*("+P[0]+","+P[1]+")");
int[] dP = kali(p,a,b,k,P);
System.out.println("Jadi, Public Key k.P = ("+dP[0]+","+dP[1]+")");
System.out.println("Catatan : Perkalian dan perhitungan titik kurva menggunakan aturan");
System.out.println("Perkalian, penjumlahan, penggandaan, dan invers,");
System.out.println("Jadi perkaliannya tidak sama denga perkalian matriks.");
String pesan = "haripinter";
System.out.println("Pesan yang akan di enkripsi : "+pesan);
System.out.println();
System.out.println("Proses Enkripsi :");
System.out.println("-----------------------");
String str = enkrip(P,dP,pesan,k,a,b,p);
System.out.println();
System.out.println("Proses Dekripsi :");
System.out.println("-----------------------");
String msg = dekrip(str,k,a,b,p);
}
static String enkrip(int[] P, int[] dP, String M, int k, int a, int b, int p){
System.out.println("- Menentukan titik kkP sebagai titik pengenkripsi.");
System.out.println("k*kP = "+k+"*"+"("+dP[0]+","+dP[1]+")");
int[] kdP = kali(p, a, b, k, dP);
System.out.println("Titik kkP : ("+kdP[0]+","+kdP[1]+")");
System.out.println();
int XkdP = kdP[0];
System.out.println("- Menentukan titik Awal proses dekripsi.");
System.out.println("k*P = "+k+"*"+" ("+P[0]+","+P[1]+")");
int[] kP = kali(p, a, b, k, P);
System.out.println("Titik kP : ("+kP[0]+","+kP[1]+")");
System.out.println();
String head = (char)kP[0]+"#"+(char)kP[1]+"#";
System.out.println("Header titik kP dijadikan karakter kemudian disertakan dalam pesan (bisa jadi karakternya tidak tampak) : "+head);
System.out.println();
System.out.println("Ambil titik absis kkP untuk di-xor-kan ke pesan.");
System.out.println(XkdP+" -> "+Integer.toBinaryString(XkdP));
System.out.println();
System.out.println("Konversi pesan ke integer sesuai format ASCII, kemudian jadikan biner. Selanjutnya di xor dengan absis titik kdP.");
System.out.println("Setelah di xor, rangkai lagi menjadi pesan baru yang terenkripsi:");
String MM="";
for(int cd=0; cd<M.length(); cd++){
System.out.print(M.charAt(cd)+" -> "+(int)M.charAt(cd)+" -> "+Integer.toBinaryString((int)M.charAt(cd)));
int eMx = XkdP ^ M.charAt(cd);
System.out.println(" xor "+Integer.toBinaryString(XkdP)+" => "+eMx+" ("+(char)eMx+")");
MM = MM + (char)eMx;
}
System.out.println("Angka desimal pesan diatas kemudian dikembalikan menjadi karakter");
System.out.println("Pesan Baru terenkripsi : "+MM);
MM = head + MM;
System.out.println("header + Pesan Baru terenkripsi : "+MM);
return MM;
}
static String dekrip(String M, int d, int a, int b, int p){
System.out.println("Pesan terenkripsi : "+M);
System.out.println("Pisahkan header dan pesan asli. Kemudian ambil ke titik kp:");
String msg = "";
String[] dmp = Split(M,"#");
if(dmp.length!=3) return M;
// kp[0]#kp[1]
int[] kP = {(int)dmp[0].charAt(0),(int)dmp[1].charAt(0)};
System.out.println("Titik kP : ("+kP[0]+","+kP[1]+")");
System.out.println();
System.out.println("Hitung titik kP dengan k untuk mendapatkan titik-titik pesan");
System.out.println(d+"*("+kP[0]+","+kP[1]+")");
int[] dkP = kali(p,a,b,d,kP);
System.out.println("Titik kkP : ("+dkP[0]+","+dkP[1]+")");
System.out.println();
System.out.println("Ambil titik absis kkP untuk di-xor-kan ke pesan terenkripsi.");
System.out.println(dkP[0]+" -> "+Integer.toBinaryString(dkP[0]));
System.out.println();
System.out.println("Ambil pesan perkarakter, jadikan biner, kemudian xor-kan ke kkP");
M = dmp[2];
for(int dr=0; dr<M.length(); dr++){
System.out.print(M.charAt(dr)+" -> "+(int)M.charAt(dr)+" -> "+Integer.toBinaryString((int)M.charAt(dr)));
int eMX = dkP[0] ^ M.charAt(dr);
System.out.println(" xor "+Integer.toBinaryString(dkP[0])+" => "+eMX+" ("+(char)eMX+")");
msg = msg + (char) eMX;
}
System.out.println();
System.out.println("Rangkai kembali menjadi pesan asli.");
System.out.println(msg);
return msg;
}
public static String[] Split(String splitStr, String delimiter) {
StringBuffer token = new StringBuffer();
Vector tokens = new Vector();
// split
char[] chars = splitStr.toCharArray();
for (int i=0; i < chars.length; i++) {
if (delimiter.indexOf(chars[i]) != -1) {
// we bumbed into a delimiter
if (token.length() > 0) {
tokens.addElement(token.toString());
token.setLength(0);
}
} else {
token.append(chars[i]);
}
}
// don't forget the "tail"...
if (token.length() > 0) {
tokens.addElement(token.toString());
}
// convert the vector into an array
String[] splitArray = new String[tokens.size()];
for (int i=0; i < splitArray.length; i++) {
splitArray[i] = (String)tokens.elementAt(i);
}
return splitArray;
}
static double powSqrt(double x, double y){
int den = 1024, num = (int)(y*den), iterations = 10;
double n = Double.MAX_VALUE;
while( n >= Double.MAX_VALUE && iterations > 1)
{
n = x;
for( int i=1; i < num; i++ )n*=x;
if( n >= Double.MAX_VALUE )
{
iterations--;
den = (int)(den / 2);
num = (int)(y*den);
}
}
for( int i = 0; i <iterations; i++ )n = Math.sqrt(n);
return n;
}
static int[] arrAdd(int data,int[] datas){
int max = datas.length;
int[] temp = new int[max+1];
for(int i=0; i<max; i++){
temp[i]=datas[i];
}
temp[max] = data;
return temp;
}
static int invers(double c, int p){
int invc = 0;
c = c%p;
int[] a = {1,0,p};
int[] b = {0,1,(int)c};
boolean ulang = true;
while(ulang){
if(b[2]==0){
ulang = false;
break;
}
if(b[2]==1){
invc = b[1]%p;
ulang = false;
break;
}
if(ulang){
int q = (int) Math.floor(a[2]/b[2]);
int[] t= {(a[0]-q*b[0]), a[1]-q*b[1], a[2]-q*b[2]};
a = b;
b = t;
}
}
return invc;
}
static int[] kali(int p, int a, int b, int k, int[] xy){
int n = k%2;
k = (int)Math.floor(k/2);
//System.out.println(k);
int[] R = jumlah(p,a,b,xy[0],xy[1],xy[0],xy[1]);
System.out.println("["+xy[0]+","+xy[1]+"]+"+"["+xy[0]+","+xy[1]+"]"+"="+"["+R[0]+","+R[1]+"]");
if(k>1){
R = kali(p, a, b, k, R);
}
if(n==1){
System.out.print("["+R[0]+","+R[1]+"]");
R = jumlah(p,a,b,R[0],R[1],xy[0],xy[1]);
System.out.println("+"+"["+xy[0]+","+xy[1]+"]="+"["+R[0]+","+R[1]+"]");
}
return R;
}
static int[] jumlah(int p, int a, int b, int x1, int y1, int x2, int y2){
int point[] = new int[2];
int x3, y3;
if(x1==0 && y1==0){
x3 = x2;
y3 = y2;
}else if(x2==0 && y2==0){
x3 = x1;
y3 = y1;
}else if(y1 == -y2){
x3 = 0;
y3 = 0;
}else if(x1==x2 && y1==y2){
double inv = invers(2*y1,p);
//System.out.println(inv);
double lambda = (3*powSqrt(x1, 2)+a)*inv;
lambda = lambda%p;
x3 = (int)powSqrt(lambda, 2) - 2*x1;
y3 = -y1 + (int)lambda*(x1-x3);
int n=1;
while(x3<0){
x3 = n*p+x3;
n++;
}
n=1;
while(y3<0){
y3 = n*p+y3;
n++;
}
point[0] = x3%p;
point[1] = y3%p;
//System.out.println(point[0]+","+point[1]);
}else{
int tX = (x2-x1);
int tY = (y2-y1);
int lambda = tY*(invers(tX,p));
//System.out.println(invers(tX,p));
lambda = lambda%p;
//System.out.println("Lambda : "+lambda);
x3 = (int)(powSqrt(lambda, 2)-x1-x2);
y3 = lambda*(x1-x3)-y1;
int n=1;
while(x3<0){
x3 = n*p+x3;
n++;
}
n=1;
while(y3<0){
y3 = n*p+y3;
n++;
}
point[0] = x3%p;
point[1] = y3%p;
//System.out.println(point[0]+","+point[1]);
}
return point;
}
static int[][] titik(int p, int a, int b, int x){
int dmp[][] = new int[0][2];
if(isCurve(a,b,p)){
double yKuadrat = ((a*powSqrt(x,3))+x+b)%p;
for(int i=0; i<p; i++){
double t = powSqrt(i,2)%p;
if(yKuadrat==t){
//dmp = addArr();
System.out.print("("+x+","+i+"), ");
}
}
}else{
System.out.println("coba nilai a atau b yang lain.");
}
return dmp;
}
public static boolean isCurve(int a, int b, int p){
double hasil = (4*powSqrt(a, 3))+(27*powSqrt(b, 2));
int modp = (int)hasil%p;
if(hasil==0){
return false;
}
return true;
}
public static boolean isPrime(int p, int a){
if(powSqrt(a, p)%p==a){
return true;
}
return false;
}
}
semoga bermanfaat :)
Written by ElangSakti
Java ME : Algoritma Kriptografi Elliptic Curve Cryptography (ECC)
Bahasan: Dibawah ini adalah algoritma kriptografi kurva eliptik (ECC) dalam basaha java, khususnya J2ME. Pada kelas tersebut ada fungsi-fungsi yang...
Published at Kamis, 11 Juli 2013, Updated at Kamis, 11 Juli 2013
Reviewed by dr. on
Rating: 4.7
Java ME : Algoritma Kriptografi Elliptic Curve Cryptography (ECC)
Bahasan: Dibawah ini adalah algoritma kriptografi kurva eliptik (ECC) dalam basaha java, khususnya J2ME. Pada kelas tersebut ada fungsi-fungsi yang...
Published at Kamis, 11 Juli 2013, Updated at Kamis, 11 Juli 2013
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
Hasilnya :
Algoritma Menentukan Bilangan Prima dengan Teorema Fermat
Script di bawah ini dilakukan untuk menguji apakah suatu bilangan adalah bilangan prima menurup teori fermat yang memanfaatkan aturan perpangkatan dan modulo. Sebenarnya bilangan prima itu ada beberapa macam. Ada bilangan yang diduga prima, bilangan yang diduga kuat prima, bilangan yang diduga kuat berbasis prima (2,3,5,7), bilangan prima semu kuat berbasis (2,3,5,7), ada pula bilangan charmichael.
Penentuan bilangan tersebut dilakukan dengan beberapa uji komposit, uji komposit 1, uji komposit 2, dan uji komposit. Komposit adalah bilangan yang bukan prima. Kali ini saya contohkan bilangan prima basis 2. Dengan perhitungan dari rumus fermat, kita tidak perlu melakukan looping berkali-kali untuk menentukan bilangan tersebut termasuk prima atau bukan.
Script berikut akan menentukan bilangan prima dari angka 1 - 100 yang pada pada variabel 'awal' dan 'akhir'. Jika antara 1 - 100 ada bilangan prima, maka angka tersebut akan dicetak.
/**
*
* @author x86
*/
public class isPrime {
public static void main(String haripinter[]){
int awal = 1;
int akhir = 100;
int basis = 2;
for(int a=awal; a<=akhir; a++){
if(fermat(a,basis) || a==2){
System.out.print(a+" ");
}
}
}
static boolean fermat(int p, int a){
if(Math.pow(a, p)%p==a){
return true;
}
return false;
}
}
Hasilnya :
run: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 BUILD SUCCESSFUL (total time: 0 seconds)
Written by ElangSakti
Algoritma Menentukan Bilangan Prima dengan Teorema Fermat
Bahasan: Script di bawah ini dilakukan untuk menguji apakah suatu bilangan adalah bilangan prima menurup teori fermat yang memanfaatkan aturan perp...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7
Algoritma Menentukan Bilangan Prima dengan Teorema Fermat
Bahasan: Script di bawah ini dilakukan untuk menguji apakah suatu bilangan adalah bilangan prima menurup teori fermat yang memanfaatkan aturan perp...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
Semoga bermanfaat.
Algoritma (Fungsi) Pengganti Perpangkatan Math.pow() pada J2ME
ElangSakti
akar kuadrat
,
Informatika
,
J2ME
,
Math.pow()
,
Pepangkatan Matematika
Tidak ada komentar
Pada J2ME yang saya tahu belum ada fungsi untuk mencari perpangkatan bilangan yang biasa dipanggil dengan fungsi Math.pow(). Dengan demikian solusi untuk masalah tersebut yaitu menggunakan aturan akar. Untung saja Math.sqrt() masih ada, jadi kita bisa menggunakan fungsi tersebut untuk membuat pengganti fungsi Math.pow().
double powSqrt(double x, double y){
int den = 1024, num = (int)(y*den), iterations = 10;
double n = Double.MAX_VALUE;
while( n >= Double.MAX_VALUE && iterations > 1){
n = x;
for( int i=1; i < num; i++ )n*=x;
if( n >= Double.MAX_VALUE ){
iterations--;
den = (int)(den / 2);
num = (int)(y*den);
}
}
for( int i = 0; i <iterations; i++ )n = Math.sqrt(n);
return n;
}
Semoga bermanfaat.
Written by ElangSakti
Algoritma (Fungsi) Pengganti Perpangkatan Math.pow() pada J2ME
Bahasan: Pada J2ME yang saya tahu belum ada fungsi untuk mencari perpangkatan bilangan yang biasa dipanggil dengan fungsi Math.pow(). Dengan demiki...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7
Algoritma (Fungsi) Pengganti Perpangkatan Math.pow() pada J2ME
Bahasan: Pada J2ME yang saya tahu belum ada fungsi untuk mencari perpangkatan bilangan yang biasa dipanggil dengan fungsi Math.pow(). Dengan demiki...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
(5,18), (10,25), (10,168), (11,68), (11,125), (12,2), (12,191), (15,66),
(15,127), (19,33), (19,160), (20,84), (20,109), (22,40), (22,153),
(39,84), (39,109), (41,86), (41,107), (45,70), (45,123), (49,82), (49,111),
(51,43), (51,150), (52,93), (52,100), (53,30), (53,163), (54,80), (54,113),
(55,79), (55,114), (56,64), (56,129), (58,56), (58,137), (61,70), (61,123),
(62,6), (62,187), (66,46), (66,147), (67,41), (67,152), (69,38), (69,155),
(70,66), (70,127), (71,57), (71,136), (72,32), (72,161), (73,14), (73,179),
(74,81), (74,112), (79,2), (79,191), (81,1), (81,192), (82,67), (82,126),
(83,28), (83,165), (84,47), (84,146), (85,49), (85,144), (87,70), (87,123),
(90,55), (90,138), (91,34), (91,159), (93,42), (93,151), (94,59), (94,134),
(95,92), (95,101), (96,182), (100,19), (100,174), (101,13), (102,2),
(102,191), (103,79), (103,114), (104,92), (104,101), (108,66), (108,127),
(109,63), (109,130), (111,96), (111,97), (112,1), (112,192), (113,23),
(113,170), (114,34), (114,159), (115,94), (115,99), (117,105), (119,14),
(119,179), (120,81), (120,112), (123,49), (123,144), (127,3), (127,190),
(128,23), (128,170), (133,78), (133,115), (134,84), (134,109), (135,95),
(135,98), (136,80), (136,113), (138,55), (138,138), (140,35), (140,158),
(142,58), (142,135), (145,23), (145,170), (147,85), (147,108), (155,17),
(158,55), (158,138), (163,50), (163,143), (165,71), (165,122), (166,39),
(166,154), (168,62), (168,131), (169,7), (169,186), (171,77), (171,116),
(175,83), (175,110), (178,49), (178,144), (179,36), (179,157), (180,53),
(180,140), (181,34), (181,159), (187,92), (187,101), (188,8), (188,185),
(189,60), (189,133), (191,50), (191,143), (192,81), (192,112)
Privat key k (untuk penerima) = 4
Private key ini adalah salah satu angka yang ada pada Himpunan Penyelesaian persamaan di atas.
Titik awal kurva P = (133,78)
Dipilih secara random.
Public Key k.P, dihitung dengan cara mengalikan private key k ke titik awal kurva P
Dari pre-proses di atas kita dapatkan beberapa informasi:
Persamaan yang dipakai adalah : y^2 = x^3+x+1
Bilangan prima p : 193
Private key : 4
Titik kurva Awal : (133,78)
Public Key k.P : (163,143)
Pesan yang akan di enkripsi : haripinter
Proses Enkripsi :
-----------------------
- Menentukan titik kkP sebagai titik pengenkripsi.
- Menentukan titik Awal proses dekripsi. (Sebenarnya ini adalah titik k.P yang sudah dihitung sebelum :) )
Selanjutnya ambil titik absis kkP untuk di-xor-kan ke pesan.
128 -> 10000000
Konversi pesan ke integer sesuai format ASCII, kemudian jadikan biner. Selanjutnya di xor dengan absis titik kdP.
Setelah di xor, rangkai lagi menjadi pesan baru yang terenkripsi:
Pesan Baru terenkripsi : èáòéðéîôåò
Gabungkan karakter titik kP pada pesan.
Titik kP + Pesan terenkripsi : £##èáòéðéîôåò
Pada pesan tersebut titik X menjadi £ dan Y menjadi karakter yang tidak dikenal oleh format ASCII.
Proses Dekripsi :
-----------------------
Pesan terenkripsi : £##èáòéðéîôåò
Pisahkan header dan pesan asli. Kemudian ambil ke titik kP:
Titik kP : (163,143)
Hitung titik kP dengan k untuk mendapatkan titik-titik pesan
Ambil titik absis kkP untuk di-xor-kan ke pesan terenkripsi.
128 -> 10000000
Ambil pesan perkarakter, jadikan biner, kemudian xor-kan ke kkP
Rangkai kembali menjadi pesan asli.
Perhitungan Algoritma Kriptografi Elliptic Curve (ECC)
ElangSakti
Algoritma
,
Elliptic Curve Cryptography
,
Enkripsi Pesan SMS
,
Informatika
,
kriptografi
,
kurva eliptik
2 komentar
Berikut proses perhitungan algoritma elliptic curve atau disebut juga dengan algoritma kurva eliptik.
Persamaan yang dipakai y^2 = x^3+x+1
Bilangan Prima (acak random) p=193
Anggota Himpunan Penyelesaian di atas dengan batas atas bilangan prima 193
(0,1), (0,192), (1,14), (1,179), (3,80), (3,113), (4,29), (4,164),(5,18), (10,25), (10,168), (11,68), (11,125), (12,2), (12,191), (15,66),
(15,127), (19,33), (19,160), (20,84), (20,109), (22,40), (22,153),
(23,15), (23,178), (25,37), (25,156), (27,5), (27,188), (28,65), (28,128),
(29,78), (29,115), (31,78), (31,115), (32,50), (32,143), (35,79), (35,114),(39,84), (39,109), (41,86), (41,107), (45,70), (45,123), (49,82), (49,111),
(51,43), (51,150), (52,93), (52,100), (53,30), (53,163), (54,80), (54,113),
(55,79), (55,114), (56,64), (56,129), (58,56), (58,137), (61,70), (61,123),
(62,6), (62,187), (66,46), (66,147), (67,41), (67,152), (69,38), (69,155),
(70,66), (70,127), (71,57), (71,136), (72,32), (72,161), (73,14), (73,179),
(74,81), (74,112), (79,2), (79,191), (81,1), (81,192), (82,67), (82,126),
(83,28), (83,165), (84,47), (84,146), (85,49), (85,144), (87,70), (87,123),
(90,55), (90,138), (91,34), (91,159), (93,42), (93,151), (94,59), (94,134),
(95,92), (95,101), (96,182), (100,19), (100,174), (101,13), (102,2),
(102,191), (103,79), (103,114), (104,92), (104,101), (108,66), (108,127),
(109,63), (109,130), (111,96), (111,97), (112,1), (112,192), (113,23),
(113,170), (114,34), (114,159), (115,94), (115,99), (117,105), (119,14),
(119,179), (120,81), (120,112), (123,49), (123,144), (127,3), (127,190),
(128,23), (128,170), (133,78), (133,115), (134,84), (134,109), (135,95),
(135,98), (136,80), (136,113), (138,55), (138,138), (140,35), (140,158),
(142,58), (142,135), (145,23), (145,170), (147,85), (147,108), (155,17),
(158,55), (158,138), (163,50), (163,143), (165,71), (165,122), (166,39),
(166,154), (168,62), (168,131), (169,7), (169,186), (171,77), (171,116),
(175,83), (175,110), (178,49), (178,144), (179,36), (179,157), (180,53),
(180,140), (181,34), (181,159), (187,92), (187,101), (188,8), (188,185),
(189,60), (189,133), (191,50), (191,143), (192,81), (192,112)
Privat key k (untuk penerima) = 4
Private key ini adalah salah satu angka yang ada pada Himpunan Penyelesaian persamaan di atas.
Titik awal kurva P = (133,78)
Dipilih secara random.
Public Key k.P, dihitung dengan cara mengalikan private key k ke titik awal kurva P
k*P = 4*(133,78) [133,78] +[133,78] =[112,192] [112,192]+[112,192]=[163,143]Jadi, Public Key k.P = (163,143)
Catatan : Perkalian dan perhitungan titik kurva menggunakan aturan perkalian, penjumlahan, penggandaan, dan invers, Jadi perkaliannya tidak sama denga perkalian matriks.
Dari pre-proses di atas kita dapatkan beberapa informasi:
Persamaan yang dipakai adalah : y^2 = x^3+x+1
Bilangan prima p : 193
Private key : 4
Titik kurva Awal : (133,78)
Public Key k.P : (163,143)
Pesan yang akan di enkripsi : haripinter
Proses Enkripsi :
-----------------------
- Menentukan titik kkP sebagai titik pengenkripsi.
k*kP = 4*(163,143) [163,143]+[163,143]=[1,179] [1,179] +[1,179] =[128,170]Titik kkP : (128,170)
- Menentukan titik Awal proses dekripsi. (Sebenarnya ini adalah titik k.P yang sudah dihitung sebelum :) )
k*P = 4* (133,78) [133,78] +[133,78] =[112,192] [112,192]+[112,192]=[163,143]Titik kP : (163,143)
Titik x dan y kP dikonversi ke karakter, selanjutkan karakter tersebut akan dikirim sebagai header pada pesan terenkripsi.
Karakter x, y, dan pesan akan dipisahkan oleh karakter #. Sehingga format pesan yang nantinya akan dikirim adalah X#Y#pesan_terenkripsi
Selanjutnya ambil titik absis kkP untuk di-xor-kan ke pesan.
128 -> 10000000
Konversi pesan ke integer sesuai format ASCII, kemudian jadikan biner. Selanjutnya di xor dengan absis titik kdP.
Setelah di xor, rangkai lagi menjadi pesan baru yang terenkripsi:
h -> 104 -> 1101000 xor 10000000 => 232 (è) a -> 97 -> 1100001 xor 10000000 => 225 (á) r -> 114 -> 1110010 xor 10000000 => 242 (ò) i -> 105 -> 1101001 xor 10000000 => 233 (é) p -> 112 -> 1110000 xor 10000000 => 240 (ð) i -> 105 -> 1101001 xor 10000000 => 233 (é) n -> 110 -> 1101110 xor 10000000 => 238 (î) t -> 116 -> 1110100 xor 10000000 => 244 (ô) e -> 101 -> 1100101 xor 10000000 => 229 (å) r -> 114 -> 1110010 xor 10000000 => 242 (ò)Angka desimal pesan diatas kemudian dikembalikan menjadi karakter
Pesan Baru terenkripsi : èáòéðéîôåò
Gabungkan karakter titik kP pada pesan.
Titik kP + Pesan terenkripsi : £##èáòéðéîôåò
Pada pesan tersebut titik X menjadi £ dan Y menjadi karakter yang tidak dikenal oleh format ASCII.
Proses Dekripsi :
-----------------------
Pesan terenkripsi : £##èáòéðéîôåò
Pisahkan header dan pesan asli. Kemudian ambil ke titik kP:
Titik kP : (163,143)
Hitung titik kP dengan k untuk mendapatkan titik-titik pesan
4*(163,143) [163,143]+[163,143]=[1,179] [1,179] +[1,179] =[128,170]Titik kkP : (128,170)
Ambil titik absis kkP untuk di-xor-kan ke pesan terenkripsi.
128 -> 10000000
Ambil pesan perkarakter, jadikan biner, kemudian xor-kan ke kkP
è -> 232 -> 11101000 xor 10000000 => 104 (h) á -> 225 -> 11100001 xor 10000000 => 97 (a) ò -> 242 -> 11110010 xor 10000000 => 114 (r) é -> 233 -> 11101001 xor 10000000 => 105 (i) ð -> 240 -> 11110000 xor 10000000 => 112 (p) é -> 233 -> 11101001 xor 10000000 => 105 (i) î -> 238 -> 11101110 xor 10000000 => 110 (n) ô -> 244 -> 11110100 xor 10000000 => 116 (t) å -> 229 -> 11100101 xor 10000000 => 101 (e) ò -> 242 -> 11110010 xor 10000000 => 114 (r)
Rangkai kembali menjadi pesan asli.
haripinter
Written by ElangSakti
Perhitungan Algoritma Kriptografi Elliptic Curve (ECC)
Bahasan: Berikut proses perhitungan algoritma elliptic curve atau disebut juga dengan algoritma kurva eliptik. Persamaan yang dipakai y^2 = x^3+x...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7
Perhitungan Algoritma Kriptografi Elliptic Curve (ECC)
Bahasan: Berikut proses perhitungan algoritma elliptic curve atau disebut juga dengan algoritma kurva eliptik. Persamaan yang dipakai y^2 = x^3+x...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
Antara Sinyal, Gelombang, dan Getaran
Sinyal, atau sering juga disebut dengan istilah gelombang atau getaran. Ketika istilah tersebut saling terkait dalam arti harfiah dan penggunaannya dalam sehari-hari. Gelombang adalah getaran yang merambat tanpa ada informasi yang berarti. Sedangkan Sinyal adalah getaran yang merambat disertai informasi yang sudah disepakati antara pengirim dan penerima.
Akan tetapi terlepas dari perbedaan tersebut, kita akan fokus pada getaran, gelombang, dan sinyal yang dibahas pada fisika. Sehingga ketiga istilah tersebut kita sama, terlapas mau atau tidak, tetap harus disamakan agar dalam pembahasan selanjutnya sinyal yang saya maksud sama dengan sinyal yang pembaca pahami. Selanjutnya, sinyal dan getaran akan disebut sebagai gelombang. Biar sependapat. :D
Dalam Kehidupan sehari-hari, kita tidak mungkin lepas dari gelombang. Gelombang cahaya, gelombang suara, gelombang / sinyal listrik, dan gelombang-gelombang lainnya. Gelombang adalah gerakan dari tinggi ke rendah dan sebaliknya secara kontinyu, atau gelombang bisa disamakan naik turunnya energi secara spontan dan dalam waktu tertentu.
Oleh sebab itu, dalam gelombang dikenal dengan frekuensi, amplitudo, tinggi dan lebar gelombang. Semua itu berhubungan dengan waktu. Nantinya, gelombang akan dibagi-bagi lagi sesuai kriterianya atau model implementasinya. Ada gelombang periodik, diskrit, transfersal, longitudinal, analog, elektromagnetik, dll sesui dengan kriteri pembagiannya.
Kali ini belum ada rumus, ini masih pembahasan pembuka tentang sinyal / gelombang. So, keep learn.
Written by ElangSakti
Antara Sinyal, Gelombang, dan Getaran
Bahasan: Sinyal , atau sering juga disebut dengan istilah gelombang atau getaran . Ketika istilah tersebut saling terkait dalam arti harfiah dan pe...
Published at Rabu, 10 Juli 2013, Updated at Rabu, 10 Juli 2013
Reviewed by dr. on
Rating: 4.7
Antara Sinyal, Gelombang, dan Getaran
Bahasan: Sinyal , atau sering juga disebut dengan istilah gelombang atau getaran . Ketika istilah tersebut saling terkait dalam arti harfiah dan pe...
Published at Rabu, 10 Juli 2013, Updated at Rabu, 10 Juli 2013
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
1 Ramadhan 1434 H ~ Sekedar Pembuka
Tak semua mulut sama.
Bukan sekedar isolasi, itu seperti isotop pada semua materi
Lirikan membisik dari mata
Para pejuang tercenung
Para pengukir tak kenal lagi rupa kayu
Akhir bulan, akhir senyum yang kian layu
Akhir tahun, beras sudah jadi tepung
Lirikan membisik jadi kata
Lama sudah
Tak senyum sapa tawa canda dan tengkar
Di pojok kesedihan semua beruang tak lagi menanti
Ingatkah kalian ketika mata pertama kali terbuka?
Ingatkah kalian ketika mata mulai menutup?
Taukah kalian bahwa tubuh-tubuh kalian itu begitu menderita?
Tahukah kalian bahwa jiwa kalian itu lebih menderita...
Hai, sambil tersenyum kita menyentuh ramadhan tahun ini.
Tak tahu kita bisa menuntaskannya atau tidak.
Andai di sini seperti di Mesir
Apa yang akan Kau lakukan?
Bukan sekedar isolasi, itu seperti isotop pada semua materi
Lirikan membisik dari mata
Para pejuang tercenung
Para pengukir tak kenal lagi rupa kayu
Akhir bulan, akhir senyum yang kian layu
Akhir tahun, beras sudah jadi tepung
Lirikan membisik jadi kata
Lama sudah
Tak senyum sapa tawa canda dan tengkar
Di pojok kesedihan semua beruang tak lagi menanti
Ingatkah kalian ketika mata pertama kali terbuka?
Ingatkah kalian ketika mata mulai menutup?
Taukah kalian bahwa tubuh-tubuh kalian itu begitu menderita?
Tahukah kalian bahwa jiwa kalian itu lebih menderita...
Hai, sambil tersenyum kita menyentuh ramadhan tahun ini.
Tak tahu kita bisa menuntaskannya atau tidak.
Andai di sini seperti di Mesir
Apa yang akan Kau lakukan?
Written by ElangSakti
1 Ramadhan 1434 H ~ Sekedar Pembuka
Bahasan: Tak semua mulut sama. Bukan sekedar isolasi, itu seperti isotop pada semua materi Lirikan membisik dari mata Para pejuang tercenung Par...
Published at Selasa, 09 Juli 2013, Updated at Selasa, 09 Juli 2013
Reviewed by dr. on
Rating: 4.7
1 Ramadhan 1434 H ~ Sekedar Pembuka
Bahasan: Tak semua mulut sama. Bukan sekedar isolasi, itu seperti isotop pada semua materi Lirikan membisik dari mata Para pejuang tercenung Par...
Published at Selasa, 09 Juli 2013, Updated at Selasa, 09 Juli 2013
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
Regards,
Haripinter
Ancur For Maintenace!
Bismillah... Bagi pengunjung elangsakti.com, mohon maaf jika ada kerusakan konten atau style di sana-sini. Sebab elangsakti.com sedang proses migrasi. Semoga perbaikan ini tidak memakan waktu lama.
Regards,
Haripinter
Written by ElangSakti
Ancur For Maintenace!
Bahasan: Bismillah... Bagi pengunjung elangsakti.com, mohon maaf jika ada kerusakan konten atau style di sana-sini. Sebab elangsakti.com sedang pro...
Published at Minggu, 07 Juli 2013, Updated at Minggu, 07 Juli 2013
Reviewed by dr. on
Rating: 4.7
Ancur For Maintenace!
Bahasan: Bismillah... Bagi pengunjung elangsakti.com, mohon maaf jika ada kerusakan konten atau style di sana-sini. Sebab elangsakti.com sedang pro...
Published at Minggu, 07 Juli 2013, Updated at Minggu, 07 Juli 2013
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
Nah, cara di atas kayaknya lebih enak dan masuk di kepala saya, hehe.
Road to ECC (1) : Perkalian Pada Algoritma Elliptic Curve Cryptography
ElangSakti
ECC
,
Elliptic Curve Cryptography
,
Informatika
,
kurva eliptik
,
Piece Of Paper
Tidak ada komentar
Kurva-kurva eliptik ternyata perhitungannya bisa dijadikan algoritma enkripsi pesan dan tandatangan digital. Awalnya teori tersebut diajukan oleh si Fermat (Fermat's Last Theorem) sebagai ilmu sains hitunga matematika saja. Tapi belakangan (1985) malah diajukan sebagai teori untuk keamanan komputer oleh Victor Miller dan Neil Koblitz yang dikasi nama Elliptic Curve Public Key Cryptosystems (ECKP).
Dalam prosesnya, algoritma tersebut memiliki beberapa aturan untuk penggandaan kurva, yaitu aturan penjumlahan, perkalian, inversi, penggandaan, dan beberapa aturan untuk menjadikan kurva tersebut bisa diduplikasi. Pada artikel ini saya hanya bahas tentang cara menghitung aturan perkalian saja. Aturan tersebut berlaku untuk perkalian titik, jadi bukan perkalian matriks biasa.
Dalam referensi, aturan perkalian bisa dilakukan dengan cara berikut:
Misal point P = [x,y] dikalikan dengan 7, maka caranya yaitu menerapkan aturan penjumlahan. Nah, aturan penjumlahan nanti saja kita bahas. Perkalian tersebut buakn perkalian seperti 7P != 7*[x,y], bukan, yang benar adalah 7P = P+P+P+P+P+P+P = 2P+2P+2P+P = 2(2P)+2P+P. Nah, 2P itu mengikuti aturan penjumlahan. Untuk visualisasi proses perkaliannya adalah sebagai berikut:
P P P P P P P |__| |__| |__| | 2P 2P 2P | |______|____|____| 2(2P) + 2P + P
Di berbagai sumber, cara menghitungnya ada beberapa metode, diantaranya menggunakan algortima booth (kalo tidak salah ingat). Algoritma tersebut merupakan algoritma perkalian biner. Itu dibuatnya dulu, sebelum ada OOP kayaknya. Ada juga algoritma Addition-Substractin Algortihm dan Repeat Doubling Algorithm, semuanya bikin saya bingung. Daripada bingung, saya bikin prosesnya satu-satu kemudian mikir.
Nah, akhirnya dapet juga cara gampangnya. Kayaknya lebih simple dan lebih masuk di akal saya pribadi. Daripada make algoritma orang lain, kalo kita bisa bikin, kenapa ndak bikin saja sendiri? Hehhe.. Berikut contoh kode dalam java.
static int[] kali(int p, int a, int b, int k, int[] xy){
int n = k%2;
k = (int)Math.floor(k/2);
if(k>1){
R = kali(p, a, b, k, R);
}
if(n==1){
R = jumlah(p,a,b,R[0],R[1],xy[0],xy[1]);
}
return R;
}
Nah, cara di atas kayaknya lebih enak dan masuk di kepala saya, hehe.
Written by ElangSakti
Road to ECC (1) : Perkalian Pada Algoritma Elliptic Curve Cryptography
Bahasan: Kurva-kurva eliptik ternyata perhitungannya bisa dijadikan algoritma enkripsi pesan dan tandatangan digital. Awalnya teori tersebut diajuk...
Published at Selasa, 02 Juli 2013, Updated at Selasa, 02 Juli 2013
Reviewed by dr. on
Rating: 4.7
Road to ECC (1) : Perkalian Pada Algoritma Elliptic Curve Cryptography
Bahasan: Kurva-kurva eliptik ternyata perhitungannya bisa dijadikan algoritma enkripsi pesan dan tandatangan digital. Awalnya teori tersebut diajuk...
Published at Selasa, 02 Juli 2013, Updated at Selasa, 02 Juli 2013
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
SOLUSI
Nah, begitulah kira-kira penjelasan singkatnya. :)
Solusi Peringatan "Notice: Undefined offset: N" pada PHP
Pesan "Notice" merupakan pesan peringatan (Warning) yang muncul akibat adanya bug pada script php yang kita buat. Walaupun pesan tersebut muncul, script php tetap akan berjalan sebagaimana mestinya. Jadi pesan tersebut merupakan peringatan bahwa kita dianjurkan untuk menjadi programmer yang baik untuk menerapkan sintaks dan logika bahasa pemrograman sesuai aturan. :)
Pesan "Notice: Undefined offset: N", dimana N adalah angka, merupakan pesan peringatan yang biasa muncul ketika kita bermain-main dengan data array. Pesan tersebut muncul ketika posisi array yang kita tunjuk tidak ada isinya atau belum diinisialisasi. Perhatikan contoh berikut :
//script 1
$a=array();
echo $a[1];
//output
Notice: Undefined offset: 1 in Command line code on line 2
//script 2
$a=array('a','b');
echo $a[1];
//output
b
//script 3
$a=array('a','b');
echo $a[2];
//output
Notice: Undefined offset: 2 in Command line code on line 1
Dari ketiga contoh script di atas, peringatan Notice akan muncul ketika meminta nilai dari posisi array yang belum ada isinya. Misal contoh pertama, kita hanya membuat variabel array 'a' tapi belum diisi, kemudian kita minta data pada posisi ke 1 untuk ditampilkan, maka akan muncul peringatan. Kemudian pada script yang ketiga, kita hanya punya 2 data yaitu pada posisi ke 0 dan 1 ('a' dan 'b'), akan tetapi kita minta posisi ke 2, maka juga akan muncul error.
SOLUSI
Solusi untuk menghilangkan peringatan ini ada dua cara, pertama kita nonaktifkan saja pesan peringatannya. Walaupun ada peringatan, toh script kita tetap bisa jalan dengan normal. Cara yang kedua kita perbaiki scriptnya, caranya adalah memeriksa terlebih dahulu apakah posisi array yang kita minta sudah ada atau sudah diset apa belum, misal dengan perintah if(isset(array[posisi])).
Cara yang pertama, kita modifikasi file php.ini. File ini merupakan konfigurasi untuk php, biasanya jadi satu di dalam folder instalasi php. Di dalam file tersebut ada tulisan "error_reporting" tanpa ada tanda titik koma ';' di depannya. Kemudian di belakang tulisan tersebut biasanya ada tulisan "E_ALL", dll. Untuk menonaktigkan pesan ini kita ganti baris tersebut dengan
error_reporting = E_ALL & ~E_NOTICE
Penting!! Jangan lupa setelah menyimpan perubahan file php.ini tersebut kita harus merestart Web Servernya (misal Apache). Jika web server belum di restart, perubahan tersebut tidak akan berefek.
Cara yang kedua, menyisipkan script isset() untuk memeriksa apakah data yang kita minta dari array ada isinya apa belum. Berikut contoh modifikasi dari script di atas.
//script 1
$a=array();
if(isset($a[1])) echo $a[1];
//output
(kosong)
//script 2
$a=array('a','b');
echo $a[1];
//output
b
//script 3
$a=array('a','b');
if(isset($a[2])) echo $a[2];
//output
(kosong)
Nah, begitulah kira-kira penjelasan singkatnya. :)
Karena tulisan ini dipicu oleh pertanyaan mas 'adpermana' pada artikel Implementasi KMP di PHP, maka modifikasi script kmp.php yang sudah tidak muncul peringatan "Notice" bisa dicek di Modifikasi Core Algoritma Knuth-Morris-Pratt .
Written by ElangSakti
Solusi Peringatan "Notice: Undefined offset: N" pada PHP
Bahasan: Pesan "Notice" merupakan pesan peringatan (Warning) yang muncul akibat adanya bug pada script php yang kita buat. Walaupun pesan...
Published at Sabtu, 13 April 2013, Updated at Sabtu, 13 April 2013
Reviewed by dr. on
Rating: 4.7
Solusi Peringatan "Notice: Undefined offset: N" pada PHP
Bahasan: Pesan "Notice" merupakan pesan peringatan (Warning) yang muncul akibat adanya bug pada script php yang kita buat. Walaupun pesan...
Published at Sabtu, 13 April 2013, Updated at Sabtu, 13 April 2013
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
Modifikasi Core Algoritma Knuth-Morris-Pratt pada kmp.php
ElangSakti
Algoritma KMP
,
Informatika
,
Knuth-Morris-Pratt
,
PHP
,
Scrap of Scripts
Tidak ada komentar
Solusi untuk pertanyaan mas adpermana, ada penambahan script isset() pada baris 27, 42, dan 65. Silakan dicek lagi, jika ada yang kurang pas, monggo kita diskusi lagi :).
<?php
// Knuth-Morris-Pratt Algorithm
// Created March 31, 2010 - 07:10:33 WIB
// Modified (again) April 13, 2013 - 06:43:54 WIB
class KMP{
/* pencarian KMP
* input :
* $p = (string) pattern;
* $t = (string) teks;
* output :
* $hasil = (array int) posisi string pada teks
*/
function KMPSearch($p,$t){
$hasil = array();
// pattern dan text dijadikan array
$pattern = str_split($p);
$text = str_split($t);
// hitung tabel lompatan dengan preKMP()
$lompat = $this->preKMP($pattern);
//print_r($lompat);
// perhitungan KMP
$i = $j = 0;
$num=0;
while($j<count($text)){
if(isset($pattern[$i]) && isset($lompat[$i])){
while($i>-1 && $pattern[$i]!=$text[$j]){
// jika tidak cocok, maka lompat sesuai tabel lompatan
$i = $lompat[$i];
}
}else{
$i = 0;
}
$i++;
$j++;
if($i>=count($pattern)){
// jika cocok, tentukan posisi string yang cocok
// kemudian lompat ke string berikutnya
$hasil[$num++]=$j-count($pattern);
if(isset($lompat[$i])){
$i = $lompat[$i];
}
}
}
return $hasil;
}
/* menetukan tabel lompatan dengan preKMP
* input :
* $pattern = (string) pattern
* output :
* $lompat = (array int) untuk jumlah lompatan
*/
function preKMP($pattern){
$i = 0;
$j = $lompat[0] = -1;
while($i<count($pattern)){
while($j>-1 && $pattern[$i]!=$pattern[$j]){
$j = $lompat[$j];
}
$i++;
$j++;
if(isset($pattern[$i])&&isset($pattern[$j])){
if($pattern[$i]==$pattern[$j]){
$lompat[$i]=$lompat[$j];
}else{
$lompat[$i]=$j;
}
}
}
return $lompat;
}
/* replace string
* input :
* $str1 = (array string) string yang akan diganti dengan str2
* $str2 = (array string) string yang akan mengganti str1
* $text = (string) text yang akan dicari
* output :
* $t = teks yang sudah difilter
*/
function KMPReplace($str1,$str2,$text){
$num = 0;
$location = $this->KMPSearch($str1,$text);
$t = '';
$n = 0; $nn = 0;
foreach($location as $in){
$t .= substr($text,$n+$nn,$in-$n-$nn).$str2;
$nn = strlen($str1);
$n = $in;
}
$t .= substr($text,$n+$nn);
return $t;
}
}
?>
Written by ElangSakti
Modifikasi Core Algoritma Knuth-Morris-Pratt pada kmp.php
Bahasan: Solusi untuk pertanyaan mas adpermana, ada penambahan script isset() pada baris 27, 42, dan 65. Silakan dicek lagi, jika ada yang kurang p...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7
Modifikasi Core Algoritma Knuth-Morris-Pratt pada kmp.php
Bahasan: Solusi untuk pertanyaan mas adpermana, ada penambahan script isset() pada baris 27, 42, dan 65. Silakan dicek lagi, jika ada yang kurang p...
Published at , Updated at
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
Icon Teknik biasa :
Icon Teknik CSS Sprites :
Berikut contoh gambar icon dalam bentuk array:
Hasil tampilan dari script di atas :
Semoga Bermanfaat :)
Short Tutorial : CSS Sprites untuk Mempercepat Loading Web
ElangSakti
CSS Sprites
,
HTML/CSS
,
Informatika
,
Loading Page
,
Meta Tag Description
,
Scrap of Scripts
3 komentar
Programmer web tentu wajib menguasai CSS sebab CSS merupakan inti dari style website seperti pewarnaan dan beberapa animasi minor. Tapi css bukan segalanya, tapi CSS bisa melakukan sesuatu yang tidak bisa dilakukan oleh HTML. Lalu apa bedanya CSS (biasa) dengan CSS Sprites? Tidak ada. Kita hanya menggunakan fasilitas css untuk menampilkan bagian tertentu dari gambar. Jadi, CSS Sprites sekedar teknik pengembangan.
CSS Sprites merupakan salah satu teknik CSS dalam mempercepat loading halaman web. Umumnya CSS Sprites digunakan pada icon-icon atau button yang beragam. Biasanya, setiap icon adalah satu gambar. Maka jika ada 50 icon, berarti ada 50 gambar. Dengan demikian, akan ada 50 link yang harus dirambah oleh browser untuk menampilkan ke-50 gambar tersebut. Jika menggunakan CSS Sprites, kita hanya butuh satu gambar yang berisi banyak icon sehingga loadingnya lebih cepat. Misalkan seperti berikut :
Icon Teknik biasa :
http://www.elangsakti.com/img/icon1.png http://www.elangsakti.com/img/icon2.png http://www.elangsakti.com/img/icon3.png http://www.elangsakti.com/img/icon4.png ..... http://www.elangsakti.com/img/icon49.png http://www.elangsakti.com/img/icon50.png
Icon Teknik CSS Sprites :
http://www.elangsakti.com/img/icons.png
Jika untuk menampilkan satu icon butuh waktu 0.5 detik, maka untuk menampilkan 50 icon butuh 25 detik atau dalam hal ini bandwidth juga berpengaruh. Jadi CSS Sprites ini solusi untuk pengguna dengan koneksi lemah. :)
Untuk mengecek seberapa cepat loading web/blog, kita bisa ngecek lewat Google Insight (https://developers.google.com/speed/pagespeed/insights). Dengan tool tersebut, kita akan tahu apa yang membuat loading web kita jadi berat yang dikategorikan dalam High, Medium, dan Low Priority. Bisa karena gambar background, gambar button, css, external link, dll. Salah satu solusi yang direkomendasikan adalah CSS Sprites. Ini hal yang sangat menarik (tentu karena tulisan ini sedang membahas itu :P ).
Oke, kita mulai belajar memnggunakan CSS Sprites. Untuk membuat CSS Sprites, kita butuh dua langkah, pertama membuat icon-icon dalam satu buah gambar. Lebih mudah jika ukuran gambarnya seragam. Kedua, menampilkan gambar tersebut sebagai background sesuai dengan posisi pixelnya.
Berikut contoh gambar icon dalam bentuk array:
Icon yang dibuat adalah 20x20 pixel dalam array 3x3. Untuk menentukan posisi gambar pada array yaitu menggunakan gambar yang sebelah kanan. Semakin ke kanan posisi gambar, nilai pixelnya semakin negatif. Dan semakin ke bawah posisi gambar nilai pixelnya juga semakin negatif. Untuk menggambarnya dalam bentuk html, kita contohkan menggunakan 'div' berukurang 20x20 pixel sesuai dengan ukuran icon yang sudah dibuat. Berikut script html sekaligus dengan CSS-nya.
<html>
<head>
<title>Belajar CSS Sprites</title>
<style>
.icon{
background-image: url('icons.jpg');
width: 20px;
height: 20px;
float: left;
margin-right: 5px;
}
.senyum{
background-position:-40px 0px;
}
.damai{
background-position:0px -20px;
}
.bengong{
background-position:-40px -40px;
}
</style>
</head>
<body>
<div>
<div class="icon"></div>Sedih
</div>
<div>
<div class="icon senyum"></div>Senyum
</div>
<div>
<div class="icon damai"></div>Damai
</div>
<div>
<div class="icon bengong"></div>Bengong
</div>
</body>
</html>
Hasil tampilan dari script di atas :
Semoga Bermanfaat :)
Written by ElangSakti
Short Tutorial : CSS Sprites untuk Mempercepat Loading Web
Bahasan: Programmer web tentu wajib menguasai CSS sebab CSS merupakan inti dari style website seperti pewarnaan dan beberapa animasi minor. Tapi cs...
Published at Rabu, 10 April 2013, Updated at Rabu, 10 April 2013
Reviewed by dr. on
Rating: 4.7
Short Tutorial : CSS Sprites untuk Mempercepat Loading Web
Bahasan: Programmer web tentu wajib menguasai CSS sebab CSS merupakan inti dari style website seperti pewarnaan dan beberapa animasi minor. Tapi cs...
Published at Rabu, 10 April 2013, Updated at Rabu, 10 April 2013
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
Pengertian Magnet
Teori Kemagnetan
Sufat-Sifat Magnet :
Implementasi Magnet dalam Kehidupan Sehari-hari :
Magnet : Teori Tentang Gejala Kemagnetan, Definisi, Sifat, dan Implementasinya
ElangSakti
arus listrik
,
definisi magnet
,
Electronics
,
Elektronika
,
fungsi magnet
,
kemagnetan
,
Magnet
,
pengertian magnet
2 komentar
Kenapa kompas bisa menetukan utara dan selatan? Tahu kenapa mikrofon bisa berbunyi? jawabnya adalah karena adanya magnet pada perangkat tersebut. Karena magnet dan listrik merupakan komponen penting dalam mekatronika, maka kali ini kita akan mengulas tentang magnet, yaitu bagaimana sebenarnya magnet, apa definisinya, bagaimana sifatnya, dan contoh implementasinya dalam kehidupan sehari-hari.
Pengertian Magnet
Kata magnet berasal dari bahasa Yunani yaitu magnes atau magnetis lithos yang berarti batu dari magnesia. Magnet merupakan benda yang dapat menarik benda-benda lain di sekitarnya seperti besi, baja, dan kobalt. Sifat kemagnetan suatu bahan ditentukan oleh spin elektron dan gerak elektron mengelilingi inti.
Spin elektron membentuk momen magnetik yang merupakan magnet-magnet kecil (magnet elementer). Spin elektron tersebut berpasangan dan tidak menimbulkan sifat kemagnetan, karena arah spinnya berlawanan sehingga saling meniadakan. Spin elektron yang tidak berpasangan bersifat sebagai magnet kecil. Sebuah magnet merupakan gabungan dari spin elektron (magnet-magnet kecil) yang arah spin (utara-selatan)-nya sama.
Teori Kemagnetan
Untuk menjelaskan tentang magnet, Weber telah mengmukakan teorinya yang disebut dengan hipotesis Weber yang isinya sebagai berikut :
- Bahan magnetik terdiri atas atom-atom magnetik yang disebut magnet elementer. Setiap magnet memiliki kutub utara dan kutub selatan. Ketka magnet dipotong, maka potongan-potongan tersebut akan menjadi magnet baru yang juga mempunyai kutub utara dan kutub selatan. Jika pemotongan terus dilakukan hingga sekecil-kecilnya, maka akan terbentuk atom magnet. Atom magnet tersebut pun akan memiliki kutub utara dan kutub selatan.
- Pada bahan yang belum menjadi magnet, maka magnet elementernya belum tersusun dengan teratur. Sehingga kutub utara sebuah magnet elementer terhubung dengan kutub selatan pada magnet elementer yang lain. Dengan demikian, magnet-magnet elementer pada bahan tersebut terangkai seperti lingkaran.
- Pada bahan yang sudah menjadi magnet, magnet elementer sudah tersusun dalam barisan yang teratur dengan pola lurus. Kutub utara bertemu dengan kutub selatan dengan berurutan.
- Magnet elementer besi mudah diarahkan sehingga besi lebih mudah dijadikan magnet. Akan tetapi sifat kemagnetan besi mudah hilang. Sedangkan magnet elemeter baja sangat sukar diarahkan, akan tetapi ketika sudah bisa diarahkan, sifat kemagnetannya akan bertahan lama.
Sufat-Sifat Magnet :
- Memiliki dua kutub, yaitu kutub utara dan kutub selatan. Kutub utara adalah kutub magnet yang selalu mengarah ke kutub utara bumi. Kutub selatan adalah kutub magnet yang mengarah ke selatan bumi.
- Kutub yang sama akan tolak-menolak. Kutub yang tidak sama akan tarik-menarik.
Implementasi Magnet dalam Kehidupan Sehari-hari :
- Jarum kompas adalah dari magnet permanen.
- Pintu kulkas memiliki magnet permanen agar selalu tertutup dan kedap udara, dengan itu menghindari pemborosan energi.
- TV dan monitor komputer menggunakan elektromagnetik untuk menghasilkan gambar.
- Mikrofon dan speaker menggunakan kombinasi magnet permanen dan elektromagnetik.
- Media rekaman magnetik: Tape VHS biasa mengandung golongan tape bermagnet. Informasi yang memproduksi video dan suara dikodekan pada lapisan bermagnet pada tape.
- Kaset audio kompak mengandung magnet untuk menghasilkan audio.
- Kartu kredit, kartu debit, dan kartu ATM: Semua kartu ini memiliki jalur bermagnet pada sisi-sisnya. Jalur ini mengandung informasi yang dibutuhkan untuk menghubungi institusi keuangan pribadi dan menghubungkan dengan rekening bank.
- Motor listrik dan generator: Motor listrik (seperti speaker) tergantung pada kombinasi eletromagnet dan magnet permanen, dan seperti speaker, mengganti energi listrik menjadi energi mekanis. Generator bertindak merubah energi mekanis ke energi listrik.
- Transformer / trafo : Transformer merupakan perangkat yang mengkonversi energi listrik antara dua perangkat yang terpisah mengngunakan listrik melalui konektor magnet.
Demikianlah sekilas tentang teori kemagnetan, berikutnya kita akan bahas lebih luas lagi tentang magnet dan implementasinya. Doakan bisa menyempatkan waktu untuk nulis. :)
Written by ElangSakti
Magnet : Teori Tentang Gejala Kemagnetan, Definisi, Sifat, dan Implementasinya
Bahasan: Kenapa kompas bisa menetukan utara dan selatan? Tahu kenapa mikrofon bisa berbunyi? jawabnya adalah karena adanya magnet pada perangkat te...
Published at Rabu, 03 April 2013, Updated at Rabu, 03 April 2013
Reviewed by dr. on
Rating: 4.7
Magnet : Teori Tentang Gejala Kemagnetan, Definisi, Sifat, dan Implementasinya
Bahasan: Kenapa kompas bisa menetukan utara dan selatan? Tahu kenapa mikrofon bisa berbunyi? jawabnya adalah karena adanya magnet pada perangkat te...
Published at Rabu, 03 April 2013, Updated at Rabu, 03 April 2013
Reviewed by dr. on
Rating: 4.7
# Hack Your Skills! to be Professional Mechatronics
Daftar Bahasan
1. Pengertian dan Teori Dasar Listrik
2. Manfaat Listrik
3. Sejarah Penemuan Listrik
* Versi Pertama (Zaman Mesir Kuno)
* Versi Kedua (Thales)
* Versi Ketiga (Faraday)
Pengertian dan Teori Dasar Listrik
Manfaat Listrik
Sejarah Penemuan Listrik
Versi Pertama (Zaman Mesir Kuno)
Versi Kedua (Thales)
Versi Ketiga (Faraday)
Teori Dasar, Pengertian, Manfaat, dan Sejarah Penemuan Listrik
ElangSakti
arus listrik
,
Electronics
,
Elektronika
,
Know How
,
manfaat listrik
,
penemu listrik
,
sejarah listrik
,
tegangan listrik
6 komentar
Sudah tahu apa itu Listrik dan bagaimana sejarahnya? Kadang penulis sejarah bisa bohong Lho... :). Baik, kali ini kita akan membahas tentang hal penting tentang listrik, pengertian, manfaat, dan sejarahnya ditemukannya. Semoga menjadi referensi buat pembaca semua. :)
Daftar Bahasan
1. Pengertian dan Teori Dasar Listrik
2. Manfaat Listrik
3. Sejarah Penemuan Listrik
* Versi Pertama (Zaman Mesir Kuno)
* Versi Kedua (Thales)
* Versi Ketiga (Faraday)
Pengertian dan Teori Dasar Listrik
Menurut Wikipedia, Listrik adalah kondisi dari partikel subatomik tertentu, seperti elektron dan proton, yang menyebabkan penarikan dan penolakan gaya di antaranya. Atau menurut pengertian lainnya, Listrik adalah sumber energi yang disalurkan melalui kabel. Listrik memungkinkan terjadinya banyak fenomena fisika yang dikenal luas, seperti petir, medan listrik, dan arus listrik. Listrik digunakan dengan luas di dalam aplikasi-aplikasi industri seperti elektronik dan tenaga listrik.
Listrik memberi kenaikan terhadap empat gaya dasar alami (gaya gravitasi, gaya elektromagnetisme, gaya nuklir lemah dan gaya nuklir kuat). "Jumlah listrik" juga dikenal dengan istilah "Muatan Listrik" atau "Jumlah Muatan". Ada dua jenis muatan listrik: positif dan negatif. Melalui eksperimen, muatan-sejenis saling menolak dan muatan-lawan jenis saling menarik satu sama lain.
Jika listrik mengalir melalui bahan khusus, misalnya dari wolfram dan tungsten, cahaya pijar akan dipancarkan oleh logam itu. Bahan-bahan seperti itu dipakai dalam bola lampu (bulblamp atau bohlam). Setiap kali listrik mengalir melalui bahan yang mempunyai hambatan, maka akan dilepaskan panas. Semakin besar arus listrik, maka panas yang timbul akan berlipat. Sifat ini dipakai pada elemen setrika dan kompor listrik.
Aliran listrik mengalir dari saluran positif ke saluran negatif. Dengan listrik arus searah jika kita memegang hanya kabel positif (tapi tidak memegang kabel negatif), listrik tidak akan mengalir ke tubuh kita (kita tidak terkena strum). Demikian pula jika kita hanya memegang saluran negatif.
Sedangkan pada listrik arus bolak-balik, listrik juga bisa mengalir ke bumi (atau lantai rumah). Hal ini disebabkan oleh sistem perlistrikan yang menggunakan bumi sebagai acuan tegangan netral (ground). Karena itu jika kita memegang sumber listrik dan kaki kita menginjak bumi atau tangan kita menyentuh dinding, membuat listrik mengalir dari tangan ke kaki sehingga kita akan mengalami kejutan listrik ("terkena strum").
Daya listrik dapat disimpan, misalnya pada sebuah aki atau batere. Listrik yang kecil, misalnya yang tersimpan dalam batere, tidak akan memberi efek setrum pada tubuh. Pada aki mobil yang besar, biasanya ada sedikit efek setrum, meskipun tidak terlalu besar dan berbahaya. Listrik mengalir dari kutub positif batere/aki ke kutub negatif. Untuk informasi Arus Listrik dan "Setrum", silakan baca Konsep dan Pengertian Arus dan Tegangan pada Rangkaian Listrik.
Manfaat Listrik
Listrik tidak bisa dipisahkan dari manusia. Sebagian besar kegiatan manusia kini bergantung pada listrik, baik yang sifatnya primer maupun sekunder. Listrik juga sangat penting dalam kehidupan pribadi, sosial, pendidikan, perdaganan, dan lini-lini kehidupan lainnya. Kebutuhan Primer: Pompa air listrik, handphone, alat penerangan rumah, penanak nasi listrik, setrika listrik, dll. Kebutuhan Sekunder: Komputer, Televisi, peralatan media pendidikan, dll.
Sejarah Penemuan Listrik
Sejarah tentang penemu listrik ada beberapa versi. Versi yang pertama, listrik sudah ditemukan pada zaman mesir kuno. Versi yang kedua, Listrik ditemukan oleh Thales dari Melitus. Dan Versi yang ketiga, Listrik ditemukan oleh Faraday.
Versi Pertama (Zaman Mesir Kuno)
Teori bahwa listrik dikenal dan digunakan dalam zaman kejayaan Eropa ternyata keliru, orang Mesir lah yang menemukannya tetapi orang eropa hanya mempopulerkan. Kunci untuk seluruh teori ini terletak beberapa ratus kilometer timur Mesir, di Irak. Ada beberapa pot aneh yang ditemukan. Beberapa kedap air berisi silinder tembaga, dilem ke dalam lubang dengan aspal. Di tengah silinder itu ada sebuah batang besi. Para penggali menemukan pot pertama pada tahun 1936 yakin: ini adalah elemen galvanik, baterai yang primitif. Rekonstruksi memang menunjukkan bahwa adalah mungkin untuk menciptakan listrik dengan itu.
Fakta kembali ditemukan dalam kuil di Dendera, beberapa puluhan kilometer utara Luxor, beberapa ahli menemukan cahaya. Seorang insinyur listrik Norwegia melihat objek ditampilkan pada relief di bagian atas halaman ini bisa bekerja sebagai lampu. Seorang rekan Austria mampu membangun sebuah model kerja, dan dua penulis terkenal di AAS, Peter Krassa dan Rainer Habeck, bahkan bisa bekerja di luar teori yang nyata saat ini.
Setelah dua potong bukti telah dieliminasi sekarang kita harus melihat lebih dekat pada obyek itu sendiri. Petunjuk “teknis”, uraian berikut menjelaskan ilmu pengetahuan Mesir tentang listrik. Buku ” Lights of the Pharaohs ” oleh penulis Austria Krassa & Habeck mereka menulis ringkasan tesis yang paling populer. Setelah membaca buku yang awam mungkin bertanya, mengapa Mesir Kuno membiarkan seperti sampah tentang sejarah Mesir, karena tampaknya sejarah Mesir benar-benar berbeda. Sebagian besar dari sejarah Mesir menurut penulis mengungkap penemuan bebas.
Lampu Listrik Versi Mesir Kuno
Keterangan Gambar :
- Priest
- ionised fumes
- electric discharge (snake)
- Lamp socket (Lotos)
- Cable (Lotos stem)
- Air god
- Isolator (Djed-Pillar)
- Light bringer Thot with knifes
- Symbol for “current”
- nverse polarity (Haarpolarität +)
- Energy storage (electrostatic Generator?)
Atas dasar gambar inilah insinyur W. Garn membangun sebuah perangkat kerja yang benar-benar memberi kejelasan. Dalam buku Krassa/Habeck dia memberi sketsa (berdasarkan gambar di atas) dan deskripsi berikut:
“If we evacuate a glass bulb with two metal parts reaching into it (B), (C), we can see a discharge at much lower levels, depending on the size of the glass balloon (D). At a pressure of about 40 t (tonnes) (40 mm of mercury) a snakelike light filament meanders from one metal part to the other (E). If we evacuate further, the light filament grows wider until it fills the whole glass balloon. This is exactly what we see in on the pictures in the subterranean chambers of the Hathor sanctuary.”
Ini adalah dasar dari interpretasi teknis. Kedengarannya logis, bisa dipahami. Anda mungkin telah memperhatikan bahwa saya menekankan kata “two” di komentar Garns. Mengapa? Karena “dua” adalah kata kunci. Secara “normal” lampu membutuhan dua elektroda untuk menghasilkan cahaya, bola lampu sederhana atau Garn-konstruksi.
Versi Kedua (Thales)
Sejarah awal ditemukannya listrik adalah oleh seorang cendikiawan Yunani yang bernama Thales, yang mengemungkakan fenomena batu ambar yang bila digosok - gosokkan akan dapat menarik bulu sebagai fenomena listrik. Kemudian setelah bertahun - tahun semenjak ide Thales dikemukakan, baru kemudian muncul lagi penapat - pendapat serta teori -teori baru mengenai listrik seperti yang diteliti dan dikemukakan oleh William Gilbert, Joseph priestley, Charles De Coulomb, AmpereMichael Farraday, Oersted, dll.
Dalam hal kelistrikan, memang banyak tokoh yang telah berpartisipasi. Sebut saja de Coulomb, Alesandro Volta, Hans C. Cersted, dan Andre Marie Ampere. Mereka ini dianggap "jago-jago" terbaik di bidang listrik. Namun, dari semua itu, orang tak boleh melupakan satu nama yang sangat berjasa dan dikenal sebagai perintis dalam meneliti tentang listrik dan magnet. Dialah Michael Faraday, seorang ilmuwan asal Inggris.
Versi Ketiga (Faraday)
Michael Faraday adalah ilmuwan Inggris yang mendapat julukan “Bapak Listrik”, karena berkat usahanya listrik menjadi teknologi yang banyak gunanya. Faraday lahir 22 September 1791 di Newington, Inggris. Ia mempelajari berbagai bidang ilmu pengetahuan, termasuk elektromagnetisme dan elektrokimia. Dia juga menemukan alat yang nantinya menjadi pembakar Bunsen, yang digunakan hampir di seluruh laboratorium sains sebagai sumber panas yang praktis.
Untuk membantu ekonomi keluarga, pada usia 14 tahun Faraday bekerja sebagai penjilid buku sekaligus penjual buku. Di sela-sela pekerjaannya ia manfaatkan untuk membaca berbagai jenis buku, terutama ilmu pengetahuan alam, fisika, dan kimia.
Ketika umurnya menginjak 20 tahun, dia mengikuti ceramah-ceramah yang diberikan oleh ilmuwan Inggris kenamaan. Salah satunya adalah Sir Humphry Davy, seorang ahli kimia yang juga kepala laboratorium Royal Institution. Selama mengikuti ceramah, Faraday membuat catatan dengan teliti dan menyalinnya kembali dengan rapi apa yang didengarnya. Kemudian, berkas catatan itu ia kirimkan kepada Humphry Davy disertai lamaran kerja. Ternyata sang dosen tertarik dan mengangkat Faraday sebagai asistennya di Laboratorium Universitas terkenal di London. Saat itu dia berusia 21 tahun.
Di bawah bimbingan Davy, Faraday menunjukkan kemajuan pesat. Awalnya, ia hanya bekerja sebagai seorang pencuci botol. Tetapi, berkat kegigihannya dalam belajar, hanya dalam waktu relatif singkat, ia dapat membuat penemuan-penemuan baru atas hasil kreasinya sendiri, yaitu menemukan dua senyawa klorokarbon dan berhasil mencairkan gas klorin dan beberapa gas lainnya. Berkat kepandainnya pula, Faraday dapat berhubungan dengan para ahli ternama, seperti Andre Marie Ampere. Di samping itu, ia juga mendapat kesempatan berkeliling Eropa bersama Davy. Pada kesempatan itu, Faraday mulai membangun pengetahuannya yang praktis dan teoritis.
Davy memiliki pengaruh besar dalam pemikiran Faraday dan telah mengantarkan Faraday pada penemuan-penemuannya. Penemuan Faraday pertama yang penting di bidang listrik terjadi tahun 1821. Dua tahun sebelumnya Oersted telah menemukan bahwa jarum magnet kompas biasa dapat beringsut jika arus listrik dialirkan dalam kawat yang tidak berjauhan. Dari temuan ini, Faraday berkesimpulan, jika magnet diketatkan, yang bergerak justru kawatnya. Bekerja atas dasar dugaan ini, dia berhasil membuat suatu skema yang jelas di mana kawat akan terus-menerus berputar berdekatan dengan magnet sepanjang arus listrik dialirkan ke kawat.
Sesungguhnya, dalam hal ini Faraday sudah menemukan motor listrik pertama, suatu skema pertama penggunaan arus listrik untuk membuat sesuatu benda bergerak. Betapa pun primitifnya, penemuan Faraday ini merupakan "nenek moyang" dari semua motor listrik yang digunakan dunia sekarang ini. Sejak penemuannya yang pertama pada tahun 1821, Michael Faraday si ilmuwan autodidak ini namanya mulai terkenal. Hasil penemuannya dianggap sebagai pembuka jalan dalam bidang kelistrikan.
Written by ElangSakti
Teori Dasar, Pengertian, Manfaat, dan Sejarah Penemuan Listrik
Bahasan: Sudah tahu apa itu Listrik dan bagaimana sejarahnya? Kadang penulis sejarah bisa bohong Lho... :). Baik, kali ini kita akan membahas te...
Published at Selasa, 26 Maret 2013, Updated at Selasa, 26 Maret 2013
Reviewed by dr. on
Rating: 4.7
Teori Dasar, Pengertian, Manfaat, dan Sejarah Penemuan Listrik
Bahasan: Sudah tahu apa itu Listrik dan bagaimana sejarahnya? Kadang penulis sejarah bisa bohong Lho... :). Baik, kali ini kita akan membahas te...
Published at Selasa, 26 Maret 2013, Updated at Selasa, 26 Maret 2013
Reviewed by dr. on
Rating: 4.7
Langganan:
Postingan
(
Atom
)









1 komentar :
Posting Komentar