Profil

Kamis, 13 Februari 2014

Sekilas Tentang Mikrokontroler

Apa itu Mikrokontroler ?

Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah chip. Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM, memori program, atau keduanya), dan perlengkapan input output.
Dengan kata lain, mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca dan menulis data. Sekedar contoh, bayangkan diri Anda saat mulai belajar membaca dan menulis, ketika Anda sudah bisa melakukan hal itu Anda bisa membaca tulisan apapun baik buku, cerpen, artikel dan sebagainya, dan Andapun bisa pula menulis hal-hal sebaliknya. Begitu pula jika Anda sudah mahir membaca dan menulis data maka Anda dapat membuat program untuk membuat suatu sistem pengaturan otomatik menggunakan mikrokontroler sesuai keinginan Anda. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini.
Mikrokonktroler digunakan dalam produk dan alat yang dikendalikan secara automatis, seperti sistem kontrol mesin, remote controls, mesin kantor, peralatan rumah tangga, alat berat, dan mainan. Dengan mengurangi ukuran, biaya, dan konsumsi tenaga dibandingkan dengan mendesain menggunakan mikroprosesor memori, dan alat input output yang terpisah, kehadiran mikrokontroler membuat kontrol elektrik untuk berbagai proses menjadi lebih ekonomis. Dengan penggunaan mikrokontroler ini maka :

