KATA PENGANTAR Puji dan syukur dipanjatkan kepada Tuhan seru sekalian alam. Buku Elektronika Digital (Konsep Dasar dan Aplikasi) ini dapat diselesaikan meskipun masih sangat singkat apabila dihadapkan kepada persoalan elektronika yang semakin berkembang. Perkembangan teknologi dan industri elektronika seperti yang sekarang terjadi menimbulkan kesulitan tersendiri untuk menulis satu buku ataupun menyelenggarakan suatu kuliah/kursus yang dapat memuat semua informasi tentang elektronika. Tetapi sehebat apapun perkembangan teknologi dan industri elektronika tidak terlepas dari konsep-konsep dasar tentang elektronika yang telah disemai oleh para pendahulu. Dalam upaya turut memahami, kalau perlu menguasai, teknologi elektronika dengan lebih kokoh kiranya perlu menguasai konsep-konsep dasarnya. Dalam rangka itulah, tidak berlebihan bila buku Elektronika Digital (Konsep Dasar dan Aplikasi) ini disusun dengan maksud turut berpartisipasi menyediakan sumber belajar yang memuat konsepkonsep dasar tentang elektronika digital. Kiranya buku ini dapat menjadi pengantar untuk kajian lebih lanjut dan dapat memenuhi keperluan bagi yang ingin mendapat pedoman secara mendasar. Dengan buku ini memungkinkan untuk memahami, merancang, dan menyusun rangkaian digital. Akhirnya, terima kasih yang setulus-tulusnya disampaikan kepada semua pihak yang telah membantu penulisan buku ini. Bila dijumpai kesalahan dimohon dengan sangat agar berkenan memberikan teguran. Komentar, koreksi, kritik dan saran dari para pengguna dan pemerhati diterima dengan penuh penghargaan dan selanjutnya akan sangat berguna bagi perbaikan buku ini. Terima kasih. Yogyakarta, 08 September 2005 Penulis, ( Sumarna ). ([email protected]) DAFTAR ISI Halaman HALAMAN JUDUL i KATA PENGANTAR ii DAFTAR ISI iii BAB I PENDAHULUAN 1 1. Pengantar 1 2. Sistem Analog dan Digital 2 3. Soal-soal 4 BAB II BAB III BAB IV SISTEM BILANGAN 6 1. Basis-10 (desimal) 7 2. Basis-2 (biner) 7 3. Basis-8 (oktal) 8 4. Basis-16 (heksa-desimal) 8 5. Konversi (Pengubahan) Bilangan 9 6. Operasi Bilangan 16 7. Soal-soal 25 SISTEM SANDI (KODE) 28 1. Sandi BCD (biner Coded Decimal) 29 2. Sandi Excess-3 (XS-3) 31 3. Sandi Gray 31 4. Sandi ASCII 34 5. Bit Paritas 36 6. Aplikasi Sistem Bilangan dan Sandi 38 7. Soal-soal 39 GERBANG LOGIKA 41 BAB V BAB VI BAB VII 1. Gerbang OR 42 2. Gerbang AND 43 3. Gerbang NOT (INVERTER) 45 4. Gerbang NOR dan NAND 46 5. Gerbang EX-OR dan EX-NOR 48 6. Soal-soal 51 ALJABAR BOOLE 54 1. Pengertian Aljabar Boole 54 2. Teorema dalam Aljabar Boole 55 3. Minimalisasi Rangkaian Logika Secara Analitis 57 4. Soal-soal 60 PETA KARNAUGH 64 1. Bentuk Standar Fungsi Boole 65 2. Peta Karnaugh (Peta K) 71 3. Minimalisasi Rangkaian Logika (Cara Grafis) 76 4. Aplikasi Desain Rangkaian 81 5. Soal-soal 84 RANGKAIAN PEMBANDING DAN PENJUMLAH 87 1. Rangkaian Pembanding (Komparator) 87 2. Rangkaian Penjumlah (Adder) 102 3. Rangkaian Pengurang 114 4. Soal-soal 118 BAB VIII FLIP-FLOP (BISTABIL) 121 1. Flip-flop Set-Reset (FF-SR) 122 2. Flip-flop J-K (FF-JK) 129 3. Flip-flop J-K Master-Slave (FF-JKMS) 131 4. Flip-flop D (FF-D) dan Flip-flop T (FF-T) 132 5. Flip-flop yang Dilengkapi dengan Preset dan Clear 133 BAB IX 6. Tabel Eksitasi 134 7. Aplikasi Flip-flop 134 8. Soal-soal 137 MULTIVIBRATOR 141 1. Multivibrator Monostabil 142 2. Multivibrator Astabil 146 3. Picu Schmitt (Schmitt Trigger) 148 4. Rangkaian Terpadu Monostabil, Astabil dan Picu 151 Schmitt BAB X BAB XI BAB XII 5. IC Pewaktu (Timer) 555 154 6. Aplikasi 159 7. Soal-soal 160 PENCACAH 162 1. Pencacah Biner Tak Sinkron (Serial atau Riak) 164 2. Pencacah Biner Sinkron (Paralel) 174 3. Soal-soal 185 REGISTER 187 1. Register 187 2. Jenis Register 190 3. Aplikasi 194 4. Soal-soal 196 DEKODER (DEMULTIPLEKSER) DAN MULTIPLEKSER 199 1. Sistem BCD (Biner Coded Decimal) 201 2. Dekoder Biner Ke BCD 202 3. Dekoder BCD Ke Desimal 206 4. Dekoder BCD Ke Peraga 7 Segmen 208 5. Demultiplekser 213 6. Multiplekser 217 7. Rangkaian Terpadu (IC) Dekoder/demultiplekser dan 223 multiplekser 8. Soal-soal DAFTAR PUSTAKA 227 229 BAB I PENDAHULUAN 1. Pengantar Elektronika, khususnya elektronika digital, akan terus mengalami perkembangan. Perkembangan apapun, meskipun menuju ke arah perbaikan, selalu disertai kekurangan-kekurangan maupun hal-hal yang tidak menyenangkan. Para insinyur yang telah berpengalaman sekalipun kadang merasa tertekan untuk dapat mengikuti kepesatan perkembangan elektronika. Lebih-lebih bagi para pemula tentu saja menghadapi masalah yang jauh lebih berat. Teknologi mutakhir yang paling mengagumkan dan yang memiliki fleksibilitas tinggi adalah komputer dan mikroprosesor. Komputer dan mikroprosesor dibangun dari rangkaian digital. Rangkaian digital terdiri dari sekelompok gerbang logika (logic gate) yang dapat menampilkan tugas-tugas yang sangat berguna. Rangkaian digital menjadi otak dunia teknologi. Rangkaian digital banyak digunakan untuk pengendalian proses (otomatisasi), mulai dari proses industri dengan tingkat kompleksitas yang tinggi, robot, peralatan laboratorium, alat rumah tangga, hiburan, hingga permainan anak. Elektronika sering tampak seperti hutan belantara yang membingungkan oleh karena seakan-akan berisi hal-hal yang tidak jelas kaitannya. Di dalam suatu rangkaian terdiri dari komponen-komponen dengan nama-nama aneh, parameter-parameter yang tidak sederhana, dan teori yang rumit. Pernyataan ini tidak bertujuan untuk membuat kita menjadi pesimis, tetapi sebaliknya agar bersiap-siap untuk bekerja keras jika ingin berkecimpung dalam bidang elektronika. Thomas A. Edison pernah berpesan bahwa : “Ada cara untuk menyempurnakan. Singkaplah !”. Penelitian yang tidak kenal lelah meneruskan berbagai penemuan untuk menyempurnakan yang sudah ada dan untuk mendapatkan hal-hal yang baru. Melalui evaluasi gagasan, penelitian, kreativitas, inspirasi dan kerja keras telah ditemukan hal-hal baru yang lebih inovatif dan semakin sempurna. Kita dapat mempelajari elektronika sampai sejauh yang kita perlukan. Oleh karenanya kita tidak perlu pesimis asal siap bekerja keras sampai dengan taraf tertentu kita dapat menguasainya. 2. Sistem Analog dan Digital Dalam sain, teknologi, dan berbagai bidang kehidupan yang lain selalu berhadapan dengan besaran. Besaran tersebut diukur, dimonitor, dicatat, dimanipulasi secara matematis, dan lain-lain. Untuk dapat melakukan pekerjaan tersebut selalu digunakan peralatan. Hal yang sangat penting berkaitan dengan perubahan besaran tersebut adalah dapat menyajikan nilainya dengan tepat dan efisien. Secara mendasar ada dua cara penyajian nilai numerik suatu besaran, yakni secara analog atau digital. Dengan demikian istilah analog dan digital terkait dengan cara besaran tersebut ditampilkan. Satu contoh penampilan besaran analog adalah pada speedometer kendaraan, tampak bahwa simpangan jarum speedometer sebanding dengan laju kendaraan tersebut. Posisi sudut jarum menunjukkan besarnya laju kendaraan dan posisi jarum mengikuti perubahan yang terjadi pada laju kendaraan. Contoh lain adalah pada termometer air raksa, posisi permukaan air raksa di dalam tabung berubah sebanding dengan perubahan suhu. Masih contoh besaran analog dapat dijumpai pada sistem audio. Tegangan keluaran yang dihasilkan pada alat tersebut sebanding dengan sinpangan gelombang suara yang mengenai mikropon. Perubahan tegangan keluaran mengikuti perubahan suara pada masukan. Jika diperhatikan dengan seksama, ciri khas dari tampilan analog adalah dapat berada pada sembarang nilai (berapapun) dalam batas-batas (jangkauan) tertentu, tidak ada nilai terlarang, kecuali di luar batas-batas tersebut (yang diijinkan). Satu contoh besaran yang ditampilkan secara digital dapat kita jumpai pada jam digital yang hanya menyediakan penunjukan jam dan menit (kadangkadang juga detik). Sebagaimana diketahui bahwa waktu berubah secara kontinyu tetapi jam tersebut tidak dapat menampilkan waktunya secara kontinyu. Tampilan jam itu hanya dapat berubah pada tingkat paling kecil dalam menit (kadang-kadang dalam detik). Dengan kata lain, penyajian waktu tersebut berubah secara diskrit. Contoh lain tampilan digital adalah pada pencacahan partikel yang dipancarkan oleh suatu sumber radioaktif. Jelas bahwa cacah patikel hanya dapat berada pada bilangan bulat seperti tidak ada, satu, dua, tiga, …, seribu satu, dan seterusnya. Tidak pernah terjadi cacah partikel pada bilangan yang tidak bulat seperti setengah, seribu seperempat, dan sebagainya. Ciri khas dari besaran maupun tampilan digital adalah hanya dapat berada pada nilai-nilai tertentu yang diskrit. Jika elektronika diperhatikan sekarang dengan ini seksama, menuju pada kecenderungan otomatisasi piranti-piranti (komputerisasi), minimalisasi (kecil, kompak), dan digitalisasi. Dengan otomatisasi segala pekerjaan dapat diselesaikan dengan mudah, dan akurat, seolah-olah pekerjaan dapat selesai dengan sendirinya. Dengan minimalisasi, bentuk fisik berbagai piranti elektronik menjadi semakin kecil dan kompak, tidak banyak menempati ruang tetapi kinerjanya sangat handal. Sedangkan dengan digitalisasi memungkinkan pengolahan data (sinyal, informasi) menjadi semakin menguntungkan. Kecenderungan pengolahan data dalam bentuk digital (digitalisasi) memiliki beberapa kelebihan, di antaranya adalah : 1. Lebih tegas (tidak mendua), karena sinyal hanya ditampilkan dalam salah satu bentuk di antara YA atau TIDAK, HIDUP atau MATI, TINGGI atau RENDAH, 1 atau 0, 0 VOLT atau 5 VOLT dan sebagainya. 2. Informasi digital lebih mudah dikelola (mudah disimpan dalam memori, mudah ditransmisikan, mudah dimunculkan kembali, dan mudah diolah tanpa penurunan kualitas). 3. Lebih tahan terhadap gangguan (noise) dalam arti lebih sedikit kena gangguan. Jika kena gangguan lebih mudah dikembalikan ke bentuk digitnya (dengan rangkaian Schmitt Trigger misalnya). 4. Konsumsi daya relatif rendah. Tetapi karena sifatnya yang diskrit, data (sinyal, informasi) digital tidak dapat berada pada nilai sembarang (kontinyu). Ada sinyal-sinyal yang secara alamiah berbetuk diskrit, seperti pulsa-pulsa dari detektor partikel, bit-bit data dari saklar, keyboard, komputer, dan lain-lain akan lebih tepat jika digunakan elektronika digital. Dengan kenyataan seperti tersebut, antara elektronika analog (kontinyu) dan elektronika digital (diskrit) saling melengkapi karena masing-masing memiliki keunggulan dan sekaligus kelemahan tergantung dari lingkup kerjanya. Untuk keperluan sensor, elektronika analog lebih baik karena dalam batas-batas tertentu dapat memberikan nilai sembarang. Selain itu, elektronika analog juga sesuai untuk sinyal-sinyal kontinyu seperti pada sistem audio. Meskipun demikian tidak berarti antara elektronika analog dan digital tidak bisa dipadukan. Tidak jarang dikehendaki pengubahan data analog menjadi bentuk digital (dengan ADC : Analog to Digital Converter) atau sebaliknya (dengan DAC : Digital to Analog Converter) agar pengolahan data dapat dilakukan dengan sebaik-baiknya. Kenyataan ini menunjukkan bahwa piranti dengan sistem digital telah demikian canggihnya sehingga pekerjaan yang seharusnya diselesaikan dengan elektronika analog dapat dikerjakan dengan elektronika digital dengan hasil yang lebih menakjubkan. 3. Soal-soal 1. Apakah perbedaan antara sistem analog dan sistem digital ? 2. Apakah cara penyajian besaran-besaran berikut termasuk dalam kategori analog atau digital ? Jelaskan ! a. Tekanan udara di dalam ban kendaraan. b. Ketinggian layang-layang dari permukaan tanah. c. Kuat arus listrik yang mengalir dalam resistor. d. Jumlah tablet yang dimasukkan ke dalam suatu wadah. e. Muatan listrik yang dimiliki oleh suatu benda. 3. Selain yang telah disebutkan pada soal nomor 1 di atas, sebutkan masing-masing 5 (lima) contoh besaran yang bersifat : a. Analog. b. Digital. 4. Sebutkan masing-masing mengenai kelebihan dan keterbatasn rangkaian digital jika dibandingkan dengan rangkaian analog ? 5. Mengapa komputer lebih cocok menggunakan sistem digital dari pada menggunakan sistem analog ? Jelaskan ! 6. Jelaskan, bagaimana keluaran dari suatu rangkaian dapat ditetapkan sebagai keluaran digital ? BAB II SISTEM BILANGAN Banyak sistem bilangan yang digunakan pada piranti digital, dan yang biasa digunakan adalah sistem-sistem bilangan biner, oktal, desimal, dan heksa-desimal. Sedangkan, dalam kehidupan sehari-hari kita sangat akrap dengan sistem bilangan desimal, (dasaan, basis-10, atau radiks-10). Meskipun sistem desimal sangat akrab dengan kita, tetapi sistem tersebut tidak mudah diterapkan dalam mesin digital. Sistem bilangan yang paling mudah diterapkan di dalam mesin digital adalah sistem bilangan biner (basis-2) karena sistem tersebut hanya mengenal 2 keadaan dan kemudian disimbolkan dengan 2 angka yakni 0 dan 1. Hal ini sesuai dengan 2 keadaan sistem pensaklaran di dalam mesin. Untuk memudahkan pembahasan, kita membagi sitem bilangan menjadi basis-10 dan basis-n, di mana n 2 dan n 10. Sehingga dikenal banyak sistem bilangan seperti basis-2, basis-3, …, basis-8, …, basis-10, …, basis-16, dan seterusnya. Semua sistem bilangan tersebut temasuk ke dalam sistem bilangan berbobot, artinya nilai suatu angka tergantung dari posisi relatifnya terhadap koma atau angka satuan. Misalnya bilangan 5725,5 dalam desimal. Ketiga angka 5 memiliki nilai yang berbeda, angka 5 paling kanan bernilai lima persepuluhan, angka 5 yang tengah bernilai lima satuan sedangkan angka 5 yang lainnya bernailai lima ribuan. Untuk membedakan suatu bilangan dalam sistem bilangan tertentu digunakan konvensi notasi. Untuk basis-n kita menggunakan indeks n atau tanda lain yang disepakati. Sebagai contoh bilangan „11‟ basis-2 akan ditulis dalam bentuk „112‟ untuk mencegah terjadinya salah pengertian dengan bilangan „118‟, „1110, atau „1116‟ dan seterusnya. Kadang-kadang indeks tersebut tidak dicantumkan jika basis bilangan tersebut sudah jelas. Misalkan secara khusus sedang membahas bilangan basis-8, maka bilanga-bilangan dalam pembahasan tersebut tidak disertai indeks. Sering pula dalam konvensi tersebut dijumpai bahwa suatu bilangan yang tidak disertai indeks berarti bilangan tersebut dinyatakan dalam desimal atau basis-10. Selanjutnya dikenal beberapa cara menyatakan suatu bilangan dalam basis-16 atau heksa-desimal. Cara menyatakan basisnya adalah dengan menyertakan indeks 16, atau di belakang bilangan diikuti dengan huruf „h‟, atau sebelum atau sesudah bilangan itu dicantumkan huruf „H‟ atau tanda „#‟ atau tanda „$‟. Contoh 96 16 = 96h = H96 = #96 = $96 = 96H. 1. Basis-10 (desinal) Dalam sistem desimal (basis-10) memupnyai simbol angka (numerik) sebanyak 10 buah simbol, yaitu 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9. Nilai suatu bilangan dalam basis-10 dapat dinyatakan sebagai (N x 10a) dengan N = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 dan a = …, -3, -2, -1, 0, 1, 2, 3, …(bilangan bulat yang menyatakan posisi relatif N terhadap koma atau satuan). Contoh : 32510 = 3 x 102 + 2 x 101 + 5 x 100 0,6110 = 0 x 100 + 6 x 10-1 + 1 x 10-2 = 6 x 10-1 + 1 x 10-2 9407,10810 = 9 x 103 + 4 x 102 + 7 x 100 + 1 x 10-1 + 8 x 10-3. 2. Basis-2 (biner) Dalam sistem biner (basis-2) memupnyai simbol angka (numerik) sebanyak 2 buah simbol, yaitu 0, dan 1. Nilai suatu bilangan basis-2 dalam basis-10 dapat dinyatakan sebagai (N x 2a) dengan N = 0 atau 1; dan a = …, -3, -2, -1, 0, 1, 2, 3, …(bilangan bulat dalam desimal yang menyatakan posisi relatif N terhadap koma atau satuan). Contoh : 11012 = 1 x 23 + 1 x 22 + 1 x 20 = 8 + 4 + 1 = 1310. 0,101 = 0 x 20 + 1 x 2-1 + 0 x 2-2 + 1 x 2-3 = 0 + 0,5 + = 0,62510 0 + 0,125 11,01 = 1 x 21 + 1 x 20 + 1 x 2-2 = 2 + 1 + 0,25 = 3,2510. 3. Basis-8 (oktal) Dalam sistem oktal (basis-8) memupnyai simbol angka (numerik) sebanyak 8 buah simbol, yaitu 0, 1, 2, 3, 4, 5, 6, dan 7. Nilai suatu bilangan basis-8 dalam basis-10 dapat dinyatakan sebagai (N x 8a) dengan N = 0, 1, 2, 3, 4, 5, 6, atau 7; dan a = …, -3, -2, -1, 0, 1, 2, 3, …(bilangan bulat dalam desimal yang menyatakan posisi relatif N terhadap koma atau satuan). Contoh : 647,358 = 6 x 82 + 4 x 81 + 7 x 80 + 3 x 8-1 + 5 x 8-2 = 384 + 32 + 7 + 0,375 + 0,078125 = 423,45312510. 4. Basis-16 (heksa-desimal) Dalam sistem heksa-desimal (basis-16) memupnyai simbol angka (numerik) sebanyak 16 buah simbol. Karena angka yang telah dikenal ada 10 maka perlu diciptakan 6 simbol angka lagi yaitu A, B, C, D, E, dan F dengan nilai A16 = 1010; B16 = 1110, C16 = 1210, D16 = 1310, E16 = 1410, dan F16 = 1510. Dengan demikian simbol angka-angka untuk sistem heksa-desimal adalah 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, dan F. Nilai suatu bilangan basis-16 dalam basis-10 dapat dinyatakan sebagai (N x 16a) dengan N = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, atau 15; bulat dan a = …, -3, -2, -1, 0, 1, 2, 3, …(bilangan dalam desimal yang menyatakan posisi relatif N terhadap koma atau satuan). Contoh : 584AED16 = 5 x 165 + 8 x 164 + 4 163 + 10 x 162 + 14 x 161 + 13 x 160 = 5242880 + 524288 + 16384 + 2560 + 224 + 13 = 578634910. E,1A16 = 14 x 160 + 1 x 16-1 + 10 x 16-2 = 14 + 0,0625 + 0,0390625 = 14,0664062510. 5. Konversi (Pengubahan) Bilangan Ada kalanya kita perlu menyatakan suatu bilangan dalam basis yang berbeda atau mengubah (mengkonversi) suatu bilangan dari satu basis ke basis yang lain. Misalkan, konversi bilangan dari basis-n ke basis-10, konversi bilangan dari basis-10 ke basis-n, atau konversi bilangan dari basis-n ke basism. Untuk konversi bilangan dari basis-n ke basis-10 telah dikemukakan ketika menyatakan nilai suatu bilangan dari basis-n ke dalam basis-10. Konversi bilangan dari basis-10 ke basis-n Setidaknya ada dua cara untuk mengubah bilangan desimal menjadi bilangan dalam basis selain 10. Cara pertama, biasanya untuk bilangan yang kecil, adalah kebalikan dari proses konversi bilangan dari basis-n (selain 10) ke basis-10 (desimal). Bilangan desimal itu dinyatakan sebagai jumlah dari sukusuku yang setiap suku merupakan hasil kali suatu angka (N) dan bilangan n pangkat bulat, kemudian angka-angka tersebut dituliskan dalam posisi yang sesuai. Secara umum dapat dituliskan sebagai (Bilangan)10 = (N x na). dengan N menyatakan simbol angka yang diijinkan dalam basis-n, menyatakan basis bilangan yang dituju, a merupakan bilangan bulat n dalam basis-10 yang menyatakan posisi relatif N terhadap koma atau satuan, dan semua posisi yang tercakup harus diperhitungkan. Untuk lebih jelasnya perhatikan beberapa ilustrasi berikut : (1). Ubahlah bilangan 9810 ke dalam basis-2 yang setara ! 9810 = (N x na) = (N x 2a) = N x 64 + N x 32 + N x 21 = 1 x 26 + 1 x 25 + 1 x 21 (semua posisi belum diperhitungkan) = 1 x 2 6 + 1 x 25 + 0 x 24 + 0 x 2 3 + 0 x 22 + 1 x 21 + 0 x 2 0 = 1 1 0 0 0 1 0 = 11000102. Perhatikan bahwa 0 ditempatkan dalam posisi 2 4, 23, 22, dan 20 karena semua posisi harus diperhitungkan. (2). Ubahlah bilangan 136810 ke dalam basis-8 yang setara ! 136810= (N x na) = (N x 8a) = N x 512 + N x 64 + N x 8 = 2 x 83 + 5 x 82 + 3 x 81 (semua posisi belum diperhitungkan) = 2 x 8 3 + 5 x 82 + 3 x 81 + 0 x 80 = 2 5 3 0 = 25308. Perhatikan bahwa 0 ditempatkan pada posisi 8 0 karena semua posisi harus diperhitungkan. (3). Ubahlah bilangan 1900610 ke dalam heksa-desimal yang setara ! 1900610 = (N x na) = (N x 16a) = N x 4096 + N x 256 + N x 16 + N x 160 = 4 x 163 + A x 162 + 3 x 161 + 14 x 160 (semua posisi telah diperhitungkan) = 4 = 4A3E16. A 3 E Cara ke dua dikenal sebagai pembagian berulang. Cara ini sangat baik untuk bilangan desimal yang kecil maupun yang besar. Cara konversinya adalah membagi bilangan desimal dan hasil baginya secara berulang dengan basis tujuan kemudian menuliskan sisanya hingga diperoleh hasil bagi 0. Hasil konversinya adalah menuliskan sisa pertama pada posisi yang paling kecil dan sisa terakhir pada posisi yang paling besar. Untuk lebih jelasnya berhatikan beberapa ilustrasi berikut : (1). Ubahlah bilangan 9810 ke dalam basis-2 yang setara ! 98 = 49, sisa 0 2 49 = 24, sisa 1 2 24 = 12, sisa 0 2 12 = 6, sisa 0 2 6 2 = 3, sisa 0 3 2 = 1, sisa 1 1 2 = 0, sisa 1 Sisa dituliskan dari bawah : 1 1 0 0 0 1 0 Jadi 9810 = 11000102. (2). Ubahlah bilangan 136810 ke dalam basis-8 yang setara ! 1368 = 171, sisa 0 8 171 = 21, sisa 3 8 21 = 2, sisa 5 8 2 8 = 0, sisa 2 Sisa dituliskan dari bawah : 2 5 3 0 Jadi 136810 = 25308. (3). Ubahlah bilangan 1900610 ke dalam heksa-desimal yang setara ! 19006 = 1187, sisa 14 (= E) 16 1187 = 74, sisa 3 16 74 16 = 4, sisa 10 (= A) 4 16 = 0, sisa 4 Sisa dituliskan dari bawah : 4 A 3 E Jadi 1900610 = 4A3E16. Untuk mengubah bilangan desimal tidak bulat (pecahan) dilakukan dengan dua tahap. Tahap pertama mengubah bagian bulat (di sebelah kiri tanda koma) dengan cara seperti yang telah dijelaskan di atas. Tahap ke dua mengubah bagian pecahannya (di sebelah kanan tanda koma) dengan cara bahwa bilangan pecahan dikalikan berulang-ulang dengan basis tujuan sampai hasil perkalian terakhir sama dengan 0 setelah angka di sebelah kiri tanda koma dari hasil kali setiap perkalian diambil. Selanjutnya angka-angka di sebelah kiri koma yang diambil tadi dituliskan secara berderet dari kiri ke kanan. Untuk lebih jelasnya perhatikan ilustrasi pada konversi bilangan 98,375 10 menjadi basis-2 yang setara ! Tahap pertama mengubah bilangan bulat 98 10 ke dalam basis-2 yang hasilnya adalah 11000102. Tahap ke dua mengubah bilangan pecahan 0,37510 ke dalam basis-2 sebagai berikut : 0,375 x 2 = 0,75 dan angka di sebelah kiri koma adalah 0 0,75 x 2 = 1,5 dan angka di sebelah kiri koma adalah 1 0,5 x 2 = 1,0 dan angka di sebelah kiri koma adalah 1. Hasil pengambilan angka di sebelah kiri koma adalah : 0,011. Selanjutnya hasil konversi kedua tahap tersebut digabungan sesuai dengan posisinya. Hasil gabungannya adalah 1100010,011. Dengan demikian 98,375 10 = 1100010,0112. Contoh berikutnya adalah mengubah bilangan 1368,25 10 ke dalam basis-8 yang setara. Tahap pertama adalah mengubah bagian bulatnya (di sebelah kiri koma) yaitu 136810 ke dalam basis-8 yang hasilnya telah diperoleh sebesar 25308. Tahap ke dua adalah mengubah bagian pecahannya (di sebelah kanan koma) yaitu 0,2510 ke dalam basis-8 dengan cara sebagai berikut : 0,25 x 8 = 2,0 dan bilangan di sebelah kiri koma adalah 2. Setelah 2 diambil maka sisanya adalah 0 dan proses perkalian berakhir. Hasil pengambilan angka di sebelah kiri koma adalah : 0,2. Selanjutnya hasil konversi kedua tahap tersebut digabungan sesuai dengan posisinya. Hasil gabungannya adalah 2530,2. Dengan demikian 1368,25 10 = 2530,28. Perlu dicatat bahwa tidak semua pecahan mudah dikonversi. Ada kalanya hasil konversi bilangan pecahan tersebut sangat panjang atau bahkan tidak pernah dihasilkan bilangan yang tepat. Sebagaimana pecahan 2/3 yang dikonversikan ke dalam bentuk desimal menghasilkan 0,666666…. di mana angka 6 tidak akan pernah berakhir. Misalnya bilangan 34,275 10 diubah ke dalam bilangan basis-8 yang setara. Bagian bulatnya menghasilkan 4 x 81 + 2 x 80 atau 428. Sedangkan bagian pecahannya dikonversi dengan cara berikut : 0,275 x 8 = 2,2 dan angka di sebelah kiri koma adalah 2 0,2 x 8 = 1,6 dan angka di sebelah kiri koma adalah 1 0,6 x 8 = 4,8 dan angka di sebelah kiri koma adalah 4 0,8 x 8 = 6,4 dan angka di sebelah kiri koma adalah 6 0,4 x 8 = 3,2 dan angka di sebelah kiri koma adalah 3 0,2 x 8 = 1,6 dan angka di sebelah kiri koma adalah 1 dan seterusnya. Jadi 34,27510 = 42,214631463.…. di mana angka 1463 tidak akan pernah berakhir. Konversi bilangan dari basis-n ke basis-m (keduanya bukan basis-10) Untuk mengkonversi suatu bilangan basis-n (bukan basis-10) menjadi bilangan basis-m (bukan basis-10) dengan n m diperlukan konversi ke basis10 sebagai perantara. Karena kita telah akrap dengan bilangan basis-10. Dengan demikian perlu dua tahap konversi. Tahap pertama mengkonversi bilangan dari basis-n ke basis-10, dan tahap ke dua mengkonversi bilangan hasil tahap pertama (dalam basis-10) menjadi basis-m. Sebagai contoh ubahlah bilangan 2378 menjadi bilangan yang setara dalam basis-5 ! Tahap 1 : 2378 = 2 x 82 + 3 x 81 + 7 x 80 = 128 + 24 + 7 = 15910. Tahap 2 : 15910 = 1 x 53 + 1 x 52 + 1 x 51 + 4 x 50 = 11145. Jadi 2378 = 11145. Contoh lain adalah mengubah bilangan 52DA16 ke dalam basis-12 yang setara. Tahap 1 : 52DA16 = 5 x 163 + 2 x 162 + 13 x 161 + 10 x 160 = 2121010. Tahap 2 : 2121010 = 1 x 124 + 0 x 123 + 4 x 122 + 3 x 121 + 6 x 120 = 1043612. Jadi 52DA16 = 1043612. Ada kalanya pengubahan suatu bilangan dari basis-n ke basis-m tidak perlu melalui kedua tahap sebagaimana telah dijelaskan di atas. Jika ingin mengubah suatu bilangan dalam basis-2 (biner) menjadi bilangan setara dalam basis-8 (oktal) atau basis-16 (heksadesimal) dan sebaliknya, maka digunakan metode pengelompokan bit. Setiap digit bilangan oktal terdiri dari 3 bit biner, dan setiap digit bilangan heksadesimal terdiri dari 4 bit biner. Pengelompokan dimulai dari bagian LSB (Least Significant Bit) menjadi kelompok-kelompok digit bilangan oktal (3 bit) atau heksadesimal (4 bit), kemudian setiap kelompok dikonversi menjadi digit bilangan yang bersangkutan. Jika sisa bit hasil pengelompokan pada MSB (Most Significant Bit) tidak terdiri dari 3 bit atau 4 bit, maka dapat ditambahkan angka 0 (nol) secukupnya. Contoh : Ubahlah bilangan biner 11100101100001001 menjadi heksadesimal ! Karena basis tujuannya adalah heksadesimal, maka pengelompokannya dalam 4 bit seperti berikut : (tambah 0 pada MSB) (digit heksadesimal) Jadi : 1 1100 1011 0000 1001 0001 1100 1011 0000 1001 1 C B 0 9 111001011000010012 = 1CB0916 6. Operasi Bilangan Dalam sistem desimal telah dikenal dengan baik mengenai operasi-dasar bilangan, yakni penjumlahan, pengurangan, perkalian dan pembagian. Operasioperasi bilangan tersebut juga dapat dikenakan pada sistem bilangan yang lain seperti dalam sistem-sistem bilangan biner, basis-5, oktal, heksa-desimal, dan seterusnya. Tetapi pembahasan operasi bilangan kali ini lebih banyak pada sistem biner, sedangkan untuk sistem bilangan yang lain akan dikemukakan contoh hanya apabila dipandang perlu. Prinsip-prinsip penggunaan operasi bilangan itu sama dengan yang diterapkan pada sistem desimal. Oleh karena belum akrab dengan sistem bilangan selain desimal, maka untuk memudahkan pelaksanaan operasi hitung perlu pertolongan tabel operasi. Untuk sistem biner perhatikan tabel operasi berikut Tabel : Penjumlah Biner Tabel : Perkalian Biner + 0 1 x 0 1 0 0 1 0 0 0 1 1 10 1 0 1 Sebagaimana pada sistem desimal, bilangan biner dapat dijumlahkan, dikurangkan, dikalikan dan dibagi. Dimulai dari operasi penjumlahan pada bilangan biner. Penjumlahan antara dua bilangan biner dikerjakan dengan cara yang sama seperti pada penjumlahan bilangan desimal, bahkan penjumlahan pada bilangan biner lebih sederhana, persoalannya adalah orang tidak terbiasa dengan sistem biner. Berdasarkan pada tabel penjumlahan untuk bilangan biner hanya ada 4 (empat) hal yang dapat terjadi, yakni : 1) 0+0 =0 2) 0+1 =1+0 =1 3) 1 + 1 = 10 = 0 + simpanan (carry) 1 untuk posisi berikutnya, dan 4) 1 + 1 + 1 = 11 = 1 + simpanan (carry) 1 untuk posisi berikutnya. Hal yang ke empat terjadi dua bit pada posisi tertentu adalah 1 dan ada simpanan dari posisi sebelumnya. Berikut beberapa contoh penjumlahan dua bilangan biner : 1 1 0 1 1 1 0 0 1 1 1,0 1 1 1 1 0 1 1 1 1 1 1 1 0,1 1 0 ___________ + _________ + ___________ + 1 1 0 1 1 0 1 1 0 0 0 1 1 0,0 0 1 Di dalam mesin digital penjumlahan antara lebih dari dua bilangan biner pada saat yang sama tidak terjadi, karena rangkaian digital yang melaksanakan penjumlahan hanya dapat menangani dua bilangan pada saat yang bersamaan. Jika lebih dari dua bilangan yang ditambahkan, maka bilangan pertama dan ke dua dijumlahkan lebih dahulu dan hasil penjumlahan itu baru ditambahkan pada bilangan ke tiga, dan seterusnya. Penjumlahan biner merupakan operasi aritmatik yang paling penting di dalam sistem digital, karena operasi-operasi pengurangan, perkalian, dan pembagian dapat dikerjakan hanya dengan prinsip penjumlahan. Misalnya pengurangan dapat dibentuk dari penjumlahan dengan bilangan negatif. Perkalian tidak lain merupakan penjumlahan yang berulang. Sedangkan pembagian adalah pengurangan yang berulang. Selanjutnya dikemukakan dahulu contoh operasi lain bilangan biner dengan cara aljabar biasa. Pengurangan : 10 pinjaman (borrow) 1 1 0 1 1 bilangan yang dikurangi 1 0 1 1 0 bilangan pengurang _____________ 0 0 1 0 1 hasil operasi pengurangan. Perkalian : 1 1 0 1 1 1 0 bilangan yang dikalikan bilangan pengali _________ x 0 0 0 0 1 1 0 1 1 1 0 1 ________________ + 1 0 0 1 1 1 0 hasil operasi perkalian. Pembagian : 1 0 1 1 (pembagi) 1 0 1 (hasil bagi) 1 1 0 1 1 1 1 0 1 (bilangan yang dibagi) _ 1 1 1 1 0 1 _ 1 0 1 1 0 1 _ 0 Untuk pembanding, berikutnya dikemukakan operasi bilangan basis-5 dengan pertolongan tabel operasi berikut : Tabel Penjumlahan Basis-5 + 0 1 2 3 4 0 0 1 2 3 4 1 1 2 3 4 10 2 2 3 4 10 11 3 3 4 10 11 12 4 4 10 11 12 13 Tabel Perkalian Basis-5 x 0 1 2 3 4 0 0 0 0 0 0 1 0 1 2 3 4 2 0 2 2 11 13 3 0 3 11 14 22 4 0 4 13 22 31 Penjumlahan : 1 1 1 simpanan (carry) 4 3 3 25 bilangan pertama 3 3 4 45 bilangan ke dua __________________ + 1 3 2 3 Pengurangan 15 10 hasil penjumlahan. 10 pinjaman (borrow) 4 3 0 25 bilangan yang dikurangi 1 4 3 1 bilangan pengurang 5 _____________ 2 3 Perkalian : 2 15 hasil pengurangan. 3 45 bilangan yang dikalikan 4 25 bilangan pengali ________ x 1 2 3 0 1 3 ___________ + 3 1 3 35 hasil perkalian. Pembagian : 1 0 4 2 5 (hasil bagi) (pembagi) 45 4 3 2 35 4 (yang dibagi) _ 0 3 2 3 1 _ 0 1 3 0 1 3 _ 0 Operasi bilangan pada basis yang lain prinsipnya sama. Untuk basis lebih dari 10 kemungkinan terasa sulit oleh karena belum terbiasa saja. Sebagaimana telah diketahu bahwa mesin digital, seperti komputer dan kalkulator, hanya dapat mengolah data yang sifatnya biner. Lagi pula, mesin digital tersebut hanya mengenal operasi penjumlahan dan tidak mengenal operasi pengurangan. Sedangkan mesin digital mengolah bilangan negatif sama baiknya dengan mengolah bilangan positif. Oleh karena itu, operasi pengurangan harus bisa disajikan dalam bentuk operasi penjumlahan. Selain itu, untuk keperluan penyimpanan dan pembacaan bilangan diperlukan kejelasan tentang tanda dari suatu bilangan merupakan bilangan positif atau negatif. Seperti yang telah dikenal, bilangan positif diberi tanda „+‟ atau tanpa tanda di depan bilangan yang bersangkutan, sedangkan bilangan negatif dengan tanda „-„. Untuk ini diperlukan tanda bilangan. Hal ini biasanya dikerjakan dengan menambahkan bit lain kedalam suatu bilangan. Bit tambahan itu disebut sebagai bit-tanda (sign bit). Dalam sistem biner tanda „+‟ dan „-„ digantikan dengan „0‟ dan „1‟. Pada umumnya bit tanda itu berupa „0‟ untuk menyatakan suatu bilangan positif, dan „1‟ untuk bilangan negatif. Sebagai contoh : + 1011 atau 1011 dituliskan sebagai 0 1011 - 1101 dituliskan sebagai 1 1101. Untuk menyatakan bilangan negatif dalam mesin digital dapat digunakan beberapa metode. Dua metode yang paling dikenal adalah metode komplemen 1 dan metode komplemen 2. Bentuk komplemen 1 dari suatu bilangan biner diperoleh secara sederhana dengan mengubah setiap 0 dalam bilangan itu menjadi 1 dan setiap 1 di dalam bilangan itu menjadi 0. Dengan kata lain mengubah setiap bit menjadi komplemennya. Sebagai contoh komplemen 1 dari biner 101101 adalah 010010, dan komplemen 1 dari bilangan 011010 adalah 100101. Ketika bilangan negatif disajikan dalam bentuk komplemen 1, maka bit tandanya adalah 1 dan besar bilangannya dikonversi menjadi bentuk komplemen 1. Misalnya bilangan -5710 dapat disajikan menjadi biner negatif sebagai : -5710 = 1 111001 (besar bilangan dalam biner) = 1 000110 (bentuk komplemen 1). Perhatikan bahwa bit tanda tidak ikut dikomplemenkan tetapi dipertahankan sebagai 1 untuk menunjukkan bahwa bilangan itu negatif. Contoh lain bilangan negatif yang disajikan dalam bentuk komplemen 1 adalah : -1410 = 10001 -32610 = 1010111001 -710 = 1000. Agar lebih memahami metode komplemen 1 ini akan dilakukan operasi pengurangan pada bilangan biner 1101 – 1011. Pada operasi tersebut dapat ditambahkan 1111 asalkan diingat bahwa hasilnya nanti kelebihan 1111. Kelebihan itu harus dihilangkan agar diperoleh hasil yang sebenarnya. Selanjutnya perhatikan : 1101 + (1111 – 1011) = 1101 + 0100 = 1 0001. Bilangan 0100 pada operasi itu merupakan komplemen 1 dari bilangan -1011. Kelebihan 1111 dihilangkan dengan cara menambahkan EAC (End Around Carry = simpanan memutar) kepada LSD (Least Significant Digit = digit bobot terkecil). Dengan demikian hasil yang sebenarnya adalah : 0001 + 1 (EAC) = 0010. Bila operasi dilakukan dengan bit tanda, maka yang diubah ke dalam bentuk komplemen 1 adalah bagian besar bilangan saja (tidak termasuk bit tanda). Untuk contoh di atas adalah 0 1101 1 0100 _________ + 1 0 0001 1 ________ + 0 0010 (bilangan positif yang dikurangi) (komplemen 1 dari 1011 yang negatif) (EAC) (hasil operasi adalah + 0010 karena bit tanda 0). Contoh tersebut merupakan salah satu kemungkinan dari pengurangan A – B = C dengan A, B > 0 dan A > B, sehingga C > 0 (positif). Kemungkinan lain adalah A, B > 0 dan A < B, sehingga C < 0 (negatif). Perhatikan contoh berikut 1001 – 1110 = 0 1001 + 1 1110 0 1001 (yang dikurangi) 1 0001 (komplemen 1 dari pengurang) _______ + 01 1010 0 (EAC) _______ + 1 1010 (bukan hasil, karena masih negatif, bit tanda 1). Bila hasilnya negatif, maka hasil tersebut belum hasil yang sebenarnya. Hasil yang sesungguhnya adalah komplemen 1 dari besar bilangan hasil tersebut. Jadi, hasil yang sesungguhnya adalah 1 0101 = - 0101. Kemungkinan berikutnya adalah A < 0 dan B > 0, sehingga C < 0. Dalam hal ini harus diperhatikan bahwa banyaknya digit hasil operasi tidak boleh melebihi digit soal. Sehingga demi amannya harus ditambahkan satu digit yakni 0 sebagai MSD (Most Significant Digit = digit paling berbobot). Tambahan digit ini tidak akan mengubah besar bilangan yang bersangkutan. Sebagai contoh akan dicoba operasi pada -1101 - 1011 sebagai berikut : Demi amannya soal diubah menjadi - 01101 – 01011 Dengan bit tanda soal menjadi 1 01101 + 1 01011 1 10010 (komplemen 1 dari yang dikurangi) 1 10100 (komplemen 1 dari pengurang) _________ + 11 00110 1 (EAC) _________ + 1 00111 (hasilnya negatif, belum hasil yang sebenarnya) Hasil yang sebenarnya adalah komplemen 1 dari bilangan 1 00111 yaitu 1 11000 (ingat bit tanda tidak turut dikomplemenkan) atau Selanjutnya metode komplemen 2. -11000. Bentuk komplemen 2 dari suatu bilangan biner ditentukan dengan cara mengambil komplemen 1 dari bilangan itu kemudian menambahkan 1 pada posisi LSB (Least Significant Bit = bit paling tidak berbobot). Sebagai ilustrasi akan diubah bilangan biner 111001 (=57 10) ke dalam bentuk komplemen 2 –nya. 1 1 1 0 0 1 (bilangan awal) 0 0 0 1 1 0 (bentuk komplemen 1) 1 (menambahkan 1 pada LSB) ___________ + 0 0 0 1 1 1 Jadi, -5710 yang disajikan dalam bentuk komplemen 2 dituliskan sebagai 1 000111. Ingat bahwa bit paling kiri merupakan bit tanda dan 6 bit yang lain merupakan bentuk komplemen 2 dari besar bilangan awalnya. Operasi pengurangan dengan metode komplemen 2 juga memiliki tiga kemungkinan yaitu A – B = C dengan C > 0, A – B = C dengan A < B, dan A – B = C dengan A < 0, B > 0. Untuk setiap kemungkinan tersebut, perhatikan contoh-contoh berikut ! 1) 1110 – 0101 = 0 1110 + 1 0101 0 1110 (bilangan positif yang dikurangi) 1 1011 (komplemen 2 dari pengurangnya) ________ + 10 1001 (EAC, bit tanda 0, dan hasil sesungguhnya). Hasil yang sebenarnya diperoleh dengan menghilangkan EACnya. Jadi hasil yang sebenarnya adalah 0 1001 atau atau 1001. 2) 10011 – 11001 = 0 10011 + 1 11001 0 10011 (bilangan positif yang dikurangi) 1 00111 (komplemen 2 dari pengurangnya) ________ + 01 11010 (EAC, bit tanda 1, dan hasil belum sesungguhnya). +1001 Karena hasil masih negatif, maka hasil yang sebenarnya adalah komplemen 2 dari 11010 yaitu 00110. Jadi hasil pengurangannya adalah 1 00110 atau – 00110. 3) -011011 – 011101 = 1 011011 + 1 011101 1 100101 (komplemen 2 dari yang dikurangi) 1 100011 (komplemen 2 dari pengurangnya) ________ + 11 001000 (EAC, bit tanda 1, dan hasil belum sesungguhnya). Karena hasilnya negatif (dengan bit tanda 1), maka setelah menghilangkan EAC, kemudian mengambil komplemen 2 dari 001000 dan akan diperoleh 111000. Jadi hasil sebenarnya dari pengurangan tersebut adalah 1 111000 atau - 111000. Di antara kedua metode yang dikemukakan di atas, maka metode komplemen 2 paling banyak digunakan. Karena dengan metode komplemen 2 memungkinkan untuk membentuk operasi pengurangan hanya penggunakan operasi penjumlahan yang sesungguhnya. Ini berarti bahwa mesin digital dapat menggunakan rangkaian yang sama untuk melaksanakan kedua operasi tersebut. Dengan demikian mendapat penghematan dalam perangkat kerasnya. Pengubahan dari bentuk komplemen ke nilai biner yang sesungguhnya sangat sederhana. Dari bentuk komplemen 1 ke nilai biner yang sesungguhnya ditempuh dengan cara meng-komplemen-kan setiap bit lagi. Sedangkan dari bentuk komplemen 2 ke nilai biner yang sesungguhnya dilakukan dengan mengkomplemen-kan setiap bit dan kemudian menambahkan 1 pada LSB. Dalam dua hal itu, pengubahan kembali ke bentuk biner yang sesungguhnya ditempuh melalui proses yang sama yang telah ditempuh untuk menghasilkan bentuk komplemennya. 7. Soal-soal 1. Berapakah banyaknya bit (dalam sistem biner) yang diperlukan untuk memilahkan di antara 99 keadaan yang berbeda ? 2. Ubahlah bilangan biner berikut ke dalam desimal : a. 10111 b. 110001011 c. 11011,10111 d. 0,00010011 e. 110001111,011101 3. Ubahlah bilangan desimal berikut ke dalam biner : a. 251 b. 3482 c. 0,635 d. 48,65 e. 237,842 4. Ubahlah bilangan-bilangan berikut ke dalam desimal : a. 11012 b. 23014 c. 34205 d. 27658 e. 4D2E16 5. Ubahlah bilangan biner berikut masing-masing ke dalam bilangan oktal dan heksadesimal : a. 1011 b. 11111011 c. 100000111111 d. 1001010110001101 e. 10000010010111101110 6. Kerjakanlah pengurangan bilangan biner berikut masing-masing dengan metode komplemen 1 dan komplemen 2 : a. 101101 – 100111 b. 101011 – 111001 c. –110101 – 101110 d. –110101 – 11101 e. 10111 – (– 110010 ) 7. Kerjakanlah penjumlahan bilangan berikut sesuai dengan basisnya : a. 1011,1012 + 101,012 b. 231,214 + 3112,0034 c. 35478 + 230518 d. A87B12 + 79B412 e. 581DF716 + AE5C0716 8. Kerjakanlah pengurangan bilangan berikut sesuai dengan basisnya : a. 1011,1012 - 101,012 b. 3231,214 - 312,0034 c. 635478 - 230518 d. A87B12 - 79B412 e. 581DF716 - 2E5C0716 9. Kerjakanlah perkalian bilangan berikut sesuai dengan basisnya : a. 11011 x 1011 b. 2314 x 324 c. 35478 x 20518 d. A87B12 x A412 e. 581DF716 x C0716 10. Kerjakanlah pembagian bilangan berikut sesuai dengan basisnya : a. 110111012 : 1012 b. 301234 : 324 c. 7564028 : 548 d. A7B812 : 412 e. 981DF16 : 516 BAB III SISTEM SANDI (KODE) Pada mesin digital, baik instruksi (perintah) maupun informasi (data) diolah dalam bentuk biner. Karena mesin digital hanya dapat „memahami‟ data dalam bentuk biner. Kita sering menggunakan mesin-mesin digital seperti jam digital, multimeter digital, termometer digital, kalkulator, komputer, dan sebagainya. Tampilan yang langsung dapat dilihat berupa angka desimal atau kumpulan huruf latin yang dikenal dalam keseharian, padahal proses yang terjadi di dalam mesin-mesin tersebut berbentuk biner. Sedangkan instruksi maupun informasi dalam bentuk biner tidak disukai karena di luar kebiasaan sehingga terasa rumit dan kurang praktis. Kita telah terbiasa dengan huruf latin dari A sampai Z dan angka-angka dari 0, 1, 2, …, sampai 9. Sehingga apabila disajikan bilangan atau kata dalam bentuk biner tidak segera dapat diketahui maknanya. Misalnya pada sederet bit biner 00010111, kita tidak segera tahu bahwa deretan bit itu menyatakan bilangan atau huruf. Jika bilangan, deretan bit tersebut dapat menunjukkan bilangan 1716 atau bahkan 2310. Agar deretan bit 00010111 dapat tampil sebagai bilangan 17 16 atau 2310 diperlukan teknik atau rangkaian tertentu. Sebaliknya, agar 1716 atau 2310 dapat dikenali oleh suatu mesin digital sebagai 00010111 juga diperlukan tehkik atau rangkaian tertentu. Dalam pemakaian kalkulator, bilangan yang dimasukkan melalui tombol kunci (tuts) perlu diubah dari bentuk desimal menjadi biner. Sebaliknya bilangan yang muncul pada tampilan kalkulator mengalami proses pengubahan dari bentuk biner ke dalam format 7-segmen yang umumnya berbentuk desimal. Perhatikan ilustrasi pengubahan tampilan kalkulator pada Gambar 3.1. Kita akan memasukkan bilangan desimal 5 dengan cara menekan tombol kunci 5. Rangkaian enkoder (penyandi) mengubah desimal 5 menjadi biner 0101. Unit pengolah pada kalkulator (CPU : Central Processing Unit) menerima bilangan itu dalam bentuk biner 0101 karena CPU hanya dapat mengolah data dalam bentuk biner. Selanjutnya rangkaian dekoder (pembaca sandi) mengubah bilangan biner 0101 kembali menjadi bentuk desimal 5. Akhirnya yang muncul dalam tampilan adalah desimal 5 seperti semula. Dari ilustrasi tersebut memperlihatkan terjadinya proses pengubahan dari satu jenis sandi (kode) dari satu sistem bilangan menjadi jenis sandi dari sistem bilangan yang lain. Awalnya dari sandi desimal menjadi biner, dan akhirnya dari sandi biner menjadi sandi desimal. Suatu rangkaian pengubah pesan bermakna (misal desimal) menjadi sandi tertentu (misal biner) disebut enkoder (penyandi). Sedangkan, sebaliknya, rangkaian pengubah sandi tertentu kembali menjadi pesan yang bermakna disebut dekoder (pembaca sandi). 7 8 9 4 5 6 1 2 3 0 + = Enkoder CPU Dekoder Gambar 3.1 : Aliran pengubahan tampilan kalkulator. 1. Sandi BCD (Biner Coded Decimal) Kita telah terbiasa dan akrap dengan sistem bilangan desimal dan karenanya sistem ini dianggap sebagai sandi yang paling bermakna. Dalam mesin digital biasa menampilkan bilangan dalam bentuk desimal. Sedangkan proses komputasi dalam mesin digital dalam bentuk biner. Jika hasil komputasi tetap ditampilkan dalam bentuk biner, kita mengalami hambatan atau bahkan sulit memahaminya, karena kita tidak biasa dengan bilangan yang tampil dalam bentuk biner. Jadi tampilan desimal lebih mudah difahami dari pada tampilan biner. Oleh karena itu diperlukan suatu cara penyandian dari biner ke desimal dan sebaliknya. Sebagai contoh bilangan desimal 25 dan 43 masing-masing disandikan dalam biner sebagai berikut : 2510 = 110012 4310 = 1010112 . Kita lihat bahwa sembarang bilangan desimal dapat disajikan dalam bentuk biner yang setara. Sekelompok 0 dan 1 dalam bentuk biner dapat dipikirkan sebagai penggambaran sandi suatu bilangan desimal. Dua contoh di atas memperlihatkan bahwa setiap angka biner mempunyai nilai sesuai dengan posisinya (satuan, duaan, empatan, dan seterusnya). Dalam contoh di atas semua digit bilangan desimal disandikan langsung, atau sebaliknya semua pernyataan biner menyandikan suatu bilangan desimal, jadi bukan digit per digit yang disandikan. Dalam sandi jenis lain bilangan-bilangan 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9 disandikan sendiri-sendiri. Dengan demikian untuk menyatakan bilangan desimal lebih dari satu digit, maka setiap digitnya disandikan sendiri. Salah satu sistem sandi yang cukup terkenal adalah BCD atau desimal yang disandikan biner. Karena digit desimal yang terbesar 9, maka diperlukan 4 bit biner untuk menyandi setiap digit. Susunan 4 bit biner tersebut menghasilkan 16 kombinasi yang berbeda, tetapi hanya diperlukan 10 kombinasi di antaranya. Untuk menyatakan bilangan desimal N digit diperlukan N x 4 bit biner. Untuk bilangan bulat, kelompok 4 bit yang pertama (paling kanan) menyatakan satuan, kelompok 4 bit ke dua adalah puluhan, kelompok 4 bit ke tiga merupakan ratusan, dan seterusnya. Sebagai contoh bilangan desimal 468 (terdiri dari 3 digit) memerlukan 3 kelompok masing-masing 4 bit seperti tampak pada Tabel 3.1 berikut. Tabel 3. 1 : Desimal 468 disajikan dengan BCD Desimal 4 6 BCD 0 Bobot 800 400 200 100 1 0 Ratusan 0 8 0 1 1 0 1 0 0 0 80 40 20 10 8 4 2 1 Puluhan Satuan Setiap digit desimal diubah secara langsung menjadi biner yang setara. Perlu dicatat bahwa 4 bit biner selalu digunakan untuk setiap digit. Dengan demikian sandi 4 bit biner yang digunakan adalah dari 0000, 0001, 0010, 0011, …, hingga 1001. Dalam BCD tidak digunakan sandi-sandi 1010, 1011, 1100, 1101, 1110, dan 1111. Jika sembarang bilangan 4 bit yang terlarang itu terjadi pada mesin yang menggunakan sandi BCD, maka biasanya akan terjadi indikasi terjadinya kesalahan. Tampaknya penulisan dengan cara BCD ini merupakan pemborosan bit, karena 4 bit biner dapat untuk melambangkan 16 bilangan (pada BCD hanya 10). Tetapi keuntungannya kita tidak perlu menuliskan bilangan yang lebih besar dari 9 (dalam desimal tidak dikenal A, B, …, F), sehingga BCD sangat cocok untuk memperagakan bilangan desimal, cukup dengan mengubah setiap karakter BCD menjadi bilangan desimal yang diinginkan. 2. Sandi Excess-3 (XS-3) Dikenal pula sandi jenis lain yang menarik dan kadang-kadang sangat bermanfaat. Misalnya sandi Excess-3 (XS-3). Jenis sandi XS-3 ini seperti BCD, terdiri dari kelompok 4 bit untuk melambangkan sebuah digit desimal. Sandi XS3 untuk bilangan desimal dibentuk dengan cara yang sama seperti BCD kecuali bahwa 3 ditambahkan pada setiap digit desimal sebelum penyandian ke binernya. Misalkan untuk menyandi bilangan desimal 5 dalam XS-3, pertama kali menambahkan 3 kepada 5 yang menghasilkan 8, kemudian 8 disandikan dalam biner 4 bit yang setara, yaitu 1000. 5 + 3 = 8 1000. Sansi XS-3 hanya menggunakan 10 dari 16 kelompok sandi 4 bit yang mungkin. Kelompok biner 4 bit yang tidak valid (terlarang) pada sandi XS-3 adalah 0000, 0001, 0010, 1101, 1110, dan 111. 3. Sandi Gray Sandi Gray merupakan sistem sandi tak berbobot karena posisis bit dalam kelompok sandi tidak memiliki nilai bobot tertentu. Dengan demikian sandi Gray tidak cocok dalam operasi aritmatik, dan aplikasinya banyak dijumpai dalam piranti input/output dan ADC. Dalam sandi Gray, antar sandi yang berdekatan mengalami perubahan bit minimum, karena sifatnya yang hanya berubah satu bit dalam kelompok apabila berubah dari satu digit bilangan ke digit bilangan berikutnya. Hal ini dapat mencegah terjadinya kesalahan dalam transisi perubahan apabila lebih dari satu bit mengalami perubahan yang kemungkinan besar perubahan itu terjadi tidak bersamaan (satu bit lebih dulu berubah dari yang lain). Misalnya perubahan dari desimal 7 (binernya 0111) menjadi desimal 8 (binernya 1000) yang seluruh bitnya mengalami perubahan yang kemungkinan dapat bertransisi dahulu ke biner 1111 (desimal 15). Kejadian 1111 tersebut sebenarnya hanya sementara tetapi dapat menimbulkan operasi yang dapat mengacau unsur-unsur yang dikendalikan bit tersebut. Aturan untuk mengubah biner ke sandi Gray adalah sebagai berikut : a. Bit pertama (paling kiri) sandi Gray sama dengan bit pertama dari bilangan biner. b. Bit ke dua sandi Gray sama dengan EX-OR dari bit pertama dan bit ke dua bilangan biner. (EX-OR : sama dengan 1 bila kedua bit biner itu berbeda, dan 0 bila sama). c. Bit sandi Gray ke tiga sama dengan EX-OR bit ke dua dan bit ke tiga bilangan biner. d. Dan seterusnya, perhatikan Gambar 3.2 yang merupakan gerbang EX-OR untuk mengubah bit-bit bilangan biner ke dalam sandi Gray, kecuali bit pertama. Bilangan Biner Sandi Gray, Kecuali bit pertama Bit ke (n-1) Bit ke n Bit ke n Gambar 3.2 : Pengubah bit-bit sandi biner ke dalam sandi Gray. Sebagai contoh mengubah bilangan biner 10110 ke dalam sandi Gray (hasilnya 11101) adalah sebagai berikut : 1 0 1 1 0 (sandi biner) 1 1 1 0 1 (sandi Gray) Bit pertama Selanjutnya untuk mengubah sandi Gray menjadi biner digunakan langkahlangkah (yang berlawanan dengan cara mengubah biner ke sandi Gray) sebagai berikut : a. Bit pertama biner sama dengan bit pertama sandi Gray. b. Bila bit sandi Gray ke dua 0 maka bit biner ke dua sama dengan yang pertama, dan bila bit sandi Gray ke dua 1 maka bit biner ke dua adalah kebalikan dari bit biner pertama. c. Bila bit sandi Gray ke tiga 0 maka bit biner ke tiga sama dengan yang ke dua, dan bila bit sandi Gray ke tiga 1 maka bit biner ke tiga adalah kebalikan dari bit biner ke dua. d. Demikian seterusnya. Sebagai contoh mengubah sandi Gray 1101 ke dalam biner yang hasilnya adalah 1001, seperti tampak pada ilustrasi berikut : 1 beda 0 sama 1 beda 1 1 0 1 (sandi Gray) 1 0 0 1 (sandi biner) Ternyata setiap bit biner (kecuali yang pertama) diperoleh dengan mencari EXOR dari bit sandi Gray yang sesuai dan bit biner sebelumnya. Perhatikan Gambar 3.3 berikut ! Sandi Gray Sandi Biner, Kecuali bit pertama Bit ke n Sandi Gray Bit ke n Bit ke (n-1) Sandi biner Gambar 3.3 : Pengubah bit-bit sandi Gray ke dalam sandi Biner. Contoh berikutnya mengubah sandi Gray 1101 ke dalam biner yang hasilnya adalah 1001. 1 1 0 1 (sandi Gray) 1 0 0 1 (sand I biner) 4. Sandi ASCII Jika diperhatikan tombol kunci (keyboard) pada komputer, sedikitnya terdapat 87 tombol kunci baik yang berupa huruf besar dan kecil, angka, tanda khusus, maupun tombol dengan fungsi khusus. Komputer harus mampu menangani informasi numerik maupun non numerik, sehingga komputer harus mampu menganalisis berbagai sandi yang mencakup angka, huruf, tanda, dan fungsi tertentu. Sandi-sandi ini dikelompokkan sebagai sandi alpanumerik (alphabed and numeric). Sejumlah tombol yang lengkap dan memadai yang diperlukan itu meliputi 26 tombol untuk huruf kecil, 26 tombol untuk huruf besar, 10 tombol untuk digit angka, dan sedikitnya 25 tombol untuk tanda maupun fungsi khusus seperti +, /, %, $, @, #, Esc, Insert, Page Up, dan seterusnya. Untuk menampilkan 87 karakter yang berbeda tersebut dengan sandi biner setidaknya diperlukan 7 bit. Dengan 7 bit tersebut akan diperoleh 2 7 = 128 sandi biner yang berbeda. Sandi alpanumerik yang paling terkenal adalah sandi ASCII (American Standard Code for Information Interchange) yang digunakan oleh hampir seluruh komputer. Pada Tabel 3.2 berikut ini dikemukakan sandi ASCII. Tabel 3.2 : Sandi ASCII (7 bit) LSB MSB 000 001 010 011 100 101 110 111 0000 NUL DLE SP 0 @ P 0001 SOH DC1 ! 1 A Q A q 0010 STX DC2 “ 2 B R B r 0011 ETX DC3 # 3 C S C s 0100 EOT DC4 $ 4 D T D t 0101 ENQ NAK % 5 E U E u 0110 ACK SYN & 6 F V F v 0111 BEL ETB „ 7 G W G w 1000 BS CAN ( 8 H X H x 1001 HT EM ) 9 I Y I y 1010 LF SUB * : J Z J z 1011 VT ESC + ; K [ K { 1100 FF FS , < L \ L 1101 CR GS - = M ] M } 1110 SO RS . > N N 1111 SI US / ? O O DEL p Sandi ASCII selengkapnya dapat dilihat pada daftar di luar buku ini. Sebagai contoh, seorang operator komputer memasukkan suatu pernyataan dari papan kunci berupa tulisan STOP yang maksudnya memerintah komputer untuk menghentikan suatu program, maka sandi biner yang dikenali komputer adalah sebagai berikut : 101 0011 101 0100 100 1111 S T O 101 0000 P 5. Bit Paritas Pemindahan data dari satu tempat ke tempat lain pada umumnya dalam bentuk biner. Misalnya pemindahan data dari komputer ke disket, pemindahan informasi melalui jalur telepon, pengambilan data dari memori komputer untuk ditempatkan pada unit aritmatik, dan sebagainya. Proses pemindahan data tersebut dapat mengalami kesalahan sekalipun pirantinya telah dirancang sedemikian canggih. Meskipun terjadinya kesalahan itu relatif kecil, tetapi dapat menghasilkan sesuatu yang tidak berguna dan bahkan sangat fatal. Sehingga diperlukan mekanisme pemeriksaan data untuk memperkecil kemungkinan terjadinya kesalahan data. Salah satu cara yang sangat terkenal untuk mendeteksi kesalahan adalah adalah metode paritas. Di dalam sekelompok data ditambahkan bit yang disebut bit paritas. Jadi bit paritas merupakan bit tambahan yang disertakan ke dalam sekelompok sandi yang sedang dipindahkan dari satu tempat ke tempat lain. Bit paritas dapat berupa 0 atau 1 tergantung pada benyaknya angka 1 yang dimuat di dalam kelompok sandi itu, sehingga dikenal paritas genap dan paritas ganjil. Pada metode paritas genap, nilai bit paritas dipilih sedemikian hingga banyaknya angka 1 dalam suatu kelompok sandi (termasuk bit paritas) berjumlah genap. Sebagai contoh suatu kelompok sandi 100 0011 yang merupakan huruf C pada sandi ASCII. Kelompok sandi itu memiliki 1 sebanyak 3 buah (ganjil, tidak termasuk bit paritas). Selanjutnya akan ditambahkan bit paritas 1 untuk membuat banyaknya angka 1 berjumlah genap (4 termasuk bit pritasnya). Kelompok sandi yang baru, termasuk bit paritas, kemudian menjadi 1 100 0011 Bit paritas yang ditambahkan Jika suatu kelompok sandi berisi 1 dalam jumlah genap, maka bit paritas yang ditambahkan bernilai 0. Sebagai contoh, suatu kelompok sadi 100 0001 (sandi ASCII untuk huruf A) akan ditandai dengan bit paritas 0, sehingga diperoleh sandi yang baru (termasuk bit paritas) yaitu 0 100 0001. Metode paritas ganjil digunakan dengan cara yang persis sama kecuali bahwa bit paritas dipilih sedemikian jumlah angka 1 (termasuk bit paritas) adalah ganjil. Sebagai contoh, untuk kelompok sandi 100 0001 diberi bit paritas 1 sehingga diperoleh sandi baru sebagai 1 100 0001. Untuk kelompok sandi 100 0011 dikenai bit paritas 0 dan diperoleh sandi baru yakni 0 100 0011. Terlepas dari paritas genap atau ganjil yang digunakan, bit paritas menjadi bagian yang nyata dari suatu sandi. Penambahan bit paritas kepada sandi ASCII 7 bit menghasilkan sandi 8 bit. Sehingga bit paritas diperlakukan seperti bit-bit lain di dalam sandi tersebut. Bit paritas digunakan untuk mendeteksi kesalahan bit tunggal yang terjadi selama pemindahan data dari satu tempat ke tempat lain. Sebagai ilustrasi akan dipindahkan huruf A dan digunakan paritas ganjil. Kode yang dipindahkan berupa : 1 100 0001 Ketika rangkaian penerima menerima sandi ini, ia akan memeriksa untuk mengetahui bahwa sadi itu berisi 1 dalam jumlah ganjil (termasuk bit paritas). Sehingga penerima akan menganggap bahwa sandi itu diterima benar. Selanjutnya dianggap bahwa karena suatu gangguan atau kegagalan, maka penerima sebenarnya menerima sandi sebagai : 1 100 0000 Penerima akan mendapatkan bahwa sandi tersebut berisi 1 dalam jumlah genap. Hal ini memberitahu penerima bahwa pasti terjadi kesalahan sandi, karena sebelumnya antara pengirim dan penerima sandi telah setuju untuk menggunakan paritas ganjil. Tidak ada cara bahwa penerima dapat memberitahukan bit mana yang mengalami kesalahan, karena ia tidak tahu sandi apa yang dimaksudkan. Selanjutnya menjadi jelas bahwa metode paritas ini tidak akan bekerja jika terjadi 2 bit yang salah, sebab dua keslahan tidak akan mengubah genapganjilnya jumlah 1 dalam sandi itu. Metode paritas hanya digunakan dalam keadaan di mana kemungkinan kesalahan satu bit sangat kecil dan kemungkinan kesalahan dua bit boleh dikatakan tidak ada. 6. Aplikasi Sistem Bilangan dan Sandi Suatu rumah bersalin memiliki 3 buah inkubator untuk menempatkan anak-anak yang memerlukan perawatan khusus. Keadaan temperatur (T), kadar oksigen (O), kelembaban (M) dan suara (V) pada setiap inkubator dapat dimonitor dari ruang lain menggunakan komputer. Kapan saja temperatur, kadar oksigen, kelembaban dan suara melebihi atau kurang dari (keadaan bahaya) nilai normal yang telah ditentukan, maka sensor-sensor besaran pada setiap inkubator akan memberikan data “1” kepada komputer. Jika semua keadaan besaran tersebut normal, maka komputer akan menerima data “0”. Ilustrasi sistem tersebut dapat dilihat pada Gambar 3.4 berikut. Inkubator 2 Inkubator 1 Inkubator 0 T2 O2 M2 V2 T1 O1 M1 V1 T0 O0 M0 V0 MSB LSB T2 O2 M2 V2 T1 O1 M1 V1 T0 O0 M0 V0 Sistem monitor pada komputer Gambar 3.4 : Sistem monitor inkubator. a. Jika komputer membaca data $000 (BCD : 0000 0000 0000), maka setiap inkubator dalam keadaan normal atau aman atau tidak membahayakan atau tidak ada hal yang mencurigakan. b. Jika komputer membaca $A51 (BCD : 1010 0101 0001), maka ada kejadian bahwa T2, M2, O1, V1, dan V0 dalam keadaan tidak normal atau ada hal yang membahayakan pada anak di dalam inkubator yang bersangkutan. c. Jika komputer membaca $0F0 (BCD : 0000 1111 0000), maka ada kejadian bahwa T1, O1, M1 dan V1 atau inkubator 1 dalam keadaan tidak normal atau membahayakan pada anak di dalam inkubator tersebut. d. Jika anak-anak yang ditempatkan dalam ketiga inkubator tersebut semua menangis, sedangkan hal-hal lain dalam keadaan normal, maka komputer akan menerima pesan atau data $111 (BCD : 0001 0001 0001). e. Dan seterusnya. 7. Soal-soal 1. Ubahlah bilangan dalam sandi BCD berikut ke dalam sandi desimal : a. 1001 0101BCD b. 0010 0000 BCD c. 0111 0100 BCD d. 1001 0011 0110 0001 0010 BCD e. 1000 0111 0101 0011 1001 BCD 2. Jelaskan perbedaan antara sandi BCD dengan sistem bilangan biner ! 3. Ubahlah bilangan desimal berikut ke dalam bilangan sandi BCD : a. 54 b. 132 c. 8705 d. 43219 e. 908756 4. Dengan bantuan tabel sandi ASCII (7 bit); ubahlah angka, simbol, huruf, karakter atau fungsi berikut ke dalam sandi tersebut ! a. & b. 10% c. (9+x) d. y - 7 e. ESC 5. Jika pernyataan berikut merupakan pesan dalam sandi ASCII, apakah makna dari pernyataan berikut (tanda minus atau – tidak perlu diubah) ! a. 1010000-1010101-1010011-1001000 b. 1010011-1000001-1010110-1000101 c. 1010010-1100101-1100001-1100100 d. 1010111-1110010-1101001-1110100-1100101 e. 1101010-1110101-1101101-1110000 BAB IV GERBANG LOGIKA Hakekat rangkaian elektronika digital adalah menghasilkan keluaran digital dari masukan digital. Seperti kita ketahui, mesin-mesin digital hanya mampu mengenali dan mengolah data yang berbentuk biner. Dalam sistem biner hanya diijinkan dua keadaan yang tegas berbeda. Contoh dua keadaan yang tegas berbeda tersebut adalah hidup-mati, tinggi-rendah, benar-salah, sambung-putus, terbuka-tertutup, siang-malam, besar-kecil, susah-senang, potensial tinggi-potensial rendah, dan sebagainya. Dua keadaan dari sistem biner itu disimbolkan dengan angka biner 0 atau 1. Misalnya hidup : 1 dan mati : 0, tinggi : 1 dan rendah : 0, benar : 1 dan salah : 0 dan seterusnya. Dapat pula hidup : 0 dan mati : 1, tinggi : 0 dan rendah : 1, benar : 0 dan salah : 1 dan seterusnya tergantung dari kesepakatan sejak awal. Nilai 1 atau 0 dari sistem biner itu disebut status atau keadaan logika. Bila keadaan 1 menyatakan potensial tinggi dan 0 menyatakan potensial rendah maka sistemnya disebut sistem logika positif. Sebaliknya, bila nilai 0 menyatakan potensial tinggi dan 1 untuk potensial rendah maka hal itu termasuk dalam logika negatif. Pada umumnya digunakan logika positif. Pada alat digital, keadaan biner tersebut adalah potensial tinggi (biasanya +5 volt) dan potensial rendah (biasanya 0 volt) terhadap acuan tertentu (biasanya 0 volt). Keadaan biner itu juga dapat diperlihatkan dengan lampu yang menyala atau padam. Alat-alat elektronik digital tersusun dari rangkaian digital, yaitu rangkaian yang masukan dan keluarannya memenuhi sistem biner. Rangkaian itu dikenal pula sebagai gerbang logika. Dengan demikian pada gerbang logika memenuhi aturan main aljabar logika atau aljabar Boole atau sistem biner. Kenyataannya dalam aljabar Boole hanya mengenal tiga operasi dasar yaitu OR, AND, dan NOT. Operasi tersebut dapat direalisasikan dalam bentuk rangkaian elektronik berupa gerbang logika. Ketiga gerbang logika itu dapat dikembangkan menjadi gerbang logika lain yang sangat bermanfaat seperti NAND (NOT-AND), NOR (NOT-OR), EX-OR (EXCLUSIVE OR), dan EX-NOR (EXCLUSIVE NOT OR). Pada gerbang logika memiliki satu atau lebih masukan dan hanya satu keluaran. Hubungan antara keadaan keluaran dan semua kombinasi keadaan masukan ditunjukkan melalui tabel kebenaran. 1. Gerbang OR Gerbang OR memiliki dua atau lebih saluran masukan dan satu saluran keluaran. Selanjutnya didefinisikan bahwa keadaan keluaran gerbang OR akan 1 (tinggi) bila satu atau lebih masukannya dalam keadaan 1 (tinggi). Misalkan A maupun B menyatakan saluran masukan gerbang OR yang saling bebas yang masing-masing hanya dapat bernilai 1 (tinggi) atau 0 (rendah) dan Y menyatakan saluran keluarannya yang hanya dapat bernilai 1 atau 0, maka hubungan antara masukan dan keluaran pada gerbang OR tersebut dapat dituliskan sebagai : Y = A OR B atau Y = A + B. Dan tabel kebenaran untuk gerbang OR dua masukan tampak pada Tabel 4.1 berikut : Tabel 4.1 : Tabel kebenaran gerbang OR dua masukan. A B Y=A+B 0 0 0 0 1 1 1 0 1 1 1 1 Sedangkan simbol rangkaian gerbang OR tampak pada Gambar 4.1 di bawah ini A B Y Gambar 4. 1 : Simbol rangkaian gerbang OR dua masukan. Jika C menyatakan saluran masukan ke tiga pada gerbang OR maka akan diperoleh gerbang OR dengan tiga masukan. Tabel kebenaran dan simbol rangkaian gerbang OR tiga masukan tampak sebagai berikut : Tabel 4.2 : Tabel kebenaran gerbang OR tiga masukan. A B C Y= A+B+C A 0 0 0 0 B 0 0 1 1 C 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 Y Gambar 4.2 : Simbol rangkaian gerbang OR tiga masukan Ide tersebut dapat dikembangkan untuk gerbang OR empat masukan, lima masukan, dan seterusnya. Hal-hal yang penting untuk diperhatikan berkaitan dengan gerbang OR adalah : a. Keluaran gerbang OR bernilai 1 jika ada masukannya yang bernilai 1. b. Keluaran gerbang OR bernilai 0 hanya jika semua masukannya bernilai 0. c. Pada operasi OR berlaku antara lain 1 + 1 = 1, 1 + 1 + 1 = 1, dan seterusnya. 2. Gerbang AND Gerbang AND memiliki dua atau lebih saluran masukan dan satu saluran keluaran. Selanjutnya didefinisikan bahwa keadaan keluaran gerbang AND akan 1 (tinggi) bila dan hanya bila semua masukannya dalam keadaan 1 (tinggi). Misalkan A maupun B menyatakan saluran masukan gerbang AND yang saling bebas yang masing-masing hanya dapat bernilai 1 (tinggi) atau 0 (rendah) dan Y menyatakan saluran keluarannya yang hanya dapat bernilai 1 atau 0, maka hubungan antara masukan dan keluaran pada gerbang AND tersebut dapat dituliskan sebagai : Y = A AND B atau Y= A.B atau Y = AB. Dan tabel kebenaran untuk gerbang AND dua masukan tampak pada Tabel 4.3 berikut : Tabel 4.3 : Tabel kebenaran gerbang AND dua masukan. A B Y = AB 0 0 0 0 1 0 1 0 0 1 1 1 Sedangkan simbol rangkaian gerbang AND tampak pada Gambar 4.3 di bawah ini . A Y B Gambar 4. 3 : Simbol rangkaian gerbang AND dua masukan. Jika C menyatakan saluran masukan ke tiga pada gerbang AND maka akan diperoleh gerbang AND dengan tiga masukan. Tabel kebenaran dan simbol rangkaian gerbang AND tiga masukan masing-masing tampak pada Tabel 4.4 dan Gambar 4.4 sebagai berikut : Tabel 4.4 : Tabel kebenaran gerbang AND tiga masukan. A B C Y = ABC 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 Gambar 4.4 : 1 0 1 0 1 1 0 0 Simbol rangkaian gerbang AND tiga masukan 1 1 1 1 A B Y C Ide tersebut dapat dikembangkan untuk gerbang AND empat masukan, lima masukan, dan seterusnya. Hal-hal yang penting untuk diperhatikan berkaitan dengan gerbang AND adalah a. Keluaran gerbang AND bernilai 1 bila dan hanya bila semua masukannya bernilai 1. b. Keluaran gerbang AND bernilai 0 jika ada masukannya yang bernilai 0. c. Pada operasi AND berlaku antara lain 1.1 = 1, 1.1.1 = 1, dan seterusnya; 0.0 = 0.1 = 1.0 = 0, 0.0.0 = 0.0.1 = 0.1.0 = 0.1.1 = 1.1.0 = 1.0.1 = 1.0.0 = 0, dan seterusnya. 3. Gerbang NOT (INVERTER) Kita sering memerlukan kebalikan (komplemen) dari suatu pernyataan logika. Oleh karenanya kita memerlukan gerbang NOT (INVERTER). Tidak seperti gerbang OR dan AND, gerbang NOT hanya memiliki satu saluran masukan dan satu saluran keluaran. Keadaan keluatan gerbang NOT selalu berlawanan (kebalikan atau komplemen) dari keadaan masukannya. Jika A menyatakan saluran masukan dan Y merupakan saluran keluaran pada gerbang NOT, maka hubungan antara A dan Y dituliskan sebagai berikut : Y = NOT A atau Y = A . Tabel kebenaran dan simbol rangkaian gerbang NOT berturut-turut tampak pada Tabel 4.5 dan Gambar 4.5 seperti berikut : Tabel 4.5 : Tabel kebenaran gerbang NOT A Y= A 0 1 1 0 A Y Gambar 4.5 : Simbol rangkaian gerbang NOT. 4. Gerbang NOR dan NAND Gerbang OR ataupun AND masing-masing dapat digabungkan dengan gerbang NOT. Gerbang AND yang diikuti dengan gerbang NOT menghasilkan gerbang NAND (NOT AND). Sedangkan gerbang OR yang diikuti dengan gerbang NOT menghasilkan gerbang NOR (NOT OR). Dengan demikian gerbang NAND ataupun NOR masing-masing memiliki dua atau lebih saluran masukan dan satu saluran keluaran. Perhatikan Gambar 4.6 dan Gambar 4.7 berikut ! A A Y B (a) Y B (b) Gambar 4.6 : (a). Gabungan gerbang AND dan NOT (b). Simbol rangkaian gerbang NAND dua masukan. A A Y B Y B (a) (b) Gambar 4.7 : (a). Gabungan gerbang OR dan NOT (b). Simbol rangkaian gerbang NOR dua masukan. Tabel kebenaran untuk gerbang NAND dan NOR dua masukan masing-masing dapat diperhatikan pada Tabel 4.6 dan Tabel 4.7 berikut. Tabel 4.6 : Tabel kebenaran gerbang NAND dua masukan. A B Y = AB 0 0 1 0 1 1 1 0 1 1 1 0 Dengan memperhatikan tabel kebenaran untuk gerbang NAND dapat disimpulkan bahwa : a. Keluaran gerbang NAND bernilai 0 bila semua masukannya bernilai 1. b. Keluaran gerbang NAND bernilai 1 jika ada masukannya yang bernilai 0. Tabel 4.7 : Tabel kebenaran gerbang NOR dua masukan. A B Y = A B 0 0 1 0 1 0 1 0 0 1 1 0 Dengan memperhatikan tabel kebenaran untuk gerbang NOR dapat disimpulkan bahwa : c. Keluaran gerbang NOR bernilai 1 bila dan hanya bila semua masukannya bernilai 0. d. Keluaran gerbang NOR bernilai 0 jika ada masukannya yang bernilai 1. Segera dapat kita lihat bahwa gerbang NAND dan NOR ternyata lebih populer dari pada gerbang dasar OR, AND, dan NOT karena gerbang NAND dan NOR dua masukan lebih bersifat generik, artinya dengan gerbang NAND saja atau gerbang NOR saja dapat dibuat gerbang OR, AND, maupun NOT. Untuk itu perhatikan Gambar 4.8 dan Gambar 4.9 di bawah ini. Y= A A A B Y = AB (a) (b) A Y=A+B B (c) Gambar 4.8 : (a).Gerbang NOT yang tersusun dari gerbang NAND (b). Gerbang AND yang tersusun dari gerbang NAND (c). Gerbang OR yang tersusun dari gerbang NAND. A Y= A A Y=A+B B (b) (a) A Y = AB B (c) Gambar 4.9 : (a). Gerbang NOT yang tersusun dari gerbang NOR (b). Gerbang OR yang tersusun dari gerbang NOR (c). Gerbang AND yang tersusun dari gerbang NOR. 5. Gerbang EX-OR dan EX-NOR Dua gerbang logika yang meskipun tidak mendasar tetapi sering dijumpai dalam rangkaian digital adalah gerbang EXCLUSIVE-OR (EX-OR atau XOR) dan gerbang EXCLUSIVE-NOR (EX-NOR). Keluaran pada gerbang EX-OR akan TINGGI bila dan hanya bila tingkat logika dua masukannya saling berlawanan. Gerbang EX-OR tidak pernah memiliki lebih dari dua masukan. Jika A dan B menyatakan dua masukan pada gerbang EX-OR dan Y menyatakan keluarannya, maka operasi EX-OR itu dituliskan sebagai berikut : Y = A B = AB + AB Tabel kebenaran gerbang EX-OR dapat diperhatikan pada Tabel 4.8 berikut : Tabel 4.8 : Tabel kebenaran gerbang EX-OR. A B Y=AB 0 0 0 0 1 1 1 0 1 1 1 0 Sedangkan simbol rangkaian dari gerbang EX-OR tampak pada Gambar 4.10 seperti berikut : A Y = A B B Gambar 4.10 : Simbol rangkaian gerbang EX-OR. Untuk gerbang EX-OR dapat dikemukakan bahwa : a. Gerbang EX-OR hanya memiliki dua masukan dan keluarannya Y yang dinyatakan sebagai Y = A B = A B + A B . b. Keluaran gerbang EX-OR pada tingkat logika TINGGI bila dua masukannya pada tingkat logika yang berbeda ( A = 1 dan B = 0 atau A = 0 dan B = 1). Pada gerbang EX-NOR akan TINGGI bila dan hanya bila tingkat logika kedua masukannya sama. Gerbang EX-NOR tidak pernah memiliki lebih dari dua masukan. Jika A dan B menyatakan dua masukan pada gerbang EX-NOR dan Y menyatakan keluarannya, maka operasi EX-NOR itu dituliskan sebagai berikut : Y = A B = AB + A B Tabel kebenaran gerbang EX-NOR dapat diperhatikan pada Tabel 4.9 berikut : Tabel 4.9 : Tabel kebenaran gerbang EX-NOR. A B Y = AB 0 0 1 0 1 0 1 0 0 1 1 1 Sedangkan simbol rangkaian dari gerbang EX-NOR tampak pada Gambar 4.11 seperti berikut : A Y = A B B Gambar 4.11 : Simbol rangkaian gerbang EX-NOR. Untuk gerbang EX-NOR dapat dikemukakan bahwa : a. Gerbang EX-NOR hanya memiliki dua masukan dan keluarannya Y yang dinyatakan sebagai Y = A B = AB + A B . b. Keluaran gerbang EX-NOR pada tingkat logika TINGGI bila kedua masukannya pada tingkat logika yang sama ( A = B = 0 atau A = B = 1). Contoh : Bentuk gelombang salah satu masukan (A) yang dikenakan kepada gerbang AND dan bentuk gelombang keluarannya (Y) tampak pada Gambar 4.12 berikut. Gambarlah bentuk gelombang yang dikenakan kepada masukan lain (B) ! A Y A Y B Gambarnya : B : Tak Peduli (don’t care), dapat 0 atau 1 6. Soal-soal 1. Apakah yang dimaksud dengan gerbang logika (logic gate) ? 2. Apakah perbedaan antara rangkaian logika dan gerbang logika ? 3. Jelaskan perbedaan antara sistem logika positif dan sistem logika negatif ! 4. Jika disusun tabel kebenaran untuk gerbang NAND delapan-masukan, berapa banyak kombinasi yang berbeda dari semua keadaan masukannya ? 5. Gambarlah bentuk gelombang keluaran pada Y dari gerbang berikut, jika masukan-masukan A dan B dikenai gelombang simultan seperti pada gambar di bawah ini ! A A Y B B Y 6. Gambarlah bentuk gelombang masukan pada A dari gerbang berikut, jika gelombang yang dikenakan pada masukan B dan gelombang keluaran Y seperti pada gambar di bawah ini ! A A B Y B Y 7. Gambarlah bentuk gelombang keluaran pada Y dari gerbang berikut, jika masukan-masukan A, B dan C dikenai gelombang simultan seperti pada gambar di bawah ini ! A A B C B C Y Y 8. Gambarlah bentuk gelombang masukan pada B dari gerbang berikut, jika gelombang-gelombang yang dikenakan pada masukan A dan C serta gelombang keluaran Y seperti pada gambar di bawah ini ! A A B C B Y C Y 9. Gambarlah bentuk gelombang (sinyal) yang harus dikenakan pada saluran Enable untuk gambar berikut agar supaya hanya Detak nomor-nomor 1, 2 dan 5, 6 yang mencapai keluaran Y ! Detak 1 2 3 4 5 6 7 8 Y Enable 10. (a) Gambarlah bentuk gelombang keluaran pada saluran Y untuk rangkaian dengan keadaan masukan seperti tampak pada gambar berikut. (b) Jika masukan A disambung ke ground (keadaan A = 0), maka gambarlah bentuk gelombang keluaran Y. (c) Jika masukan A disambung ke + 5 volt (keadaan A = 1), maka gambarlah bentuk gelombang keluaran Y. A B C Y BAB V ALJABAR BOOLE 1. Pengertian Aljabar Boole Dikenal banyak macam aljabar seperti aljabar biasa, aljabar himpunan, aljabar vektor, aljabar group, aljabar boole, dan lain-lain. Dalam setiap aljabar memiliki postulat, teorema, dan operasi sendiri-sendiri. Aljabar boole berbeda dengan aljabar biasa atau aljabar yang lain. Aljabar boole diciptakan pada abad 19 oleh George Boole sebagai suatu sistem untuk menganalisis secara matematis mengenai logika. Aljabar boole didasarkan pada pernyataan logika bernilai benar atau salah. Ternyata, aljabar boole ini menjadi alat yang sangat ampuh untuk merancang maupun menganalisis rangkaian digital. Selanjutnya, dalam aljabar boole baik konstanta maupun nilai dari suatu variabel hanya diijinkan memiliki dua kemungkinan nilai (biner) yaitu 0 atau 1. Variabel aljabar boole sering digunakan untuk menyajikan suatu tingkat tegangan pada terminal suatu rangkaian. Terminal itu dapat berupa kawat atau saluran masukan/keluaran suatu rangkaian. Misalnya 0 sering digunakan untuk menandai suatu jangkauan tegangan dari 0 volt sampai dengan 0,8 volt. Sedangkan 1 sering digunakan untuk jangkauan tegangan dari 2 volt hingga 5 volt. Dengan demikian tanda 0 dan 1 tidak menggambarkan bilangan yang sebenarnya tetapi menyatakan keadaan suatu variabel tegangan. Aljabar boole digunakan untuk menyatakan pengaruh berbagai rangkaian digital pada masukan-masukan logika, dan untuk memanipulasi variabel logika dalam menentukan cara terbaik pada pelaksanaan (kinerja) fungsi rangkaian tertentu. Oleh karena hanya ada dua nilai yang mungkin, aljabar boole lebih cocok digunakan untuk rangkaian digital dibandingkan dengan aljabar yang lain. Dalam aljabar boole tidak ada pecahan, desimal, bilangan negatif, akar kwadrat, akar pangkat tiga, logaritma, bilangan imajiner, dan sebagainya. Kenyataannya, dalam aljabar boole hanya mengenal 3 (tiga) operasi dasar, yaitu : 1) Penjumlahan logika atau OR dengan simbol operasi „+‟ (tanda plus). 2) Perkalian logika atau AND dengan simbol operasi „.‟ (tanda titik) atau tanpa tanda sama sekali. 3) Komplementasi atau NOT (atau inversi) dengan simbol operasi „ ‟ (garis di atas variabel. Aturan operasi OR, AND dan NOT pada dua tingkat logika 0 dan 1 dapat dirangkum sebagai berikut : OR AND NOT 0+0=0 0.0=0 0 =1 0+1=1 0.1=0 1 =0 1+0=1 1.0=0 1+1=1 1.1=1 Selanjutnya akan terlihat bahwa aljabar boole dapat digunakan sebagai salah satu cara untuk menganalisis rangkaian logika dan menyatakan operasinya secara matematik, terutama untuk mendapatkan konfigurasi rangkaian yang paling sederhana (paling sedikit jumlah komponen). 2. Teorema dalam Aljabar Boole Sebagaimana telah dikemukakan sebelumnya bahwa dalam setiap aljabar memiliki potulat, aturan main, dan operasi sendiri. Ketiga hal tersebut saling terkait dan terangkum dalam istilah teorema. Berdasarkan teorema dalam aljabar boole dapat membantu menyederhanakan pernyataan dan rangkaian logika. Sekali lagi, dalam aljabar boole setiap konstanta dan setiap variabel hanya dapat bernilai 0 atau 1. Teorema dalam aljabar boole meliputi : 1) A . 0 = 0 2) A . 1 = A 3) A . A = A 4) A . A = 0 5) A + 0 = A 6) A + 1 = 1 7) A + A = A 8) A + A = 1. Teorema 1) hingga 8) , variabel A sebenarnya dapat menyajikan suatu pernyataan yang berisi lebih dari satu variabel. Sebagai contoh, bentuk yang lebih sederhana dari pernyataan X Y + X Y dapat ditentukan dengan memisalkan X Y = A . Kemudian diperoleh A + A = A. Dengan demikian X Y + X Y = X Y . Teorema berikutnya mencakup lebih dari satu variabel, yaitu : 9) A + B = B + A (komutatif OR) 10) A . B = B . A (komutatif AND) 11) A + (B + C) = (A + B) + C = A + B + C (asosiatif OR) 12) A(BC) = (AB)C = ABC (asosiatif AND) 13) A(B + C) = AB + AC (distributif OR) 14) (A + B)(C + D) = AC + BC + AD + BD (distributif AND) 15) A + AB = A 16) A + A B = A + B. Masih ada dua teorema dalam aljabar boole yang sangat penting yang disumbangkan oleh matematikawan De Morgan. Kedua teorema de Morgan tersebut adalah : ______ 17) (A + B) = A . B _____ 18) (A . B) = A + B . Teorema de Morgan itu tidak hanya berlaku untuk dua variabel, selain A dan B masing-masing terdiri dari lebih dari satu variabel tetapi operasi OR atau AND dapat diteruskan pada variabel berikutnya , seperti : _________________ (A + B + C + D + …) = A . B . C . D . … _______________ (A . B . C . D . …) = A + B + C + D + …. 3. Minimalisasi Rangkaian Logika Secara Analitis Realisasi rangkaian logika dengan fungsi tertentu dari suatu pernyataan logika pada umumnya tidak unik, artinya ada bermacam-macam konfigurasi rangkaian dengan fungsi yang sama. Tentu saja diinginkan cara ataupun konfigurasi yang paling sederhana, atau paling mudah dilaksanakan. Dengan rangkaian yang sederhana memiliki banyak keuntungan misalnya lebih ekonomis, tidak rumit sehingga meminimalkan kemungkinan terjadinya kesalahan, mengurangi efek pembebanan, dan sebagainya. Banyak yang mencari metode terbaik untuk keperluan penyederhanaan itu. Salah satu metode penyederhanaan rangkaian logika adalah dengan metode analitis. Metode analitis ini menggunakan teorema-teorema aljabar boole. Sebagai ilustrasi marilah mencari bentuk yang paling sederhana atau setidaknya lebih sederhana dari pernyataan atau fungsi logika berikut : ______ Y = ABC + A B ( A . C ) __ __ = ABC + A B ( A + C ) = ABC + A B (A + C ) = ABC + AA B + A B C = ABC + A B + A B C = AC (B + B ) + A B = AC (1) + A B = A (C + B ). Jadi ______ Y = ABC + A B ( A . C ) memiliki bentuk yang lebih sederhana yaitu : Y = A (C + B ). ______ Realisasi rangkaian Y = ABC + A B ( A . C ) dapat diperhatikan pada Gambar 5.1 berikut : A C Y B ______ Gambar 5.1 : Realisasi pernyataan Y = ABC + A B ( A . C ). Sedangkan realisasi dari pernyataan Y = A (C + B ) dapat dilihat pada Gambar 5.2 di bawah ini : B C Y A Gambar 5.2 : Realisasi pernyataan Y = A (C + B ). Jika dibandingkan dengan seksama, rangkaian yang ditunjukkan pada Gambar 5.2 jauh lebih sederhana dari pada rangkaian pada gambar 5.1 padahal kedua rangkaian memiliki fungsi yang sama. Selanjutnya, untuk lebih memahami penggunaan postulat Boole dalam rangka penyederhanaan suatu pernyataan logika, perhatikanlah dengan seksama contoh-contoh berikut ini ! Contoh 1 : Buktikanlah bahwa (A + B)(A + C) = A + BC ! Penyelesaian : (A + B)(A + C) = AA + AC + AB + BC = A + AC + AB + BC = A + AB + AC + BC = A (1 + B) + C (A + B) = A + C (A + B) = A + AC + BC = A (1 + C) + BC = A + BC. Contoh 2 : Sederhanakanlah pernyataan logika berikut ini ! A B C + A B C + A B C + AB C . Penyelesaian : A B C + A B C + A B C + AB C = A ( B C + B C ) + A( B C + B C ) = A { C ( B + B)} + A{ C ( B + B)} = A C + AC = C. Contoh 3 : Carilah bentuk yang paling sederhana dari pernyataan logika : AB C D + AB C D + ABC D + ABCD. Penyelesaian : AB C D + AB C D + ABC D + ABCD = AB C ( D + D) + ABC (D + D ) = AB C + ABC = AB ( C + C) = AB. Contoh 4 : Carilah bentuk sederhana dari pernyataan berikut : Y = (A + B + C)(A + B + C )( A + B + C )( A + B + C )( A + B + C ). Penyelesaian Y : = (A + B + C)(A + B + C )( A + B + C )( A + B + C )( A + B + C ) = (A + B) ( A + B) ( A + C ) = B( A + C ). Contoh 5 : Buktikanlah bahwa Penyelesaian ( A B C ) + ( A BC) + (AB C ) = B ( A + C ) ! : ( A B C ) + ( A BC) + (AB C ) = A (B C +BC) + (AB C ) = A B + AB C = B( A + A C ) = A B + BC = B ( A +C ) . 4. Soal-soal 1. Berapa banyak dan sebutkan jenis gerbang logika yang diperlukan untuk menyusun rangkaian dengan persamaan logika berikut : a. X = (A + B)C b. Y = AC + (B C + A) c. Z = ( AB + C)(AC + BC ) B 2. Tuliskanlah persamaan boolean (persamaan logika) untuk setiap rangkaian digital berikut, dan kemudian rancanglah rangkaian yang lebih sederhana (jika mungkin) dengan fungsi yang sama ! a. A B C V b. A B W C D c. A B X C D d. A Y B C e. A B Z C 3. Gambarlah rangkaian digital untuk mengimplementasikan persamaan boolean (persamaan logika) berikut : a. Z = A + C( B + D) b. Y = (A + B )C + A B C ) c. = AB( C D ) + B CD(A + C ) X d. W = ( AB A B ) (BC + C ) e. V = ( AC ABC BC ) + (B C ) 4. Teorema Boolean apa (dapat lebih dari satu teorema) yang digunakan untuk mengubah identitas pada setiap persamaan logika berikut : a. A + (B + C ) = (A + B) + C b. (AB)C = (CB)A c. A(B + C) = AB + AC d. AB . C = ( A + B ). C e. ABC + BC + A = BC + A 5. Dengan menggunakan teorema-teorema aljabar Boole, buktikanlah bahwa setiap persamaan berikut merupakan identitas ! a. AC + BC + A B C + A B C D = A B + AC b. (A + C )(A + B + C )(B + C ) = AB + C c. ( AB A B ) + AB = A + B d. ( AC ABC BC ) + AB C = C e. ABC + AB D + B CD + A B + A D + B C + C D = B + D 6. Ubahlah rangkaian pada gambar berikut menjadi rangkaian lain yang setara (fungsinya sama) tetapi hanya menggunakan gerbang NAND : A Y B C 7. Ubahlah rangkaian pada gambar berikut menjadi rangkaian lain yang setara (fungsinya sama) tetapi hanya menggunakan gerbang NOR : A B Y C 8. Selidiki apakah kedua rangkaian berikut ekivalen, baik menggunakan teorema aljabar boole ataupun dengan tabel kebenaran ! A A Y1 B Y2 B 9. Susunlah tabel kebenaran dan diagran pewaktunya untuk persamaan logika berikut : a. Y = AB + B C + A B C b. Z = A B C + A B C + ABC 10. Tentukan persamaan yang sederhana dan gambarkan rangkaian logiknya untuk menghasilkan keluaran Y dari masukan A, B, dan C jika diagram pewaktu untuk setiap saluran tersebut tampak pada gambar nerikut : A B C Y BAB VI PETA KARNAUGH Aljabar Boole berperan penting untuk menyederhanakan fungsi logika. Sedangkan fungsi logika sangat berguna untuk merancang rangkaian digital. Realisasi dari suatu fungsi logika tidaklah unik, melainkan bermacam-macam dengan hasil yang sama, sehingga dimungkinkan untuk mencari cara yang paling sederhana dan mudah untuk direalisasikan atau diimplementasikan. Dalam merancang rangkaian digital juga perlu menerapkan prinsip ekonomi, yakni tujuan tercapai dengan resiko, waktu, dan biaya sesedikit mungkin. Para perancang rangkaian elektronik telah banyak mengeluarkan tenaga dan meluangkan waktu guna menemukan cara yang tepat untuk dapat merancang rangkaian elektronik dengan komponen sesedikit mungkin (minimal) dan mendapatkan hasil yang optimal. Dengan jumlah komponen minimal, selain lebih ekonomis tetapi secara teknis lebih mengurangi kerumitan rangkaian, konsumsi daya lebih rendah, dan mengurangi efek pembebanan. Cara-cara yang telah ditempuh untuk tujuan tersebut meliputi cara analitis (dengan aljabar Boole), cara grafis, maupun dengan menggunakan komputer. Peta Karnaugh digunakan sebagai cara penyederhanaan persamaan logika secara grafis, atau dapat pula dipandang sebagai metoda untuk mengubah suatu tabel kebenaran ke rangkaian logika yang sesuai secara sederhana dan rapi. Keuntungan penggunaan peta Karnaugh adalah dapat melihat bentuk umum persoalan dan memungkinkannya melakukan penyederhanaan dengan cepat dan tepat. Dengan demikian, minimalisasi rangkaian logika dengan metoda peta Karnaugh dapat lebih cepat dari pada dengan metode analitis. Metode analitis memerlukan pengalaman dan kecerdikan tersendiri. Meski secara prinsip metode peta Karnaugh dapat digunakan untuk menyelesaikan persoalan dengan sejumlah variabel masukan, tetapi secara praktis hanya efektif (terbatas) untuk enam variabel saja. Sedangkan untuk persoalan yang melibatkan lebih dari enam variabel masukan akan sangat baik jika diselesaikan dengan bantuan program komputer. 1. Bentuk Standar Fungsi Boole Fungsi Boole sangat penting untuk merancang rangkaian digital, khususnya rangkaian logika. Sedangkan aljabar Boole sangat berperan dalam penyederhanaan fungsi Boole. Batasan fungsi Boole tentu saja memenuhi operasi-operasi dalam aljabar Boole. Pernyataan logika AND, OR, NOT, dan kombinasinya dipenuhi oleh fungsi Boole. Dengan demikian fungsi Boole merupakan fungsi yang menyatakan hubungan antara variabel-variabel masukan dan keluaran dalam rangkaian logika. Jika suatu fungsi Boole memiliki variabel-variabel masukan A, B, C, D, … dan variabel keluarannya adalah Y, maka hubungan antara variabel-variabel masukan dan keluaran tersebut secara umum dapat dinyatakan sebagai : Y = f (A,B,C,D,…). (6-1) Jumlah dari Hasil Kali (Sum Of Product) Untuk memahami hubungan antara fungsi Boole, tabel kebenaran, dan peta Karnaugh terlebih dahulu ditinjau suatu kasus khusus dari persamaan (6-1) sebagai : Y = f (A,B,C) = A C + B C . (6-2) Tabel kebenaran dari persamaan (6-2) tampak pada Tabel 6-1 berikut : Tabel 6-1 : Baris ke A B C AC BC Y = A C + BC 0 0 0 0 0 0 0 1 0 0 1 1 0 1 2 0 1 0 0 1 1 3 0 1 1 1 0 1 4 1 0 0 0 0 0 A BC A BC A BC AB C 5 1 0 1 0 0 0 6 1 1 0 0 1 1 7 1 1 1 0 0 0 Dengan memperhatikan nomor baris di mana Y = 1, dapat diperoleh : Y = 1 = baris 1 atau baris 2 atau baris 3 atau baris 6 = 001 + 010 + 011 + 110 = A BC + A BC + A BC + AB C (6-3) Fungsi Boole seperti disajikan pada persamaan (6-3) merupakan bentuk standar jumlah dari hasil kali (sum of product). Jika diperhatikan dengan seksama, setiap bentuk sum of product memenuhi sifat-sifat sebagai berikut : a. Fungsi tersebut merupakan jumlahan (OR) dari suku-suku b. Setiap suku berupa perkalian (AND) dari variabel-variabel c. Semua variabel fungsi muncul pada setiap suku (bentuk kanonik). Setiap suku dari fungsi Boole dalam bentuk sum of product juga disebut minterm (suku minimum). Untuk menyingkat penulisan, setiap minterm diberi simbol m yang diikuti dengan angka indeks menurut nomor barisnya. Untuk persamaan (6-3) dapat dituliskan kembali sebagai : Y= A BC + A BC + A BC + AB C = 001 + 010 + 011 + 110 = m1 + m2 + m3 + m6 = m (1,2,3,6). (6-4) Secara sederhana minterm atau sum of product dapat disajikan dengan cara sebagai berikut a. Nyatakanlah A,B,C,D,… dengan 1 dan A , B , C , D ,… dengan 0 b. Nyatakanlah kombinasi biner stiap suku menjadi desimal (n) c. Nyatakanlah Y = m (n), dengan n merupakan nilai desimal dari setiap suku. Contoh 1 : Y = f (A,B,C) = ABC + AB C + A B C + A B C + A B C = 111 + 110 + 101 + 001 + 000 = + m1 + m0 m7 + m13 m7 m6 + m5 + = m (0,1,5,6,7). Contoh 2 : Y = f (A,B,C,D) = m (0,2,5,6,7,13). = m0 + = 0000 + m2 + 0010 + m5 + m6 0101 + 0110 + + 0111 + 1101 = A B C D + A B C D + A B C D + A BC D + A BCD + AB C D. Hasil Kali dari Jumlah (Product of Sum) Berdasarkan tabel kebenaran dari persamaan (6-2) dapat juga diperhatikan nomor baris di mana Y = 1 atau Y = 0, dan selanjutnya dapat dituliskan sebagai berikut : Y = 1 = baris 0 atau baris 4 atau baris 5 atau baris 7 = = 000 + 100 ABC + A BC + 101 + 111 + A B C + ABC (6-5) Dengan sifat AB = A + B dan A B = A B persamaan (6-5) dapat dituliskan menjadi : _____________________________ Y = Y = ( A B C ) + (A B C ) + (A B C) + (ABC) ______ ______ _____ ____ = ( A B C ) (A B C ) (A B C) (ABC) = (A + B + C) ( A + B + C) ( A + B + C ) ( A + B + C ). (6-6) Fungsi Boole seperti disajikan pada persamaan (6-6) merupakan bentuk standar hasil kali dari jumlah (Product of Sum). Jika diperhatikan dengan seksama setiap bentuk product of sum memenuhi sifat-sifat : a. Fungsi tersebut terdiri dari faktor-faktor b. Setiap faktor berupa jumlahan (OR) dari variabel-variabel c. Semua variabel fungsi muncul pada setiap faktor (bentuk kanonik). Setiap faktor dari fungsi Boole dalam bentuk product of sum juga disebut maxterm (suku maksimum). Untuk menyingkat penulisan, setiap maksterm diberi simbol M yang diikuti dengan angka indeks menurut nomor barisnya. Untuk persamaan (6-6) dapat dituliskan kembali sebagai Y = (A + B + C) ( A + B + C) ( A + B + C ) ( A + B + C ). = 000 . 100 = M0 . M4 = . . 101 M5 . . 111 M7 M (0,4,5,7). (6-7) Secara sederhana maksterm atau product of sum dapat disajikan dengan cara sebagai berikut : a. Nyatakanlah A,B,C,D,… dengan 0 dan A , B , C , D ,… dengan 1 b. Nyatakanlah kombinasi biner stiap faktor menjadi desimal (n) c. Nyatakanlah Y = M (n), dengan n merupakan nilai desimal dari setiap faktor. Contoh 3 : Y = f(A,B,C) = ( A + B + C ) ( A + B + C) (A + B + C ) = 111 . 110 . 001 = 7 . 6 . 1 = M (1,6,7). Contor 4 : Y = f(A,B,C,D) = M (11,8,3,1,0). = 1011 . 1000 . 0011 . 0001 . 0000 =( A +B+ C + D )( A +B+C+D)(A+B+ C + D )(A+B+C+ D )(A+B+C+D). Jika diperhatikan dengan seksama, kedua persamaan (6-4) dan (6-7) dijabarkan dari tabel kebenaran yang sama. Dengan demikian dapat dituliskan kembali bahwa : Y = f (A,B,C) = m (1,2,3,6) = M (0,4,5,7). Terlihat bahwa jika m = {1,2,3,6}, M = {0,4,5,7} dan misalkan S = {0,1,2,3,4,5,6,7}, maka m M = 0 dan m M = S. Jadi m = M1 dan M = m1 (sifat komplemen). Sifat tersebut juga dapat diperoleh secara analitis dengan menerapkan aljabar Boole tanpa tabel kebenaran. Sebagai ilustrasi marilah kita coba untuk menyatakan fungsi Y = f (A,B,C) = minterm dan maksterm seperti berikut : Y = A + BC + A C = A (C+ C ) + (A+ A )BC + A C A + BC + A C dalam bentuk = AC + A C + ABC + A BC + A C = AC + AC + ABC + A BC = AC(B+ B ) + A C (B+ B ) + ABC + A BC = ABC + A B C + AB C + A B C + ABC + A BC = ABC + A B C + AB C + A B C + A BC = = 111 + 101 + 110 + 100 + 011 7 + 5 + 6 + 4 + 3 = m (3,4,5,6,7). Y = A + BC + A C = (A+B) (A+C) (A C ) = (A+B+A C ) (A+C+A C ) = (A+B+A) (A+B+ C ) (A+C+A) (A+C+ C ) = (A+B) (A+C) (A+B+ C ) = (A+B+C C ) (A+C+B B ) (A+B+ C ) = (A+B+C) (A+B+ C ) (A+B+C) (A+ B +C) (A+B+ C ) = (A+B+C) (A+B+ C ) (A+ B +C) = 000 . 001 . 010 = 0 . 1 . 2 = M (0,1,2). Dari ilustrasi tersebut tampak bahwa : Y = A + AB + A C = m (3,4,5,6,7) = M (0,1,2). Sifat komplemen tersebut dapat digunakan untuk mengubah minterm menjadi maksterm atau sebaliknya. Contoh 5 : Ubahlah minterm Y = f (A,B,C) = ABC + A B C + A B C + A BC menjadi maksterm ! Y = ABC + A B C + A B C + A BC = = = 111 + 100 + 010 + 011 7 + 4 + 2 + 3 m (2,3,4,7). Sedangkan bentuk makstermnya adalah : Y = f(A,B,C) = M (0,1,5,6) = 000 . 001 . 101 . 110 = (A+B+C) (A+B+ C ) ( A +B+ C ) ( A + B +C). 2. Peta Karnaugh (Peta K) Peta Karnaugh digunakan sebagai salah satu metode untuk menyederhanakan fungsi Boole (pernyataan logika). Peta Karnaugh merupakan penggambaran secara grafik semua kombinasi variabel-variabel yang terlibat dalam suatu pernyataan logika. Dengan demikian peta Karnaugh merupakan metode untuk menunjukkan hubungan antara variabel masukan dan keluaran yang diinginkan. Peta Karnaugh terdiri dari kolom dan baris di mana cacah kolom dan baris bergantung pada banyaknya variabel yang terlibat dalam suatu pernyataan logika. Beberapa catatan tentang peta Karnough adalah sebagai berikut : a. Jika ada m variabel untuk kolom dan n variabel untuk baris, maka diperlukan 2m kolom dan 2n baris yang membentuk 2(m+n) kotak atau sel. Jumlah kotak tersebut sama dengan banyaknya baris dalam tabel kebenaran. Hal ini juga berarti bahwa banyaknya variabel fungsi logika ada (m+n). b. Nilai dari kombinasi variabel pada setiap sel digunakan untuk memberikan nomor sel yang bersangkutan. Nilai tersebut menunjukkan nomor baris pada tabel kebenaran. c. Sel-sel pada peta Karnough digunakan untuk meletakkan suku minterm atau faktor maksterm yang sesuai. d. Tanda 1 digunakan untuk menyatakan bahwa suatu sel berisi minterm, sedangkan tanda 0 menyatakan bahwa sel itu berisi maksterm. Untuk lebih jelasnya marilah kita perhatikan beberapa contoh berikut, dimulai dari fungsi logika dengan 3 variabel masukan sebagai Y = f (A,B,C). Tabel kebenaran fungsi logika tersebut ditentukan sebagaimana tampak pada Tabel 62 berikut ini. Tabel 6-2 : Nomor Masukan Keluaran Baris A B C Y 0 0 0 0 1 1 0 0 1 1 2 0 1 0 1 3 0 1 1 0 4 1 0 0 0 5 1 0 1 0 6 1 1 0 1 7 1 1 1 0 ABC A BC A BC AB C Berdasarkan pada tabel 6-2 dapat dituangkan dalam peta Karnough dengan beberapa cara. Cara pertama kita tetapkan m = 2 (cacah variabel untuk kolom ada 2, yaitu A dan B), dan n = 1 (cacah variabel untuk baris ada 1, yaitu C). Dengan demikian cacah kolom 2m = 22 = 4, dan cacah baris ada 2n = 21 = 2. Peta Karnaugh untuk cara tersebut adalah sebagai berikut : AB AB AB 00 01 C AB AB 11 Keadaan : m=2 n =1 10 C: 0 000 0 010 2 110 6 100 4 C: 1 001 1 011 3 111 7 101 5 Nilai dari kombinasi variabel Nomor baris Cara ke dua kita tetapkan m = 1 (cacah variabel untuk kolom ada 1, yaitu A), dan n = 2 (cacah variabel untuk baris ada 2, yaitu B dan C). Dengan demikian cacah kolom ada 2m = 21 = 2, dan cacah baris ada 2n = 22 = 4. Peta Karnaugh untuk cara tersebut adalah sebagai berikut : A BC B C : 00 B C: 01 BC : 11 B C : 10 A A 0 1 000 100 0 4 001 101 1 5 011 111 3 7 010 110 2 6 Keadaan : m=1 n =2 Nilai dari kombinasi variabel Nomor baris Untuk kedua cara di atas masing-masing memiliki cacah sel yang sama, yaitu 2(m + n) = 2(2 + 1) = 2(1 + 2) = 23 = 8. Perhatikan bahwa nomor sel ditunjukkan oleh kombinasi biner dari nilai variabel yang bersilangan di sel itu. Sebagai contoh perhatikan beberapa bagian peta di bawah ini ! A 0 AB 00 atau 000 000 0 0 A B C = 000 (2) = 0 B C : 00 C:0 AB 01 A 0 atau 011 A BC = 011 (2) = 3 011 3 3 BC : 01 C:1 A 1 AB 10 101 5 C:1 atau 101 5 A B C = 101 (2) = 5 B C : 01 dan seterusnya. Selanjutnya ditetapkan dahulu bahwa kita akan memilih menyatakan fungsi logika dalam bentuk sum of product yang berarti pula kita menggunakan bentuk minterm. Sehingga berdasarkan tabel 6-2 kita ambil nomor baris di mana Y = 1, yaitu terjadi pada baris-baris nomor 0, 1, 2, dan 6. Dengan demikian, kita menempatkan 1 ke dalam sel-sel yang bernomor 0, 1, 2, dan 6 tadi. Setelah bentuk minterm tersebut diisikan pada sel-sel yang sesuai akan diperoleh peta Karnaugh seperti berikut : AB AB AB 00 01 C 0 11 1 1 C: 1 AB 2 1 C: 0 AB 10 6 4 7 5 Keadaan : m=2 n =1 1 3 1 Atau : A BC B C : 00 B C: 01 A A 0 1 0 4 1 5 3 7 2 6 Keadaan : m=1 n =2 1 1 BC : 11 B C : 10 1 1 Pernyataan sum of product untuk keluaran Y pada peta Karnaugh yang telah diisi dengan 1 dapat diperoleh dengan cara meng-OR-kan bersama seluruh sel yang berisi 1. Pada peta Karnaugh dengan tiga variabel baik untuk keadaan m = 2 dan n = 1 maupun keadaan m = 1 dan n = 2 seperti di atas, maka pernyataan logika setiap sel yang berisi 1 adalah A B C (sel 0), A B C (sel 1), A B C (sel 2), dan AB C (sel 6), sehingga pernyataan untuk keluarannya adalah Y = A B C + A B C + A B C + AB C . Tetapi penyataan keluaran demikian (peng-OR-an) masih dapat disederhanakan lagi dengan cara mengelompokkan sel-sel yang berdekatan dalam peta Karnaugh yang berisi 1. Proses penggabungan tersebut dinamakan operasi pengelompokan (looping). Dasar pengelompokan itu adalah postulat yang berbentuk A + A = 1. Kelompok-1 : sel 0 dengan sel 1 : A B C + A BC : A B ( C + C) : A B (1) : A B. Kelompok-2 : sel 2 dengan sel 6 : A B C + AB C : ( A + A)B C : (1)B C : BC . Sel 0 dan sel 2 juga dapat dikelompokkan karena kedua sel juga saling berdekatan. Tetapi karena sel 0 telah dikelompokkan dalam kelompok-1 dan sel 2 dalam kelompok-2, maka kedua sel tersebut tidak perlu dikelompokkan lagi. Jika semua sel telah dikelompokkan, maka hasil akhirnya diperoleh dengan cara meng-OR-kan semua kelompok yang dihasilkan. Dengan demikian diperoleh : Y = A B C + A B C + A B C + AB C . = Kelompok-1 + Kelompok-2 = A B + BC . Jadi bentuk sederhana dari Y = A B C + A B C + A B C + AB C adalah Y = A B + BC . 3. Minimalisasi Rangkaian Logika (Cara Grafis) Suatu rangkaian elektronik dibuat untuk melaksanakan tugas tertentu. Realisasi dari suatu desain rangkaian logika (digital) tidak unik. Banyak bentuk konfigurasi rangkaian dengan fungsi yang sama. Di antara sejumlah konfigurasi yang mungkin tentu akan dipilih konfigurasi yang paling sederhana. Konfigurasi tersebut memerlukan komponen dalam jumlah minimal (paling sedikit). Dengan demikian rangkaian menjadi lebih ekonomis, tidak rumit, konsumsi daya rendah, dan mengurangi efek pembebanan. Sebagaimana telah dipelajari sebelumnya, telah dikenal dua cara untuk menyederhanakan pernyataan logika yaitu cara analitis dengan menerapkan teorema-teorema aljabar Boole dan cara grafis dengan peta Karnaugh. Karena cara analitis telah dikemukakan pada bagian aljabar Boole, maka pada kesempatan berikut akan dibahas cara menyederhakanakan (meminimalkan) pernyataan (rangkaian) logika dengan peta Karnaugh. Meskipun setiap cara memiliki keuntungan tersendiri, tetapi penyederhanaan dengan peta Karnaugh memiliki banyak keuntungan dibandingkan dengan cara aljabar yang sering harus menempuh langkah cobacoba (trial and error). Langkah-langkah dalam peta Karnaugh lebih pasti dan lebih sedikit khususnya untuk pernyataan yang memuat banyak suku. Selain itu, dengan peta Karnaugh hampir pasti dihasilkan pernyataan yang paling sederhana. Telah dikemukakan prinsip-prinsip penggunaan peta Karnaugh untuk menyederhanakan suatu pernyataan logika berdasarkan tabel kebenaran. Setelah 0 atau 1 diisikan pada peta Karnaugh, maka penyederhanaan secara grafis dapat ditempuh dengan cara pengelompokan (looping). Dalam proses pengelompokan perlu memperhatikan hal-hal sebagai berikut : a. Cacah sel dalam kelompok sebanyak 2 k dengan k bilangan bulat positif termasuk 0. Jadi cacah sel dalam satu kelompok adalah satu sel atau dua sel atau empat sel atau delapan sel dan seterusnya. b. Sel-sel suatu kelompok dalam peta Karnaugh membentuk bujur sangkar atau empat persegi panjang. c. Sel-sel yang secara horisontal atau vertikal berdekatan hanya berbeda satu variabel. Sehingga sel-sel pada sisi yang berseberangan (sel-sel tepi) dalam peta Karnaugh dapat dianggap berdekatan dan dapat dikelompokkan. Pada peta Karnaugh berikut sel 0 dan sel 2 dianggap berdekatan. A BC B C : 00 B C: 01 A A 0 1 0 4 1 5 3 7 2 6 Keadaan : m=1 n =2 1 1 BC : 11 B C : 10 1 1 d. Semakin banyak sel anggota dalam suatu kelompok, akan diperoleh pernyataan yang semakin sederhana. e. Cara mendapatkan pernyataan terakhir setelah pengelompakan untuk minterm adalah dengan meng-OR-kan semua kelompok, dan untuk maksterm dengan meng-AND-kan semua kelompok. Berdasarkan prinsip-prinsip penyederhanaan pada peta Karnaugh tersebut dapat diperoleh bahwa : a. Kelompok yang terdiri dari dua sel akan mengeliminasi satu variabel yang muncul dalam bentuk saling komplemen. Contoh untuk peta Karnaugh sembarang adalah : C D CD CD CD AB 0 0 1 1 AB 0 0 0 0 AB 0 0 0 0 AB 0 0 0 0 A BC Variabel D tereliminasi karena muncul saling komplemen sebagai D dan D b. Kelompok yang terdiri dari empat sel akan mengeliminasi dua variabel yang muncul dalam bentuk saling komplemen. Contoh untuk peta Karnough sembarang adalah : C D CD CD CD AB 0 0 0 0 AB 0 1 1 0 AB 0 1 1 0 AB 0 0 0 0 BD Variabel A dan C hilang, karena muncul saling komplemen sebagai A dan A serta C dan C . c. Kelompok yang terdiri dari delapan sel akan mengeliminasi tiga variabel yang muncul dalam bentuk saling komplemen. Contoh untuk peta Karnough sembarang adalah : C D CD CD CD AB 0 0 0 0 AB 1 1 1 1 AB 1 1 1 1 AB 0 0 0 0 d. Dan seterusnya. B Variabel A, C, dan D hilang, karena masing-masing muncul saling komplemen sebagai A dan A , C dan C , serta D dan D . Aturan pengelompokan dalam peta Karnaugh dapat disimpulkan bahwa jika satu variabel muncul dalam bentuk saling komplemen pada satu kelompok, maka variabel-variabel itu akan dieliminasi (hilang) dari pernyataannya. Variavel-variabel yang sama pada semua sel pada satu kelompok akan muncul dalam pernyataan akhir. Berikut ini disampaikan beberapa contoh cara grafis (dengan peta Karnaugh) untuk menentukan pernyataan logika paling sederhana dari suatu fungsi logika empat variabel Y = f (A,B,C,D) yang dinyatakan dalam suatu tabel kebenaran dan masing-masing dipilih dalam bentuk minterm. Setiap contoh berdiri sendiri. Nomor A B C D Y Baris Dari tabel kebenaran di samping dapat dituangkan dalam peta Karnough sebagai : 0 0 0 0 0 0 1 0 0 0 1 0 2 0 0 1 0 0 3 0 0 1 1 0 AB 0 0 0 0 4 0 1 0 0 0 AB 0 1 1 0 5 0 1 0 1 1 AB 0 1 1 0 6 0 1 1 0 0 AB 0 0 1 0 7 0 1 1 1 1 8 1 0 0 0 0 9 1 0 0 1 0 10 1 0 1 0 0 11 1 0 1 1 1 12 1 1 0 0 0 13 1 1 0 1 1 14 1 1 1 0 0 15 1 1 1 1 1 C D C D CD C D BD ACD Sel-sel 5, 7, 13, dan 15 membentuk satu kelompok (terdiri dari 4 sel) yang menghasilkan satu pernyataan BD. Kelompok berikutnya terdiri dari sel 11 dan sel 15 (terdiri dari 2 sel) yang menghasilkan pernyataan ACD. Semua sel yang berisi 1 (minterm) telah dikelompokkan sehingga tinggal menentukan pernyataan logika terakhirnya, yaitu dengan meng-OR-kan kedua kelompok itu dan diperoleh pernyataan paling sederhana sebagai Y = BD + ACD. Dengan menerapkan postulat Boole dengan mengeluarkan variabel D akan diperoleh pernyataan lain yang setara sebagai : Y = (B + AC)D. Contoh berikutnya adalah : Nomor A B C D Y Baris Dari tabel kebenaran di samping dapat dituangkan dalam peta Karnough sebagai : 0 0 0 0 0 0 1 0 0 0 1 0 2 0 0 1 0 0 3 0 0 1 1 1 AB 0 0 1 0 4 0 1 0 0 1 AB 1 1 1 1 5 0 1 0 1 1 AB 1 1 0 0 6 0 1 1 0 1 AB 0 0 0 0 7 0 1 1 1 1 8 1 0 0 0 0 9 1 0 0 1 0 10 1 0 1 0 0 11 1 0 1 1 0 12 1 1 0 0 1 13 1 1 0 1 1 14 1 1 1 0 0 15 1 1 1 1 0 C D C D CD C D BC A CD AB Sel 3 dan sel 7 membentuk satu kelompok dan menghasilkan pernyataan A CD. Sel-sel 4, 5, 6, dan 7 merupakan satu kelompok yang menghasilkan pernyataan A B. Sedangkan sel-sel 4, 5, 12, dan 13 menjadi satu kelompok untuk menghasilkan pernyataan BC . Semua sel yang berisi 1 telah dikelompokkan, maka pernyataan logika selengkapnya adalah : Y = A B + B C + A CD atau : Y = ( A + C )B + A CD atau : Y = A (B + CD) + B C . Dengan langkah yang sejenis, cara-cara pada minterm dapat diterapkan untuk maksterm, hanya saja pernyataan dalam kelompok merupakan OR dari variabel, dan pernyataan terakhirnya merupakan AND dari semua kelompok. Perhatikanlah contoh berikut !. Nomor A B C D Y Baris Dari tabel kebenaran di samping dapat dituangkan dalam peta Karnough sebagai : 0 0 0 0 0 1 1 0 0 0 1 1 2 0 0 1 0 1 3 0 0 1 1 0 AB 1 1 0 1 4 0 1 0 0 0 AB 0 0 0 0 5 0 1 0 1 0 AB 0 0 1 1 6 0 1 1 0 0 AB 1 1 1 1 7 0 1 1 1 0 8 1 0 0 0 1 9 1 0 0 1 1 10 1 0 1 0 1 11 1 0 1 1 1 C D C D CD C D B+ C A +C+D A +B 12 1 1 0 0 0 13 1 1 0 1 0 14 1 1 1 0 1 15 1 1 1 1 1 Sel 3 dan sel 7 membentuk satu kelompok dan menghasilkan pernyataan A +C+D. Sel-sel 4, 5, 6, dan 7 merupakan satu kelompok yang menghasilkan pernyataan A +B. Sedangkan sel-sel 4, 5, 12, dan 13 menjadi satu kelompok untuk menghasilkan pernyataan B+ C . Semua sel yang berisi 0 telah dikelompokkan, maka pernyataan logika selengkapnya adalah : Y = ( A +B) (B+ C ) ( A +C+D). 4. Aplikasi Desain Rangkaian Rangkaian elektronika pada umumnya, dirancang dan dibuat untuk dapat bekerja atau melaksanakan tugas tertentu. Misalnya rangkaian-rangkaian bekerja sebagai penguat, pembanding, perata, osilator, penjumlah, pengendali, penyandi, distributor, dan masih banyak yang lainnya. Pada umumnya, setiap rangkaian memiliki saluran masukan dan saluran keluaran. Termasuk dalam saluran masukan adalah saluran pengendali. Tidak berbeda dengan rangkaian elektronik pada umumnya, rangkaian logika (digital) juga dirancang untuk menghasilkan keluaran tertentu berdasarkan masukan yang tertentu pula. Jika fungsi dari suatu rangkaian logika ditentukan berdasarkan pada pernyataan boolean, maka rangkaian logika tersebut dapat langsung diwujudkan. Perlu diingat bahwa konfigurasi dari wujud suatu rangkaian logika tidaklah unik. Rangkaian logika dengan fungsi tertentu dapat muncul dalam konfigurasi yang bervariasi. Sembarang rangkaian logika, tidak peduli bagaimanapun rumitnya, secara ideal dapat diwujudkan dengan tiga gerbang dasar OR, AND, dan NOT. Ketiga gerbang dasar tersebut benar-benar merupakan bangunan dasar dari sistem digital. Tetapi dalam prakteknya banyak dijumpai rangkaian yang dirancang dengan fungsi khusus seperti pencacah, flip-flop, register, multiplakser, komparator, pewaktu, dan sebagainya. Selanjutnya dikemukakan ilustrasi untuk mengimplementasikan rangkaian logika berdasarkan pernyataan logiknya. Pernyataan tersebut pada umumnya diperoleh dari tabel kebenaran atau dari hasil suatu analisis. Misal diperlukan suatu rangkaian yang ditentukan sebagai Y = A.B.C = ABC. Berdasarkan fungsi tersebut segara diketahui bahwa ternyata diperlukan gerbang AND tiga masukan. Rangkaian yang didefinisikan sebagai Y = A + B dalam implementasinya digunakan gerbang OR dua masukan dan gerbang NOT pada salah satu masukannya. Rasional yang digunakan pada kasus yang sederhana tersebut dapat dikembangkan pada rangkaian lain yang jauh lebih rumit. Pada rangkaian yang rumit, setiap suku atau setiap faktor dari pernyataan boolean memerlukan gerbang atau sejumlah gerbang tersendiri. Untuk lebih jelasnya misalkan perlu membuat rangkaian dengan fungsi yang dinyatakan sebagai Y = AC + B C + A BC. Berdasarkan pernyataan boolean tersebut dapat dikemukakan bahwa terdapat tiga variabel (A, B, dan C), dan terdiri dari tiga suku (AC, B C , dan A BC) yang di-OR-kan bersama. Hal tersebut berarti diperlukan gerbang OR tiga masukan yang masing-masing masukan sama dengan AC, B C , dan A BC. Ilustrasi tersebut dapat digambarkan sebagai berikut. AC BC A BC Y = AC + B C + A BC Gambar 6.1 : Diagram gerbang fungsi Y = AC + B C + A BC. Setiap masukan gerbang OR tersebut merupakan suku-suku hasil operasi AND, artinya gerbang AND digunakan untuk menghasilkan setiap suku. Selain itu juga diperlukan dua gerbang NOT untuk menghasilkan suku yang memuat A dan C . Dengan demikian gambar selengkapnya adalah sebagai berikut. AC A B Y = AC + B C + A BC BC C A BC Gambar 6.2 : Diagram rangkaian dari Y = AC + B C + A BC. Cara sebagaimana dilakukan di atas dapat selalu diikuti walaupun sering ditemukan langkah yang tidak efisien. Tetapi cara di tersebut lebih menekankan pada alur pikir yang mendasar. Contoh selanjutnya adalah mendesain diagram rangkaian logika yang memenuhi fungsi Y = AB + B C. Pernyataan tersebut menunjukkan bahwa suku-suku AB dan B C merupakan masukan pada gerbang OR, dan setiap suku dihasilkan dari gerbang AND yang terpisah. Dengan demikian diperlukan dua gerbang AND dua masukan, satu gerbang NOT, dan satu gerbang OR dua masukan. Gambar desain selengkapnya adalah sebagai berikut. A AB B C Y = AB + B C BC Gambar 6.3 : Diagram rangkaian dari Y = AB + B C. 5. Soal-soal 1. Tuliskan fungsi berikut menurut bentuk fungsi standar yang sesuai, kemudian sederhanakan dengan metode peta Karnaugh ! a. f(A,B,C) = m(0, 2, 3, 4) b. f(A,B,C) = M(1, 5, 6, 7) c. f(A,B,C,D) = m(0, 2, 3, 4, 8, 9, 10, 11, 15) f(A,B,C,D) = m(0, 2, 3, 5, 6, 7, 11, 14, 15) d. e. f(A,B,C,D) = M(1, 5, 6, 7, 10, 12, 13, 14, 15) 2. Dengan metode peta Karnaugh, ubahlah persamaan berikut ke dalam bentuk jumlah dari hasil-kali (sum of product) ! a. V = ABC + A B C + B C W = B (C D + A D) + B C (A + A D ) b. c. X = A B D + B ( C D + ACD ) + A B D d. Y = A (C D + C D ) + A B D + A B C D e. Z = B C D + B C D + C D + C D (B + A B ) 3. Jika diketahui fungsi f(A,B,C) = m(3, 4, 6), maka : a. Carilah bentuk fungsi standar sum of product dari fungsi tersebut ! b. Carilah bentuk fungsi standar product of sum dari fungsi tersebut ! c. Dengan aljabar Boole, tunjukkan bahwa kedua bentuk standar tersebut adalah ekivalen ! 4. Berdasarkan peta Karnaugh berikut, tentukanlah : AB 00 01 11 10 00 1 1 0 1 01 1 0 0 1 11 1 0 0 1 10 0 1 0 0 CD a. Tabel kebenaran b. Bentuk fungsi standar SP c. Bentuk fungsi minterm d. Pernyataan paling sederhana 5. Berdasarkan peta Karnaugh berikut, tentukanlah : AB 00 01 11 10 00 1 1 0 0 01 1 0 0 1 11 0 0 1 1 10 1 1 0 0 CD a. Tabel kebenaran b. Bentuk fungsi standar PS c. Bentuk fungsi maksterm d. Pernyataan paling sederhana 6. Tabel kebenaran berikut diturunkan dari suatu fungsi Y = f (A,B,C). Dengan peta Kanaugh, tentukanlah pernyataan paling sederhana dari fungsi (Y) tersebut ! No. Baris A B C Y = f(A,B,C) 0 0 0 0 1 1 0 0 1 1 2 0 1 0 1 3 0 1 1 0 4 1 0 0 1 5 1 0 1 0 6 1 1 0 0 7 1 1 1 0 7. Sederhanakan rangkaian berikut dengan menggunakan peta Karnaugh ! a. A B Y C D b. A B C D Y BAB VII RANGKAIAN PEMBANDING DAN PENJUMLAH Gerbang-gerbang logika digunakan dalam peralatan digital dan sistem informasi digital untuk mengendalikan aliran informasi, untuk menyandi maupun menerjemahkan sandi data digital, untuk mendeteksi maupun memberikan respon terhadap adanya persyaratan dalam sistem kendali, dan yang tidak kalah pentingnya adalah untuk menampilkan berbagai operasi aritmatik dan logik terhadap data digital. Pada kesempatan berikut akan dipelajari rangkaian digital (merupakan kombinasi dari gerbang-gerbang logika dasar) yang memiliki fungsi khusus. Rangkaian tersebut adalah pembanding (comparator) dan penjumlah (adder). Rangkaian secara khusus karena kedua pembanding dan penjumlah dibahas rangkaian tersebut sering dijumpai dalam sistem digital dan merupakan rangkaian dasar dalam mesin komputasi dan sistem pengendali. 1. Rangkaian Pembanding (Comparator) Kadang perlu untuk mengetahui apakah suatu bilangan biner A adalah lebih kecil, sama besar, atau lebih besar bila dibandingkan dengan bilangan B. Suatu sistem rangkaian keputusan yang digunakan pembanding. yang untuk membuat Pembanding digital keputusan merupakan itu unsur sangat penting dalam sistem komputer dan disebut pembuat sistem pengendalian digital. Secara umum, rangkaian pembanding adalah rangkaian yang digunakan untuk membandingkan suatu besaran masukan dengan besaran masukan lain dan menghasilkan suatu keadaan tertentu pada keluarannya. Ketika besar dua bilangan biner A dan B dibandingkan, maka paling banyak ada 3 (tiga) kemungkinan keadaan yang dapat dihasilkan, yaitu A > B, A < B atau A = B. Tetapi kemungkinan keadaan hasil tersebut yang jelas hanya ada 2 (dua), yaitu A = B atau A <> B. Untuk mempelajari rangkaian pembanding, perlu untuk mengingat kembali salah satu prinsip aljabar Boole bahwa apabila suatu rangkaian didefinisikan oleh suatu pernyataan Boolean, maka dari pernyataan tersebut dapat diwujudkan secara langsung rangkaian logikanya. Sebagai contoh dipilih suatu rangkaian dua masukan A dan B dengan satu keluaran Y yang tabel kebenarannya ditentukan seperti berikut ini. Tabel 7.1 Baris Masukan Keluaran Ke A B Y 0 0 0 0 1 0 1 1 2 1 0 1 3 1 1 0 Dari tabel tersebut tampak bahwa jika A = B maka Y = 0, dan jika A <> B (tanda <> artinya tidak sama) maka Y = 1. Untuk mewujudkan rangkaiannya terlebih dahulu kita tuangkan dalam Peta Karnaugh, sambil mengingat kembali prinsip yang telah dipelajari, seperti tampak pada Gambar 7.1 di bawah ini. A A A B 0 1 B 1 0 B Gambar 7.1 : Peta Karnoagh untuk tabel 7.1 Berdasarkan bentuk minterm-nya, maka sesuai dengan peta pada Gambar 7.1 di atas dapat dituliskan pernyataan Booleannya sebagai Y = f(A,B) = m(1,2) = AB + AB Dari persamaan (7.1) dapat direalisasikan (7.1) diagaram rangkaian gerbang logikamya seperti tampak pada Gambar 7.2 di bawah ini. A B Y Gambar 7.2 : Diagram rangkaian Y = A B + A B. Sebenarnya diagram rangkaian pada gambar 7.2 tersebut telah dikenal dengan baik sebagai gerbang EX-OR (Exclusive OR). Jika diperhatikan dengan seksama, diagram rangkaian tersebut memiliki fungsi membandingkan masukan A terhadap B yang hasil pembandingannya menentukan keadaan keluaran Y. Y = 0 berarti A = B dan bila Y = 1 berarti A <> B. Perlu diketahui bahwa rangkaian di atas bukanlah satu-satunya jawaban. Dengan menggunakan persamaan logika lain akan diperoleh rangkaian yang lain pula. Perhatikan langkah-langkah berikut : Y = AB + AB = 0 + AB + 0 + AB = A A + AB + B B + AB = A( A + B ) + B( B + A ) = A ( AB ) + B ( AB ) = (A + B) ( AB ) Diagram rangkaian gerbang logika dari Y = (A + B) ( AB ) seperti tampak pada Gambar 7.3 di bawah ini. A B Y Gambar 7.3 : Diagram rangkaian Y = (A + B) ( AB ) Masih banyak cara lain untuk membuat EX-OR dengan memanipulasi logika, dan untuk meyakinkan gambar 7.3 dapat diperiksa tabel kebenaran melalui pernyataan logikanya. Dengan cara sebagaimana telah dikemukakan di atas, dapat dibuat rangkaian pembanding dua masukan dengan keadaan keluaran yang lain, misalnya jika A = B maka Y = 1, dan jika A <> B maka Y = 0. Tabel kebenaran untuk keadaan tersebut tercantum pada tabel 7.2 berikut. Tabel 7.2 Baris Masukan Keluaran Ke A B Y 0 0 0 1 1 0 1 0 2 1 0 0 3 1 1 1 Untuk mewujudkan rangkaian yang memenuhi tabel 7.2, terlebih dahulu kita susun dalam Peta Karnaugh seperti tampak pada Gambar 7.4 di bawah ini. A A A B 1 0 B 0 1 B Gambar 7.4 : Peta Karnaugh untuk tabel 7.2 Sesuai dengan bentuk minterm-nya, maka berdasarkan peta pada gambar 7.4 di atas dapat dituliskan pernyataan Booleannya sebagai Y = f(A,B) = m(0,3) = AB + A B (7.2) Dari persamaan (7.2) dapat direalisasikan diagaram rangkaian gerbang logikamya seperti tampak pada Gambar 7.5 di bawah ini. A B Y Gambar 7.5 : Diagram rangkaian Y = AB + A B Sebenarnya diagram rangkaian pada gambar 7.5 tersebut telah dikenal dengan baik sebagai gerbang EX-NOR (Exclusive NOR). Jika diperhatikan dengan seksama, diagram rangkaian tersebut memiliki fungsi membandingkan masukan A terhadap B yang hasil pembandingannya menentukan keadaan keluaran Y. Y = 0 berarti A <> B dan bila Y = 1 berarti A = B. Perlu diketahui bahwa rangkaian di atas bukanlah satu-satunya jawaban. Dengan menggunakan persamaan logika lain dapat diperoleh rangkaian yang lain lagi. Dua rangkaian pembanding yang telah dibahas merupakan pembanding 1 bit dengan satu jalur keluaran, yaitu (Y). Selanjutnya dicoba untuk merancang rangkaian pembanding 1 bit tetapi dengan tiga jalur keluaran. Jalur pertama (X) untuk keluaran bila A < B, jalur ke dua (Y) untuk keluaran A = B, dan jalur ke tiga (Z) untuk keluaran A > B. Langkah pertama yang kita tempuh adalah membuat tabel kebenaran. Perhatikanlah tabel 7.3 berikut ini. Tabel 7. 3. Baris Masukan Keluaran ke A B X Y Z 0 0 0 0 1 0 1 0 1 1 0 0 2 1 0 0 0 1 3 1 1 0 1 0 Berdasarkan tabel 7.3 tersebut selanjutnya dituangkan dalam Peta Karnaugh untuk setiap jalur keluaran. Hasil penuangannya tampak pada Gambar 7.6 di bawah ini. Gambar 7.6 (a) : A B B B A A 0 1 0 0 Peta Karnaugh tabel 7.3 untuk Jalur keluaran X. Persamaan logika untuk keluaran X adalah : X = AB (7.3) Gambar 7.6 (b) : A A A B 1 0 B 0 1 B Peta Karnaugh tabel 7.3 untuk Jalur keluaran Y. Persamaan logika untuk keluaran Y adalah : Y = AB + A B (7-4) Gambar 7.6 (c) : A B B B A A 0 0 1 0 Peta Karnaugh tabel 7.3 untuk Jalur keluaran Z. Persamaan logika untuk keluaran Z adalah : Z = AB (7-5) Perwujudan diagram rangkaian gerbang logika dari gambar 7.6 (a), (b), dan (c) di atas tampak pada Gambar 7.7 di bawah ini. X A B Y Z Gambar 7.7 : Diagram rangkaian pembanding 1 bit dengan tiga jalur keluaran. Pembanding yang memiliki tiga jalur keluaran lebih banyak dijumpai pada pembanding 2 bit atau lebih. Sampai di sini baru dibahas pembanding dua bilangan A dan B masing-masing 1 bit. Artinya A dapat bernilai 1 atau 0, demikian pula B hanya berharga 1 atau 0. Selanjutnya, hendak dirancang rangkaian pembanding dua bilangan A dan B yang masing masing terdiri dari 2 bit, di mana dapat dinyatakan bahwa A = A 1 A2 dan B = B1 B2 . Dengan demikian A atau B masing-masing dapat bernilai 00, 01, 10, 11. Tabel 7.4 berikut menampilkan tabel kebenaran pembanding 2 bit dengan tiga jalur keluaran berturut -turut X untuk A > B, Y untuk A = B, dan Z untuk A < B. Tabel 7.4 : Masukan Baris A Keluaran B X Y Z ke A1 A2 B1 B2 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 2 0 0 1 0 0 0 1 3 0 0 1 1 0 0 1 4 0 1 0 0 1 0 0 5 0 1 0 1 0 1 0 6 0 1 1 0 0 0 1 7 0 1 1 1 0 0 1 8 1 0 0 0 1 0 0 9 1 0 0 1 1 0 0 10 1 0 1 0 0 1 0 11 1 0 1 1 0 0 1 12 1 1 0 0 1 0 0 13 1 1 0 1 1 0 0 14 1 1 1 0 1 0 0 15 1 1 1 1 0 1 0 Dari tebel 7.4, guna menentukan persamaan logikanya, dapat dituangkan ke dalam Peta Karnaugh untuk masing-masing jalur Perhatikan Gambar 7.8 : (a), (b), dan (c) berikut ini. keluaran X, Y, dan Z. A2A1 A2 A1 A 2A1 A2A1 A2 A 1 B2B1 0 1 1 1 B 2B1 0 0 1 1 B2B1 0 0 0 0 B2 B 1 0 0 1 0 B2B1 Gambar 7.8 (a) : Peta Karnaugh tabel 7.4 untuk jalur keluaran X Persamaan logika untuk jalur keluaran X berdasarkan pada gambar 7.8 (a) di atas adalah X = A2 B 2 + A2A1 B 1 + A1 B 2 B 1 A2A1 (7-6) A2 A1 A 2A1 A2A1 A2 A 1 B2B1 1 0 0 0 B 2B1 0 1 0 0 B2B1 0 0 1 0 B2 B 1 0 0 0 1 B2B1 Gambar 7.8 (b) : Peta Karnaugh tabel 7.4 untuk jalur keluaran Y. Persamaan logika untuk jalur keluaran Y berdasarkan pada gambar 7.8 (b) di atas adalah Y = A 2 A 1 B 2 B 1 + A 2A1 B 2B1 + A2A1B2B1 + A2 A 1B2B1 (7-7) A2A1 A2 A1 A 2A1 A2A1 A2 A 1 B2B1 0 0 0 0 B 2B1 1 0 0 0 B2B1 1 1 0 1 B2 B 1 1 1 0 0 B2B1 Gambar 7.8 (c) : Peta Karnaugh tabel 7.4 untuk jalur keluaran Z. Persamaan logika untuk jalur keluaran Z berdasarkan pada gambar 7.8 (c) di atas adalah Z = A 2 B2 + A 2 A 1 B1 + A 1 B2 B1 (7-8) Diagram rangkaian gerbang logika berdasarkan pada persamaan (7-6), (7-7), dan (7-8) adalah seperti tampak pada Gambar 7.9 berikut ini. A2 A1 B2 B1 X Y Z Gambar 7.9 : Diagram rangkaian pembanding 2 bit dengan tiga jalur keluaran. Gambar 7.9 bukanlah satu-satunya jawaban untuk rangkaian pembanding 2 bit tiga jalur keluaran. Selanjutnya persamaan (7-6), (7-7), atau (7-8) dapat dimodifikasi untuk mendapatkan persamaan logika lain yang setara. Sebagai contoh perhatikan persamaan (7-7) yang dapat dimodifikasi menjadi Y = A 2 A 1 B 2 B 1 + A 2A1 B 2B1 + A2A1B2B1 + A2 A 1B2B1 = A 2 B 2 ( A 1 B 1 + A1B1) + A2B2 (A1B1 + A 1 B 1) = ( A 2 B 2 + A2B2 ) (A1B1 + A 1 B 1) (7-9) Diagram rangkaian gerbang logika dari persamaan (7-9) tersebut dapat dilihat pada Gambar 7.10 berikut. A1 B1 A1 B1 Y A2 B2 A2 B2 Gambar 7.10 : Diagram rangkaian dari persamaan (7-9). Jika gambar 7.10 tersebut digantikan pada blok keluaran Y dari gambar 7.9 akan didapatkan satu model diagram rangkaian pembanding 2 bit tiga keluaran yang berbeda dari sebelumnya. Demikian seterusnya dapat dirancang modelmodel rangkaian pembanding 2 bit. Oleh karena telah dikenal langkah-langkah untuk merancang suatu rangkaian pembanding, maka selanjutnya diagram rangkaian pembanding lebih disederhanakan. Suatu contoh penyederhanaan diagram rangkaian pembanding dapat dilihat pada Gambar 7.11 di bawah ini. A X Y Z A>B B A=B A<B A2 A1 A3 A2 A1 B3 B2 B1 Diagran rangkaian pembanding 1 bit Gambar 7.11 (b) : X Y Z A>B B2 B1 Gambar 7.11 (a) : A=B A<B A>B Diagran rangkaian pembanding 2 bit Gambar 7.11 (c) : X Y Z A=B A<B Dengan langkah-langkah Diagran rangkaian pembanding 3 bit sebagaimana telah dikemukakan di atas, dapat dirancang rangkaian-rangkaian pembanding 3 bit, 5 bit, dan seterusnya. Tentu saja semakin besar bit-nya, semakin rumit rangkaiannya. Sebagai tambahan informasi untuk keperluan praktis, dalam membuat rangkaian pembanding dengan jumlah bit yang lebih rangkaian-rangkaian pembanding lain yang dilengkapi dengan tiga terminal pada besar digunakan bagian masukannya masukan tambahan. Ketiga terminal masukan tambahan tersebut adalah A>B, A=B, dan A<B. Sebagai contoh pada Gambar 7.12 berikut adalah pembanding 2 bit tiga keluaran yang dilengkapi dengan tiga terminal masukan tambahan. A2 A1 A A>B B2 B1 X Y Z A=B B A<B Gambar 7.12 : Diagran rangkaian pembanding 2 bit 3 keluaran yang dilengkapi dengan 3 terminal masukan tambahan. A>B A=B A<B Sifat dari ketiga terminal masukan tambahan tersebut disusun sedemikian hingga memenuhi syarat berikut : 1. Keluaran X bernilai 1 jika terminal masukan tambahan A>B berharga 1. 2. Keluaran Z bernilai 1 jika terminal masukan tambahan A<B berharga 1. 3. Jika terminal masukan tambahan A = B berharga 1 maka keluaran (X, Y, dan Z) dari pembanding tergantung pada data masukan. Dengan rangkaian pembanding yang memenuhi sifat-sifat tersebut kita dapat menggabung secara kaskade dua buah pembanding 2 bit untuk membentuk sebuah pembanding 4 bit. Rangkaian hasil penggabungan tersebut diperlihatkan pada Gambar 5.13 berikut. Pembanding 1 A, MSB B, MSB 0 1 0 A2 A1 X B2 B1 Y Z A>B A=B A<B Pembanding 2 A, LSB B, LSB A2 A1 X B2 B1 Y Z A>B A=B A<B Gambar 7.13 : Pembanding 4 bit yang disusun dari 2 buah pembanding 2 bit. Berdasarkan pada gambar 7.13, pembanding-1 sebagai masukan MSB (most significant byte) dan tiga terminal masukan tambahan harus dibuat sedemikian hingga terminal A>B bernilai 0, terminal A=B bernilai 1, dan terminal A<B bernilai 0. Hal itu didasarkan pada suatu konsekuensi logis bahwa membandingkan dua bilangan lebih efisien apabila lebih dahulu membandingkan MSB-nya. Jika MSB bilangan A lebih besar dari pada MSB bilangan B, dengan sendirinya A > B dan tidak perlu lagi untuk membandingkan LSB dari kedua bilangan. hanya apabila MSB kedua bilangan yang Pembandingan LSB dilakukan dibandingkan berharga sama. Misalkan kita hendak membandingkan bilangan A = 8732, bilangan B = 4299, dan bilangan C = 8751. Untuk bilangan A anggaplah memiliki MSB-A = 87 dan LSB-A = 32. Untuk bilangan B memiliki MSB-B = 42 dan LSB-B = 99. Sedangkan untuk bilangan C memiliki MSB-C = 87 dan LSB-C = 51. Bilangan mana yang lebih besar antara A dan B ? Pertama bandingkan MSB-A dan MSB-B yang berturut-turut adalah 87 dan 42. Jelas MSB-A lebih besar dari pada MSB-B dengan demikian A>B, dan tidak perlu membandingkan LSB-A dan LSB-B. Bilangan mana yang lebih besar antara A dan C ? Karena MSB-A = MSB-C = 87, maka perlu untuk membandingkan LSB-A dan LSB-C. Ternyata LSB-C = 51 lebih besar dari pada LSB-A = 32, dengan demikian C>A. Dengan cara yang sama, dapat menggabungkan dua pembanding 4 bit (IC-7485) menjadi satu pembanding 8 bit, dan diagram rangkaiannya diperlihatkan pada Gambar 7.14 di bawah ini. Pembanding 1 A, MSB 4 bit X B, MSB 4 bit 0 1 0 A>B A=B Y Z Pembanding 2 A, LSB 4 bit X B, LSB 4 bit Y Z A>B A=B A<B A<B Gambar 7.14 : Pembanding 8 bit yang disusun dari 2 buah pembanding 4 bit. Dengan susunan seperti gambar 7.14, jika 4 bit data MSB-A (A8 A7 A6 A5) lebih besar dari pada 4 bit data MSB-B dimasukkan pada pembanding-1 (B8 B7 B6 B5), (sebelah kiri), yang keduanya maka keluaran X dari pembanding-1 akan bernilai 1. Keadaan ini akan mengakibatkan keluaran X dari pembanding-2 bernilai 1. Sebaliknya jika 4 bit data MSB-A lebih kecil dari pada 4 bit data MSB-B, maka keluaran Z dari pembanding-1 akan bernilai 1, dan akan membuat keluaran Z pada pembanding-2 berharga 1. Sedangkan jika 4 bit MSB-A dan MSB-B bernilai sama, maka keluaran Y pembanding-1 akan berharga 1. Pada keadaan ini keluaran Y pembanding-2 akan tergantung pada nilai 4 bit data LSB-A (A4 A3 A2 A1) dan LSB-B (B4 B3 B2 B1 ). Contoh : Berdasarkan gambar 7.14.X di samping, tentukanlah status logik A0 keluaran (Y) untuk setiap kelompok B0 data A1 B1 Y A2 a. B3 (word atau string) masukan berikut : B2 A3 biner A 3 A2 A1 A3 = 1 0 1 1 B3 B2 B1 B3 = 1 0 1 1 b. A 3 A2 A1 A3 = 0 1 1 0 B3 B2 B1 B3 = 0 1 1 1 Gambar 7.14.X a. Ketika data A3 A2 A1 A3 dan B3 B2 B1 B3 dikenakan pada masukan, maka keluaran dari keluaran dari keempat EX-NOR tersebut adalah 1, sehingga keluaran dari gerbang AND adalah Y = 1. b. Pada kasus tersebut keluaran tiga gerbang EX-NOR petama adalah 1, tetapi keluaran EX-NOR yang ke empat adalah 0 karena kedua masukannya tidak sama, sehingga keluaran gerbang AND adalah Y = 0. 2. Rangkaian Penjumlah (Adder) Di dalam sebuah mesin hitung digital, seperti kalkulator dan komputer, terdapat suatu rangkaian yang berfungsi untuk melaksanakan operasi-operasi aritmatik seperti penjumlahan, pengurangan, perkalian dan pembagian. Bahkan operasi dasar dari perkalian dan pembagian berturut-turut adalah penjumlahan merupakan dan pengurangan. Operasi perkalian secara penjumlahan berulang sedangkan pembagian mendasar merupakan pengurangan yang berulang pula. Berbagai operasi aritmatik dalam komputer maupun kalkulator dilaksanakan dalam bentuk biner. Alasan menggunakan bilangan biner adalah karena kerja dari rangkaian digital didasarkan pada pulsa-pulsa berbentuk kotak yang hanya memiliki keadaan hidup (tinggi) atau mati (rendah). Sebagai perbandingan, dalam sistem bilangan desimal terdiri dari 10 digit yaitu 0,1,2,3,4,5,6,7,8, dan 9; sedangkan dalam sistem bilangan biner hanya dikenal 2 digit yaitu 0 dan 1. Selanjutnya hendak dipelajari rangkaian penjumlah dan tentunya adalah penjumlah biner. Sebagai gambaran perhatikan metode penjumlahan dua bilangan desimal 58 dan 63 berikut : Simpanan 1 1 (Carry) 0 0 5 6 8 3 1 2 1 + Kita telah mengetahui cara menjumlahkan kedua bilangan tersebut. Satuan berada pada satu kolom dengan satuan, puluhan dengan puluhan, demikian seterusnya. terletak pada satu kolom Proses penjumlahan pada suatu kolom harus ditambah dengan simpanan (carry) yang dihasilkan dari proses penjumlahan pada kolom sebelumnya (jika ada). Cara penjumlahan bilangan biner serupa dengan penjumlahan bilangan desimal. Dalam proses penjumlahan bilangan biner pada juga dikenal simpanan (carry). Jika pada bilangan desimal dikenal posisi satuan (10 0), puluhan (101), ratusan (102), ribuan (103), dan seterusnya; maka pada bilangan biner juga dikenal posisi satuan (20), duaan (21), empatan (22), delapanan (23) dan seterusnya. Aturan penjumlahan bilangan biner adalah 0+0=0 0+1=1 1 + 0 = 1. Dalam bentuk biner tidak dikenal 1 + 1 = 2 karena dalam sistem biner angka 2 bukanlah angka biner. Oleh karena itu, dalam aturan penjumlahan biner 1 + 1 = 0 dengan simpanan 1 dan tentu saja 1 + 1 + 1 = 1 dengan simpanan 1. Simpanan 1 berarti menambahkan 1 ke dalam kolom posisi berikutnya yaitu di sebelah kiri tempat simpanan tadi dihasilkan. Marilah kita coba menjumlahkan dua bilangan biner 111010 dan 111111 dengan cara disusun sebagai berikut Simpanan 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 + 1 1 1 1 0 0 1 Pada kolom satuan 0 + 1 = 1 tidak menghasilkan simpanan. Pada kolom duaan 1 + 1 = 0 dengan simpanan 1. Pada kolom empatan karena mendapat simpanan dari kolom sebelumnya (duaan) maka proses penjumlahannya adalah 1 + 0 + 1 = 0 dengan simpanan 1. Pada kolom delapanan juga mendapat simpanan dari kolom sebelumnya sehingga prosesnya 1 + 1 + 1 = 1 dengan simpanan 1. Demikian seterusnya. Rangkaian Penjumlah Paro (Half Adder atau HA) Untuk menyusun suatu rangkaian penjumlah biner dari gerbang logika, maka terlebih dahulu perlu mengetahui diturunkan menurut tabel kebenarannya. fungsi rangkaian tersebut dan Kita mulai dari penjumlahan dua bilangan A dan B yang masing- masing 1 bit. Perhatikan tabel 7.5 berikut. Tabel 7.5 : Masukan Keluaran A B Jumlah (S) Simpanan (C) 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 EX-OR AND Digit yang dijumlahkan Berdasarkan tabel 7.5, bagian keluaran rangkaian yang akan kita susun terdiri dari jumlah (S) dan simpanan (C). Ternyata kedua kolom keluaran itu dapat dihasilkan dengan menggunakan dua gerbang logika sebagai berikut : a. Kolom jumlah (S) merupakan keluaran dari gerbang EX-OR. Ingat kembali bahwa keluaran gerbang EX-OR akan 1 (tinggi) ketika masukannya tidak sama 1, tetapi 0 (rendah) pada saat kedua masukan sama. b. Kolom simpanan (C) merupakan keluaran dari gerbang AND. Keluaran gerbang tersebut 1 (tinggi) hanya apabila semua masukannya 1. Gambar 7.15 berikut menunjukkan cara gerbang EX-OR dan AND dihubungkan untuk mendapatkan suatu rangkaian penjumlah yang memenuhi tabel 7.5. Jika diperhatikan, rangkaian penjumlah itu hanya memiliki dua terminal masukan masing-masing untuk bit yang akan dujumlahkan dan dua terminal keluaran berturut-turut untuk jumlah (S) dan simpanan (C). A S (Jumlah) B C (Simpanan) Gambar 7.15 : Rangkaian penjumlah paro. Rangkaian penjumlah seperti gambar 7.15 tersebut hanya dapat digunakan untuk menjumlahkan biner pada posisi satuan saja, artinya tidak dapat digunakan untuk menjumlahkan posisi duaan, empatan, delapanan, dan seterusnya. Hal ini disebabkan karena rangkaian penjumlah tadi tidak memiliki masukan untuk simpanan Rangkaian dengan hasil penjumlahan dari posisi sebelumnya. sifat seperti itulah yang dikenal sebagai rangkaian penjumlah paro (half adder). Simbol dari rangkaian penjumlah paro tampak pada Gambar 7.16 di bawah ini. S atau A HA B C Gambar 7.16 : Simbol rangkaian penjumlah paro. Rangkaian Penjumlah Penuh (Full Adder atau FA) Sebagaimana telah dipelajari, penjumlah paro hanya dapat digunakan untuk proses penjumlahan bilangan pada posisi satuan saja, atau lebih umum pada karena bagian LSB-nya saja tidak tersedia terminal masukan simpanan dari (LSB singkatan dari Least Significant Byte) untuk posisi sebelumnya. Padahal menampung proses terjadinya penjumlahan pada umumnya melibatkan simpanan. Suatu rangkaian yang memenuhi syarat tersebut dikenal sebagai rangkaian penjumlah penuh (full adder). Tentu saja rangkaian penjumlah penuh memiliki tiga terminal masukan dan dua terminal keluaran. Sekarang dapat dipikirkan fungsi dari rangkaian penjumlah penuh. Kita dapat merancang suatu rangkaian gerbang logika yang berfungsi sebagai penjumlah penuh. Lebih dahulu kita susun suatu tabel kebenaran yang menunjukkan perubahan nilai-nilai masukan dan keluaran untuk semua keadaan masukan yang mungkin. Tabel 7.6 berikut adalah tabel kebenaran suatu rangkaian dengan tiga masukan A, B, dan Ci serta dengan dua keluaran S dan C0. Tabel 7.6 : Baris Masukan Keluaran ke A B Ci S Co 0 0 0 0 0 0 1 0 0 1 1 0 2 0 1 0 1 0 3 0 1 1 0 1 4 1 0 0 1 0 5 1 0 1 0 1 6 1 1 0 0 1 7 1 1 1 1 1 Oleh karena terdapat dua keluaran, kita akan merancang rangkaian untuk setiap keluaran secara individual. Berdasarkan tabel 7.6 dapat kita turunkan ke dalam Peta Karnaugh untuk kedua keluaran yang masing-masing tampak pada Gambar 7.17. AB AB AB AB AB Ci AB AB AB AB AB Co Ci 0 1 0 1 Co 0 0 1 0 Ci 1 0 1 0 Co 0 1 1 1 (a) Jumlah S (b) Simpanan (Co) Gambar 7.17 : Tabel kebenaran rangkaian penjumlah penuh (a) Untuk tabel keluaran Jumlah (S) (b) Untuk terminal keluaran simpanan (C0) Persamaan logika untuk Keluaran Jumlah (S) berdasarkan pada gambar 7.17 (a) adalah : S = Sm (1,2,4,7) = A B Ci + A B C i + A B C i + ABCi = A ( B Ci + B C i ) + A( B C i + BCi ) ______ = A (B Ci ) + A (B C ) = A + (B Ci ). (7.10) Sedangkan persamaan logika untuk Keluaran Simpanan berdasarkan pada gambar 7.17 (b) adalah : C = Sm (3,5,6,7) = BCi + ACi + AB. (7.11) Diagram rangkaian logika untuk penjumlah penuh (FA) sebagai realisasi dari persamaan (7.10) dan persamaan (7.11) di atas terlihat pada Gambar 7.18 berikut. B A Ci S Co Gambar 7.18 : Diagram rangkaian penjumlah penuh (FA) Gambar 7.18 bukanlah satu-satunya rangkaian penjumlah penuh, masih banyak cara yang dapat digunakan untuk menghasilkan persamaan logika yang sesuai dengan keluaran S dan C. Cara lain untuk mendapatkan rangkaian penjumlah penuh adalah dengan menyusun dua penjumlah paro dan satu gerbang OR seperti tampak pada Gambar 7.19 di bawah ini. Ci A S S HA A A S B Co HA B B Co Gambar 7.19 : Diagram rangkaian penjumlah penuh Co Kita telah mengetahui bahwa setiap rangkaian penjumlah penuh memiliki lima terminal, tiga terminal sebagai masukan (A, B, dan C i ) dan dua terminal sebagai keluaran (S dan C0 ). Oleh karena itu, untuk selanjutnya rangkaian penjumlah penuh digambarkan dengan simbol seperti tampak pada Gambar 7.20. S Ci A FA Co B Gambar 7.20 : Diagram simbol rangkaian penjumlah penuh. Penjumlah Jajar (Paralel) Rangkaian penjumlah yang telah dipelajari masih terbatas untuk menjumlahkan dua bilangan biner A dan B yang masing-masing 1 bit. Artinya bilangan A hanya dapat bernilai 0 atau 1, demikian pula bilangan B dapat berharga 0 atau 1 saja. Dalam kenyataannya, mesin hitung seperti kalkulator ataupun komputer melakukan operasi penjumlahan dalam bentuk biner tetapi setiap bilangan dapat memiliki bit yang lebih besar dari pada 1 bit. Untuk alasan ini, marilah kita pelajari rangkaian penjumlah yang dapat menjumlahkan dua bilangan yang masing masing lebih dari 1 bit. Satu rangkaian penjumlah paro dan beberapa rangkaian penjumlah penuh dapat disusun menjadi rangkaian penjumlah paralel yang dapat menjumlahkan bilangan- bilangan dengan bit besar (lebih dari 1 bit). Gambar 7.21 di bawah ini memperlihatkan diagram rangkaian penjumlah paralel 2 bit yang tersusun atas satu penjumlah paro dan satu penjumlah penuh. Misalkan hendak dijumlahkan dua bilangan A dan B yang masing-masing A = A1 A0 dan B = B1 B0 . A1 A0 B1 B0 + S A0 HA B0 Co S Ci A1 FA B1 Co Empatan Duaan Satuan Gambar 7.21 : Diagram rangkaian penjumnlah paralel 2 bit yang menggunakan HA dan FA. Penjumlah paro (HA) pada gambar 7.21 di atas dapat digantikan dengan penjumlah penuh (FA1) yang terminal simpanan masukannya (C i ) dibuat 0 (rendah). Perhatikan Gambar 7.22 berikut ini. A1 A0 B1 B0 Ci + 0 S A0 FA1 B0 S Co Ci A1 B1 FA2 Co Empatan Duaan Gambar 7.22 : Diagram rangkaian penjumlah paralel 2 bit tanpa HA. Satuan Agar Anda semakin jelas, marilah kita menyusun rangkaian penjumlah paralel 3 bit dengan menggunakan tiga buah penjumlah penuh. Rangkaian tersebut dapat digunakan untuk menjumlahkan bilang A = A 2A1A0 dan bilangan B = B2B1B0. Rangkaian yang kita maksudkan terlihat pada Gambar 7.23 di bawah ini. A2 A1 A0 B2 B1 B0 0 + A0 B0 S Ci FA1 Co 1-an S A1 B1 2-an Ci FA2 Co Ci A2 B2 FA3 S 4-an Co 8-an Gambar 7.23 : Diagram rangkaian penjumlah paralel 3 bit. Berdasarkan contoh-conttoh pada gambar 7.22 dan gambar 7.23, selanjutnya Anda dapat merancang rangkaian penjumlah paralel 4 bit, 5 bit, ..., n bit. Ternyata, jika Anda ingin membuat rangkaian penjumlah paralel n bit, Anda memerlukan n buah rangkaian penjumlah penuh (FA). Jadi banyak bit bilangan yang akan dijumlahkan menentukan cacah rangkaian penjumlah penuh yang diperlukan. Rangkaian penjumlah paralel n bit dapat digunakan untuk menjumlahkan dua bilangan A dan B yang masing-masing bilangan adalah A = A(n-1)A(n-2) ... A3A2A1A0 dan bilangan B = B(n-1)B(n-2) ... B3B2B1B0. Rangkaian penjumlah paralel sangat lazim digunakan dalam rangkaian digital. Tentu saja untuk menghitung hasil penjumlahan dari bilangan biner yang lebih panjang (bit besar) diperlukan penjumlah penuh yang lebih banyak. Rangkaian penjumlah paralel banyak tersedia dalam bentuk rangkaian terpadu (IC). Salah satu yang terkenal adalah dikemas sebagai rangkaian penjumlah paralel 4 bit yang di dalamnya terdiri dari empat buah penjumlah penuh. Untuk jenis TTL IC tersebut berseri 7483 dan juga 74283, sedangkan jenis CMOS adalah 4008. Gambar 7.24 berikut memperlihatkan simbol dari penjumlah paralel 4 bit yang dikemas dalam IC 7483. Masukan-masukan pada IC tersebut untuk dua bilangan masing-masing 4 bit yaitu A3A2A1A0 dan B3B2B1B0 serta simpanan Ci. Sedangkan keluarannya adalah bit-bit hasil penjumlahan S3S2S1S0 dan simpanan C0 . A3 A2 A1 A0 Co S3 Penjumlah paralel 4 bit (7483) S2 S1 S0 B3 B2 Ci B1 B0 Gambar 7.24 : Simbol penjumlah paralel 4 bit 7483 Dua atau lebih penjumlah paralel dapat dihubungkan secara kaskade untuk menyesuaikan penjumlahan bilangan-bilangan dengan bit yang lebih besar. Sebagai contoh Gambar 7.25 di bawah ini menunjukkan cara dua buah IC 7483 dihubungkan secara kaskade untuk menjumlahkan dua bilangan yang masing-masing 8 bit. A7 A6 A5 A4 Co Penjumlah paralel 4 bit (7483) S7 S6 S5 S4 B7 B6 Ci B5 B4 A3 A2 A1 A0 Co Penjumlah paralel 4 bit (7483) B3 B2 B1 B0 S3 S2 Gambar 7.25 : Dua IC 7483 yang dirangkai secara kaskade Ci S1 S0 Dua bilangan yang dijumlahkan melalui rangkaian pada gambar 7.25 di atas masing-masing adalah A = A7 A6 A5 A4 A3 A2 A1 A0 dan B = B7 B6 B5 B4 B3 B2 B1 B0 yang hasilnya S = S7 S6 S5 S4 S3 S2S1 S0. Cara penjumlahannya adalah A7 A6 A5 A4 A3 A2 A1 A0 B7 B6 B5 B4 B3 B2 B1 B0 + S7 S6 S5 S4 S3 S2 S1 S0 Secara lebih rinci dapat dijelaskan bahwa IC 7483 sebelah kanan menjumlahkan bilangan 4 bit LSB yang simpanannya (C ) diumpankan ke masukan C pada IC 7483 sebelah kiri. Prosesnya adalah IC berikutnya A3 A2 A1 A0 B3 B2 B1 B0 Ci + C0 CI = 0 S3 S2 S1 S0 IC 7483 sebelah kiri menjumlahkan bilangan 4 bit MSB beserta simpanan yang dihasilkan dari IC 7483 sebelah kanan. Prosesnya adalah A7 A6 A5 A4 B7 B6 B5 B4 Ci + C0 C0 dari IC sebelumnya S7 S6 S5 S4 Sekarang Anda dapat menyusun penjumlah paralel menjumlahkan dua bilangan dengan bit yang lebih besar. dari IC 7483 untuk 3. Rangkaian Pengurang Anda dapat dengan mudah menuliskan suatu bilangan positif atau negatif dengan meletakkan tanda + atau - di depan bilangan tersbut. Misalkan +7 menyatakan bilangan positif 7, -7 menyatakan bilangan negatif 7, dan sebagainya. Kenyataannya dapat menangani mesin digital bilangan negatif sebaik (kalkulator menangani dan komputer) bilangan positif. Tetapi akan menjumpai masalah jika ingin menyimpan suatu bilangan, yang dapat positif atau negatif di dalam rangkaian digital, karena rangkaian digital hanya dapat menyimpan data dalam bentuk 0 atau 1. Dengan demikian diperlukan suatu cara yang mantap untuk memberikan tanda suatu bilangan itu positif atau negatif dengan 0 atau 1. Cara yang biasa digunakan untuk memberikan tanda pada suatu bilangan adalah menggunakan MSB (Most Significant Bit) dari data bilangan sebagai bit tanda dan menggunakan sisa bit-bit data bilangan itu untuk menyatakan ukuran atau besarnya. Perjanjian yang sudah lazim adalah bahwa 0 sebagai bit tanda untuk menyatakan suatu bilangan positif dan 1 sebagai bit tanda untuk menyatakan suatu bilangan negatif. Untuk lebih jelasnya perhatikan Gambar 7.26 berikut. A6 0 A5 1 A4 1 Bit tanda B6 1 Bit tanda A3 0 A2 1 A1 0 A0 0 = + 52 B1 1 B0 1 = - 31 Besar bilangan B5 0 B4 1 B3 1 B2 1 Besar bilangan Gambar 7.26 : Bilangan biner bertanda Dalam suatu memori A berisi bit-bit 0110100. MSB atau bit paling kiri (A6) adalah 0 sebagai bit tanda bahwa bilangan tersebut positif. Enam bit sisanya menyatakan besar bilangan, 110100 yang setara dengan desimal 52. Jadi bilangan di dalam memori A adalah +52. Pada memori B berisi 1011111. MSB atau bit paling kiri (B6) adalah 1 sebagai bit tanda bahwa bilangan tersebut negatif. Enam bit sisanya, 011111, menyatakan besar bilangan yang setara dengan desimal 31. Jadi bilangan di dalam memori B adalah -31. Jelaslah bahwa bit tanda digunakan untuk menunjukkan tanda suatu bilangan biner itu positif atau negatif. Untuk bilangan positif, bit-bit sisanya (selain bit Sedangkan tanda) selalu menyatakan besar bilangan biner pada bilangan negatif, ada banyak cara untuk tersebut. menyatakan besarnya. Salah satu cara dikenal sebagai komplemen 2. Cara tersebut dipilih karena dalam mesin digital modern banyak yang menggunakannya. Komplemen 2 dari suatu bilangan biner dibentuk dengan cara menginversi (0 menjadi 1 dan 1 menjadi 0) setiap bit data dan kemudian menambah hasil inversi itu dengan 1. Misalkan kita hendak menuliskan desimal 7 dalam biner 8 bit dengan cara komplemen 2. Dimulai dengan menuliskan +7 dalam 8 bit biner, diperoleh 00000111. Inversikan setiap bit, termasuk MSB-nya, diperoleh 11111000. Akhirnya menambahkan 1 pada hasil inversi tersebut, diperoleh 11111001. Hasil akhir inilah sebagai penyajian desimal -7 dengan cara komplemen 2. Untuk memperjelas langkah-langkah tadi perhatikan yang berikut ini. +7 inversinya tambahan 00000111 11111000 1 komplemen 2 11111001 + bit tanda (negatif) Untuk membuat rangkaian penginversi kita ingat kembali sifat gerbang EX-OR, yaitu 0 + 0 = 0, 0 + 1 = 1 + 0 = 1, dan 1 + 1 = 0, maka menginversi suatu bilangan biner dapat dilakukan dengan gerbang EX-OR dengan cara salah satu masukan gerbang itu dipertahankan selalu 1. Perhatikan Gambar 7.27. 1 A0 A0 A1 A1 A2 Gambar 7.27 : Diagram rangkaian penginversi 4 bit. A2 A3 A3 Dengan satu contoh rangkaian penginversi 4 bit di atas, tentu saja Anda dapat membuat rangkaian penginversi untuk n bit dengan cara memasang gerbang EX-OR sebanyak n buah. Sedangkan untuk penambahan dengan 1, Anda dapat memanfaatkan rangkaian penjumlah seperti yang telah kita bahas terdahulu. Selanjutnya, untuk mempelajari cara pengurangan bilangan biner kita ingat kembali pada salah satu prinsip ilmu hitung bahwa pengurangan adalah penjumlahan dengan bilangan negatif. Sebagai gambaran perhatikan bahwa 7 - 5 = 7 + (-5). Tentu saja prinsip tersebut juga berlaku pada bilangan biner. Karena Anda telah mempelajari satu cara menyatakan bilangan biner negatif (dengan komplemen 2) dan juga penjumlahan bilangan biner, maka Anda dapat melakukan operasi pengurangan marilah kita mencoba mengurangkan 3 pada bilangan biner. Untuk itu pada 7, atau dengan kata lain menambahkan negatif 3 pada 7 dengan memanfaatkan IC 7483. 7 - 3 = 7 + (-3) = (-3) + 7 = 4. Pertama membuat -3 dalam bentuk biner 4 bit dengan cara komplemen 2, hasilnya adalah 1101 dengan MSB 1 merupakan bit tanda bahwa bilangan tersebut adalah negatif. Sedangkan 7 dinyatakan sebagai 0111, dengan MSB 0 sebagai bit tanda bilangan positif. Bilangan 1101 kita umpankan ke masukan A3A2A1A0 dan 0111 ke B3B2B1B0 pada IC 7483. Hasil proses itu muncul pada keluaran S3S2S1S0 sebagai 0100. Proses lengkapnya adalah +3 inversi tambah 1 0011 1100 1 -3 1101 + +7 -3 Selanjutnya (menurut cara komplemen 2). 0111 1101 + 10100 bit tanda (positif) diabaikan, karena bilangan-bilangan itu hanya dinyatakan dalam 4 bit. Sedangkan diagram rangkaian dari proses di atas seperti tampak pada Gambar 7.28 di bawah ini. 1 1 0 1 A3 A2 A1 A0 1 Co S3 0 Penjumlah paralel 4 bit (7483) S2 S1 1 0 S0 0 B3 B2 0 1 = -3 0 Ci B1 B0 1 1 = +7 = +4 (hasil operasi) Gambar 7.28 : Diagram rangkaian penjumlah untuk menjumlahkan bilangan positif dan negatif cara komplemen 2. Cara dan rangkaian untuk operasi bukanlah satu-satunya. Masih pengurangan banyak cara bilangan biner tersebut dan rangkaian lain yang fungsinya dapat melaksanakan operasi pengurangan bilangan biner. Tetapi cara dan rangkaian lain yang dimaksud tidak dibahas, karena terbatasnya tempat dan kesempatan. Demikian pula belum pengali dan pembagi. Tetapi jika diingat penjumlahan yang berulang dan pembagian sempat dibahas rangkaian bahwa perkalian adalah adalah pengurangan yang berulang, maka sebenarnya telah dipelajari prinsip-prinsip dasarnya. 4. Soal-soal 1. Rancanglah rangkaian komparator biner yang menggunakan gerbang EXOR dan NOR untuk membandingkan dua data biner masing- masing berukuran 8 bit. Untuk mencoba rancangan tersebut, berikanlah status logik pada saluran masukannya dengan A = 11011001 dan B = 11011001, apa yang terjadi pada keluarannya ? 2. Perhatikanlah gambar berikut ! Evaluasilah status logik pada keluaran X, Y, dan Z ketika pada saluran masukannya dikenai data (word) A = 10110101 dan B = 11000011. A, LSB 4 bit 7485 B, LSB 4 bit 0 1 0 A>B A=B A<B X Y Z A, MSB 4 bit 7485 B, MSB 4 bit X Y Z A>B A=B A<B 3. Berdasarkan data yang terdapat di dalam lembara data (data sheet) untuk IC-7485 (siapkan sendiri), dapatkah sekurang-kurangnya dua saluran keluarannya berstatus logik tinggi (HIGH) secara simultan ? Jelaskan ! Jika semua masukan IC komparator tersebut berstatus logik rendah (LOW) kecuali saluran IA < B, evaluasilah apa yang terjadi pada keluarannya ? 4. Mengapa saluran masukan yang diperlukan penjumlah penuh (FA) berbeda dengan penjumlah paro (HA) ? Agar saluran keluaran S (jumlah) pada FA berniali 1 (high), apa yang harus dipenuhi pada ketiga saluran masukkannya ? Pada FA, keadaan masukan seperti apa yang dapat menghasilkan nilai 1 (high) pada saluran keluaran Carry-nya (Co) ? 5. Perhatikanlah gambar rangkaian penjumlah paro (HA) berikut ! (a) Kapan HA digunakan sebagai pengganti FA ? (b) Ubahlah rangkaian HA berikut hanya dengan menggunakan gerbang-gerbang NOR ! A C0 S B 6. Gambarkan diagram blok penjumlah penuh 4 bit yang menggunakan 4 buah rangkaian penjumlah penuh (FA) ! 7. Rancang dan gambarlah rangkaian penjumlah biner 6 bit dengan menggunakan dua buah IC penjumlah 4 bit 7483 ! 8. Rancang dan gambarlah rangkaian penjumlah biner 16 bit dengan menggunakan empat buah IC-4008 CMOS ! Sebelumnya, carilah lembar data untuk IC tersebut ! 9. Apa yang harus diubah agar rangkaian penjumlah/pengurang berikut jika gerbang-gerbang EX-OR digantikan dengan gerbang-gerbang EX-NOR ? A7 B7 A6 B6 A5 B5 A4 B4 A3 B3 A2 B2 A1 B1 A0 B0 1 (kurang) 0 (jumlah) A3 B3 A2 B2 A1 B1 A0 B0 A3 B3 A2 B2 A1 B1 A0 B0 C0 C0 4008 Ci S7 S6 S5 S4 4008 Ci S3 S2 S1 S0 10. Dengan menggunakan rangkaian di bawah ini, kerjakanlah operasi-operasi berikut : a. 75 + 56 b. 75 – 56 c. –53 + 24 d. –53 – 24 e. –53 – (–24). A7 B7 A6 B6 A5 B5 A4 B4 A3 B3 A2 B2 A1 B1 A0 B0 A3 B3 A2 B2 A1 B1 A0 B0 A3 B3 A2 B2 A1 B1 A0 B0 C0 C0 74HC283 S7 S6 S5 S4 Ci 74HC283 Ci S3 S2 S1 S0 Vcc 1 (kurang) 0 (jumlah) BAB VIII FLIP-FLOP (BISTABIL) Rangkaian-rangkaian gerbang logika seperti penjumlah, pembanding, dekoder/demultiplekser, dan multiplekser merupakan rangkaian kombinasional. Keadaan keluaran rangkaian tersebut pada suatu saat hanya tergantung pada keadaan masukannya keluaran pada saat itu juga. Keadaan masukan sebelumnya sama sekali tidak mempengaruhi berdasarkan masukan terbarunya. Hal semacam ini ataupun keadaan keluaran menunjukkan bahwa pada rangkaian kombinasional tidak memiliki kemampuan untuk mengingat atau tidak mampu menyimpan sebelumnya. Dengan kata lain, keadaan yang pernah dihasilkan rangkaian kombinasional tidak memiliki unit pengingat (memori). Piranti digital yang dapat diprogram, seperti komputer, selain tersusun dari rangkaian kombinasional tetapi juga terdiri dari unit-unit pengingat (memori). Unit pengingat ini merupakan rangkaian sekuensial, yaitu suatu sistem digital yang keadaan keluarannya pada suatu saat selain ditentukan oleh keadaan masukannya pada saat itu tetapi juga tergantung pada keadaan masukan dan/atau keluaran pada saat sebelumnya. Jadi jelas bahwa pada sistem sekuensial diperlukan unit pengingat atau memori yang digunakan untuk menyimpan data masa lalunya. Unit terkecil dari rangkaian digital yang memiliki kemampuan untuk mengingat tersebut adalah flip-flop (FF). Flipflop juga disebut sebagai multivibrator bistabil, dwimantap, atau pengunci (latch). Dengan adanya flip-flop dunia digital menjadi semakin semarak. Flip-flop adalah suatu rangkaian yang memiliki dua keadaan stabil. Keluaran flip-flop bertahan pada satu keadaan hingga ada pulsa pemicu yang menyebabkan keluarannya berubah ke keadaan yang lain. Pulsa pemicu tersebut berlangsung sangat singkat (pendek) dan tepat. Sekali dipicu flip-flop akan mempertahankan keadaannya yang baru dan menyimpan data sesudah adanya perintah masukan berhenti. Flip-flop rangkaian elektronik seperti pencacah, banyak register, digunakan dalam dan memori. Flip-flop memiliki banyak jenis yaitu FF-SR, FF-SR Berdetak, FF-JK, FF-JKMS, FF-D, dan FF-T. Dengan mempelajari jenis flip-flop yang paling sederhana terlebih dahulu diharapkan dapat lebih mudah untuk memahami jenis-jenis flip-flop yang lebih rumit. Semua flip-flop yang akan dibahas pada modul ini tersusun dari gerbang-gerbang logika. Pada dasarnya Flip-flop merupakan rangkaian logika dengan dua keluaran (Q dan Q ) dengan keadaan yang saling berkebalikan (saling komplemen). Gambar 8.1 adalah simbol flip-flop pada umumnya. Preset Q Masukan Keluaran Q FF Clear Gambar 8.1 : Simbol umum flip-flop. Jika sebuah flip-flop dikatakan berada pada keadaan tinggi (1) atau rendah (0), maka yang dimaksud adalah keadaan pada keluaran normal (Q). Tentu saja keluaran komplemen ( Q ) selalu berkebalikan dengan Q. Dengan demikian ada dua keadaan kerja yang mungkin dari satu flip-flop. Kedua keadaan kerja tersebut adalah (1). Q = 0 dan Q = 1 atau (2). Q = 1 dan Q = 0. 1. Flip-flop Set-Reset (FF-SR). Flip-flop Set-Reset (FF-SR) merupakan jenis flip-flop yang paling sederhana dan merupakan dasar dari rangkaian flip-flop jenis lain. Nama lain dari FF-SR terbentuk dari adalah Flip-flop Set-Clear (FF-SC). Flip-flop pada dasarnya dua gerbang logika NOT yang keluaran dihubungkan secara saling-silang (cross coupled). dan masukannya Perhatikan Gambar 8.2. Sepasang gerbang NOT yang dihubungkan saling-silang tersebut masih bersifat sangat mendasar dan belum sempurna. Rangkaian tersebut hanya dibangun untuk mengubah keadaan dengan cara sederhana, yaitu menghubung-pendekkan dengan tanah guna menghasilkan keluaran mana saja pada keadaan tinggi (1). Q Q Gambar 8.2 : Rangkai flip-flop dasar. Flip-flop yang demikian tentu saja kurang luwes. Flip-flop yang luwes adalah flip-flop yang dapat dikendalikan. Flip-flop yang sedikit lebih luwes dapat disusun dari gerbang NAND atau NOR. Tetapi kita akan menyusun satu jenis flip-flop, yaitu FF-SR dari dua gerbang logika NAND. Perhatikan Gambar 8.3. S R 1 Q 2 Q Gambar 8.3 : FF-SR dari sepasang gerbang NAND. Masukan S dan R biasanya berada pada keadaan 1 dan salah satu dari keduanya harus dikenai pulsa rendah (0) apabila ingin mengubah keadaan keluaran flip-flop. Jika keadaan masukan S = R = 1, salah satu kemungkinan keluarannya adalah Q = 0 dan Q = 1. Dengan Q = 0, kedua masukan NAND2 adalah 0 dan 1 yang menghasilkan Q = 1. Keadaan ini menyebabkan kedua masukan NAND-1 menjadi 1 dan keluarannya Q = 0. Sebenarnya, asalkan keluaran NAND-1 dalam keadaan 0 akan menghasilkan keluaran NAND-2 dalam keadaan 1 dan keluaran NAND-1 bertahan pada 0. Kemungkinan yang kedua adalah Q = 1 dan Q = menghasilakn 0 pada keluaran NAND-2 yang 0. Keadaan ini akan mempertahankan keluaran NAND-1 berharga 1. Maka ada dua kemungkinan keadaan jika S = R = 1. Terlihat bahwa suatu keadaan akan tergantung apa yang telah terjadi pada masukan sebelumnya. Selanjutnya kita selidiki ketika Q = 1 dan Q = 0 yang mendahului pulsa SET yang dimasukkan. Karena Q = 0 selalu menahan keluaran NAND-1 dalam keadaan 1, maka pulsa 0 pada S tidak mengubah sesuatu. Ketika S = 1 keluaran flip-flop masih dalam keadaan Q = 1 dan Q = 0. Hal ini dapat disimpulkan bahwa jika S = 0 akan menyebabkan keluaran flip-flop berakhir pada keadaan Q = 1. Operasi ini dikatakan men-set flip-flop. Keadaan Q = 1 ini juga disebut keadaan set. Sekarang kita tinjau jika R = 0, S = 1 dan ketika Q = 0, Q = 1 mendahului pulsa R = 0 tadi. Karena Q = 0 selalu membuat keluaran NAND-2 dalam keadaan 1, maka masukan 0 pada R tidak memiliki pengaruh. Ketika R kembali 1, keluaran flip-flop itu masih Q = 0 dan Q = 1. Keadaan lain jika Q = 1 mendahului masukan pulsa RESET. Ketika R = 0, Q menjadi 1 dan hal ini memaksa Q menjadi 0 sehingga kedua masukan NAND-2 adalah 0. Maka ketika R kembali 1, keluaran NAND-2 tetap 1 yang membuat keluaran NAND-1 dalam keadaan 0. Akhirnya dapat disimpulkan bahwa keadaa 0 pada R menyebabkan keluaran flip-flop Q = 0. Operasi ini disebut me-reset atau meng-clear flip-flop. Keadaan Q = 0 juga disebut sebagai keadaan reset atau clear. Akhirnya ketika secara bersamaan dibuat S = R = 0. Hal ini akan menghasilkan kedua keluaran NAND Q = Q = 1. Jelas bahwa keadaan ini tidak diinginkan, karena kedua keluaran flip-flop harus saling komplemen. Selanjutnya ketika masukan-masukan S dan R kembali menjadi 1, maka keadaan keluaran flip-flop akan tergantung masukan yang lebih dahulu menjadi 1. Perubahan secara bersamaan menjadi 1 akan menghasilkan keluaran yang tidak dapat diprediksi. Oleh karena itu, keadaan S = R = 0 tidak pernah dikenakan pada flip-flop SR. Penjelasan cara kerja flip-flop SR di atas dapat diringkas seperti berikut : 1. S = R = 1. Keadaan ini tidak memiliki pengaruh terhadap keluaran flip-flop. Keluaran Q dan Q akan tetap apapun keadaan masukan yang mendahuluinya. 2. S = 0 dan R = 1. Keadaan ini akan selalu mengakibatkan keluaran menuju ke keadaan Q = 1, dan akan tetap terjadi sampai sesudah S kembali ke 1. Keadaan ini dikatakan bahwa flip-flop di-set. 3. S = 1 dan R = 0. Keadaan ini selalu menghasilakn Q = 0, dan akan tetap bertahan sampai setelah R kembali menjadi 1. Keadaan ini dikatakan bahwa flip-flop di-reset. 4. S = R = 0. Keadaan ini berusaha men-set dan me-reset secara bersamaan dan menghasilkan keluaran tidak konsisten dengan flip-flop. Keadaan ini adalah terlarang. Berdasarkan ringkasan tersebut dapat dibuat tabel kebenaran untuk flip-flop SR yang menggunakan gerbang NAND seperti berikut : S R Keluaran FF (Q) 1 1 tak berubah 0 1 1 (set) 1 0 0 (Reset) 0 0 Terlarang Dari cara kerja flip-flop NAND tampak bahwa masukan-masukan S dan R adalah aktif rendah. Masukan S akan men-set Q = 1 ketika S menjadi rendah. Masukan R akan me-reset Q = 0 ketika R menjadi rendah. Gerbang logika lain yang dapat digunakan untuk menyusun sebuah FFSR adalah NOR. Perhatikanlah Gambar 8.4. Konfigurasi tersebut mirip flipflop NAND kecuali keluaran Q dan Q yang letaknya tertukar. S Q Q R Gambar 8.4 : FF-SR dari sepasang gerbang NOR. Dengan melakukan analisis pada flip-flop NOR seperti flip-flop NAND, akan menghasilkan tabel kebenaran sebagai berikut : S R Keluaran FF (Q) 0 0 tak berubah 1 0 1 (Set) 0 1 0 (Resest) 1 1 Terlarang Berdasarkan tabel kebenaran untuk flip-flop NOR dapat dikemukankan penjelasan sebagai berikut : 1. S = R = 0. Keadaan ini tidak memiliki pengaruh terhadap keluaran flip-flop. Keluaran-keluaran Q dan Q akan tetap apapun keadaan masukan yang mendahuluinya. 2. S = 1 dan R = 0. Keadaan ini akan selalu mengakibatkan keluaran menuju ke keadaan Q = 1, dan akan tetap terjadi sampai sesudah S kembali ke 0. Keadaan ini dikatakan bahwa flip-flop di-set. 3. S = 0 dan R = 1. Keadaan ini selalu menghasilakn Q = 0, dan akan tetap bertahan sampai setelah R kembali menjadi 0. Keadaan ini dikatakan bahwa flip-flop di-reset. 4. S = R = 1. Keadaan ini berusaha men-set dan me-reset secara bersamaan dan menghasilkan keluaran tidak konsisten dengan flip-flop karena Q = Q = 0. Jika masukan dikembalikan ke 0 secara bersamaan, keluarannya tidak dapat diprediksi. Keadaan ini adalah terlarang. Cara kerja flip-flop NOR tepat sama dengan flip-flop NAND kecuali bahwa masukan-masukan S dan R adalah aktif tinggi dan keadaan tetapnya terjadi ketika S = R = 0. Q akan di-set menjadi 1 oleh pulsa tinggi pada masukan S, dan keadaan ini akan di-reset menjadi 0 oleh pulsa tinggi pada masukan R. Seperti telah dikemukakan sebelumnya, bahwa rangkaian flip-flop baik yang tersusun dari gerbang NOT, NAND maupun NOR seperti yang telah kita pelajari masih merupakan flip-flop yang belum sempurna karena tetap belum tersedia fasilitas/saluran untuk mengendalikannya. Oleh karena itu, selanjutnya akan disusun suatu FF-SR lain dengan masukan aktif tinggi dan memungkinkan untuk dikembangkan menjadi flip-flop yang dapat dikendalikan. Kita akan memanfaatkan flip-flop NAND seperti yang telah dipelajari dengan menambahkan gerbang NOT pada kedua masukannya. Gerbang tersebut merupakan gerbang NAND yang kedua masukannya disatukan. Hal ini untuk menyiapkan fasilitas pengendalinya. Untuk lebih jelasnya perhatikan Gambar 8.5. S R NOT Q Q Gambar 8.5 : FF-SR aktif tinggi dari gerbang NAND. Jika kita analisis dengan seksama, jika S = 1 dan R = 0, maka Q = 1. Jika R = 1 dan S = 0, maka Q = 0. Jika S = R = 0, maka Q dapat berharga 1 atau 0 tergantung bahwa dari keadaan keadaan Q yang mendahuluinya. Hal keluaran flip-flop (Q) pada suatu ini saat menunjukkan tidak hanya ditentukan oleh keadaan masukannya pada saat itu tetapi juga tergantung pada keadaan keluaran sebelumnya. Dengan demikian tabel kebenaran untuk FF-SR aktif tinggi di atas akan dilengkapi sebelumnya (Qn ) dan keadaan keluaran dengan keadaan keluaran sesudah ada perubahan pada masukannya (Qn+1). Pada FF-SR tersebut juga ditemui keadaan terlarang yang terjadi ketika masukan S = R = 1. Pada keadaan tersebut kedua keluaran dari flip-flop berharga sama, yakni Qn+1 = Q n+1 = 1. Hal ini bertentangan dengan konsep flip-flop di mana keluaran yang satu (Q) harus merupakan komplemen dari keluaran yang lain ( Q ). Dengan demikian, pada pemakainnya, keadaan S = R = 1 harus dihindari. Tabel kebenaran untuk flip-flop SR aktif tinggi selengkapnya tampak pada tabel berikut S R Qn Qn+1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 terlarang 1 1 1 terlarang Sistem digital dapat bekerja secara serempak (sinkron) atau tak serempak (tak sinkron). Pada sistem tak sinkron keluaran dari rangkaian dapat berubah keadaan setiap saat jika ada satu atau lebih perubahan masukan. Sistem digital tak sinkron sulit dirancang dan sukar ditentukan kesalahannya. Sedangkan pada sistem sinkron, perubahan keadaan keluaran ditentukan atau dikendalikan oleh suatu sinyal penyerempak yang sering disebut detak (clock). Kebanyakan sistem digital berprinsip sinkron, karena rangkaian sinkron lebih mudah dirancang, terkendali, dan lebih mudah ditentukan kesalahannya karena keluaran rangkaian itu dapat berubah hanya pada saat yang tertentu. Pada umumnya sistem digital terdiri dari banyak flip-flop. Untuk memberikan kemungkinan perubahan flip-flop yang satu sinkron dengan flip-flop yang lain diperlukan tambahan saluran masukan. Saluran masukan tersebut dikenal sebagai masukan detak (clock atau Ck). Perhatikan Gambar 8.6. S’ S Q Ck Q R R’ Gambar 8.6 : FF-SR berdetak. FF-SR yang dilengkapi dengan masukan detak disebut FF-SR berdetak (Clocked S-R FF). Tanda dari masukan detak ini adalah Ck, Clk, atau CP. Dengan adanya masukan detak ini memungkinkan kerja flip-flop dapat dikendalikan dan menjadikan flip-flop tersebut lebih sebelumnya, sempurna dari meskipun masih dijumpai kelemahan yakni adanya keadaan terlarang. Perubahan keluaran dari FF-SR berdetak hanya akan terjadi jika masukan Ck = 1. Pada saat masukan Ck = 0, maka S' = R' = 1, sehingga keluaran Q dapat bernilai 0 atau 1. Pada keadaan Ck = 0 meskipun harga S dan R berubah-ubah keluaran flip-flop tetap. Keluaran flip-flop berubah hanya ketika Ck bertransisi dari 0 ke 1 dan harga keluaran tersebut tergantung dari keadaan S dan R pada saat Ck = 1. Transisi detak yang demikian disebut transisi positif. Selanjutnya keluaran flip-flop tidak akan berubah meskipun Ck berubah dari 1 ke 0. Dikenal pula suatu FF berdetak yang mengalami perubahan keluaran ketika terjadi transisi negatif, yaitu dari 1 ke 0. Tabel kebenaran FF-SR berdetak sama dengan tabel kebenaran FF-SR aktif tinggi yang telah kita pelajari. Untuk keperluan efisiensi dan efektifitas penggambaran, maka FF- SR berdetak digambarkan seperti tampak pada Gambar 8.7. S Q Ck _ R Q Gambar 8.7 : Diagram untuk FF-SR Berdetak. 2. Flip-flop J-K (FF-JK) Kelemahan utama dari flip-flop yang terdahulu adalah terjadinya keadaan terlarang. Untuk menghindari kelemahan ini disusunlah jenis flip-flop baru yang dikenal sebagai FF-JK. FF-JK dapat disusun dari FF-SR berdetak dengan konfigurasi susunan yang tampak seperti pada Gambar 8.8. J Ck K S Q Ck _ R Q Q J Q _ Ck Q (a) K Q (b) Gambar 8.8 : (a) FF-JK yang tersusun dari FF-SR Berdetak. (b) Simbol FF-JK. Dengan memperhatikan rangkaian, tampak bahwa fungsi logika untuk S dan R pada FF-SR berdetak adalah S = J Q dan R = KQ. Jika dianalisis dengan seksama akan diperoleh bahwa tabel kebenaran untuk FF-JK sama dengan tabel kebenaran FF-SR berdetak kecuali untuk J = k = 1. Perhatikan tabel kebenaran untuk FF-JK berikut. J K Qn Qn+1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 Meskipun lebih baik dari sebelumnya, FF-JK tetap memiliki kelemahan. Kelemahan ini dapat terjadi ketika J = K = 1. Misal mula-mula Q = Qn = 1 dan pada saat Ck = 1, maka Q akan berubah menjadi Q n+1 = 0. Kemudian karena sekarang Q = 0, kalau Ck tetap 1, maka keluaran Q akan berubah kembali menjadi 1. Dengan demikian, jika J = K = 1 dan Ck terlalu lama dalam keadaan 1, maka keluaran Q akan berubah-ubah dari 0 ke 1 atau dari 1 ke 0. Hal ini mengakibatkan pada saat Ck kembali ke 0 keadaan keluaran Q tidak dapat diprediksi (tidak menentu). Kejadian ini dikenal sebagai gejala balapan putar (race round). Balapan putar tidak akan terjadi jika lebar pulsa detak tCk lebih kecil dari pada waktu yang diperlukan untuk berubahnya keluaran td atau waktu tunda flip-flop. Orde waktu tunda tersebut adalah nano hingga mikro detik. Jika syarat itu tidak terpenuhi maka pada saat J = K = 1 akan terjadi balapan putar, yaitu keluaran flip-flop akan berubah secara berulang pada harga 0 atau 1 selama Ck = 1. Untuk mengatasi kelemahan FFJK kemudian disusun jenis flip-flop baru yang dikenal sebagai flip-flop JK master-slave (Flip-flop JK-MS). 3. Flip-flop J-K Master-Slave (FF-JKMS) Flip-flop JKMS dapat disusun dari FF-JK sebagai master (majikan) dan FF-SR Berdetak sebagai slave (budak). Umpan balik tidak keluar dari FF-JK tetapi dari FF-SR berdetak. Polaritas dari pulsa detak yang masuk ke FF-JK berlawanan dengan polaritas pulsa detak yang masuk ke FF-SR berdetak. Untuk lebih jelasnya perhatikan Gambar 8.9. J Ck K S Q S Q Ck _ Ck _ R Q R Q Master Q Q Slave Gambar 8.9 : FF-JK Master-Slave (JK-MS) Jika Ck berubah dari 0 ke 1, keluaran dari FF-JK akan berubah sesuai dengan tabel kebenarannya. Tetapi karena pada saat ini detak dari FF-SR berdetak bernilai 0, maka keluarannya tetap, akibatnya nilai Q yang diumpan-balikkan juga masih kembali ke tetap, sehingga tidak terjadi balapan putar. Setelah harga Ck 0, maka nilai keluaran FF-SR berdetak yang juga merupakan kaluaran dari FF-JKMS berubah. Oleh karena masukan FF-SR berdetak dihubungkan dengan keluaran FF-JK yang berarti harga S dan R selalu berlawanan, maka keluaran dari FF-SR berdetak akan berubah mengikuti harga keluaran dari FF-JK. Tabel kebenaran FF-JKMS sama dengan tabel kebenaran dari FF-JK. 4. Flip-flop D (FF-D) dan Flip-flop T (FF-T) Flip-flop D (delay atau data) dan flip-flop T (toggle) merupakan jenis flip-flop lain. FF-D dan FF-T merupakan flip-flop berdetak yang bekerja hanya dengan satu masukan. FF-D disusun dengan menambahkan gerbang NOT antara masukan S (J) dan R (K) pada FF-SR berdetak atau FF-JK. Keuntungan dari FF-D adalah menghindari terjadinya keadaan S = R = 1 yang terlarang. Sedangkan FF-T tidak lain adalah FF-JK yang kedua masukan J dan K dihubungkan menjadi satu. Baik FF-D maupun FF-T dapat disusun dari FFJK-MS. Rangkaian kedua flip-flop tersebut tampak pada Gambar 8.10 dan Gambar 8.11. D S/J Q D Ck _ Ck _ R/K Q Q (a) Q (b) Gambar 9.10 : (a). Rangkaian Flip-flop D dan (b). Simbol Flip-flop D. T J Q T Q _ Ck _ K Q (a) Q Ck (b) Gambar 8.11 : (a). Rangkaian Flip-flop T dan (b). Simbol Flip-flop T. Dengan melakukan analisis akan diperoleh tabel kebenaran kedua flip-flop sebagai berikut : D Qn Qn+1 T Qn Qn+1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 5. Flip-flop yang Dilengkapi dengan Preset dan Clear Sebelum suatu FF dioperasikan sangat diperlukan untuk mengatur keadaan awal dari FF tersebut. Untuk keperluan inilah maka suatu FF sering dilengkapi dengan fasilitas masukan preset (Pr) dan clear (Cr), atau kadangkadang masukan clear (Cr) saja. Bentuk sederhana dari FF-JK yang dilengkapi dengan masukan Pr dan Cr tampak pada Gambar 8.12. Pr J Q J Ck K Gambar (a) 8.12 : Pr Q Q _ Ck K Q Cr FF-JK yang dilengkapi dengan Preset (a) Cr (b) dan Clear. (b) Simbol FF-JK dengan Pr dan Cr Tanpa menunggu adanya pulsa detak, keluaran Q = 1 jika Pr = 0 dan Cr = 1. Selanjutnya keluaran Q = 0 jika Pr = 1 dan Cr = 0. Keadaan Pr = Cr = 0 perlu dihindari karena akan mengakibatkan keadaan terlarang yakni Q = Q = 1. Setelah dilakukan pengaturan keadaan awal keluaran FF, maka masukan Pr dan Cr harus dikembalikan ke keadaan 1 sehingga FF bekerja sebagaimana yang seharusnya. 6. Tabel Eksitasi Tabel eksitasi menyatakan tabel yang berisi kombinasi keadaan masukan suatu FF untuk mendapatkan eksitasi (loncatan) keadaan keluaran dari keadaan awal (Qn) ke keadaan berikutnya (Qn+1) yang dimungkinkan. Tabel ini sangat berguna untuk merancang rangkaian pencacah sinkron. Karena berdasarkan tabel eksitasi ini akan dapat dibuat tabel transisi dari suatu rangkaian digital sekuensial, misalkan rangkaian pencacah biner sinkron. Tabel eksitasi suatu FF diturunkan dari tabel kebenaran FF yang bersangkutan. Berikut ini dikemukakan tebel eksitasi untuk FF-SR, FF-JK, FF-D, dan FF-T. Tabel eksitasi FF-JK-MS sama dengan tabel eksitasi FF-JK. Qn Q n+1 S R J K D T 0 0 0 x 0 x 0 0 0 1 1 0 1 x 1 1 1 0 0 1 x 1 0 1 1 1 x 0 x 0 1 0 Beberapa contoh cara membuat tabel eksitasi dapat dilihat pada FF-JK. Dengan melihat tabel kebenaran untuk FF-JK yang terdahulu, terbukti bahwa agar keluaran FF-JK berubah dari keadaan awal 0 (atau Qn = 0) ke keadaan berikutnya 0 (atau Qn+1 = 0) maka nilai J = 0 sedangkan nilai K boleh 0 atau 1. Dengan kata lain nilai K boleh sembarang yang dituliskan dengan tanda x. Selanjutnya, agar pada keluarannya berubah dari 0 ke 1, maka haruslah J = 1 dan K sembarang. Demikian seterusnya untuk perubahan yang lain. Cara tersebut juga berlaku untuk FF yang lain. 7. Aplikasi Flip-flop Flip-flop banyak diaplikasikan dalam berbagai persoalan. Aplikasi yang paling utama adalah pada register dan pencacah. Karena penting dan luasnya, maka kedua persoalan tersebut akan dibahas dalam bab tersendiri. Berikut ini hanya dikemukakan beberapa aplikasi yang relatif sederhana dan spesifik. Komputer digital sering memerlukan rangkaian untuk mengingat apakah hasil terakhir dari suatu operasi matematik bernilai lebih besar (>), kurang dari (<) atau sama dengan (=) nol (0). Rangkaian berikut dapat digunakan untuk menyelesaikan tugas tersebut. Tiga buah gerbang NAND empat masukan disusun untuk membentuk flip-flop 3 keadaan. Bagian masukannya terdiri dari tiga saluran ( A , B , dan C ), bagian keluarannya juga terdiri dari tiga saluran (A, B, dan C). Rangkaian tersebut bersifat aktif rendah (active low). Hanya satu dari ketiga masukannya boleh rendah (aktif) pada suatu saat, dan hanya satu keluaran yang berstatus rendah (aktif) yang cocok dengan keadaan masukan tersebut. Keadaan keluaran ini tetap bertahan hingga terjadi masukan aktif berikutnya. B A C 2 3 7420 1 7420 C B 7420 A Gambar 8.13 : Flip-flop 3 keadaan Misalkan ketika A rendah, ia memaksa keluaran B dan C tinggi, karena B dan C tinggi sehingga keempat masukan gerbang 1 tinggi dan keluaran A rendah yang memberikan masukan rendah pada gerbang 2 dan 3. Keluaran A tetap rendah setelah A kembali ke tinggi dan mempertahankan B dan C tinggi. Misalkan C rendah, ia memaksa keluaran gerbang 1 dan 2 tinggi. Hal ini membuat keempat masukan gerbang 3 tinggi dan keluaran C menjadi rendah. Demikian seterusnya. Contoh aplikasi berikutnya adalah rangkaian yang diperlukan untuk mengingat nilai bilangan biner (23222120) yang menyajikan keadaan hari di mana pada suatu saklar pembatas suhu siap berubah status (misalkan ke tinggi). Rangkaian tersebut menggunakan 4 buah SR-FF karena ada 4 bilangan biner yang harus diingat, selain itu juga menggunakan gerbang lain yang diperlukan. Masukan dari detak biner Saklar pembatas suhu + 5 volt Gerbang strobe + 5 volt S Q S Q S Q S Q R Q R Q R Q R Q Reset Keluaran ke sistem pengolah Gambar 8.14 : SR-FF sebagai rangkaian pengingat Dengan saklar reset pada posisi tanah, maka masukan R menjadi rendah. Dengan saklar pembatas suhu pada posisi tanah, maka salah satu masukan pada setiap gerbang AND berstatus rendah yang mempertahankan masukan S pada keadaan rendah. Untuk memulai bekerja, pertama saklar reset ditinggikan (+ 5 volt) sesaat yang akan me-reset semua flip-flop. Sementara itu, bilangan masukan biner tidak diijinkan mencapai S karena ada keadaan rendah pada salah satu kaki dari setiap gerbang AND. Gerbang-gerbang ini digunakan untuk gerbang strobe yang hanya meloloskan informasi hanya ketika semuanya dienable. Ketika saklar permatas suhu tersambung ke + 5 volt sesaat, maka biner masukan diijinkan lolos menuju S, sehingga men-set flip-flop yang sesuai. Bilangan biner masukan menggambarkan hari yang keadaan suhunya akan disaklar untuk diingat dan dibaca kemudian oleh sistem pengolah secara otomatis. 8. Soal-soal : 1. Gambar di bawah ini adalah sebuah SR-FF berdetak. Gambarlah bentuk gelombang keluaran (Q), jika pada masukannya dikenai keadaan seperti berikut ! S Ck Q S Ck Q R R Q 2. Jelaskan cara kerja rangkaian berikut ketika masukan Ck dikenai detak. Gambarkanlah diagram waktu dari Q1 dan Q2 sesuai dengan detakan yang dikenakan tadi ! 1 J Q1 J Ck 1 K Q2 Ck Q1 K Q2 Detak 3. Diketahui suatu rangkaian yang dirancang untuk menghasilkan pulsa tunggal seperti gambar berikut. Analisislah kapan dapat terjadi pulsa tunggal pada keluaran (sebutkan status saklar), seberapa lama (terhadap detak), dan gambarkan bentuk gelombang keluarannya. Kemungkinan pada keluaran terjadi denyut pendek beberapa saat setelah pulsa tunggal berakhir. Jika denyut itu terjadi, mengapa dapat terjadi dan sebutkan cara mengatasinya (rancang ulang) !. D Sakla r Q D 7474 Q Keluaran 7474 Ck Ck Detak 4. Perhatikanlah rangkaian flip-flop pada gambar berikut ! (Lihatlah lembar data untuk setiap jenis flip-flop). Dengan menggambarkan bentuk gelombang, jelaskan apa yang terjadi pada keluarannya ketika (a) Saklar terbuka dan status detak rendah (gnd), (b) Saklar terbuka dan status detak tinggi (+ 5 volt). Keluaran 74107 Sakla r D Q 7474 J Q Ck Ck K Detak 5. Diketahui rangkaian flip-flop seperti tampak pada gambar berikut. Jika pada saluran masukan dikenai detak dengan frekuensi 8 MHz, berapakah frekuensi pada saluran Q0 dan Q1 ? Gambarkanlah bentuk gelombangnya jika dimulai dari keadaan masukan rendah. Masukan D Q0 D Q1 Ck Ck Q 6. Lihatlah buku/lembar data (CMOS atau TTL) untuk mengetahui cara kerja flip-flop JK dengan kode IC 74LS76. Jika status logik dari saluran-saluran J, K, detak, pre-set, dan clear sebagai berikut, maka gambarlah bentuk gelombang keluaran pada saluran Q ! Ck SD RD J K Q 7. Berdasarkan konfigurasi sambungan seperti gambar berikut dan status logik yang diketahui, gambarlah bentuk gelombang keluaran dari saluran Q ! 1 Ck J CK SD Q RD 74LS76 Q K RD Q 8. Berdasarkan konfigurasi persambungan dan status logik RD = 1 sebagaimana tampak pada gambar berikut, maka gambarkanlah bentuk gelombang keluaran pada Q ! Ck SD Q J SD CK Q 74LS76 K RD Q 1 9. Berdasarkan konfigurasi sambungan seperti gambar berikut dan status logik yang diketahui, gambarlah bentuk gelombang keluaran dari saluran Q ! Ck Data SD Q J CK 74LS76 K RD SD Data Q Q 1 10. Perhatikanlah konfigurasi sambungan dan status logik pada gambar berikut, gambarkanlah bentuk gelombang keluaran pada saluran Q ! 1 J SD Q RD CK 1 Ck 74LS76 K RD Q Q BAB IX MULTIVIBRATOR Dalam dunia elektronik banyak proses yang pada prinsipnya sekedar memutus atau menghubungkan suatu rangkaian listrik (proses pensaklaran). Proses tersebut harus memenuhi syarat tertentu, yakni cepat (tidak timbul getaran) dan tidak menimbulkan percikan bunga api listrik. Saklar mekanik atau manual tidak dapat memenuhi persyaratan tersebut. Karena saklar mekanik memiliki kelembaman yang relatif besar sehingga kecepatannya terbatas. Selain itu, saklar mekanik juga menimbulkan percikan bunga api listrik yang dapat membakar bahan yang bersinggungan. Proses pemsaklaran tersebut dapat kita jumpai pada sistem pewaktu agar suatu rangkaian dapat bekerja ataupun tidak bekerja dalam selang waktu tertentu. Misalkan rangkaian pewaktu untuk membuat agar sebuah relay dapat tertutup atau terputus dalam selang waktu tertentu. Juga sering kita perlukan rangkaian yang dapat memodulasi lebar pulsa dan penunda waktu (time delay). Rangkaian elektronik yang lebar pulsa monostabil. mempunyai kemampuan untuk membuat waktu tunda atau tertentu ini lebih jauh akan dipelajari dalam multivibrator Multivibrator sebenarnya merupakan rangkaian elektronik yang menghasilkan gelombang kotak, atau gelombang lain yang bukan sinusoida seperti gelombang segi empat dan gelombang gigi gergaji. Nama multivibrator diturunkan dari besar gelombang kenyataan bahwa gelombang kotak terdiri sinusoida dengan frekuensi yang dari sejumlah berbeda-beda (berdasarkan analisis deret fourier). Selain flip-flop dan monostabil, ada jenis multivibrator lain yang akan kita pelajari yaitu multivibrator astabil dan picu Schmitt. Keduanya sering berperan sebagai osilator yang menghasilkan pulsa kotak (square). Pulsa kotak yang stabil dengan frekuensi tertentu dalam elektronika digital lebih dikenal sebagai detak (clock). Detak ini penting, bahkan sangat penting, dalam operasi suatu piranti elektronika digital seperti komputer dan kalkulator. 1. Multivibrator Monostabil Sesuai dengan namanya, rangkaian multivibrator monostabil mempunyai keluaran dengan satu keadaan stabil (mantap). Rangkaian tersebut tetap dalam keadaan stabilnya sampai ada pemicu. Sekali dipicu, keluarannya berubah dari keadaan stabilnya tadi ke keadaan tak stabil (keadaan baru). Keadaan tak stabil itu bertahan selama waktu tertentu dan setelah itu dengan sendirinya kembali ke keadaan stabilnya lagi. Ternyata monostabil merupakan rangkaian yang penting, bahkan terlalu penting, untuk membangkitkan pulsa yang dapat diatur polaritas dan lebarnya pada amplitudo tetap. Sebuatan lain untuk monostabil adalah eka-mantap, one-shot, atau monoflop. Monostabil dapat dibuat dengan berbagai cara, namun pada kesempatan ini kita akan membahas monostabil yang menggunakan gerbang logika NAND yang dilengkapi dengan resistor dan kapasitor sebagai komponen pewaktunya. Ada 2 jenis monostabil, yaitu monostabil terpicu positif dan monostabil terpicu negatif. Perhatikan Gambar 9.1. K 2 T 1 Q R 3 Q C Gambar 9.1 : Rangkaian monostabil terpicu positif Anggaplah mula-mula masukan pemicu T = 0, keluaran Q = 1, dan keluaran Q = 0. Perhatikan keluaran dari NAND-2 dalam keadaan 1 sehingga K = 1. Pada saat masukan T berubah dari 0 ke 1 (terpicu positif) tentu saja kedua masukan NAND-1 ada pada keadaan 1, sehingga Q berubah dari 1 ke 0. Tetapi begitu T berubah dari 0 ke 1, maka keluaran dari NAND-2 juga berubah menjadi 0. Muatan pada kapasitor C yang mula-mula memberikan K = 1 sedikit demi sedikit dilucuti (dikosongkan) melalui resistor R sehingga tegangan pada K turun menuju 0. Perubahan K dari 1 ke 0 ini akan melewati twgangan ambang yang akan menyebabkan K dianggap 0. Pada saat ini keluaran NAND-1, yaitu Q , akan kembali ke keadaan 1 lagi (keadaan sebelum dipicu). Lama pulsa t (keadaan tak stabil) di Q tersebut tergantung pada resistansi R dan kapasitansi C yang terpasang. Secara umum berlaku : t = R.C. Karena NAND-3 berperan sebagai NOT, maka antara Q dan Q saling komplemen, artinya jika Q = 1 maka Q = 0, dan sebaliknya jika Q = 0 maka Q = 1. Kelemahan dari monostabil terpicu positif adalah adanya syarat agar pulsa pemicu di T harus lebih lama dari pada pulsa keluaran di Q . Hal ini diakibatkan oleh adanya hubungan langsung T dengan salah satu masukan NAND-1 yang menyebabkan jika T = 0 maka Q = 1. Sehingga jika T berubah ke 0 lagi sebelum pulsa pemicu T mencapai tegangan ambang maka lebar pulsa keluaran Q tidak tepat sama dengan R.C dan tentu saja harga t (lama tak stabil) pasti kurang dari pada R.C. Jenis lain dari monostabil adalah yang terpicu negatif (dipicu dari 1 ke 0). Cara menyusunnya antara lain dengan menambahkan NAND-4 seperti terlihat pada Gambar 9.2. T B 2 4 A R 1 3 Q Q C Gambar 9.2 : Rangkaian monostabil terpicu negatif Menggunakan gerbang logika NAND Mula-mula T = 1 dan Q = 1, keadaan ini adalah stabil. Jika T berubah dari 1 ke 0 maka keluaran NAND-4 dalam keadaan 1 (A = 1). Karena masukan NAND-1 keduanya dalam keadaan 1 maka Q = 0. Selanjutnya, tegangan di titik B semaki lama semakin turun akibat lucutan muatan pada C melalui R. Sehingga pada saat melewati tegangan ambang membuat Q = 1 kembali semula. Dengan demikian keluaran Q menjadi tidak tergantung pada perubahan masukan T dari 0 ke 1, oleh karenanya benar-benar berlaku bahwa lama keadaan tak stabilnya adalah t = R.C. Untuk lebih jelasnya, perhatikan bentuk pulsa monostabil terpicu positif dan terpicu negatif pada Gambar 9.3. T T K A B Tegangan ambang Q Q Q t Q (a) t (b) Gambar 9.3 : Bentuk pulsa pada monostabi (a) terpicu Positif dan (b) terpicu negatif. Masih banyak cara untuk menyusun monostabil dari gerbang logika lain, seperti NOT ataupun NOR, bahkan dengan NAND dengan konfigurasi yang berbeda-beda. Pada Gambar 9.4 tampak rangkaian monostabil dari gerbang NAND dengan konfigurasi yang berbeda dari sebelumnya. Misalkan mula-mula Q adalah stabil dalam keadaan 1. Ketika pulsa sempit 0 dikenakan pada masukan A, maka keluaran NAND-1 menjadi 1 dan melalui C2 membuat kedua masukan NAND-2 dalam keadaan 1. Hal ini menghasilkam keluaran pada NAND-2 menjadi 0 yang menjamin keluaran NAND-1 tetap 1 meskipun pulsa masukan telah berakhir. Sekarang C2 membuang muatan lewat R2 dan dengan demikian kedua masukan NAND-2 menjadi 0. Keadaan ini membuat keluaran NAND-2 menjadi 1 dan keluaran NAND-1 menjadi 0. Akhirnya, rangkaian tersebut mencapai keadaan stabilnya lagi dengan masukan NAND-1 dalam keadaan 1 dan keluaran NAND-2 juga 1. Lama monostabil tersebut dalam keadaan tidak stabil ditentukan oleh nilai R2 dan C2 . + R1 C1 Q A Q C B 1 C2 2 R2 Gambar 9.4 : Monostabil digital yang tersusun dari gerbang NAND Contoh berikutnya adalah monostabil digital yang tersusun dari gerbang logika NOR, dan salah satu konfigurasinya dapat diperhatikan pada Gambar 9.5. + A C R Q 1 M Gambar 9.5 : Monostabil digital yang tersusun dari gerbang NOR. Keadaan stabil dari monostabil pada Gambar 9.5 adalah Q = 0 dan A = 0. Selanjutnya, cobalah untuk menjelaskan cara kerja rangkaian tersebut dengan memberikan pemicu singkat dengan transisi dari 0 ke 1 (pemicu positif). 2. Multivibrator Astabil Multivibrator astabil merupakan suatu rangkaian yang keadaan pada keluarannya tidak dapat stabil pada satu keadaan, tetapi berubah secara terusmenerus dari keadaan 0 ke keadaan 1 berulang secara bergantian. Astabil biasa digunakan (square). Masalah sebagai osilator yang menghasilkan gelombang kotak yang biasa dihadapi adalah menyangkut kestabilan frekuensi keluaran astabil. Astabil banyak digunakan dalam rangkaian digital untuk membangkitkan rentetan gelombang kotak untuk keperluan pendetakan (clock). Rangkaian digital seperti pencacah, register, dan lainlain mutlak memerlukan gelombang kotak yang dapat diandalkan. Ada banyak cara untuk menyusun rangkaian astabil dengan gerbang logika. Sebagai contoh pada Gambar 9.6 disajikan rangkaian astabil dari gerbang logika NAND yang dilengkapi dengan resistor R dan kapasitor C sebagai penentu frekuensi. C 1 A D 2 B R 3 Q Q 4 Gambar 9.6 : Rangkaian multivibrator astabil menggunakan gerbang NAND Mula-mula masukan NAND-1 yaitu titik A = 0, maka titik B = 1 dan titik D = 0. Oleh karena B = 1 dan dan A = 0 maka tegangan B lebih tinggi dari pada A dan arus mengalir dari B ke A melalui R. Akibatnya kapasitor C aakan terisi dan tegangannya naik sedikit demi sedikit hingga menuju 1. Pada saat A = 1, maka B berubah dari 1 ke 0. Keadaan sekarang menjadi terbalik dari sebelumnya. Karena B = 0 dan A = 1, maka arus mengalir dari A ke B melalui R sedemikian hingga tegangan A turun sedikit demi sedikit. Ketika A = 0 maka B berubah dari 0 ke 1 lagi. Demikian seterusnya, peristiwa tersebut terjadi secara berulang sehingga timbul osilasi. Gerbang NAND-3 dan NAND-4 berfungsi sebagai pembentuk gelombang kotak. Bentuk gelombang dari rangkaian astabil tersebut dapat dilihat pada Gambar 9.7. A 0 t1 t2 t3 B Q Gambar 9.7 : Bentuk gelombang astabil pada Gambar 8.6. Antara 0 dan t tegangan titik A naik secara eksponensial yang berarti kapasitor C terisi dan arus mengalir dari B ke A melalui R. Antara t dan t tegangan A turun yang berarti arus mengalir dari A ke B atau kapasitor C dikosongkan. Astabil yang menggunakan gerbang logika NAND pada gambar 9.6 bukanlah satu-satunya konfigurasi. Selain dengan gerbang NAND, multivibrator astabil digital juga dapat disusun dari gerbang logika NOT atau NOR. Pada Gambar 9.8 dapat dilihat astabil yang tersusun dari gerbang logika NOR. R Q A D C R1 Gambar 9.8 : Rangkaian astabil dengan gerbang NOR. Cobalah untuk menjelaskan cara kerja astabil pada mengingat bahwa pengisian dan pengosongan gambar 9.8 muatan pada dengan kapasitor C melalui resistor R. Kedua komponen tersebut, yakni C dan R, dihubungkan dengan keluaran astabil. 3. Picu Schmitt (Schmitt Trigger) Picu Schmitt sebenarnya merupakan rangkaian bistabil (flip-flop) yang keadaan keluarannya dikendalikan melalui tingkat tegangan pada masukannya. gelombang Picu sinus Schmitt menjadi sering digunakan untuk mengubah masukan gelombang kotak. Gelombang kotak tersebut dapat menyediakan pulsa pemicu yang tajam untuk mengendalikan rangkaian lain. Picu Schmitt sangat baik untuk pembentukan kembali pulsa-pulsa yang cacat pada tepi tepinya, atau dengan kata lain picu Schmitt sangat handal untuk penghapusan desah (noise) yang menumpang pada suatu isyarat. Rangkaian picu Schmitt dapat dibuat dengan menggunakan gerbang logika NAND 3 masukan sejumlah 3 buah, dan 2 di antara 3 tersbut dirangkai untuk membuat bistabil. Rangkaian picu Schmitt seutuhnya dapat diperhatikan pada Gambar 9.9. Q Vi Q Gambar 9.9 : Rangkaian picu Schmitt dengan gerbang NAND 3 masukan Suatu bentuk rangkaian astabil yang sederhana dapat dibuat dengan menggunakan picu Schmitt. Sebagai contoh astabil dari picu Schmitt 7413 atau 7414 dapat dilihat pada Gambar 9.10. R A 2 1 B Q C Gambar 9.10 : Astabil dengan picu Schmitt 7413. Jika masukan NAND-1 yaitu A = 0, maka titik B = 1 dan arus akan mengalir dari B ke A melalui R. Akibatnya keadaan A menjadi naik menuju 1. Jika A = 1, maka B akan berubah dari 1 ke 0 dan arus mengalir dari A ke B melalui R. Demikian seterusnya proses tersebut terjadi secara berulang-ulang. Jika diperhatikan dengan seksama, keadaan Q selalu berkebalikan dengan keadaan B, artinya jika B = 0 maka Q = 1 dan jika B = 1 maka Q = 0. Ternyata frekuensi keluaran astabil yang tersusun dari picu Schmitt dapat diandalkan kestabilannya. Vi V+ Vt Vo Vcc t Gambar 9.11 : Hubungan antara isyarat masukan dan keluaran pada picu Schmitt. Picu Schmitt bersifat sebagai komparator yang memiliki dua tingkat tegangan pada masukannya. Bila tingkat tegangan itu dilampaui oleh suatu isyarat masukan maka keluarannya akan mengalami perubahan keadaan. Untuk lebih jelasnya perhatikan Gambar 9.11. V+ adalah tegangan ambang atas dan V- menyatakan tegangan ambang bawah. Jika tegangan masukan Vi > V- maka keadaan keluarannya akan tinggi, dan jika V i < V+ maka keadaan keluarannya menjadi rendah. Karena ambang atas dan bawah tidak sama mengakibatkan picu Schmitt memiliki histerisis. Kurva histerisisnya tampak pada Gambar 9.12. Vo Vi V- V+ Gambar 9.12 : Kurva histerisis pada picu Schmitt. Histerisis inilah yang menjadi ciri khas picu Schmitt, yaitu bahwa rangkaian tidak segera menyambung balik sesudah isyarat masukan turun tepat di bawah suatu tegangan ambang (atas) tetapi pada tingkat tegangan yang jauh lebih rendah (pada ambang bawah). Lambang picu Schmitt dengan histerisis sebagai ciri khasnya tampak pada Gambar 9.13. atau Gambar 9.13 : Lambang picu Schmitt. Cara lain untuk membangun rangkaian picu Schmitt adalah menggunakan suatu penyangga (buffer) seperti CD-4050 dengan memasang balikan positif seperti tampak pada Gambar 9.14. (Ri/Rf).Vcc Vo Rf Ri Vcc 4050 (a) V- Vcc/2 (b) Gambar 9.14 : Vi V+ (a). Picu Schmitt menggunakan penyangga (b). Kurva Histerisisnya. Secara praktis, harga-harga tegangan ambang atas dan bawah dapat dinyatakan sebagai : V+ = Vcc ( Ri R f ) V- = Vcc - 2R f Vcc ( Ri R f ) 2R f . 4. Rangkaian Terpadu Monostabil, Astabil, dan Picu Schmitt Rangkaian monostabil, astabil dan picu Schmitt dapat disusun dengan gerbang logika dengan menambhkan beberapa komponen diskrit resistor maupun kapasitor sesuai dengan keperluan. Tetapi cara yang lebih mudah dan praktis adalah memanfaatkan rangkaian tersebut yang telah tersedia dalam bentuk IC. Banyak tersedia IC yang telah dirancang secara khusus sebagai monostabil, astabil ataupun picu Schmitt, beberapa di antaranya akan dibahas sebagai berikut. Monostabil/Astabil CD-4047B IC CD-4047B dapat dioperasikan sebagai salah satu dari monostabil atau astabil. IC tersebut memerlukan kapasitor luar (dipasang antara kaki 1 dan 3) dan resistor luar (dipasang antara kaki 2 dan 3) untuk menentukan lebar pulsa bila sebagai monostabil dan sebagai astabil. menentukan Pengoperasiannya sebagai frekuensi keluaran astabil adalah bila dengan memberikan keadaan tinggi pada masukan ASTABLE (kaki 5) atau keadaan rendah pada masukan ASTABLE (kaki 4). Frekuensi keluaran pada Q (kaki 10) dan Q (kaki 11) ditentukan oleh rangkaian konstanta waktu (kapasitor dan resistor). Frekuensi 2 kali frekuensi keluaran Q tersedia pada keluaran OSCILLATOR (kaki 13). Sedangkan peropersiannya sebagai monostabil diperoleh ketika pada IC CD-4047B dipicu dengan transisi dari rendah ke tinggi pada masukan +TRIGGER (kaki 8) atau dengan transisi dari tinggi ke rendah pada masukan -TRIGGER (kaki 6). IC dapat dipicu ulang dengan memberikan pulsa transisi dari rendah ke tinggi secara bersamaan pada kedua masukan +TRIGGER dan RETRIGGER (kaki 12). Suatu pulsa tinggi pada masukan EXT.RESET (kaki 9) akan me-reset keluaran Q pada keadaan rendah dan Q pada keadaan tinggi. Diagram IC CD-4047B tampak pada Gambar 9.15. 13 5 3 1 2 12 4 11 6 10 8 9 Gambar 9.15 : Diagram blok IC CD-4047B. Picu Schmitt 7413 Untuk mendapatkan hasil operasi rangkaian digital yang terpercaya diperlukan pulsa masukan dengan waktu transisi yang sangat cepat. Transisi tersebut meliputi dari rendah ke tinggi (transisi positif) ataupun dari tinggi ke rendah (transisi negatif). Pada daerah transisi tersebut sangat potensial untuk terjadinya gangguan ataupun keadaan tidak stabil, sehingga daerah transisi merupakan daerah yang kritis. Adanya pulsa dengan waktu transisi yang lambat banyak menimbulkan masalah. Salah satu penyelesaiannya adalah menggunakan komparator dengan balikan positif untuk menghasilkan histerisis. Tetapi ada penyelesaian yang lebih praktis dan mudah, yaitu menggunakan IC picu Schmitt, misalnya 7413, 7414 dan 40106. Setiap IC 7413 terdiri dari 2 picu Schmitt yang identik. Secara logik, setiap rangkaian picu tersebut merupakan gerbang NAND 4 masuan dengan mengenakan balikan positif dan dengan ambang masukan yang berbeda untuk pulsa masukan positif maupun negatif. Ambang transisi positifnya sekitar 1,7 volt dan ambang transisi negatifnya sekitar 0,9 volt. Desah (noise) frekuensi timggi sering menumpang pada sinyal informasi. Desah yang tidak diinginkan itu dapat dihilangkan dengan menggunakan picu Schmitt yang cara menyusunnya tampak pada Gambar 9.16. R Keluaran Masukan C Gambar 9.16 : Picu Schmitt untuk menghilangkan desah. Kapasitansi kapasitor C yang optimum tergantung dari sifat desah dan frekuensi sinyal, sehingga perlu mengadakan percobaan untuk mendapatkan hasil yang terbaik. Picu Schmitt 7413 juga dapat dimanfaatkan sebagai sumber detak (clock) yang Gambar 9.17. rangkaiannya seperti tampak pada Frekuensi keluaran jika dipasang resistor balikan 330 dinyatakan dengan pendekatan sebagai f = 0,8 , RC di mana C dalam F. R Keluaran C 7413 Gambar 9.17 : Picu Schmitt sebagai sumber detak. 5. IC Pewaktu (Timer) 555 IC pewaktu 555 sangat populer karena dapat digunakan untuk berbagai keperluan. IC tersebut dapat dikonfigurasi sebagai multivibrator baik astabil maupun monostabil. Pada prinsipnya, IC-555 terdiri dari dua-pembanding tegangan, satu-flip-flop, satu-penguat akhir, satu-transisitor, dan tiga-resistor tetap masing-masing 5 k. Ketiga resistor membentuk pembagi tegangan yang menghasilkan tegangan acuan bagi kedua pembanding. Tegangan acuan itu adalah (1/3)Vcc dan (2/3)Vcc. Pada Gambar 9.18, IC-555 dirangkai sebagai osilator dengan frekuensi yang dapat diubah-ubah. Setelah Vcc dikenakan, arus mengalir melalui RA, P, dan RB menuju kondensator C. Kondensator tersebut terisi muatan yang menyebabkan kenaikan tegangan V C. Tegangan itu dirasa oleh kedua pembanding pada kaki 2 dan 6. Pembanding-1 akan bereaksi jika tegangan VC sebesar (2/3) dari Vcc, sehingga flip-flop di-reset dan keluarannya (kaki 3) ada pada 0 volt (tegangan sebelumnya kira-kira setinggi Vcc). Bersamaan dengan keadaan ini, flip-flop membuat transistor T menghantar, sehinggan kaki 7 sekarang di-massa-kan. Tegangan kemudi RA 5 Ambang teratas 6 P Koneksi buangmuatan 7 R 4 Pembanding-1 + - a VC C tingkat akhir S FF Q 3 + R 5 Pembanding-2 b 2 Ambang terbawah (penyulut) Reset 8 R RB Vcc Tegangan catu R Keluaran (ke relai) T 1 555 Koneksi massa Gambar 9.18 : Diagram rangkaian IC Pewaktu 555 Hal ini menyebabkan kondensator C membuang muatan lewat R B dan T. T juga membuat agar arus yang lewat RA dan P dialirkan ke massa. Jika tegangan C kurang dari (1/3)Vcc, maka flip-flop di-set oleh pembanding-2. Sehingga pada keluaran terdapat lagi tegangan sebesar Vcc dan tidak ada arus yang lewat T. Keadaan awalpun berulang, C mulai terisi muatan lagi. Singkatnya, tegangan kapasitor VC berubah-ubah terus antara (1/3)Vcc dan (2/3)Vcc dan tegangan keluarannya juga selalu melompat-lompat pada 0 volt dan Vcc sehingga membentuk gelombang kotak. Frekuensi gelombang kotak tersebut bergantung pada waktu-muat dan waktu-buang muatan dari kondensator C. Kedua waktu tersebut berbeda. Selama pengisian, arus yang lewat RA, P, dan RB adalah lebih kecil dari pada waktu membuang muatan yang hanya lewat R B. Sehingga pemuatan berjalan lebih lambat. Hal ini berakibat bahwa denyut-denyut berlalu lebih lama dari pada spasi-spasi. Panjang denyut, jadi frekuensi, dapat diatur dengan P. Adapun frekuensinya dapat ditentukan dengan rumus : f = 1,44 . ( RA P 2 RB )C Sekiranya potensiometer antara kaki 2 dan kaki 7 didereti RB, maka lama spasi akan dapat diatur (dalam hal ini nilai P dijumlahkan kepada RB). Karena dalam rangkaian ini arus mengambil jalan-jalan berbeda selama mengisi dan membuang muatan, maka lama waktu denyut dan spasi berbeda. IC-555 Sebagai Astabil Keluaran multivibrator astabil (AMV) selalu berubah dengan sendirinya dari rendah ke tinggi kemudian ke rendah lagi secara berulang-ulang. Perubahan ini akan berhenti jika catu daya diputuskan. IC-555 sebagai astabil dapat dilihat pada Gambar 9.19 berikut : + Vcc RA 8 4 7 RB C 555 2 3 6 5 Vo 1 Gambar 9.19 : Konfigurasi IC Pewaktu 555 sebagai astabil. Karena keadaan keluaran yang tidak menentu, maka diasumsikan keadaan Q mula-mula rendah dan keluaran pada kaki 3 tinggi. Keadaan Q yang rendah telah membuat transistor menyumbat sehingga kapasitor C dapat terisi melalui RA dan RB. Konstanta waktunya adalah (RA + RB)C. Ketika C terisi muatan, tegangan pada kaki 6 akan naik mencapai (2/3) Vcc. Saat itu pembanding 1 akan memiliki keluaran tinggi yang men-set flip-flop sehingga membuat transistor menghantar dan menghubung singkatkan RB dan C ke ground. Akibatnya C akan membuang muatannya melalui RB ke ground. Ini berarti konstanta waktu pembuangan muatannya adalah RBC. Karena muatannya terbuang, maka tegangannya akan turun. Ketika tegangan ini turun di bawah (1/3) Vcc, keluaran pembanding 2 akan menjadi tinggi dan me-reset flip-flop. Sekarang keluaran Q menjadi rendah dan kaki 3 menjadi tinggi. Keadaan tersebut akan terus berulang sampai catu daya dimatikan. Dengan demikian pada keluaran IC akan diperoleh gelombang persegi dengan keadaan rendah dan tinggi yang tidak sama. Oleh karenanya multivibrator tersebut juga dinamakan sebagai osilator gelombang persegi. Waktu yang diperlukan C untuk terisi mencapai (2/3) Vcc lebih lama dari waktu yang diperlukan untuk membuang muatannya sampai tegangan mencapai (1/3) Vcc. Hal ini terjadi karena konstanta pengisian (RA + RB)C lebih besar dari pada konstanta waktu pembuangan RBC. Hal ini mengakibatkan bentuk keluaran yang tidak simetrik, kondisi tinggi lebih lama dari pada kondisi rendah. Ketidak simetrian bentuk gelombang tersebut dinyatakan sebagai siklus kerja (duty Cycle) dengan satuan persen (%). Rumusnya : D = Kondisi tinggi x 100 % satu periode atau D = W x 100 %. T Dalam perancangan, siklus kerja ini dapat dihitung dengan parsamaan D = ( R A RB ) x 100 % . ( RA 2 RB ) Sedangkan frekuensi keluarannya dapat dihitung berdasarkan persamaan : f = 1,44 ( RA 2 RB )C Dalam beberapa penerapan, frekuensi keluaran astabil dapat dibuat variabel dengan mengubah-ubah nilai RA dan atau RB. Biasanya salah satu diganti dengan trimpot (resistor variabel). Tetapi dengan memperkecil R A dari pada RB perlu diperhatikan juga karakteristik IC jenis ini, sehingga cara yang lebih mudah untuk mendapatkan yaitu siklus kerja 50% adalah menggunakan sebuah dioda yang dirangkai paralel dengan RB. Cara kerja rangkaian ini sedemikian hingga menghasilkan siklus kerja 50% adalah dioda menyebabkan pengisian kapasitor C akan dilakukan melalui RA dan mengkosongkan melalui RB. Bila RA = RB maka tetapan waktu pengisian dan pengosongan akan menjadi sama sehingga diperoleh siklus kerja 50%. IC-555 Sebagai Monostabil Monostabil hanya memiliki satu keadaan stabil yang dalam hal ini adalah rendah. Jika dikenai tegangan pemicu, keadaan stabil akan berubah tinggi selama beberapa saat untuk kemudian kembali ke keadaan semula. Monostabil yang dibangun dengan IC-555 dapat dilihat pada Gambar 9.20. Pada keadaan stabil, kaki 3 IC-555 dalam keadaan rendah dan saluran pemicu tinggi. Jika tegangan pada pemicu diturunkan hingga di bawah (1/3)Vcc, meskipun hanya sesaat, maka keluaran pembanding 2 akan tinggi dan me-reset flip-flop. Akibatnya kaki 3 menjadi tinggi dan keluaran Q menjadi rendah. Keadaan Q yang rendah membuat transistor menyumbat, sehingga kondensator C 1 akan terisi sampai (2/3)Vcc, karena pada tegangan sebesar ini keluaran pembanding 2 menjadi tinggi dan kaki 3 menjadi rendah kembali. Keadaan ini akan terus bertahan sampai muncul kembali tegangan pemicu. Lama kaki 3 dalam keadaan tinggi (keadaan tak stabil) ditentukan oleh nilai R dan C 1 yang dapat dihitung dengan rumus : T = 1,1 RC1. Kaki 4 adalah fasilitas reset pada flip-flop RS. Jika kaki ini dalam keadaan rendah, maka IC-555 tidak dapat beroperasi. Kaki 4 dijaga pada keadaan tinggi dengan menghubungkannya ke Vcc. + Vcc R 8 7 10 k 4 2 Pemicu 555 6 3 Keluaran 5 C1 1 0.01 F C2 Gambar 9.20 : Konfigurasi IC Pewaktu 555 sebagai monostabil 6. Aplikasi Hendak dirancang suatu sumber detak 100 kHz dengan menggunakan IC-555. Dengan demikian IC-555 tersebut harus dikonfigurasikan sebagai astabil. Berdasarkan persamaan : f = 1,44 ( RA 2 RB )C dapat diperoleh : f (RA + 2RB)C = 1,44. Jika dipilih C = 0,001 F, maka RA + 2RB = 14,4 k dan banyak pilihan untuk memilih RA dan RB. Pilihan yang terbaik untuk RA dan RB dalam orde k. Salah satu pilihan adalah RA = 5 k dan RB = 4,7 k. Dengan demikian dengan kombinasi nilai komponen tersebut diperoleh : RA + 2RB = 5 k +2 (4,7) k = 14,4 k C = 0,001 F Jadi : f = 1,44 (14,4)k(0,001) F 100 kHz. 7. Soal-soal 1. Sebutkan tiga jenis multivibrator, deskripsikan masing-masing jenis, dan berikan contoh kegunaannya ! 2. Analisislah berdasarkan cara kerjanya, apakah rangkaian pada gambar berikut merupakan multivibrator ? Jika benar multivibrator, apa jenisnya ? T Q R Vcc C 3. Perhatikanlah rangkaian multivibrator berikut ! Gambarkanlah bentuk gelombang pada keluaran Vo, dan berapakah frekuensi keluarannya ? +6V 6k8 9 4 7 555 4k7 2 3 Vo 6 1 nF 1 5 0,1 F 4. Rancanglah sebuah rangkaian monostabil dengan menggunakan IC pewaktu 555 yang dapat menghasilkan lebar pulsa 5 mili detik (5 ms) ! 5. Rancanglah suatu rangkaian multivibrator yang dapat menghasilkan detak (gelombang kotak) dengan frekuensi keluaran 500 kHz menggunakan : a. IC picuSchmitt 7413 atau 7114, b. IC Pewaktu 555. 6. Perhatikanlah rangkaian multivibrator berikut ! Berdasarkan potensiometer yang terpasang, kemudian tentukanlah (a) siklus kerja maksimum dan minimum, dan (b) frekuensi keluaran maksimum dan minimum yang dapat dicapai. +6V 6k8 9 4 7 4k7 555 2 3 Vo 10 k 6 1 1 5 10 nF nF 7. Suatu rangkaian multivibrator astabil dibangun dari IC picu Schmitt. Jika tegangan histerisisnya (V+ - V-) berubah (dapat bertambah atau berkurang) karena fluktuasi suhu, maka apa yang terjadi dengan (a) tegangan, dan (b) frekuensi keluaran ?. BAB X PENCACAH Aplikasi flip-flop yang paling luas pemakaiannya adalah sebagai komponen pembangun pencacah dan register. Teknologi sistem digital menjadi semakin semarak antara lain karena peranan flip-flop yang dapat menampilkan fungsi baik sebagai pencacah (counter) maupun register. Dalam kehidupan sehari-hari sering dijumpai mesin-mesin digital yang bekerja sebagai pencatat seperti pencatat waktu, pencatat frekuensi, pencatat bilangan, pencatat banyaknya orang yang memasuki suatu tempat, dan sebagainya. Mesin-mesin pencatat itu bekerja sebagai pencacah. Pada dasarnya mesin-mesin tersebut mencacah pulsa tegangan. Pencacah termasuk dalam kelompok rangkaian sekuensial yang merupakan gabungan antara rangkaian kombinasional dan flipflop. Dengan demikian flip-flop merupakan komponen utama dalam menyusun rangkaian pencacah. Semua jenis flip-flop yang dilengkapi dengan fasilitas Clock (Ck atau CP), Preset (Pr atau SD), ataupun Clear (Cr atau RD) dapat digunakan untuk menyusun rangkaian pencacah. Tetapi dalam bab ini akan banyak menggunakan flip-flop JK atau JK-MS. Perhatikan Gambar 10.1 berikut. Qo Q1 FF-0 FF-1 Pr 1 Pulsa masukan 1 J Q Ck Q2 FF-2 Pr 1 1 J Q Ck Pr 1 1 J Q Ck K K K Q Q Q Gambar 10.1 : Cr Tiga FF-JK yang disusun secara serial. Cr Cr Setiap FF memiliki masukan J = K = 1, sehingga keluaran FF itu akan ter-toggle (berubah tingkat logikanya) ketika pada masukan Ck berubah dari 1 (tinggi) ke 0 (rendah). Pulsa masukan hanya dikenakan pada Ck dari FF-0. Keluaran Qo dihubungkan ke Ck pada FF-1, dan keluaran Q1 dihubungkan ke Ck dari FF-2. Bentuk gelombang keluaran pada setiap FF dapat dilihat pada Gambar 10.2. 1 2 3 4 5 6 7 8 Pulsa masukan Q0 1 0 Q1 1 0 Q2 1 0 Gambar 10.2 : Bentuk gelombang keluaran dari tiga FF yang disusun seri. Sebelumnya dianggap bahawa ketiga keluaran FF pada tingkat logika 0, dan setiap FF hanya dapat berubah keadaan jika pada masukan Ck terjadi transisi dari 1 ke 0 (NGT : Negative Going Transision). Berdasarkan keadaan itu maka hal-hal yang perlu diperhatikan adalah : 1) Keluaran FF-0, yaitu Q0 , mengalami perubahan keadaan tingkat logika (tertoggle) pada setiap kali pulsa detak pada Ck-nya mengalami transisi dari 1 ke 0, sehingga gelombang keluaran pada Q0 memiliki frekuensi sama dengan setengah (1/2) dari frekuensi pulsa (detak) masukan. 2) Keluaran FF-1, yaitu Q1 , mengalami perubahan keadaan tingkat logika (tertoggle) pada setiap kali pulsa detak pada Ck-nya mengalami transisi dari 1 ke 0, sehingga gelombang keluaran pada Q1 memiliki frekuensi sama dengan setengah (1/2) dari frekuensi Q0 atau seperempat (1/4) dari frekuensi pulsa (detak) masukan. 3) Keluaran FF-2, yaitu Q2 , mengalami perubahan keadaan tingkat logika (tertoggle) pada setiap kali pulsa detak pada Ck-nya mengalami transisi dari 1 ke 0, sehingga gelombang keluaran pada Q2 memiliki frekuensi sama dengan setengah (1/2) dari frekuensi Q1 atau seperdelapan (1/8) dari frekuensi pulsa (detak) masukan. Berdasarkan keterangan di atas, setiap FF membagi frekuensi masukannya dengan 2 (dua). Jika sekiranya ditambahkan FF ke empat pada rantai Gambar 10.1 dengan keluaran Q3 akan memiliki frekuensi seper-enam-belas (1/16) dari frekuensi pulsa detak masukan, demikian seterusnya. Secara umum dapat dikemukakan bahwa dengan N buah FF yang disusun serial akan menghasilkan frekuensi keluaran pada FF terakhir sebesar fN dan dituliskan sebagai : fN = (1/2N).f0 (10-1) dengan f0 adalah frekuensi detak masukan mula-mula. FF yang disusun seperti pada Gambar 10.1 di atas membentuk rangkaian yang dikenal sebagai pembagi frekuensi. 1. Pencacah Biner Tak Sinkron (Serial atau Riak) Di samping fungsi sebagai pembagi frekuensi, rangkaian seperti Gambar 10.1 juga bekerja sebagai pencacah biner. Hal ini dapat ditunjukkan dengan menyelidiki sederetan keadaan setiap FF setelah suatu pulsa detak berubah dari 1 ke 0. Deretan keadaan tersebut tampak pada tabel berikut : Q2 Q1 Q0 __________________________________________________________________________________ 0 0 0 sebelum dikenakan pulsa detak (keadaan awal) 0 0 1 sesudah pulsa 1 (pertama) 0 1 0 sesudah pulsa 2 (ke dua) 0 1 1 sesudah pulsa 3 (ke tiga) 1 0 0 sesudah pulsa 4 (ke empat) 1 0 1 sesudah pulsa 5 (ke lima) 1 1 0 sesudah pulsa 6 (ke enam) 1 1 1 sesudah pulsa 7 (ke tujuh) 0 0 0 sesudah pulsa 8 (ke delapan), kembali berputar ke keadaan awal. ___________________________________________________________________________________ Misalkan nilai kombinasi dari Q2Q1Q0 merupakan bilangan biner, di mana Q2 adalah posisi 22 (empatan), Q1 adalah posisi 21 (duaan), dan Q0 adalah posisi 20 (satuan). Delapan deret yang pertama dari keadaan Q 2Q1Q0 pada tabel di atas akan dikenal sebagai serial perhitungan biner dari 000 ke 111. Sesudah pulsa pertama FF-FF itu dalam keadaan 001 (Q2 = 0, Q1 = 0, dan Q0 = 1) yang menggambarkan biner 0012 (setara dengan desimal 1); sesudah pulsa ke dua FF-FF itu dalam keadaan 010 (Q2 = 0, Q1 = 1, dan Q0 = 0) yang menggambarkan biner 0102 (setara dengan desimal 2); sesudah pulsa ke tiga FF-FF itu dalam keadaan 011 (Q2 = 0, Q1 = 1, dan Q0 = 1) yang menggambarkan biner 0112 (setara dengan desimal 3); dan seterusnya sesudah pulsa ke tujuh FF-FF itu dalam keadaan 111 (Q2 = 1, Q1 = 1, dan Q0 = 1) yang menggambarkan biner 1112 (setara dengan desimal 7). Pada akhir pulsa ke delapan ketiga FF kembali ke keadaan 000 dan serial biner terulang dengan sendirinya untuk pulsa detak yang berturut-turut. Pada kejadian tersebut tampak bahwa untuk tujuh pulsa masukan yang pertama, fungsi rangkaian itu sebagai pencacah biner di mana keadaan dari FF-FF tersebut menggambarkan bilangan biner yang setara dengan banyaknya pulsa yang telah terjadi. Pencacah di atas menghitung nilai tertinggi 111 2 = 710 (8 keadaan) dan selanjutnya kembali ke 000. Jenis pencacah dengan konfigurasi seperti pada Gambar 10.1 dikenal sebagai pencacah tak sinkron atau pencacah serial atau pencacah riak (ripple), di mana setiap keluaran FF bertindak sebagai sinyal masukan Ck pada FF berikutnya. Keadaan keluaran setiap FF berubah secara tidak bersamaan (tak sinkron) terhadap pulsa detak. Hanya FF-0 yang dikenai pulsa detak. Perubahan keadaan keluaran FF-1 menunggu hingga terpicu dari FF-0. Perubahan keadaan keluaran FF-2 menunggu hingga terpicu dari FF-1, demikian seterusnya. Pencacah seperti pada Gambar 10.1 di atas memiliki 2 3 = 8 keadaan yang berbeda (dari 000 s/d 111) dan dikenal sebagai pencacah modulo 8 (tepatnya sebagai pencacah biner tak sinkron modulo 8 atau 3 bit). Jika sebuah FF sejenis ditambahkan menyambung, seperti tampak pada Gambar 10.3, maka deretan keadaan yang berbeda yang akan dihitung dalam biner ada sebanyak 16 keadaan, yaitu dari 0000 s/d 1111. Pencacah tersebut memiliki modulo 16 atau 4 bit. Secara umum dapat dikemukakan bahwa jika ada N buah FF (atau N bit) yang disusun seperti gambar 10.3 maka pencacah itu memiliki 2N keadaan yang berbeda dan dikatakan bahwa pencacah tersebut merupakan pencacah biner (N bit) modulo 2N. Pencacah modulo 2N akan mampu menghitung dari nol hingga setinggi 2N-1 sebelum kembali ke keadaan nol-nya. Jelas bahwa bilangan modulo selalu sama dengan banyak kombinasi keadaan keluaran pencacah yang berbeda pada satu siklus (putaran) sebelum kembali ke keadaan awalnya. Banyaknya Modulo = 2N. (10-2) Bilangan modulo suatu pencacah tak sinkron juga menunjukkan pembagi frekuensi yang diperoleh pada FF terakhir. Qo Q1 FF-0 FF-1 Pr 1 1 Q2 FF-2 Pr 1 J Q 1 Ck Q Cr FF-3 Pr 1 J Q 1 Ck K Q3 Pr 1 J Q 1 Ck Pulsa masukan K Q Cr J Q Ck K Q Cr K Q Cr Gambar 10.3 : Pencacah biner (4 bit) tak sinkron modulo 16. Ingat bahwa untuk semua FF dipertahankan J = K = 1. Detak (pulsa) masukan dikenakan pada Ck dari FF-0. Kemudian keluaran FF-0 akan berubah ke keadaan yang berlawanan (ter-toggle) setiap kali detak masukan membuat transisi dari tinggi ke rendah (transisi negatif). Keluaran (Q) dari FF-0 dikenakan pada masukan Ck dari FF-1, sehingga keluaran FF-1 akan ter-toggle pada setiap kali Ck-nya mengalami transisi negatif. Dengan cara yang sama, FF-2 dan FF-3 akan ter-toggle setiap kali Ck-nya mengalami transisi negatif. Jika detak dikenakan terus menerus, maka kombinasi keluaran setiap FF menggambarkan bilangan biner (4 bit) dengan keluaran FF-3 sebagai MSB dan keluaran FF-0 sebagai LSB. Pada akhir detak ke 15 keluaran semua FF menunjukkan keadaan 1111. Pada detak ke 16 keluaran FF-0 berubah dari 1 ke 0, yang mengakibatkan keluaran FF-1 berubah dari 1 ke 0 dan seterusnya hingga keluaran semua FF menunjukkan keadaan 0000. Dengan kata lain, pencacah tersebut telah melewati satu siklus penuh (dari 0000 hingga 1111) dan kembali ke keadaan 0000. Dari keadaan 0000 akan dimulai siklus perhitungan baru untuk deretan detak berikutnya. Pencacah biner tak sinkron yang telah dikemukakan di atas terbatas pada bilangan modulo 2N. Dengan demikian modulo pencacah yang dapat 1, 2, 4, 8, 16, 32, … 2 N. dihasilkan adalah Nilai tersebut sebenarnya merupakan bilangan modulo terbesar yang dapat diperoleh dari penggunaan N buah FF. Bila diingikan pencacah dengan bilangan modulo yang lebih kecil dari pada 2N maka dapat dilakukan dengan memodifikasi pencacah modulo 2 N. Dasar modifikasinya adalah membuat pencacah tersebut melompati keadaan yang secara normal merupakan bagian dari deretan perhitungannya. Cara untuk mengerjakan lompatan tersebut dapat diperhatikan pada Gambar 10.4. Qo Q1 FF-0 1 FF-1 Pr 1 Q2 FF-2 Pr 1 Pr 1 J J J Q Q Q 1 Ck K Q Cr Masukan 1 Ck K Q Ck K Q Cr Cr Gambar 10.4 : Pencacah biner (3 bit) tak sinkron modulo 6. Jika gerbang NAND diabaikan maka pencacah tersebut merupakan pencacah biner (3 bit) tak sinkron modulo 8 yang akan mencacah dari 000 s/d 111. Jika gerbang NAND pada gambar 10.4 diperhatikan dapat dijelaskan seperti berikut : 1. Keluaran NAND dihubungkan ke Clear (Cr) pada setiap FF. Pencacah tidak akan terpengaruh selama keluaran NAND pada keadaan tinggi (Cr setiap FF pada keadaan 1). Ketika keluaran NAND menuju rendah, maka akan mengclear semua FF sehingga pencacah tersebut segera menuju ke keadaan 000. 2. Kedua masukan NAND masing-masing dihubungkan dengan keluaran FF-1 dan FF-2 sehinggan keluaran NAND tersebut akan menuju rendah kapan saja Q1 = Q2 = 0. Keadaan ini akan terjadi ketika pencacah berubah dari keadaan 101 ke 110 (akhir detak ke 6). Keadaan rendah pada keluaran NAND akan segera meng-clear pencacah tersebut ke keadaan 000. Ketika FF-FF telah di-clear maka keluaran NAND kembali ke tinggi karena keadaan Q1 = Q2 = 0 tidak lama terjadi. Perhatikanlah Gambar 10.5 . 1 2 3 4 5 6 7 8 9 10 11 12 Pulsa masukan Q0 1 0 Q1 1 0 Q2 1 0 Keluaran1 NAND 0 Gambar 10.5 : Bentuk gelombang pencacah biner tak sinkron modulo 6 Bentuk gelombang keluaran pada Q1 terdapat kenaikan dan gelinciran yang sangat tajam oleh kejadian sesaat dari keadaan 110 sebelum peng-clear-an. Kenaikan dan gelinciran itu sangat sempit sehingga tidak menghasilkan petunjuk yang terlihat pada tampilan. Kenaikan dan gelinciran tersebut dapat menimbulkan persoalan hanya jika keluaran Q1 digunakan untuk mengendalikan rangkaian lain. 3. Walaupun pencacah menuju ke keadaan 110 tetapi hanya untuk beberapa nanodetik sebelum ke keadaan 000. Sehingga pada dasarnya dapat dikatakan bahwa pencacah tersebut menghitung dari 000 (nol) ke 101 (lima) dan selanjutnya kembali ke 000. Keadaan 110 dan 111 dilompati sehingga pencacah tersebut hanya melalui 6 keadaan yang berbeda, dengan demikian pencacah tersebut merupakan pencacah modulo 6. Deretan pencacahannya dapat diperhatikan pada tabel berikut. Q2 Q1 Q0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 Keadaan sementara 110 diperlukan untuk meng-clear pencacah Cacah saluaran masukan pada gerbang NAND yang digunakan untuk menghasilkan lompatan tidak harus 2 saluran tetapi tergantung dari banyaknya tingkat logika 1 yang digunakan untuk meng-clear pencacahan. Secara umum dapat dikemukakan bahwa untuk membangun pencacah biner tak sinkron yang memulai penghitungan (pencacahan) dari nol dan memiliki bilangan modulo x adalah : 1. Tentukan banyaknya FF terkecil (paling sedikit) sedemikian hingga 2 N x dan hubungkan FF-FF tersebut menjadi pencacah tak sinkron. 2. Hubungkan keluaran NAND ke saluran Cr (Clear) setiap FF. 3. Tentukan keluran FF-FF mana yang akan berada pada keadaan tinggi (1) pada suatu hitungan sama dengan x, kemudian hubungkan keluaran FF-FF tersebut dengan saluran masukan gerbang NAND. Sebagai contoh hendak disusun pencacah biner tak sinkron modulo 10 yang akan mencacah dari 0000 (nol) hingga 1001 (sembilan). Karena ada 10 keadaan, dan 10 itu terletak di antara 23 = 8 dan 24 = 16, maka diperlukan 4 FF. Pencacah tersebut di-clear ke nol ketika keadaan 1010 (sepuluh) dicapai. Oleh karena itu keluaran FF-1 (Q1) dan FF-3 (Q3) harus dihubungkan ke masukan gerbang NAND. Rangkaian pencacah tersebut tampak pada Gambar 10.6. Ingat bahwa setiap FF dikenai J = K = 1. J Q0 Ck J Q1 Ck FF-0 K Q2 Ck FF-1 K Cr J Q3 Ck FF-2 K Cr J FF-3 K Cr Cr Gambar 10.6 : Pencacah biner tak sinkron modulo 10. Pencacah modulo 10 pada Gambar 10.6 juga disebut sebagai pencacah desimal (dekade). Pencacah dekade tersebut melakukan pencacahan dari biner 0000 (nol) hingga biner 1001 (sembilan) sehingga pencacah itu juga disebut sebagai pencacah BCD (Binary Coded Decimal). Pencacah BCD menggunakan 10 kode (sandi) kelompok BCD yaitu 0000, 0001, 0010, … 1000, dan 1001. Pencacah dekade digunakan juga sebagai pembagi frekuensi dengan 10. Semua pencacah yang telah dikemukakan sebelumnya merupakan pencacah naik, karena telah menghitung dari nol hingga bilangan tertinggi yang dapat dicapai. Selain itu dapat pula disusun pencacah turun yang akan mencacah dari cacahan tertinggi hingga nol. Untuk itu perhatikan ilustrasi pencacah turun berikut. Q2 Q1 Q0 Q2 Q1 Q0 Q2 Q1 Q0 (7) 1 1 1 1 1 1 1 1 1 (6) 1 1 0 1 1 0 1 1 0 (5) 1 0 1 1 0 1 1 0 1 (4) 1 0 0 1 0 0 1 0 0 (3) 0 1 1 0 1 1 0 1 1 (2) 0 1 0 0 1 0 0 1 0 (1) 0 0 1 0 0 1 0 0 1 (0) 0 0 0 0 0 0 0 0 0 Dst. Terlihat bahwa pada pencacah turun, setiap FF kecuali yang pertama (FF-0) harus berubah keadaan (ter-toggle) ketika keluaran FF sebelumnya mengalami transisi dari rendah ke tinggi (transisi positif). Jika FF-FF tersebut dengan Ck yang merespon transisi negatif (dari tinggi ke rendah), maka di depan Ck pada setiap FF dapat dipasang sebuah inverter (NOT). Cara lain dapat dikerjakan dengan mengendalikan setiap masukan Ck melalui keluaran komplemen ( Q ) dari FF sebelumnya. Untuk lebih jelasnya, perhatikan Gambar 10.7. FF-0 J Q0 Ck K FF-1 J Q1 Ck Q0 K FF-2 J Q2 Ck Q1 K Q2 Gambar 10.7 : Pencacah biner tak sinkron turun. Detak masukan tetap dikenakan pada Ck dari FF-0, keluaran komplemen FF-0 ( Q 0) dikenakan pada Ck untuk FF-1, dan keluaran komplemen FF-1 ( Q 1) dikenakan pada Ck untuk FF-2. Keluaran penacahan masih tetap diambilkan dari keluaran Q2Q1Q0. Bentuk gelombang pada Q2Q1Q0 dapat dilihat pada Gambar 10.8. 1 2 3 4 5 6 7 8 9 10 11 12 Masukan Q0 1 0 Q1 1 0 Q2 1 0 Gambar 10.8 : Bentuk gelombang keluaran pencacah turun. Bentuk gelombang pada Gambar 10.8 menunjukkan bahwa Q 1 (keluaran FF-1) berubah keadaan ketika Q0 (keluaran FF-0) berubah dari rendah ke tinggi ( Q 0 berubah dari tinggi ke rendah), dan Q2 berubah keadaan ketika Q1 berubah dari rendah ke tinggi tinggi ( Q 1 berubah dari tinggi ke rendah). Pencacah turun tidak banyak digunakan sebagaimana pencacah naik. Pencacah turun banyak digunakan dalam keadaan di mana telah diketahui suatu jumlah yang diinginkan. Dalam keadaan ini pencacah turun di-preset pada jumlah yang diinginkan dan selanjunya diijinkan mencacah turun berdasarkan pulsa yang dikenakan. Ketika pencacahan mencapai nol diperlukan rangkaian gerbang logika untuk menunjukkan bahwa sejumlah pulsa yang telah di-preset telah terjadi. Contoh : Rancanglah pencacah biner tak sinkron naik modulo 6 menggunakan flip-flop JK yang dapat di-reset (di-nol-kan) dengan hanya menekan satu saklar. 20 21 1 1 22 1 1 J SD Q K 74LS76 Q J SD Q K 74LS76 Q 1 1 J SD Q K 74LS76 Q CK 1 RD CK 1 CK 1 RD RD Masukan + 5 volt (1) Saklar 100 Gambar 10.9 : Pencacah biner tak sinkron naik modulo 6 Pencacah tersebut memerlukan 3 buah flip-flop (modulo 6). Urutan pencacahannya adalah 0-1-2-3-4-5-0- dst. Jika nilai 6 (biner 110) tercapai, maka keluaran gerbang AND menjadi tinggi yang menyebabkan status gerbang NOR rendah pada jalur RD dan me-reset semua flip-flop ke nol. Segera setelah semua keluaran flip-flop nol, keluaran gerbang AND menjadi rendah dan menyebabkan gerbang NOR dan saluran RD kembali tinggi, selanjutnya pencacah bekerja kembali. Siklus ini terus berulang sampai saklar manual ditekan. Keadaan tinggi dari saklar menyebabkan pencacah juga ter-reset. Resistor 100 untuk mempertahankan salah satu masukan gerbang NOR rendah ketika saklar terbuka (tidak ditekan). Rangkaian pencacah yang dimaksud tampak pada Gambar 10.9 di atas. 2. Pencacah Biner Sinkron (Paralel) Pada pencacah biner tak sinkron setiap FF tidak berubah secara bersamaan (tidak terjadi sinkronisasi terhadap detak masukan), tetapi perubahannya terjadi secara serial (bergantian) di mana perubahan keadaan suatu FF menunggu pemicuan dari FF sebelumnya. Hal ini menyebabkan terjadinya akumulasi waktu tunda. Keterbatasan tersebut dapat diatasi dengan menggunakan pencacah sinkron (paralel) di mana semua FF dipicu secara bersamaan (paralel) oleh detak masukan. Karena detak masukan dikenakan pada setiap FF maka digunakan beberapa gerbang dan cara untuk mengendalikan kapan suatu FF berubah keadaan dan kapan FF itu tetap oleh adanya pengaruh detak masukan. Untuk keperluan pengendalian itu dikerjakan melalui saluran masukan FF, misal J dan K. Dengan demikian, dalam merancang pencacah sinkron perlu menentukan agar J dan K setiap FF sebagai fungsi keluaran. Untuk mengurangi banyaknya fungsi biasanya digunakan FF-D dan FF-T, karena kedua FF tersebut memiliki satu saluran masukan. Jika dibandingkan dengan pencacah tak sinkron, maka pada pencacah sinkron berlaku : a. Saluran Ck untuk semua FF dihubungkan bersama sehingga detak masukan dikenakan pada setiap FF secara bersamaan (simultan). b. Hanya FF paling depan, yang berkedudukan sebagai LSB, yang dikenai keadaan J = K = 1 secara permanen. Saluran J dan K pada FF yang lain dikendalikan melalui kombinasi keluaran FF-FF yang sesuai. c. Pencacah sinkron memerlukan lebih banyak persambungan (rangkaian) bila dibandingkan pencacah tak sinkron yang setara. d. Pencacah sinkron lebih cepat karena dapat menghitung frekuensi detak yang lebih tinggi untuk selang waktu yang sama. Untuk merancang pencacah sinkron dengan suatu jenis FF perlu mengetahui tabel transisi siklus pencacahannya dan tabel eksitasi dari FF yang bersangkutan. Selanjutnya, dari kedua tabel itu ditampung dalam suatu tabel kebenaran untuk menentukan fungsi saluran masukannya terhadap keluarannya. Fungsi tersebut dapat ditentukan dengan bantuan peta Karnaugh. Untuk lebih jelasnya, berikut ini dikemukakan cara merancang suatu pencacah biner sinkron modulo 5 yang menggunakan FF-JK. Untuk pencacah tersebut jelas diperlukan 3 buah FF. Tabel eksitasi untuk FF-JK (telah dibahas dalam bab Flip-flop) adalah sebagai berikut : Qn Qn+1 J K 0 0 0 X 0 1 1 X 1 0 X 1 1 1 X 0 Tabel transisi untuk pencacah biner sinkron modulo 5 adalah sebagai berikut : Q2 Q1 Q0 Pencacahan 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 - - - 1 1 0 - - - 1 1 1 - - - Bilangan biner tertinggi hasil pencacahannya adalah 100. Dengan demikian keadaan atau angka biner 101, 110, dan 111 tidak boleh terjadi. Keluaran pencacah tersebut adalah Q2Q1Q0 di mana Q2 merupakan MSB dan Q0 sebagai LSB. Masukan Ck setiap FF dihubungkan dengan detak masukan. Fungsi saluran masukan (J dan K) terhadap saluran keluaran (Q) setiap FF tertuang dalam tabel kebenaran seperti berikut : No. K Q2 Q1 Q0 J2 K2 J1 K1 J0 0 0 0 0 0 X 0 X 1 X 1 0 0 1 0 X 1 X X 1 2 0 1 0 0 X X 0 1 X 3 0 1 1 1 X X 1 X 1 4 1 0 0 X 1 0 X 1 X 5 0 0 0 X X X X X 1 6 0 0 1 X X X X 1 X 7 0 1 0 X X X X X 1 baris Untuk menentukan J2, K2, J1, K1, J0 dan K0 sebagai fungsi dari variabel keluaran (Q2, Q1, dan Q0) perlu dicermati satu per satu berdasarkan tabel eksitasi FF-JK. Misalkan untuk Q2Q1Q0 = 000, oleh karena setelah terjadi detak masukan keadaannya harus berubah menjadi Q2Q1Q0 = 001, ini berarti terjadi perubahan pada Q0 dari 0 menjadi 0, dan berdasarkan tabel eksitasi haruslah J 2 = 0 dan K2 = X. Nilai J dan K tersebut berlaku untuk Q2Q1Q0 dari 001 dan 010. Sedangkan untuk Q2Q1Q0 = 011 di mana Q2 berubah dari 0 menjadi 1, maka haruslah J2 = 1 dan K2 = X. Dengan cara yang sama dapat diteruskan untuk transisi yang lain. Untuk Q2Q1Q0 = 100 pada detak berikutnya harus berubah menjadi 000 (kembali ke keadaan awal pencacahan), maka J 2 = X dan K2 = 1 karena Q2 mengalami perubahan dari 1 ke 0. Selanjutnya, keluaran pencacah tidak diijinkan untuk menuju ke keadaan 101, 110, dan 111, maka untuk keadaan-keadaan tersebut harga J2 dan K2 boleh diisi sembarang, atau J2 = X dan K2 = X. Cara tersebut harus diteruskan untuk nilai-nilai J1, K1, J0 dan K0. Jika semua telah terisi, untuk mendapatkan fungsi keadaan masukan terhadap keluarannya akan dituangkan dalam peta Karnaugh seperti berikut. Oleh karena ada 6 masukan (3 FF), yaitu J2, K2, J1, K1, J0 dan K0, maka akan diperoleh 6 peta Karnaugh. Tetapi peta Karnaugh untuk masukan LSB, yaitu J 0 dan K0, tidak perlu dibuat karena pada umumnya berlaku J0 = K0 = 1. Q2Q1 Q0 Q0 Q0 Q2Q1 Q0 Q0 Q0 Q2Q1 Q0 Q0 Q0 Q2Q1 Q0 Q0 Q0 Q2Q1 Q0 Q0 Q0 Q2Q1 Q0 Q0 Q0 Q 2Q 1 Q 2Q1 Q2Q1 Q2 Q 1 0 0 X X X X 0 1 J2 = Q1Q0 Q 2Q 1 Q 2Q1 Q2Q1 Q2 Q 1 X X X 1 X X K2 = 1 X X Q 2Q 1 Q 2Q1 Q2Q1 Q2 Q 1 0 X X 0 1 X J1 = Q0 X X Q 2Q 1 Q 2Q1 Q2Q1 Q2 Q 1 X 0 X X X X X 1 K1 = Q0 Q 2Q 1 Q 2Q1 Q2Q1 Q2 Q 1 1 1 X 1 X X J0 = 1 X X Q 2Q 1 Q 2Q1 Q2Q1 Q2 Q 1 X X X X 1 1 K0 = 1 X X Dari semua peta Karnaugh tersebut di atas, maka dapat diperoleh suatu sistem persamaan (tidak unik) sebagai berikut : J0 = K 0 = 1 J1 = K 1 = Q 0 J2 = Q1Q0 dan K2 = 1. Atas dasar persamaan tersebut, maka diagram rangkaian pencacah biner sinkron modulo 5 tampak pada Gambar 10.10 seperti berikut : 1 Q2 J2 Q1 Ck Q2 K2 J1 Q0 Ck Q1 K1 J0 Ck Q0 K0 detak Gambar 10. 10 : Pencacah biner sinkron modulo 5 dengan FF-JK. Semua FF yang berdetak dapat digunakan sebagai komponen rangkaian pencacah biner. Tetapi kebanyakan FF yang digunakan adalah jenis FF-T dan FF-D, oleh karena kedua jenis FF tersebut masing-masing hanya mempunyai satu saluran masukan. Dengan demikian persambungan rangkaian pencacah yang dibuat menjadi lebih sederhana. Perlu diingat bahwa tabel eksitasi setiap jenis FF tidaklah sama. Sehingga dalam membuat tabel kebenaran harus mengacu pada tabel eksitasi dari FF yang dipilih. Pencacah paralel yang telah dikemukakan merupakan pencacah naik, yakni mencacah dari bilangan kecil ke bilangan yang semakin besar untuk setiap siklus pencacahan. Ada kalanya juga diperlukan pencacah turun, yakni mencacah dari bilangan yang besar ke bilangan yang lebih kecil untuk setiap siklus pencacahan. Sebagaimana pada pencacah serial, pencacah paralel turun dapat disusun dengan memanfaatkan keluaran komplemen dari FF ( Q ) untuk memberikan masukan kepada gerbang logika yang lain (biasanya gerbang AND). Sebagai ilustrasi, pencacah paralel naik paga Gambar 10.9 dapat diubah menjadi pencacah paralel turun dengan menghubungkan keluaran Q 1 dan Q 0 ke masukan gerbang AND berturut-turut yang ditempati oleh Q1 dan Q0. Keluaran hasil pencahan tetap diambilkan dari Q2Q1Q0. Perhatikan Gambar 10.11 berikut. 1 Q2 J2 Q1 Ck Q2 J1 Q0 Ck Q1 K2 K1 J0 Ck Q0 K0 detak Gambar 10. 11 : Pencacah biner sinkron turun modulo 5 dengan FF-JK. Pencacah seperti Gambar 10.11 itu akan mencacah mengikuti deretan berikut : Q2 Q1 Q0 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 Untuk tujuan fleksibilitas dapat dibangun pencacah naik/turun, artinya satu rangkaian pencacah tersebut dapat difungsikan sebagai pencacah naik atau pencacah turun tergantung kebutuhan. Salah satu cara untuk membuat fungsi tersebut adalah mengendalikannya dengan suatu rangkaian pengendali pada masukan. Rangkaian tersebut digunakan untuk mengendalikan apakah keluaran normal FF (Q) atau keluaran komplemennya ( Q ) diumpankan ke masukan J dan K pada FF berikutnya. Rangkaian pengendali untuk mengatur pencacah naik atau turun itu tampak pada Gambar 10.12. Detak masukan naik Pi (naik) Pi (turun) FF berikutnya Detak masukan turun Gambar 10.12 : Rangkaian pengendali pencacah naik/turun. Dari gambar 10.12 itu tampak adanya dua jalur masukan, yaitu masukan detak untuk pencacah naik dan masukan detak untuk pencacah turun. Dengan demikian pada masukan Ck dari setiap FF, kecuali FF yang pertama (LSB), perlu ditambahkan gerbang AND dan OR dalam konfigurasi seperti gambar 10.12. Untuk lebih jelasnya perhatikan contoh rangkaian pencacah naik/turun 3 bit (modulo 8) pada Gambar 10.13. Pencacah itu akan mencacah dari 000 naik menuju 111, ketika masukan pengendali Cacahan-naik bernilai 1 dan mencacah dari 111, turun menuju 000 ketika masukan pengendali Cacahan-turun berharga 1. Selama saluran Cacahan-naik dalam keadaan 1 dan saluran Cacahan-turun pada keadaan 0 maka AND-1 dan AND-2 yang aktif menyalurkan detak sedangkan AND-3 dan AND-4 tidak bekerja. Hal ini memungkinkan keluaran Q0 dan Q1 terus menuju ke masukan J dan K pada FF berikutnya sehingga pencacah itu akan mencacah naik terhadap detak masukan. Hal yang sebaliknya terjadi ketika saluran Cacahan-naik = 0 dan Cacahan-turun = 1. AND-2 Q2 J2 Q1 J1 FF-1 Ck FF-2 Cacahan Q0 J0 naik AND-1 Ck 1 Ck FF-0 AND-3 Q 2K2 Q 1K1 Q 0K0 1 AND-4 Cacaha n Detak masukan Gambar 10.13 : Pencacah paralel naik/turun modulo 8.turun Contoh : Rancanglah pencacah biner sinkron/paralel naik modulo 6 menggunakan flipflop JK yang dapat di-reset (di-nol-kan) dengan hanya menekan satu tombol. 20 21 22 Masukan 1 SD J CK Q 74LS76 1 K RD J J SD Q CK CK Q Q 74LS76 K RD Q 74LS76 K RD Q + 5 volt (1) Tombol 100 Gambar 10.14 : Pencacah biner sinkron naik modulo 6 Pencacah tersebut memerlukan 3 buah flip-flop (modulo 6). Urutan pencacahannya adalah 0-1-2-3-4-5-0-1- dst. Jika nilai 6 (biner 110) tercapai, maka keluaran gerbang AND menjadi tinggi yang menyebabkan status keluaran gerbang NOR rendah pada jalur RD dan me-reset semua flip-flop ke nol. Segera setelah semua keluaran flip-flop nol, keluaran gerbang AND menjadi rendah dan menyebabkan gerbang NOR dan saluran RD kembali tinggi, selanjutnya pencacah bekerja kembali. Siklus ini terus berulang sampai tombol manual ditekan. Keadaan tinggi dari tombol menyebabkan pencacah juga terreset. Aplikasi 1 : Terlebih dahulu harus melihat buku/lembar data (CMOS atau TTL) dari IC 7490 untuk mempelajari fungsi kaki-kaki (pin) dan cara kerjanya. Selanjutnya dengan IC tersebut hendak disusun suatu rangkaian guna menghidupkan LED selama 20 ms sekali setiap 100 ms (termasuk lama menyala) dengan menggunakan sumber detak 50 Hz. Perhatikan Gambar 10.15 berikut ! + 5 volt 7404 Sumber detak 50 Hz LED 270 Q0 Q1 Q2 Q3 > CP1 > CP0 7490 MR1 MR2 MS1 MS2 Gambar 10.15 : Konfigurasi 7490 debagai pencacah modulo 5. Karena 20 ms adalah seperlima dari 100 ms, maka dapat digunakan pencacah modulo 5 dan telah tersedia di dalam IC 7490. Untuk menentukan keluaran mana yang digunakan untuk mengendalikan LED, maka perhatikan bentuk gelombang yang dikeluarkan oleh IC 7490 dalam konfigurasi pencacah modulo 5 seperti tampak pada Gambar 10.16. 20 ms CP1 1 2 3 4 5 6 7 8 9 10 11 Q1 Q2 Q3 0 1 2 3 4 0 1 2 3 4 0 Gambar 10.16 : Bentuk gelombang keluaran pencacah modulo 5 dari 7490 Jika frekuensi detak masukan 50 Hz, maka setiap cacahan akan habis selama 20 ms (1/50 Hz). Saluran keluaran Q3 akan tinggi selama 20 ms sekali dalam setiap 100 ms. Sehingga dengan membalik (memasang gerbang NOT) saluran Q3, maka dapat digunakan untuk mengendalikan LED (LED dapat menyala ketika katoda lebih negatif dari pada anoda). Aplikasi 2 : Pelajari fungsi kaki-kaki (pin) dan cara kerja dari IC 74190 melalui buku/lembar datanya (CMOS atau TTL). Selanjutnya dengan IC tersebut hendak disusun suatu rangkaian pencacah sinkron yang akan mencacah naik dari 0 s/d 9, kemudian mencacah turun dari 9 s/d 0, selanjutnya mencacah naik lagi dari 0 s/d 9, demikian seterusnya terjadi berulang-ulang. Perhatikan Gambar 10.17 berikut ! 1 0 1 0 7414 1 1 PE Arah SD J U/D Q RC CP K 1D R D0 D1 D2 D3 NC CE Q Sumber Detak CP +5V 74190 Keluaran 1 k 1 nF TC Q0 Q1 Q2 Q3 Gambar 10.17 : Pencacah BCD dengan IC 74190. Oleh karena cacahannya 0 s/d 9, maka rangkaian tersebut berperan sebagai pencacah BCD (biner coded decimal). Kemudian diinginkan pula mencacah naik-turun-naik-turun dan seterusnya, maka dipilih rangkaian pencacah yang dapat balik seperti 74190. Jika terminal U /D di-toggle setiap kali satu putaran tercapai (terminal TC aktif), maka secara otomatis arah cacahannya dapat balik. Ketika pertama kali dikenai daya, maka 74190 akan termuati secara paralel misalnya dengan 5 (0101) dan jalur arah pada status 1. Angka 5 (0101) terjadi secara acak (dapat angka lain antara 0 s/d 9). Kemuadian pencacah menghitung turun hingga 0 dan pada saat itu TC akan tinggi yang menyebabkan flip-flop ter-toggle dan merubah jalur arah menjadi 0. Dengan sumber detak yang terus-menerus bekerja, pencacah tersebut akan mencacah balik dan memulai pencacahan naik. Ketika mencapai angka 9, saluran TC menjadi tinggi dan mengubah arah cacahan lagi. Demikian seterusnya proses tersebut terjadi berulang-ulang. 3. Soal-soal : 1. Berapakah modulus (besar modulo) suatu pencacah yang mengeluarkan pencacahan dari : a. 0 s/d 5 b. 7 s/d 0 c. 0 s/d 11 d. 2 s/d 15 e. 12 s/d 3. 2. Berapa banyak flip-flop JK yang diperlukan untuk membangun pencacah biner dengan bilangan modulo berikut ? a. Modulo 2 b. Modulo 7 c. Modulo 15 d. Modulo 20 e. Modulo 33. 3. Pada saluran masukan pencacah biner tak sinkron 5 bit dikenai frekuensi 18 Mhz. Berapakan frekuensi yang dikeluarkan melalui terminal berikut ? a. 20 b. 21 c. 22 d. 23 e. 24 . 4. Gambarkanlah diagram pewaktu (bentuk gelombang) pada pencacah biner naik 5 bit untuk 15 detak masukan. 5. Gambarkanlah diagram pewaktu (bentuk gelombang) pada pencacah biner turun 3 bit untuk 10 detak masukan. 6. Rangkaian pencacah juga dapat difungsikan sebagai rangkaian pewaktu (timer). Rancanglah rangkaian pencacah yang akan menghidupkan LED selama 6 detik setelah penekanan suatu tobol. Sumber detak yang tersedia berfrekuensi 60 Hz ! 7. Rancanglah suatu rangkaian pencacah tak sinkron yang dapat mencacah 0-1-2-3-4-5-6-7-8-9-10-11 kemudian berhenti untuk menyalakan LED sebagai tanda bahwa proses pencacahan berhenti. Proses pencacahan tersebut dimulai dengan cara menekan suatu tombol. 8. Rancanglah suatu rangkaian pencacah riak (tak sinkron) yang dapat menyalakan LED selama 40 ms dan mematikannya selama 20 ms. Frekuensi detak yang dikenakan pada pencacah tersebut sebesar 100 Hz. 9. Perhatikan gambar berikut, kemudian gambarlah bentuk gelombang pada saluran 20, 21, dan 22 untuk 10 detak masukan pada saluran CK ! Berapakah besar bilangan modulo dari rangkaian pencacah berikut ? 20 21 22 CK 1 SD J Q 74LS76 1 K RD Q J CK Q 74LS76 K RD Q SD J CK Q 74LS76 K RD Q 10. Rancanglah rangkaian pencacah biner sinkron naik modulo 7 dengan menggunakan flip-flop JK. Kemudian gambarkan bentuk gelombang pada setiap bit keluaran untuk 15 detak masukan !. BAB XI REGISTER 1. Register Register merupakan suatu piranti yang digunakan untuk menyimpan (sementara) data digit. Data di dalam register itu dapat digeser, dibaca ataupun dihapus. Register dapat disusun secara langsung dengan flip-flop. Sebuah flipflop (FF) dapat menyimpan (store) atau mengingat (memory) atau mencatat (register) data 1 bit. Jika ada n buah FF tentu saja dapat menyimpan data n bit. Dengan kata lain sederet FF dalam konfigurasi tertentu merupakan register yang kepadanya dapat dituliskan (write) suatu data atau dari register itu dapat dibaca (read) data yang tersimpan sebelumnya. Pekerjaan menulis, mengingat, dan menggeser data dapat dipikirkan pada kalkulator. Untuk memasukkan bilangan 45, pertama menekan tombol (tut) 4 dan segera dilepaskan. Angka 4 muncul pada tampilan kalkulator. Berikutnya menekan tombol 5 dan segera dilepaskan. Tampak bahwa angka 4 tidak hilang (ter-memory) tetapi tergeser ke kiri satu posisi dan bilangan 45 segera muncul pada tampilan. Dalam proses operasi bilangan yang angka-angkanya dimasukkan menurut urutan tertentu, maka sebelum dioperasikan angka itu harus dicatat (disimpan) lebih dahulu. Misalnya dilakukan operasi penjumlahan 2 dan 7. Mula-mula dimasukkan 2, kemudian tekan tombol operasi penjumlahan (+). Angka 2 ini harus disimpan (dicatat) agar nantinya dapat diproses bersama angka 7 yang dimasukkan kemudian. Kedua ilustrasi tersebut menunjukkan bahwa register memiliki ingatan (angka atau angka-angka muncul meskipun penekanan tombol dilepaskan), dapat dikenakan pergeseran (shift), dan dapat mencatat atau menyimpan data. Data tersebut ditampung atau disimpan dalam sekelompok flip-flop yang disebut register. Operasi yang paling sering dilakukan kepada data yang disimpan di dalam register adalah operasi pergeseran (shift) atau pemindahan (transfer). Hal ini mencakup pemindahan data dari satu FF ke FF lain maupun dari satu register ke register lain. Gambar 11.1 menunjukkan pemindahan data dari satu register (misal register X) ke register lain (misal register Y) yang masing-masing register tersusun dari FF-D. X0 X1 X2 Register X X Pulsa transfer X 0 X 1 2 D Y0 D Y1 D Y2 Ck Ck Ck Y0 Y1 Register Y Y2 Gambar 11.1 : Pemindahan data antar register. Dengan mengenakan pulsa transfer, nilai yang tersimpan paxa X 0 dipindahkan ke Y0, X1 ke Y1, dan X2 ke Y2. Pemindahan data dari register X ke register Y tersebut merupakan pemindahan secara sinkron, karena nilai dari X0, X1 dan X2 dipindahkan secara bersamaan (paralel) berturut-turut ke dalam Y0, Y1 dan Y2. Jika isi register X dipindahkan ke register Y bit demi bit, maka pemindahan semacam ini disebut sebagai pemindahan secara serial. Gambar 11.2 berikut menunjukkan dua register masing-masing 3 bit yang dihubungkan sedemikian hingga isi register X dipindahkan (digeser) secara serial ke dalam register Y. Jenis FF yang digunakan adalah FF-D karena memerlukan persambungan yang lebih sedikit dari pada FF-JK. D X2 D X1 D X0 D Y2 D Y1 D Y0 Ck Ck Ck Ck Ck Ck Pulsa geser Gambar 11.2 : Pemindahan data antar register secara serial. Tampak bahwa FF terakhir (X0) dari register X dihubungkan dengan masukan FF pertama dari register Y. Ketika pulsa geser dikenakan, maka akan terjadi pemindahan data dengan arah sebagai berikut : X2 X1 X0 Y2 Y1 Y0 . Keadaan X2 akan ditentukan oleh masukan D-nya. Sebagai gambaran sebelum dikenakan satu pulsa geser misalkan register X berisi 101, yakni X 2 = 1, X1 = 0, X0 = 1 dan register Y dalam keadaan 000. Tabel berikut menunjukkan cara perubahan setiap FF ketika dikenakan tiga pulsa geser. X2 X1 X0 Y2 Y1 Y0 1 0 1 0 0 0 sebelum dikenakan pulsa 0 1 0 1 0 0 sesudah pulsa pertama 0 0 1 0 1 0 sesudah pulsa ke dua 0 0 0 1 0 1 sesudah pulsa ke tiga Hal yang perlu diperhatikan adalah bahwa sebelum pulsa geser dikenakan setiap masukan FF (D) mengambil harga yang telah tersimpan dalam keluaran FF di sebelah kirinya. Dari tabel di atas dapat dikemukakan secara umum bahwa untuk memindahkan semua bit (data) dari register X yang terdiri dari N bit seluruhnya ke register Y secara serial memerlukan N pulsa geser. Pada pemindahan data secara paralel, semua bit (data) dipindahkan secara bersamaan mengikuti satu pulsa geser, tidak bergantung banyak bit yang dipindahkan. Dengan membandingkan kedua cara pemindahan data tersebut tampak bahwa pemindahan data secara paralel lebih cepat dari pada pemindahan data yang sama apabila dilakukan secara serial. Namun demikian, pemindahan secara paralel memelukan lebih banyak persambungan dari pada cara serial. Kedua perbedaan tersebut akan lebih nyata untuk sejumlah besar bit data dan untuk pemindahan jarak jauh yang memerlukan persambungan yang lebih panjang. Jadi pemindahan secara paralel lebih cepat dan pemindahan secara serial lebih sederhana. 2. Jenis Register Jenis register dapat pula diklasifikasikan berdasarkan cara data masuk ke dalam suatu register untuk disimpan dan cara data dikeluarkan dari register tersebut. Untuk memasukkan dan mengeluarkan data masing-masing dapat dilakukan secara serial atau paralel. Cara serial berarti data dimasukkan atau dikeluarkan ke atau dari register secara beruntun bit demi bit. Sedangkan cara paralel berarti data yang terdiri dari beberapa bit dimasukkan atau dikeluarkan ke atau dari register secara serempak. Berdasarkan hal itu maka dikenal 4 jenis register, yaitu : (1) Serial In Serial Out (SISO), (2) Serial In Paralel Out (SIPO), (3) Paralel In Serial Out (PISO), dan (4) Paralel In Paralel Out (PIPO). Salah satu rangkaian sederhana dari setiap jenis register itu tampak pada gambar berikut. (1). Serial In Serial Out (SISO) Masukan Serial D Q3 D Q2 D Q1 D Q0 Ck Ck Ck Ck Pulsa geser Gambar 11.3 : Register Serial In Serial Out (SISO). KeluaranSe rial (2). Serial In Paralel Out (SIPO) Keluaran Paralel Q3 Q2 Q1 Q0 OE Masukan serial D Q3 D Q2 D Q1 D Q0 Ck Ck Ck Ck Pulsa geser Gambar 11.4 : Register Serial In Paralel Out (SIPO). (3). Paralel In Serial Out (PISO) Masukan Paralel P3 P2 P1 P0 IE Pr D Resetr Pr Q3 D Pr Q2 Ck Ck D Pr Q1 Ck Cr D Q0 Ck Cr Cr Cr Pulsa geser Gambar 11.5 : Register Paralel In Serial Out (PISO) Keluaran serial (4). Paralel In Paralel Out (PIPO) D3 D Q3 Ck D2 Masukan Paralel D1 D Q2 Ck Q2 Keluaran Paralel D Q1 Ck D0 Q3 Q1 D Q0 Ck Q0 Pulsa geser OE Gambar 11.6 : Register Paralel In Paralel Out (PIPO). Contoh : Rancanglah register geser 4 bit untuk jenis PISO yang menggunakan flip-flop JK dengan kode IC 74LS76. Kemudian gambarlah bentuk gelombang keluarannya untuk satu siklus dengan memasukkan data biner 0111 (desimal 7). Salah satu konfigurasi rangkaian register tersebut adalah seperti tampak pada Gambar 11.7 di bawah ini. Masukan data paralel 1 0 1 1 D3 MSB Q3 0 D1 D0 Q2 SD J3 D2 Q SD Q J LSB Q1 SD Q J Q0 SD Q0 J Qo Keluaran >C >C P K3 1 >C P Q RD K >C P Q RD K P Q RD K Q0 RD CP Reset Detak masukan Gambar 11.7 : JK-FF sebagai rangkaian register PISO 4 bit. CP 1 2 3 4 RD LSB D0 Masukan paralel D1 D2 MSB D3 Q0 MSB LSB Keluaran serial Q1 Q2 Q3 Masukan paralel 0111 Di-reset Gambar 11.8 : Diagram pewaktu register PISO 4 bit Bentuk gelombang atau diagram pewaktuannya tampak pada Gambar 11.8 di atas. Pengembalian bit data paling kanan ke awal register tersebut dapat dilakukan dengan menghubungkan Q0 kembali ke J3 dan Q0 kembali ke K3. Dengan cara ini bit data awal yang dimasukkan tidak pernah hilang. Setelah setiap 4 pulsa detak ( 1 siklus) keluaran Q3 Q2 Q1 Q0 tetap berisi empat bit data awal. Register PISO tersebut dapat pula berfungsi sebagai register PIPO dengan keluarannya (Q3 Q2 Q1 Q0 ) diambil secara serentak. 3. Aplikasi Berikut adalah rancangan penggunaan register geser sebagai pengendali lampu lalu-lintas (traffic light) dengan urutan kejadian : nyala hijau selama 20 detik, nyala kuning selama 10 detik, dan nyala merah selama 20 detik. Selain itu, pada malam hari hanya terjadi nyala kuning yang berkedip setiap 1 detik secara terus menerus. Perhatikanlah Gambar 11.9. Digunakan sumber detak 1 Hz, dan fototransistor untuk membedakan siang dan malam hari. Pada malam hari proses pergeseran registernya dihentikan dan menyalakan lampu kuning dengan berkedip. Pada siang hari, cahaya matahari menyinari fototransistor dan membuatnya hambatan kolektor-emitor rendah yang memberikan tegangan rendah pada masukan picu schmitt dan menyebabkan masukan rendah pada masukan gerbang OR ke 4. Detak 1 Hz akan melalui gerbang OR ke 4 masuk ke pembagi 10. Keluaran pembagi 10 digunakan untuk mengendalikan masukan detak pada setiap flip-flop. Kemudian keluaran setiap flip-flop akan tinggi selama 10 detik secara bergiliran. Perhatikan bentuk gelombang pewaktunya pada Gambar 11.10. Kemudian semua keluaran flip-flop dihubungkan seperti pada gambar. Lampu hijau akan hidup selama 20 detik jika Q 0 atau Q1 tinggi. Berikutnya, lampu kuning akan hidup selama 10 detik jika Q 2 tinggi. Akhirnya, lampu merah akan hidup selama 20 detik jika Q3 atau Q4 tinggi. Lampu Hijau Lampu Merah 1 Q0 1 SD J3 Q Q1 SD Q J 3 1 SD Q J 1 Q3 SD Q3 Q2 J 1 SD Q4 J Q4 >C >C P K3 >C P Q RD K >C P Q RD K >C P Q RD K P Q3 RD K Q4 RD 1 nF +5V 1 k Detak 1 Hz 100 k Pembagi 10 4 7414 2 Lampu Kuning Gambar 11.9 : Pengendali lampu lalu-lintas Pada malan hari, fototransistor berhambatan tinggi sehingga masukan picu Schmitt pertama tinggi yang mengakibatkan keadaan tinggi pada gerbang OR ke 4. Keadaan ini akan menghentikan masukan detak ke semua flip-flop. Keadaan rendah pada keluaran picu Schmitt pertama dihubungkan dengan saluran reset flip-flop yang mempertahankan keadaan rendah pada keluarannya. Keadaan tinggi pada keluaran picu Schmitt ke dua membuat gerbang AND dapat dilewati detak 1 Hz untuk mengidupkan gerbang OR ke 2 dan menghasilkan cahaya kuning yang berkedip setiap 1 detik. Pada siang hari, keluaran dari picu Schmitt pertama berubah dari rendah ke tinggi yang mengakibatkan register geser bekerja kembali. Peralihan dari rendah ke tinggi mengakibatkan aliran arus sesaat melewati rangkaian RC. Arus ini akan menyebabkan keadaan tinggi pada masukan picu Schmitt ke tiga dan membuat keadaan rendah pada S0 yang membuat Q0 tinggi. Ketika arus telah berlalu, S0 kembali tinggi dan register geser akan menghasilkan putaran keadaan tinggi dari Q0 ke Q1 ke Q2 ke Q3 ke Q4 terus-menerus sepanjang hari. 10 detik Masukan detak register geser Q0 Q1 Q2 Q3 Q4 Hijau Kuning Merah Hijau Kuning Merah Gambar 11.10 : Diagram pewaktu register geser. 4. Soal-soal 1. Register geser 10 bit mula-mula berisi data 1011011101. Data berapa yang tersimpan setelah 2 detak pergeseran ke kanan, jika kekosongan yang terjadi berisi 0 ? 2. Bentuk gelombang pada gambar berikut terjadi pada saluran kerluaran (Qo) dari sebuah register geser. Berapa banyak flip-flop yang diperlukan untuk membuat rangkaian register tersebut ? Jelaskan !. Detak masukan Qo 0 1 2 3 4 5 6 7 8 9 10 3. Gambarlah bentuk gelombang keluaran (pada Q2) yang dihasilkan dari rangkaian seperti gambar berikut untuk 10 detak masukan !. 1 SD Q0 D0 >C P 1 SD Q1 D1 >C P Q SD Q2 D2 >C Q2 P Q RD 1 Q RD RD +5V Detak masukan 4. Gambarlah bentuk gelombang pada CP, Q0, Q1, dan Q2 yang dihasilkan dari rangkaian register seperti gambar berikut !. 1 SD Q0 D0 >C P SD Q1 D1 >C P Q RD >C P Q RD 1 SD Q2 D2 Q RD +5V 1 CP 5. Pelajarilah cara kerja dari IC 74194 melalui buku/lembaran datanya. Kemudian gambarkanlah bentuk gelombang pada Q0, Q1, Q2, dan Q3 berdasarkan status logika MR , S0, dan S1 seperti yang tertera pada gambar berikut. Saluran lain dengan keadaan awal : DSR = D0 = 1, dan DSL = D1 = D2 = D3 = 0. CP 0 1 2 3 4 5 6 7 8 9 MR So S1 6. Pelajarilah fungsi dan cara kerja IC 74164 melalui manual data TTL-nya. Berdasarkan persambungan seperti gambar berikut, kemudian gambarkanlah bentuk gelombang pada Q0, Q1, …, Q7 untuk 8 detak. Rangkaian tersebut digunakan untuk mengkonversi data biner 11010010 dari bentuk serial ke paralel. 1 DSa DSb Masukan serial Strobe 74164 CP > Detak masukan Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 MR MR Keluaran paralel MR CP 0 1 2 3 4 5 6 7 8 Strobe DSb 1 1 0 1 0 0 1 0 9 7. Rancanglah suatu rangkaian register geser (4 bit) dengan mode geser KANAN/KIRI yang menggunakan flip-flop D (IC-7474). Mode gesernya dikendalikan melalui saklar toggle. BAB XII DEKODER (DEMULTIPLEKSER) DAN MULTIPLEKSER Dalam suatu mesin digital, instruksi dan informasi (data) disajikan dalam bentuk biner, karena mesin digital hanya dapat menanggapi dan mengolah data yang berbentuk biner. Kita sering melihat atau bahkan menggunakan mesinmesin digital seperti multimeter digital, termometer digital, jam digital, komputer, kalkulator, dan lain-lain. Tampilan yang langsung dapat kita lihat dari alat tersebut berupa angka desimal, padahal proses yang terjadi di dalamnya berbentuk biner. Instruksi ataupun informasi dalam bentuk biner tidak kita sukai, selain karena lebih rumit juga kurang praktis dan di luar kebiasaan. Kita telah terbiasa dengan huruf dari A sampai Z maupun angkaangka 0, 1, 2, ... 9. Sehingga apabila disajikan angka atau kata dalam bentuk biner pada umumnya tidak segera disajikan sederet bit 0001011, kita tidak diketahui maknanya. Misalkan segera tahu deretan bit itu menyatakan angka atau huruf. Jika angka, sederet bit tersebut dapat menunjukkan angka 17 atau bahkan angka 23 sebagaimana biasa kita kenal. Agar 00010111 dapat tampil sebagai 17 atau 23 diperlukan teknik maupun rangkaian tertentu. Hal ini juga berlaku untuk langkah sebaliknya, agar angka 17 atau 23 dapat dikenali oleh suatu mesin digital sebagai 00010111 diperlukan teknik dan rangkaian tertentu pula. Dalam teknik penyaluran informasi ataupun transmisi data, sering kita jumpai di mana suatu rangkaian menyalurkannya ke salah satu dari tersedia. Sebaliknya menerima sekian juga sering dijumpai masukan banyak dan kemudian jalur keluaran yang suatu rangkaian yang memiliki banyak jalur masukan dan satu jalur keluaran. Misalkan transmisi data pada jaringan telepon, lebih banyak mengirimkan data dalam bentuk serial karena hanya diperlukan sedikit saluran, sedangkan pada penerimaan akhir tersebut dikumpulkan kembali dalam bentuk paralel. data Dalam pemakaian kalkulator, bilangan yang dimasukkan melalui tombol kunci (tuts) perlu diubah dari bentuk desimal ke dalam biner. Sebaliknya bilangan yang muncul pada tampilan kalkulator juga mengalami proses pengubahan dari bentuk biner ke dalam format 7 segmen yang pada umumnya benbentuk desimal. Perhatikan Gambar 12.1 berikut ini. 7 8 9 4 5 6 1 2 3 0 + = Enkoder CPU Dekoder Gambar 12.1 : Diagram aliran pengubahan tampilan Kita hendak memasukkan bilangan desimal 9 dengan cara menekan tombol kunci 9. Rangkaian enkoder mengubah desimal 9 menjadi bentuk biner sebagai 1001. CPU menerina bilangan itu dalam bentuk biner 1001 karena CPU hanya dapat mengolah bentuk biner. Selanjutnya rangkaian dekoder mengubah bilangan biber 1001 kembali menjadi bentuk desimal 9. Akhirnya yang muncul dalam tampilan keluaran adalah desimal 9 seperti mula-mula. Dari penggambaran tersebut memperlihatkan terjadinya proses pengubahan dari satu jenis (kode) sistem bilangan menjadi jenis (kode) sistem bilangan lain. Awalnya dari kode desimal menjadi kode biner, dan akhirnya dari kode biner menjadi kode bermakna menjadi desimal. Suatu rangkaian pengubah suatu pesan kode tertentu disebut enkoder (penyandi). Sedangkan rangkaian pengubah suatu kode tertentu kembali menjadi makna sebernarnya disebut dekoder (pembaca sandi). 1. Sistem BCD (Biner Coded Decimal) Dalam kehidupan sehari-hari kita telah terbiasa dengan sistem bilangan desimal dan karenanya sistem ini dianggap sebagai kode yang paling bermakna. Dalam peralatan digital seperti pencacah frekuensi, multimeter digital, kalkulator, komputer, dan lain-lain menampilkan bilangan (angka) dalam bentuk desimal. Kita tahu bahwa mekanisme komputasi dalam alat alat tersebut terjadi dalam bentuk biner. Jika hasil komputasi tetap ditampilkan dalam bentuk biner, kita mengalami hambatan atau bahkan sulit memahaminya, karena kita tidak terbiasa dengan bilangan yang tampil dalam bentuk biner. Jadi desimal lebih mudah difahami dari pada taampilan biner. Oleh karena itu diperlukan jelaslah bahwa dalam pemakaiannya tampilan suatu cara penyandian dari biner ke desimal Sebagai contoh, dengan menggunakan sandi biner atau sebaliknya. paling sederhana, bilangan desimal 25 dan 43 masing-masing disandikan sebagai berikut 25(10) = 11001(2) 43(10) = 101011(2) Pada dasarnya dikenal dua jenis sandi biner yaitu sandi tak berbobot dan sandi berbobot. Seperti dua contoh di atas termasuk dalam sandi tak berbobot, setiap angka biner memiliki nilai sesuai dengan posisinya (satuan, duaan, empatan, dan seterusnya). Dalam sandi tak berbobot, semua digit bilangan desimal disandikan langsung, atau sebaliknya semua pernyataan biner menyandikan suatu bilangan desimal, jadi bukan digit per digit. Dalam sandi berbobot hanya bilangan-bilangan 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9 yang disandikan. Untuk menyatakan bilangan desimal lebih dari satu digit, maka setiap digit disandikan sendiri. Salah satu sistem sandi berbobot adalah BCD (Biner Coded Dacimal) atau desimal yang disandikan biner. Untuk menyatakan setiap digit desimal diperlukan 4 bit biner. Susunan 4 bit biner tersebut menghasilkan 16 kombinasi yang berbeda, tetapi hanya diperlukan 10 kombinasi di antaranya. Untuk menyatakan bilangan desimal N digit diperlukan N x 4 bit biner. Kelompok 4 bit yang pertama (paling kanan) menyatakan satuan, kelompok 4 bit ke dua adalah puluhan, kelompok 4 bit ke tiga merupakan ratusan, dan seterusnya. Sebagai contoh bilangan desimal 468 (adalah 3 digit) memerlukan tiga kelompok 4 bit. Perhatikan Tabel 12.1 berikut. Tabel 12.1 : Bobot 800 400 200 100 80 40 20 10 8 4 2 1 Sandi BCD 0 0 1 0 0 0 Digit desimal 1 0 0 4 1 1 0 6 8 Tiga kelompok 4 bit tersebut dapat menyajikan bilangan antara 0 sanpai dengan 999 (seribu buah bilangan), dan karenanya dikatakan memiliki resolusi 1/1000 atau 0,1 %. 2. Dekoder Biner Ke BCD Data atau bilangan dalam mesin digital diproses dalam bentuk biner dan disajikan dalam bentuk kode. Untuk mengenal arti suatu kode diperlukan suatu rangkaian yang dikenal sebagai dekoder. Untuk merancang suatu rangkaian dekoder rangkaian untuk logika mengenal berbobot pada prinsipnya sama dengan merancang pada umumnya. Salah satu rangkaian dekoder adalah (mengubah) data atau bilangan dalam bentuk biner tak menjadi sandi biner berbobot. Rangkaian tersebut dinamakan dekoder biner ke BCD. Perhatikan bilangan desimal 25 dan 43 yang disajikan dalam biner tak berbobot dan biner berbobot (BCD) seperti pada Tabel 12.2 berikut. Tabel 12.2 : Tak berbobot Berbobot (BCD) Desimal 11001 101011 0010 0101 0100 0011 2 5 4 3 Selanjutnya, marilah kita rancang rangkaian dekoder biner ke BCD dan dibatasi untuk bilangan biner 4 bit sehingga bilangan terbesarnya adalah biner 1111 atau desimal 15. Untuk bit atau bilagan yang lebih besar prinsipnya sama. Rangkaian yang akan dibuat memiliki 4 terminal masukan (ABCD) dan 8 terminal keluaran (P3P2P1P0S3S2S1S0). Diperlukan 8 terminal keluaran karena bilangan-bilangan yang dihasilkan ada yang terdiri dari 2 digit (10, 11, 12, 13, 14, dan 15 masing-masing 2 digit). Tabel kebenaran rangkan yang dimaksud adalah tampak pada Tabel 12.3 di bawah ini. Tabel 12.3 : Biner BCD Nomor Baris Puluhan Satuan (Desimal) A B C D P3 P2 P1 P0 S3 S2 S1 S0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 2 0 0 1 0 0 0 0 0 0 0 1 0 3 0 0 1 1 0 0 0 0 0 0 1 1 4 0 1 0 0 0 0 0 0 0 1 0 0 5 0 1 0 1 0 0 0 0 0 1 0 1 6 0 1 1 0 0 0 0 0 0 1 1 0 7 0 1 1 1 0 0 0 0 0 1 1 1 8 1 0 0 0 0 0 0 0 1 0 0 0 9 1 0 0 1 0 0 0 0 1 0 0 1 10 1 0 1 0 0 0 0 1 0 0 0 0 11 1 0 1 1 0 0 0 1 0 0 0 1 12 1 1 0 0 0 0 0 1 0 0 1 0 13 1 1 0 1 0 0 0 1 0 0 1 1 14 1 1 1 0 0 0 0 1 0 1 0 0 15 1 1 1 1 0 0 0 1 0 1 0 1 Dari tabel 12.3 tampak bahwa ada 8 fungsi keluaran, tetapi 3 fungsi di antaranya, yaitu P3, P2, dan P1 selalu 0. Sehingga tinggal 5 fungsi masingmasing dapat dinyatakan dalam bentuk minterm sebagai : S0 = m (1,3,5,7,9,11,13,15) S1 = m (2,3,6,7,12,13) S2 = m (4,5,6,7,14,15) S3 = m (8,9) P4 = m (10,11,12,13,14,15). Fungsi-fungsi tersebut jika dituangkan dalam peta Karnough dapat dilihat seperti pada Gambar 12.2 di bawah ini. AB CD AB AB C D CD C D CD 0 1 1 0 AB A B AB 0 1 1 0 0 1 1 0 0 1 1 0 CD AB C D CD C D CD 0 0 1 1 (a) C D CD C D CD 0 0 1 1 1 1 0 0 0 0 0 0 (b) AB CD AB A B AB AB AB 0 0 0 0 AB A B AB 1 1 1 1 (c) 0 0 1 1 0 0 0 0 CD C D CD C D CD AB 0 0 0 0 AB A B AB 0 0 0 0 (d) 0 0 0 0 1 1 0 0 a). S0 = D AB CD C D CD C D CD AB 0 0 0 0 AB A B AB 0 0 0 0 1 1 1 1 0 0 1 1 b). S1 = A C + AB C c). S2 = A B + BC d). S3 = A B C e). P0 = AB + AC. (e) Gambar 12.2 : Peta Karnough untuk keluaran-keluaran dari Tabel 11.3. Realisasi rangkaian dekoder biner ke BCD berdasarkan tabel 12.3 dan gambar 12.2 ditunjukkan pada Gambar 12.3 di bawah ini. A B C D S0 S1 S2 S3 P0 P1 P2 P3 Gambar 12.3 : Diagram rangkaian dekoder biner 4 bit ke BCD 3. Dekode BCD ke Desimal Data atau bilangan yang disajikan baik dalam sandi biner tak berbobot maupun dalam sandi BCD masih sulit untuk difahami orang pada umumnya, karena orang telah terbiasa perlu rangkaian inilah yang kita dengan bilangan desimal. Dengan demikian untuk mengubah dari sandi BCD ke desimal. Rangkaian kenal sebagai dekoder BCD ke desimal. Marilah kita mencoba memahami pengubahan sandi BCD untuk menampilkan desimal 1 digit, misalnya desimal 9, yang tentu saja memerlukan 4 bit biner yang menyandi BCD. Operasi pengubahan ini dapat dihasilkan dengan gerbang AND 4 masukan. Perhatikan Gambar 12.4 berikut ini. A = 1 (MSB) A B=0 B C=0 C D D = 1 (LSB) Saluran 9 Gambar 12.4 : Diagram rangkaian dekoder BCD (4 bit) Ke desimal 1 digit dengan gerbang AND 4 masukan. Keluaran gerbang AND pada gambar 6.4 dalam keadaan 1 jika dan hanya jika masukan-masukan dalam sandi BCD bernilai A = 1 (MSB), B = 0, C = 0, dan D = 1 (LSB). Karena sandi ini akan menampilkan desimal 9, maka keluarannya ditandai dengan "saluran 9", (ABCD - 1001). Sebuah dekoder BCD ke desimal yang lebih lengkap dapat dilihat pada Gambar 12.5. Pada dekoder tersebut tetap digunakan gerbang NAND sehingga sebuah keluaran 0 (rendah) untuk kode BCD yang benar dan 1 (tinggi) pada kode lain yang salah. Dekoder tersebut memiliki 4 jalur masukan A, B, C, D dan 10 jalur keluaran untuk 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Untuk mendapatkan gerbang NOT. masukan komplemen A , B , C , D dapat digunakan S A B (MSB) C D (LSB) A B C D = 0000 0 A B C D = 0001 1 A B C D = 0010 2 . . . A B C D = 1001 9 Gambar 12.5 : Dekoder BCD ke desimal menggunakan gerbang NAND. Dekoder seperti gambar 12.5 di atas juga dikenal sebagai dekoder 4 jalur ke 10 jalur (saluran), karena menunjukkan suatu kode masukan 4 bit yang memilih 1 di antara 10 saluran keluaran.Dengan kata lain dekoder tersebut bekerja sebagai saklar (switch) 10 posisi yang tanggap terhadap sebuah perintah masukan BCD. Kadang-kadang dalam selang waktu diperlukan agar sebuah dekoder tertentu. Dalam fungsi demikian bekerja hanya diperlukan satu tambahan terminal masukan pada setiap gerbang NAND. Terminal tambahan itu disebut sebagai STROBE atau ENABLE. Semua masukan STROBE (S) disambung bersama dan dibangkitkan dengan sinyal biner S. Jika S = 1 maka satu gerbang diijinkan (enable) dan terjadi proses penyandian. Jika S = 0 maka tidak ada kejadian yang mungkin dan proses penyandian dicegah. Suatu masukan STROBE tersebut dapat digunakan suatu dekoder yang memiliki sejumlah masukan dan keluaran sembarang. 4. Dekode BCD ke Peraga 7 Segmen Angka-angka yang sering kita baca pada alat-alat digital ditampilkan dengan lampu peraga yang terdiri dari 7 bagian (segmen). Penampil macam itu dikenal sebagai peraga 7 segmen. Perhatikan Gambar 12.6 berikut. a f g e b c d Gambar 12.6 : Peraga 7 segmen Sebenarnya setiap segmen merupakan sebuah LED (Light Emitting Dyode), dan masing-masing segmen diberi nama secara berurutan sebagai segmensegmen a, b, c, d, e, f, dan g seperti pada gambar 6.6. Angka desimal yang ditampilkan terbentuk dari segmen-segmen yang menyala. Misal agar tampil angka 7 maka segmen yang dinyalakan a, b, dan c. Jika segmen-segmen f, g, b, dan c yang menyala maka akan muncul angka 4. Demikian seterusnya. Agar peraga 7-segmen dapat menampilkan suatu angka (desimal), maka diperlukan rangkaian pengendali untuk menterjemahkan keadaan logika masukan BCD menjadi angka yang sesuai. Rangkaian pengendali itu disebut dekoder BCD ke peraga 7 segmen. Selanjutnya marilah kita merancang dekoder tersebut. Terlebih dahulu kita susun tabel kebenaran yang menyatakan hubungan antara angka yang akan ditampilkan (BCD) dengan segmen dari peraga 7 segmen yang harus dinyalakan. Untuk itu perhatikan Tabel 12.4 berikut. Tabel 12.4 : Desimal BCD Segmen yang menyala (nomor baris) A B C D a b c d e f g 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 2 0 0 1 0 1 1 0 1 1 0 1 3 0 0 1 1 1 1 1 1 0 0 1 4 0 1 0 0 0 1 1 0 0 1 1 5 0 1 0 1 1 0 1 1 0 1 1 6 0 1 1 0 1 0 1 1 1 1 1 7 0 1 1 1 1 1 1 0 0 0 0 8 1 0 0 0 1 1 1 1 1 1 1 9 1 0 0 1 1 1 1 1 0 1 1 Segmen yang menyala pada tabel 12.4 merupakan fungsi keluaran sehingga terdapat 7 fungsi keluaran yang masing-masing dapat dinyatakan sebagai : a = m (0,2,3,5,6,7,8,9) b = m (0,1,2,3,4,7,8,9) c = m (0,1,3,4,5,6,7,8,9) d = m (0,2,3,5,8,9) e = m (0,2,6,8,9) f = m (0,4,5,6,8,9) g = m (2,3,4,5,6,8,9). Berdasarkan fungsi-fungsi keluaran di atas kita dapat menuangkannya ke dalam peta Karnough seperti tampak pada Gambar 12.7 berikut. AB CD AB AB C D CD C D CD 1 0 1 1 AB A B AB 0 1 1 1 X X X X 1 1 X X CD AB C D CD C D CD 1 1 1 1 (a) 1 1 1 0 AB A B AB 1 1 1 1 X X X X 1 1 X X CD AB C D CD C D CD 1 0 1 1 (c) C D CD C D CD 1 1 X X AB A B AB 0 1 0 0 X X X X 1 1 X X (d) AB CD X X X X AB AB C D CD C D CD 1 0 1 0 (b) AB CD AB A B AB AB AB 1 0 0 1 AB A B AB 0 0 0 1 (e) X X X X 1 1 X X CD C D CD C D CD AB 1 0 0 0 AB A B AB 1 1 0 1 (f) X X X X 1 1 X X AB CD AB 0 0 1 1 C D CD C D CD Gambar 12.7 : AB A B AB 1 1 0 1 X X X X Peta Karnough rangkaian dekoder BCD ke peraga 7 segmen 1 1 X X X : tak peduli (don‟t care) (g) Persamaan logika untuk setiap jalur keluaran berdasarkan pada gambar 12.7 adalah : a = A + BD + B D + CD b = B + C D + CD c=B+ C +D d = B D + BC D + C D + B C e = B D + CD f = C D + B D + BC + A g = B C + B C + C D + A. Realisasi rangkaian dekoder BCD ke peraga 7 segmen dapat diperhatikan pada Gambar 12.8 di bawah ini. Diagram rangkaian seperti Gambar 12.8 bukanlah satu-satunya rangkaian BCD ke peraga 7-segmen. Anda dapat mencoba rangkaian teknik sejenis yang berbeda penyandian, pernyataan fungsi keluaran minterm, dan cara penggabungan atau Karnaoghnya. dalam tergantung dari bentuk maxterm penyederhanaan dari atau peta A B C D g f e d c b a Gambar 12.8 : Diagram rangkaian dekoder BCD ke peraga 7-segmen. 5. Demultiplekser Demultiplekser adalah suatu piranti untuk memilih satu keluaran dari beberapa keluaran yang tersedia. Demultiplekser identik dengan saklar putar (rotary) satu kutub banyak posisi. Ide dasar demultiplekser ditunjukkan pada Gambar 12.9. Demultiplekser 1 Data masukan H (serial) L L H H H HHHLLH Kendali (alamat) 6 Data Keluaran (paralel) Gambar 12.9 : Demultiplekser identik dengan saklar putar Satu kutub banyak posisi. Satu dari beberapa keluaran dapat dipilih melalui kendali (alamat) dengan cara memutar saklar dengan sudut tertentu. Data pada masukan akan dipindahkan ke keluaran. Putaran yang cepat dari saklar (sebagai kendali) dan sinkron dengan saat masukan akan mengubah data masukan serial menjadi data paralel pada keluarannya. Data dalam gambar 6.9 di atas dalam bentuk serial adalah HHHLLH. Oleh karena sifatnya yang demikian, maka demultiplekser juga disebut sebagai distributor data dan dapat digunakan sebagai dekoder. Sebuah demultiplekser akan menerima masukan dan meneruskannya ke salah satu dari beberapa keluaran yang mungkin. Dengan kata lain hanya satu keluaran yang aktif (bekerja) sementara keluarankeluaran yang lain dalam keadaan tidak aktif. Supaya salah satu keluaran saja yang aktif maka diperlukan jalur pengendali. Banyaknya jalur pengendali tergantung dari banyaknya jalur masukan. Sebagaimana telah dikemukakan, rangkaian dekoder pada gambar 12.5 yang terdahulu biasanya dilengkapi dengan jalur masukan strobe (S) Jalur strobe (S) tersebut pada umumnya merupakan keluaran dari masukan enable dan masukan data yang disusun seperti tampak pada Gambar 12.10 berikut. Enable Strobe (S) Data Gambar 12.10 : Strobe yang terdiri dari enable dan data Selanjutnya marilah kita membuat rangkaian demultiplekser dengan dekoder 3 masukan 8 keluaran yang dilengkapi dengan masukan-masukan enable dan data seperti terlihat pada Gambar 12.11 berikut ini. A B C Enable 0= A B C S Data 1= A BC . . . 7 = ABC Gambar 12.11 : Dekoder 3 masukan 8 keluaran Jika enable = 1 maka S = 0 sehingga semua keluaran bernilai 1. Jika enable = 0 maka masukan data akan disalurkan lewat salah satu dari jalur keluarannya yang ditentukan oleh nilai-nilai masukan A, B, dan C. Misalkan, jika ABC = 110, maka nilai pada jalur keluaran 6 akan sama dengan nilai pada jalur masukan data. Dengan mekanisme seperti inilah dekoder berfungsi sebagai demultiplekser. Jika enable = data = 0, maka rangkaian demultiplekser pada gambar 12.11 berfungsi sebagai dekoder. Demultiplekser 3 masukan 8 keluaran (disebut dekoder 8 bit atau dekoder 3 ke 8) pada gambar 12.11 selanjutnya digambarkan seperti pada Gambar 12.12 di bawah ini. A 3 masukan B C Enable Data 0 1 2 3 4 5 6 7 8 keluaran Gambar 12.12 : Dekoder 3 masukan ke 8 keluaran Dekoder atau demultiplekser dengan orde yang lebih tinggi dapat disusun dari dekoder atau demultiplekser orde lebih rendah. Berikut ini contoh dekoder/ demultiplekser 5 masukan ke 32 keluaran (32 bit) yang dibangun dengan cara menggabungkan satu dekoder 2 masukan ke 4 keluaran (4 bit) dan empat dekoder 3 masukan ke 8 keluaran (8 bit) yang susunannya tampak pada Gambar 12.13. Sebagai contoh, jika ABCDE = 01110 (desimal 14), oleh karena AB = 01 maka keluaran dekoder 4 bit yang bernilai 0 adalah keluaran nomor 1. Sehingga dekoder 8 bit yang bekerja hanyalah nomor 1. Selanjutnya, karena CDE = 110 (desimal 6) maka keluaran nomor 6 (dimulai dari nomor 0) dari dekoder ini atau keluaran nomor 14 dari dekoder secara keseluruhan akan bernilai 0 (aktif). Sedangkan 31 keluaran lainnya berharga 1 (tidak aktif). 3 ke 8 E D 0 C S 2 ke 4 A 0 B 1 2 S 1 S 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 3 2 S Enable Data 3 S Gambar 12.13 : Dekoder 32 bit yang tersusun dari satu dekoder 4 bit dan empat dekoder 8 bit 6. Multiplekser Kebalikan fungsi dari demultiplekser adalah multiplekser. Multiplekser merupakan suatu piranti untuk memilih salah satu masukan dari beberapa masukan yang tersedia untuk disalurkan ke satu keluaran. Multiplekser identik dengan saklar putar (rotary) satu kutub banyak posisi. Multiplekser juga disebut sebagai pemilih data (data selector). Ide dasar multiplekser ditunjukkan pada Gambar 12.14 di bawah ini. Multiplekser Kendali (alamat) L Data Masukan (paralel) L L H H L LHHLLL Data keluaran (serial) Gambar 12.14 : Multiplekser identik dengan saklar putar Salah satu masukan dipilih memalui kendali (alamat) dengan cara memutar saklar pada sudut tertentu. Data pada masukan yang dipilih akan muncul pada keluarannya. Multiplekser seperti pada gambar 12.14 di atas merupakan multiplekser analog yang terdiri dari saklar 6 posisi. Sedangkan multiplekser yang akan dibahas adalah multiplekser digital yang dapat disusun dari gerbang-gerbang logika. Agar dapat memilih salah satu masukan di antara beberapa masukan yang tersedia diperlukan jalur pengendali. Banyaknya jalur pengendali ditentukan oleh banyaknya jalur masukan. Misalkan ada 4 jalur masukan yang masing-masing X0, X1, X2, dan X3 maka diperlukan 2 jalur pengendali yaitu S0, dan S1. Karena kombinasi nilai logika kedua jalur pengendali itu dapat menghasilkan 4 keadaan yang berbeda yaitu 00, 01, 10, dan 11. Model aturan yang biasa digunakan untuk pemilihan jalur masukan yang dipilih seperti terlihat pada tabel 12.5 berikut. Tabel 12.5 : Nilai pada dua jalur Jalur masukan yang dipilih pengendali (S1 S0) (disalurkan ke keluaran) 00 X0 01 X1 10 X2 11 X3 Diagram blok dari multiplekser 4 masukan 1 keluaran (dan tentunya dengan 2 jalur pengendali) terlihat pada Gambar 12.15. 4 jalur masukan X0 X1 X2 X3 Y (1 jalur keluaran) MUX S0 S1 Gambar 12.15 : Diagram blok multiplekser 4 masukan Dengan cara yang sama, untuk multiplekser 8 masukan diperlukan pengendali, dan seterusnya. Dengan demikian secara 3 jalur umum dapat dikatakan bahwa n jalur pengendali dapat memilih satu masukan secara tegas di antara 2n masukan. Tentu saja 2n maksimum dipilih. yang dapat tersebut merupakan Sebagaimana demultiplekser, jumlah pada umumnya multiplekser juga dilengkapi dengan jalur strobe atau enable. Jalur ini merupakan jalur perintah yang memungkinkan multiplekser bekerja atau tidak bekerja. Untuk membuat multiplekser digital, terlebih dahulu perlu mengingat kembali sifat-sifat dari gerbang logika dasar, terutama gerbang-gerbang NOT, AND, dan OR. Karena gerbang-gerbang tersebut yang akan digunakan untuk menyusun suatu multiplekser. NOT : Jika masukan rendah maka keluarannya tinggi, dan sebaliknya jika masukan tinggi maka keluarannya rendah. AND: Keluaran tinggi, bila dan hanya bila semua masukannya tinggi. OR : Keluaran rendah, bila dan hanya bila semua masukannya rendah atau keluaran tinggi jika satu atau lebih masukannya tinggi. Selanjutnya, marilah menyusun multiplekser digital 4 masukan ke 1 keluaran yang dilengkapi dengan jalur enable dan pengendali (control). Karena setiap jalur masukan berkaitan dengan jalur data, jalur enable, dan tentunya 2 jalur pengendali, maka masing-masing jalur masukan merupakan gerbang AND 4 masukan. Agar diperoleh 1 keluaran, maka perlu gerbang OR 4 masukan untuk menampung 4 keluaran dari setiap gerbang AND. Untuk lebih jelasnya perhatikan Gambar 12.16. Pengendali S1 S0 0 Enable X0 1 X1 Y X2 2 (Keluaran) 3 X3 Gambar 12.16 : Rangkaian multiplekser digital 4 masukan Ke 1 keluaran dengan gerbang NOT, AND, dan OR. Multiplekser pada gambar 12.16, bila enable = 1 maka pemilihan masukan dilaksanakan, dan sebaliknya bila enable = 0 maka pemilihan masukan tidak dilaksanakan. Tentu saja dapat dibuat keadaan enable = 0 agar pemilihan masukan dilaksanakan dan enable = 1 agar pemilihan masukan tidak dilaksanakan. Setelah memahami cara kerja multiplekser, kita dapat memanfaatkannya untuk berbagai keperluan sebatas kemampuan multiplekser tersebut. Multiplekser sering dimanfaatkan sebagai rangkaian pengubah data paralel ke serial (paralel to serial converter). Misalkan tersedia data 4 bit dalam bentuk paralel, lihat kembali gambar 12.15. Data 4 bit tersebut dikenakan pada masukan multiplekser 4 masukan ke 1 keluaran. Bit ke 0 dikenakan pada X 0, bit ke 1 dikenakan pada X1, bit ke 2 dikenakan pada X2, dan bit ke 3 dikenakan pada X3. Melalui jalur pengendali (2 jalur) maka data 4 bit tadi disalurkan ke keluarannya secara berurutan. Pada periode pertama, ketika jalur pengendali bernilai 00, maka X0 disalurkan ke pengendali bernilai 01, maka keluaran. X1 Pada periode ke dua, jalur disalurkan ke keluaran. Demikian seterusnya sehingga pada keluarannya terjadi gelombang sebagai data serial yang semula dimasukkan secara paralel. Untuk menyalurkan data paralel 4 bit ke keluaran secara utuh memerlukan selang waktu 4 periode. Secara umum data paralel N bit (X(n-1), X(n-2), ... , X2, X1, X0) dapat dikeluarkan secara serial dari X0, X1, X2, ... , X(n-2), X(n-1) diperlukan selang waktu N periode. Manfaat lain multiplekser adalah dapat digunakan untuk merealisasikan suatu rangkaian logika. Multiplekser dengan N jalur pengendali dapat digunakan untuk membentuk rangkaian logika dengan N variabel masukan. Sebagai contoh, dengan masukan) kita hendak membuat menggunakan multiplekser 3 bit (8 suatu rangkaian logika yang memiliki persamaan logika sebagai berikut : Y = f (A, B, C, D) = Sm (0,1,3,5,7,8,11,13,14). Terlebih dahulu kita pilih 3 di antara 4 variabel masukan (A,B,C,D) untuk kita hubungkan dengan 3 jalur pengendali (S0, S1, S2) pada multiplekser, misalkan kita pilih D, C, dan B. Selanjutnya hubungkan D, C, B tersebut berturut-turut dengan S2, S1, S0 seperti yang terlihat pada Gambar 12.17. Untuk menentukan nilai masukan Xi (i = 0,1,2,3,4,5,6,7) agar keluaran Y sesuai dengan fungsi logika yang diinginkan, buatlah peta Karnough dari Y, perhatikan gambar 12.17 (b). Pada peta tersebut tampak ada 8 bagian (dibatasi oleh kotak) yang masing masing berkaitan dengan DCB (variabel yang kita pilih). DC 1 A X0 X1 X2 X3 X4 X5 X6 X7 A B A Y BA BA DC 1 X0 1 X2 1 1 X1 1 X3 BA DC DC X6 1 1 X4 1 X7 1 1 X5 1 S2 S1 S0 (b) (a) D C B Gambar 12.17 : Multiplekser 3 bit untuk membuat fungsi logika Y = m (0,1,3,5,7,8,11,13,14) (a) Realisasi rangkaian, (b) Peta Karnough. Untuk nilai DCB = S3S2S1 = 000, oleh karena Y = X0, maka bagian kotak yang berkaiatan dengan nilai tersebut diberi tanda X0. Demikian juga untuk nilai DCB = S3S2S1 = 001, karena Y = X1, maka kotak yang berkaiatan dengan harga tersebut diberi tanda X1, dan seterusnya. Pada kotak X0 oleh karena Y pada kedua kotak tersebut bernilai 1, maka masukan X0 dihubungkan dengan nilai 1. Untuk kotak X1, oleh karena Y = X1 = 1 jika A = 1, dan Y = X1 = 0 jika A = 0, yang berarti X1 = A, maka masukan X1 dari multiplekser dihubungkan dengan A. Hasil yang sama akan diperoleh untuk kotak-kotak X2, X3, X5, dan X6. Sedangkan untuk kotak X4 dan X7, oleh karena Y bernilai 1 berkaitan dengan A = 0, maka X4 dan X7 dihubungkan dengan komplemen A, yaitu A. Sekali lagi, yang dihubungkan dengan masukan pengendali tidak harus DCB, tetapi dapat memilih 3 di antara 4 variabel A, B, C, dan D. Sebenarnya, untuk rangkaian logika dengan N variabel masukan dapat digunakan multiplekser yang memiliki jumlah jalur pengendali kurang dari N, tetapi perlu tambahan gerbang pada bagian masukannya. X0 X1 X2 X3 S1 S0 X0 X1 X2 X3 S1 S0 Keluaran X0 X1 X2 X3 S1 S0 S1 S0 X0 X1 X2 X3 S1 S0 Gambar 12.18 : Multiplekser 16 masukan 1 keluaran yang tersusun dari multiplekser-multiplekser 4 masukan 1 keluaran. Untuk keperluan pengendalian yang lebih multiplekser dengan jalur masukan yang besar demikian itu selanjutnya dikenal sebagai besar juga. kadang diperlukan Multiplekser yang multiplekser orde tinggi. Multiplekser orde tinggi sangat sulit ditemukan di pasaran, atau bahkan tidak tersedia dalam satu kemasan. Tetapi kita dapat menyusun multiplekser orde tinggi dari multiplekser-multiplekser orde yang lebih rendah. Sebagai contoh marilah kita merancang multiplekser 16 saluran masukan dan 1 keluaran dari beberapa multiplekser 4 saluran masukan dan 1 keluaran. Kita perlu 5 buah multiplekser orde yang lebih rendah tersebut. Perhatikan baik-baik Gambar 12.18. 7. Rangkaian Terpadu (IC) Dekoder/demultiplekser dan multiplekser Selain untuk memenuhi keperluan khusus dan dalam keadaan terpaksa, untuk keperluan praktis kita tidak perlu membuat dekoder/demultiplekser dan multiplekser dari gerbang-gerbang logika, karena di pasaran telah tersedia piranti tersebut dalam kemasan standar, yaitu dalam bentuk IC. Selanjutnya akan dikemukakan beberapa dekoder/demultiplekser dan multiplekser bentuk IC yang mudah diperoleh di toko-toko elektronika. Perhatikan Tabel 12.6 berikut. Tabel 12.6 : No. 1 Kode IC Deskripsi 7442 Decoder BCD ke desimal atau dekoder 1 ke 10 7443, 7444, Dekoder 1 ke 10 7445 2 7446, 7447, Dekode/driver BCD ke 7-segment 7448, 7449 3 74137, 74138 Dekoder/demultiplekser 1 ke 8 4 74139 Dekoder 1 ke 4, di dalam 1 IC tersedia 2 dekoder 5 74150 Multiplekser 16 masukan (16 saluran ke 1 saluran) 6 74151, 74152 Multiplekser 8 masukan (8 saluran) 7 74153 Multiplekser 4 masukan, di dalam 1 IC ada 2 8 74154 Dekoder/demultiplekser 1 ke 16 (4 saluran ke 16 saluran) 9 74155, 74156 Dekoder/demultiplekser 1 ke 4, di dalam 1 IC ada 2 10 74157, 74158 Multiplekser 2 masukan, di dalam 1 IC ada 4 11 74251 Multiplekser 8 masukan 12 74253 Multiplekser 4 masukan, di dalam 1 IC ada 4 13 74257, 74257 Multiplekser 2 masukan, di dalam 1 IC ada 4 Tidak semua IC dekoder/demultiplekser dan multiplekser terdaftar pada tabel 12.6. Masih banyak IC sejenis yang belum tercantum dalan tabel tersebut. Bahkan karena pesatnya perkembangan teknologi IC dimungkinkan lahir IC sejenis yang baru. Tetapi dengan menguasai prinsip-prinsip dasarnya, dan dengan usaha yang cukup, Anda dapat memahami IC lain yang sejenis. Oleh karena banyaknya jenis IC dekoder/demultiplekser dan multiplekser, sebagai gambaran dipilih dua di antaranya. IC 74138 untuk mewakili dekoder/ demultiplekser, dan IC 74151 yang mewakili multiplekser. IC 74138 merupakan dekoder/demultiplekser dari 1 ke 8 saluran. Karena kecepatannya yang tinggi IC tersebut sangat baik untuk keperluan pengkode alamat. Tiga masukan Enable-nya memungkinkan IC itu disusun menjadi dekoder 1 ke 24 saluran. Bahkan 4 buah IC 74138 dapat membentuk dekoder 1 ke 32 saluran dengan tambahan satu gerbang NOT. IC 74138 memiliki 16 kaki. Dua kaki untuk V dan GND, 3 kaki untuk saluran pengendali (A2 A1 A0 ), 3 kaki untuk masukan Enable (E3 E 2 E 1 ), dan 8 kaki sisanya untuk saluaran keluaran ( O 7 O 6 O 5 O 4 O 3 O 2 O 1 O 0). Diagram IC 74138 tampak pada Gambar 12.19. E 1 E 2 E3 A2 A1 A0 3 2 1 7 9 10 +Vcc E 11 12 16 13 14 15 8 O7 O6 O5 O4 O3 O2 O1 O0 Gambar 12.19 : Diagram dekoder/demultiplekser 74138. Dekoder/demultiplekser 74138 menerima tiga masukan A1 A0 ) untuk memilih (mengaktifkan) 1 di biner berbobot (A 2 antara 8 keluarannya ( O 7 O 6 O 5 O 4 O 3 O 2 O 1 O 0). Keluaran 74138 adalah aktif rendah (active low). Jika A2 A1 A0 = 000 = 0, maka yang aktif keluaran O0. Jika A2 A1 A0 = 001 = 1, maka yang aktif keluaran O1. Jika A2 A1 A0 = 010 = 2, maka yang aktif keluaran O2, dan seterusnya. Untuk lebih jelasnya, perhatikan tabel kebenaran dari IC 74138 yang tertera pada Tabel 12.7. Tabel 12.7 : Masukan Keluaran E1 E2 E A0 A1 A2 O0 O1 O2 O3 O4 O5 O6 O7 1 X X X X X 1 1 1 1 1 1 1 1 1 1 X X X X 1 1 1 1 1 1 1 1 X X 0 X X X 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 : tingkat tegangan tinggi 0 : tingkat tegangan rendah X : tidak peduli. Selanjutnya, sebagai contoh multiplekser dipilih IC 74151 yang merupakan multiplekser digital 8 masukan dengan kecepatan tinggi. dengan IC 74151 memungkinkan untuk memilih satu jalur data dari 8 sumber yang tersedia. IC 74151 memiliki 16 kaki. Seperti pada umumnya IC, 2 kaki untuk V dan GND, 3 kaki untuk masukan pemilih (S2S1S0), 1 kaki enable aktif rendah ( E ), 2 kaki untuk jalur keluaran yang saling komplemen ( Z , Z), dan 8 kaki sisanya untuk jalur masukan (I7I6I5I4I3I2I1I0). Pemilihan jalur data masukan yang disalurkan ke keluaran dilakukan melalui masukan pemilih (S2S1S0). Jika S2S1S0 = 000 = 0, maka masukan I0 yang disalurkan. Jika S2S1S0 = 001 = 1, maka masukan I1 yang disalurkan. Jika S2S1S0 = 010 = 2, maka masukan I2 yang disalurkan. Demikian seterusnya. Diagram IC 74151 tampak pada Gambar 12.20. Sedangkan tabel kebenarannya dapat diperhatikan pada Tabel 12.8. I7 I6 S0 S1 S2 12 13 I5 I4 14 15 I3 I2 I1 I0 +Vcc 1 2 3 4 16 11 10 9 7 E 6 5 Z Z Gambar 12.20 : Diagram multiplekser 74151. 8 Tabel 12.8 : Masukan Keluaran E S0 S1 S2 Z Z 1 x x x 1 0 0 0 0 0 I 0 I0 0 0 0 1 I 1 I1 0 0 1 0 I 2 I2 0 0 1 1 I 3 I3 0 1 0 0 I 4 I4 0 1 0 1 I 5 I5 0 1 1 0 I 6 I6 0 1 1 1 I 7 I7 1 : tingkat tegangan tinggi 0 : tingkat tegangan rendah Demikianlah gambaran singkat tentang rangkaia terpadu (IC) dari dekoder/demultiplekser dan multiplekser. Informasi yang lebih lengkap tentang IC-IC tersebut sebaiknya dilihat pada buku data (data book) atau lembaran data (data sheet) tetang IC tadi. 8. Soal-soal 1. Jelaskan, mengapa demultiplekser kadang-kadang juga disebut sebagai distributor data ? 2. Pelajarilah fungsi kaki (pin) dan cara kerja dari IC 74138 melalui buku/ lembaran/manual datanya. Kemudian tunjukkan persambungan yang diperlukan bila IC tersebut digunakan sebagai demultiplekser. Jelaskan bagaimana mekanisme kerjanya jika ingin memilih saluran 5 ? 3. Terlebih dahulu harus mempelajari manual data dari IC yang diperlukan, rancanglah : a. demultiplekser 8 bit dengan sebuah IC 74139, b. demultiplekser 16 bit dengan 2 (dua) buah IC 74138. 4. Lihatlah fungsi kaki dan cara kerja IC tersebut pada data manual IC 74154, apakah fungsi dari kaki-kaki A0, A1, A2, dan A3 ? Rancanglah rangkaian demultiplekser 1 masukan dan 32 keluaran (32 bit) dengan 2 (dua) buah IC 74154 tersebut ! 5. Perhatikan rangkaian berikut ! Jika A1 A0 dan E sebagai saluran masukan, sedangkan Y0, Y1, Y2, dan Y3 sebagai saluran keluaran, deskripsikan mekanisme kerja dari rangkaian yang dimaksud ! Perhatikanlah kombinasi nilai A1 A0 dengan keluarannya ! A1 Y3 A0 Y2 E Y1 Y0 6. Jelaskan, mengapa multiplekser kadang-kadang juga disebut sebagai selektor data ? 7. Rancanglah multiplekser 32 bit dengan menggunakan 4 biah IC 74151 !. 8. Rancanglah suatu rangkaian yang akan mengeluarkan logika rendah ketika umur suatu bulan 31 hari. Masukannya adalah nomor bulan ( 1 s/d 12) sebagai bilangan biner 4 bit (Januarai = 0001, dst.). Gunakanlah IC 74150 !. 9. Dengan mempelajari manual data dari IC 74151, gambarlah bentuk gelombang pada saluran keluaran Y (pin 5), jika setiap saluran masukan dikenai masukan logik yang tetap, sedangkan saluran pemilih (S 2 S1 S0) dan enable ( E ) seperti gambar berikut : t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 E S0 S1 S2 Y 10. Dengan terlebih dahulu mempelajari data manual dari IC-IC berikut, jelaskan mekanisme kerja dan fungsi dari rangkaian berikut : H G F E D C B A 7493 Detak 1 MHz B D7 D6 D5 D4 D3 D2 D1 D0 OB OC OD 0 1 1 A B C 74151 Y DAFTAR PUSTAKA Fadeli AR., 1995, Suplemen Elektronika, FMIPA, UGM, Yogyakarta. Greenfield, J.D., 1994, Practical Digital Design Using ICs, Second Edition, Prentice-Hall International Inc., New Jersey. Grob, Bernard., 1987, Electronic Circuits and Applications, McGraw-Hill Book Company, Auckland. Hall, Douglas V., 1983, Microprocessors And Gigital Systems, Second Edition, McGraw-Hill Book Company, Auckland. Jones, Martin H., 1988, A Practical Introduction to Electronic Circuits, Second Edition, Cambridge University Press, Cambridge. Kleitz, W., 1996, Digital Electronics : A Practical Approach, Fourth Edition, Prentice-Hall International Inc., New Jersey. Malmstadt, H.V., Enke, C.G., Crouch, S.R., 1981, Electronics and Instrumentation for Scientists, The Benjamin/Cummings Publishing Company Inc., California. Malvino, Albert P., 1983, Digital Computer Electronics : An Introduction to Microcomputers, Second Edition, McGraw-Hill Book Company, New York. NN, ____, Diktat Kuliah Elektronika Digital, Jurusan Pendidikan Fisika, Universitas Sanata Darma, Yogyakarta. NN, 1978, TTL Data Book, Fairchild Camera and Instrument Corporation, California. Sutrisno, Jakarta. 1986, Elektronika II (Modul 6-9), Kurnia Universitas Terbuka, Taub, Herbert., 1987, Digital Circuits And Microprocessors, McGraw-Hill Book Company, Auckland. Tocci, Ronald J., 1991, Digital Systems : Principles And Applications, Fifth Edition, Prentice-Hall International Inc., Englewood Cliffs, New Jersey. Penulis adalah staf pengajar tetap di Jurusan Pendidikan Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam (FMIPA), Universitas Negeri Yogyakarta (UNY) sejak tahun 1990 dengan mata kuliah pokok Elektronika. Menjabat sebagai Kepala Laboratorium Elektronika dan Instrumentasi di jurusan tersebut. Lahir di Bantul pada tahun 1961. Lulusan dari SMPP 10 (SMA N 8) Yogyakarta, menamatkan pendidikan S1 di FPMIPA IKIP Yogyakarta (UNY) jurusan Pendidikan Fisika, menempuh pendidikan Pra-S2 jurusan Fisika di ITB, dan pernah mengikuti pendidikan/kuliah S2 jurusan Fisika di ITB hingga tahun 1993. Bidang yang diminati hingga sekarang adalah elektronika dan instrumentasi. Selain Elektronika, mata kuliah lain yang dipegang adalah Sensor dan Transduser, Mikroprosesor, Mikrokontroler, Elektronika Lanjut, Ketrampilan Elektronika, serta Kolokium. Buku dan diktat yang pernah ditulis antara lain Modul Mekanika UT, Modul Elektronika Digital UT, Diktat Elektronika Digital JICA, dan beberapa Petunjuk Praktikum Elektronika.