· Sistem elektronik akan menjadi lebih ringkas
· Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar dari sistem adalah perangkat lunak yang mudah dimodifikasi
· Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak
Namun demikian tidak sepenuhnya mikrokontroler bisa mereduksi komponen IC TTL dan CMOS yang seringkali masih diperlukan untuk aplikasi kecepatan tinggi atau sekedar menambah jumlah saluran masukan dan keluaran (I/O). Dengan kata lain, mikrokontroler adalah versi mini atau mikro dari sebuah komputer karena mikrokontroler sudah mengandung beberapa periferal yang langsung bisa dimanfaatkan, misalnya port paralel, port serial, komparator, konversi digital ke analog (DAC), konversi analog ke digital dan sebagainya hanya menggunakan sistem minimum yang tidak rumit atau kompleks.
Agar sebuah mikrokontroler dapat berfungsi, maka mikrokontroler tersebut memerlukan komponen eksternal yang kemudian disebut dengan sistem minimum. Untuk membuat sistem minimal paling tidak dibutuhkan sistem clock dan reset, walaupun pada beberapa mikrokontroler sudah menyediakan sistem clock internal, sehingga tanpa rangkaian eksternal pun mikrokontroler sudah beroperasi.
Untuk merancang sebuah sistem berbasis mikrokontroler, kita memerlukan perangkat keras dan perangkat lunak, yaitu:
1. sistem minimal mikrokontroler
2. software pemrograman dan kompiler, serta downloader
Yang dimaksud dengan sistem minimal adalah sebuah rangkaian mikrokontroler yang sudah dapat digunakan untuk menjalankan sebuah aplikasi. Sebuah IC mikrokontroler tidakakan berarti bila hanya berdiri sendiri. Pada dasarnya sebuah sistem minimal mikrokontroler AVR memiliki prinsip yang sama, yang terdiri dari 4 bagian, yaitu :
1. prosesor, yaitu mikrokontroler itu sendiri
2. rangkaian reset agar mikrokontroler dapat menjalankan program mulai dari awal
3. rangkaian clock, yang digunakan untuk memberi detak pada CPU
4. rangkaian catu daya, yang digunakan untuk memberi sumberdaya
Pada mikrokontroler jenis2 tertentu (AVR misalnya), poin2 pada no 2 ,3 sudah tersedia didalam mikrokontroler tersebut dengan frekuensi yang sudah diseting dari vendornya (biasanya 1MHz,2MHz,4MHz,8MHz), sehingga pengguna tidak perlu memerlukan rangkaian tambahan, namun bila ingin merancang sistem dengan spesifikasi tertentu (misal ingin komunikasi dengan PC atau handphone), maka pengguna harus menggunakan rangkaian clock yang sesuai dengan karakteristik PC atau HP tersebut, biasanya menggunakan kristal 11,0592 MHz, untuk menghasilkan komunikasi yang sesuai dengan baud rate PC atau HP tersebut.
Perkembangan ?
Mikrokontroler pertama kali dikenalkan oleh Texas Instrument dengan seri TMS 1000 pada tahun 1974 yang merupakan mikrokontroler 4 bit pertama. Mikrokontroler ini mulai dibuat sejak 1971. Merupakan mikrokomputer dalam sebuah chip, lengkap dengan RAM dan ROM. Kemudian, pada tahun 1976 Intel mengeluarkan mikrokontroler yang kelak menjadi populer dengan nama 8748 yang merupakan mikrokontroler 8 bit, yang merupakan mikrokontroler dari keluarga MCS 48. Sekarang di pasaran banyak sekali ditemui mikrokontroler mulai dari 8 bit sampai dengan 64 bit, sehingga perbedaan antara mikrokontroler dan mikroprosesor sangat tipis. Masing2 vendor mengeluarkan mikrokontroler dengan dilengkapi fasilitas2 yang cenderung memudahkan user untuk merancang sebuah sistem dengan komponen luar yang relatif lebih sedikit.
Saat ini mikrokontroler yang banyak beredar dipasaran adalah mikrokontroler 8 bit varian keluarga MCS51(CISC) yang dikeluarkan oleh Atmel dengan seri AT89Sxx, dan mikrokontroler AVR yang merupakan mikrokontroler RISC dengan seri ATMEGA8535 (walaupun varian dari mikrokontroler AVR sangatlah banyak, dengan masing2 memiliki fitur yang berbeda2). Dengan mikrokontroler tersebut pengguna (pemula) sudah bisa membuat sebuah sistem untuk keperluan sehari-hari, seperti pengendali peralatan rumah tangga jarak jauh yang menggunakan remote control televisi, radio frekuensi, maupun menggunakan ponsel, membuat jam digital, termometer digital dan sebagainya.
Jenis-jenis Mikrokontroller
Secara teknis, hanya ada 2 macam mikrokontroller. Pembagian ini didasarkan pada kompleksitas instruksi-instruksi yang dapat diterapkan pada mikrokontroler tersebut. Pembagian itu yaitu RISC dan CISC.
· RISC merupakan kependekan dari Reduced Instruction Set Computer. Instruksi yang dimiliki terbatas, tetapi memiliki fasilitas yang lebih banyak.
· Sebaliknya, CISC kependekan dari Complex Instruction Set Computer. Instruksi bisa dikatakan lebih lengkap tapi dengan fasilitas secukupnya.
Masing-masing mempunyai keturunan atau keluarga sendiri-sendiri.
Sekarang kita akan membahas pembagian jenis-jenis mikrokonktroler yang telah umum digunakan.
1. Keluarga MCS51
Mikrokonktroler ini termasuk dalam keluarga mikrokonktroler CISC. Sebagian besar instruksinya dieksekusi dalam 12 siklus clock.
Mikrokontroler ini berdasarkan arsitektur Harvard dan meskipun awalnya dirancang untuk aplikasi mikrokontroler chip tunggal, sebuah mode perluasan telah mengizinkan sebuah ROM luar 64KB dan RAM luar 64KB diberikan alamat dengan cara jalur pemilihan chip yang terpisah untuk akses program dan memori data.
Salah satu kemampuan dari mikrokontroler 8051 adalah pemasukan sebuah mesin pemroses boolean yang mengijikan operasi logika boolean tingkatan-bit dapat dilakukan secara langsung dan secara efisien dalam register internal dan RAM. Karena itulah MCS51 digunakan dalam rancangan awal PLC (programmable Logic Control).
2. AVR
Mikrokonktroler Alv and Vegard’s Risc processor atau sering disingkat AVR merupakan mikrokonktroler RISC 8 bit. Karena RISC inilah sebagian besar kode instruksinya dikemas dalam satu siklus clock. AVR adalah jenis mikrokontroler yang paling sering dipakai dalam bidang elektronika dan instrumentasi.
Secara umum, AVR dapat dikelompokkan dalam 4 kelas. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral dan fungsinya. Keempat kelas tersebut adalah keluarga ATTiny, keluarga AT90Sxx, keluarga ATMega dan AT86RFxx.
3. PIC
Pada awalnya, PIC merupakan kependekan dari Programmable Interface Controller. Tetapi pada perkembangannya berubah menjadi Programmable Intelligent Computer.
PIC termasuk keluarga mikrokonktroler berarsitektur Harvard yang dibuat oleh Microchip Technology. Awalnya dikembangkan oleh Divisi Mikroelektronik General Instruments dengan nama PIC1640. Sekarang Microhip telah mengumumkan pembuatan PIC-nya yang keenam
PIC cukup popular digunakan oleh para developer dan para penghobi ngoprek karena biayanya yang rendah, ktersediaan dan penggunaan yang luas, database aplikasi yang besar, serta pemrograman (dan pemrograman ulang) melalui hubungan serial pada komputer

Rabu, 14 Agustus 2013

kata bijak

Jangan pernah berpikir bahwa sukses itu cuma selalu harus
kerja keras, ternyata Sukses itu harus diraih dengan kerja keras dan
pintar.

Jangan pernah berpikir bahwa kunci surga itu ada tergantung
dilangit, ternyata Kunci Surga itu adanya di hati dihati kita, karena
ternyata Tuhan itu hanyalah sejauh Doa kita.

Jangan pernah berpikir bahwa Tuhan akan selalu
mengabulkan setiap permintaan kita, ternyata Tuhan hanya akan memberikan apa yg kita perlukan.

Jangan pernah berpikir bahwa makhluk yg paling bisa
bertahan hidup adalah yg paling pintar, atau yg paling kuat,
ternyata mahluk yg paling bisa bertahan adalah yang paling
cepat bisa merespon perubahan dan melakukannya.

Jangan pernah berpikir bahwa keberhasilan itu hanya karena
keturunan, ternyata bahwa Keberhasilan itu ditentukan oleh Kepintaran ,
Keuletan & Ketekunan.

Jangan pernah berpikir bahwa kecantikan wajah adalah
segalanya dan yg paling menarik, ternyata inner beauty adalah hal yg lebih indah & menawan.

Jangan pernah berpikir bahwa kebahagian itu adalah ketika
anda Sukses & dan berada diatas, ternyata Kebahagiaan sejati itu adalah tatkala kita bisa melihat kebawah, mensyukuri Berkat Tuhan dan bisa berbuat sesuatu untuk mereka yg lebih susah dari kita.

Jangan pernah berpikir bahwa makna dan perjalanan hidup
manusia itu hanya diukur dari bulan dan tahun yg sudah
dijalani, ternyata makna dan perjalanan hidup Manusia itu diukur dari kebajikannya dan apa yg telah dilakukannya kepada org lain.

Jangan pernah berpikir bahwa yg paling berharga itu uang &
emas permata, ternyata Hal yg paling mahal dan berharga itu adalah
kesehatan dan nama baik.

Kamis, 27 Juni 2013

Algoritma Kriptograpi Klasik

Sejarah dan Pengertian Kriptografi, Berasal dari akar kata Yunani kryptos dan gráphō, yang mempunyai arti "tulisan tersembunyi", telah ada hampir sepanjang kata-kata tertulis. Sepanjang masa, keuntungan dalam pertempuran antara ahlikriptologi (pembuat kode) dan cryptanalysts (pemecah kode) telah berpindah tangan berkali-kali. Peristiwa berikut ini adalah beberapa yang paling penting dalam sejarah perkembangan kriptografi.

Sejarah dan Pengertian KriptografiAbad ke-5 SM - Digunakannya kriptografi oleh Jendral Spartan untuk bertukar pesan rahasia menggunakan pita sempit membungkus perkamen sekitar staf silinder dikenal sebagai scytale, kemudian menyalin pesan mereka pada papirus. Pesan hanya dapat dibaca saat papirus adalah ulang luka di sekitar scytale ketebalan yang sama. Ini adalah penggunaan yang tercatat paling awal apa yang sekarang dikenal sebagai cipher transposisi.

Abad ke-2 SM - Sejarawan Polybius Yunani mengembangkan salah satu yang paling awal tercatat yaitu cipher substitusi dengan mengganti huruf-huruf alfabet, disusun dalam Polybius persegi, dengan angka.

Abad ke-1 SM - jenderal Romawi menggunakan cipher pergeseran sederhana, di mana setiap huruf dari pesan plaintext akan bergeser jumlah tetap huruf dalam alfabet untuk menghasilkan ciphertext. Sandi kemudian dikenal sebagai sandi Caesar setelah Julius Caesar, yang konon lebih suka pergeseran dari tiga huruf.

Abad ke-9 - matematikawan Islam Yaqūb bin Yusuf Abu Ishaq al-Kindi menerbitkan buku teks pertama memecahkan kode, A Manuscript on Deciphering Cryptographic Messages. Al-Kindi memperkenalkan buku klasifikasi cipher, polyalphabetic sandi, dan analisis frekuensi, teknik penting yang digunakan dalam memecahkan cipher substitusi. Analisis frekuensi menggunakan frekuensi relatif simbol dalam pesan berkode untuk mengungkapkan apa huruf alfabet.
Algoritma kriptografi klasik berbasis karakter
nMenggunakan pena dan kertas saja, belum ada komputernTermasuk ke dalam kriptografi kunci-simetrinTiga alasan mempelajari algoritma klasik:
nContoh: Caesar Cipher
nTiap huruf alfabet digeser 3 huruf ke kanan
nContoh:


Cipher Substitusi

1. Memahami konsep dasar kriptografi.
2. Dasar algoritma kriptografi modern.
3. Memahami kelemahan sistem cipher.
Algoritma kriptografi klasik:
1. Cipher Substitusi (Substitution Ciphers)   pi : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
2.Cipher Transposisi (Transposition Ciphers)
  ci            : DE F G H I J K L M N O P Q R S T U V W X Y Z A B C
  Plainteks     :   AWASI ASTERIX DAN TEMANNYA OBELIX
  Cipherteks    :   DZDVL DVWHULA GDQ WHPDQQBA REHOLA
nDalam praktek, cipherteks dikelompokkan ke dalam kelompok n-huruf, misalnya kelompok 4-huruf:
nAtau membuang semua spasi:
nTujuannya agar kriptanalisis menjadi lebih sulit

DZDV LDVW HULA GDQW HPDQ QBAR EHOL A 
DZDVLDVWHULAGDQWHPDQQBAREHOLA  
nMisalkan A = 0, B = 1, …, Z = 25, maka secara matematis caesar cipher dirumuskan sebagai   berikut:
  Enkripsi: ci = E(pi) = (pi + 3) mod 26
  Dekripsi: pi = D(ci) = (ci – 3) mod 26 
nJika pergeseran huruf sejauh k, maka:
 
  Enkripsi: ci = E(pi) = (pi + k) mod 26
  Dekripsi: pi = D(ci) = (ci k) mod 26
  k = kunci rahasia
nUntuk 256 karakter ASCII, maka:
 
  Enkripsi: ci = E(pi) = (pi + k) mod 256
  Dekripsi: pi = D(ci) = (ci k) mod 256
  k = kunci rahasia


/* Program enkripsi file dengan Caesar cipher */
#include <stdio.h>
 
main(int argc, char *argv[])
{
 FILE *Fin, *Fout;
 char p, c;
 int k;
 
 Fin = fopen(argv[1], "rb");
 if (Fin == NULL)
   printf("Kesalahan dalam membuka %s sebagai berkas masukan/n",  argv[1]);   
 Fout = fopen(argv[2], "wb"); 
 printf("\nEnkripsi %s menjadi %s ...\n", argv[1], argv[2]);
 printf("\n");
 printf("k : ");
 scanf("%d", &k); 
 while ((p = getc(Fin)) != EOF)
 {
  c = (p + k) % 256;
  putc(c, Fout); 
 }
 
 fclose(Fin);
 fclose(Fout);
        }   

/* Program dekripsi file dengan Caesar cipher */
 
#include <stdio.h>
 
main(int argc, char *argv[])
{
 FILE *Fin, *Fout;
 char p, c;
 int n, i, k;
 
 Fin = fopen(argv[1], "rb");
 if (Fin == NULL)
   printf("Kesalahan dalam membuka %s sebagai berkas masukan/n",  argv[1]);   
 Fout = fopen(argv[2], "wb"); 
 printf("\nDekripsi %s menjadi %s ...\n", argv[1], argv[2]);
 printf("\n");
 printf("k : ");
 scanf("%d", &k); 
 while ((c = getc(Fin)) != EOF)
 {
  p = (c - k) % 256;
  putc(p, Fout); 
 }
  fclose(Fin);
 fclose(Fout);
        }    

Kelemahan: 
  Caesar cipher mudah dipecahkan dengan exhaustive key search karena jumlah kuncinya sangat sedikit (hanya ada 26 kunci).
Contoh: kriptogram XMZVH
PHHW PH DIWHU WKH WRJD SDUWB
KEY
1  oggv og chvgt vjg vqic rctva
2  nffu nf bgufs uif uphb qbsuz
3  meet me after the toga party
4  Ldds ld zesdq sgd snfz ozqsx
5  kccr kc ydrcp rfc rmey nyprw
6 
21 ummb um inbmz bpm bwoi xizbg
22 tlla tl hmaly aol avnh whyaf
23 skkz sk glzkx znk zumg vgxze
24 rjjy rj fkyjw ymj ytlf ufwyd
25 qiix qi ejxiv xli xske tevxc
Contoh: Kriptogram  HSPPW menghasilkan dua kemungkinan kunci yang potensial, yaitu k = 4 menghasilkan pesan DOLLS dan k = 11 menghasilkan WHEEL.
nDi dalam sistem operasi Unix, ROT13 adalah fungsi menggunakan Caesar cipher dengan pergeseran k = 13
  Jika kasusnya demikian, maka lakukan dekripsi terhadap potongan cipherteks lain tetapi cukup menggunakan k = 4 dan k = 11  agar dapat disimpulkan kunci yang benar

nContoh:  ROT13(ROTATE) = EBGNGR
nNama “ROT13” berasal dari net.jokes
  (hhtp://groups.google.com/group/net.jokes)  (tahun 1980)

nROT13 biasanya digunakan di dalam forum online untuk menyandikan jawaban teka-teki, kuis,  canda, dsb

nEnkripsi arsip dua kali dengan ROT13 menghasilkan pesan semula:
   P = ROT13(ROT13(P))  
   sebab        ROT13(ROT13(x)) = ROT26(x) = x
nJadi dekripsi cukup dilakukan dengan mengenkripsi cipherteks kembali dengan ROT13