1
SISTEM BILANGAN
Banyak sistem bilangan yang dapat dan telah dipakai dalam melaksa-nakan perhitungan. Tetapi ada sistem bilang-an yang sudah jarang dipakai ataupun tidak dipakai lagi sama sekali dan ada pula sistem bilangan yang hanya dipakai pada hal-hal tertentu saja. Sistem bilangan limaan (quinary) dipergunakan oleh orang Eskimo dan orang Indian di Amerika Utara zaman dahulu. Sistem bilangan Romawi yang sangat umum dipakai pada zaman kuno, kini
pemakaian-nya terba-tas pada pemberian nomor urut seperti I untuk pertama, II untuk kedua, V untuk ke-lima dan seterusnya; kadang-kadang dipakai juga untuk penulisan tahun seperti MDCCCIV untuk menyatakan tahun 1804. Sistem bilangan dua belasan (duodecimal) sampai kini masih banyak dipakai seperti 1 kaki = 12 Inci, 1 lusin = 12 buah dan sebagai-nya. Namun yang paling umum dipakai kini adalah sistem bilangan puluhan (decimal) yang kita pakai dalam kehidup-an sehari-hari.
Karena komponen-komponen komputer digital yang meru-pakan sistem digi-tal bersifat saklar (switch), sistem bi-langan yang paling sesuai untuk kom-puter digital adalah sistem bibi-langan biner (binary). Keserdeha-naan
pengubahan bilangan biner ke bilangan oktal atau heksadesimal dan sebaliknya, membuat bi-langan oktal dan heksadesimal juga banyak dipakai dalam dunia komputer, ter-u-tama dalam hubungan pengkodean. Bilangan Biner, Oktal dan Heksadesi-mal akan dibahas dalam bab ini didahului dengan pemba-hasan singkat tentang bilang-an desimal se-bagai pengantar.
1.1 Sistem Bilangan Puluhan
Sistem bilangan puluhan atau desimal (decimal system) adalah sistem bi-lan-gan yang kita pergunakan sehari-hari. Sistem bilangan ini disusun oleh sepuluh simbol angka yang mempunyai nilai yang berbeda satu sama lain dan karena itu dikatakan bahwa dasar/basis atau akar (base, radix) dari pada sistem bilangan ini adalah sepuluh. Ke-sepuluh angka dasar tersebut, sebagaimana telah kita ketahui, adalah: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Nilai yang terkandung dalam setiap simbol angka secara terpisah (berdiri sendiri) disebut nilai mutlak (absolute value). Jelaslah bahwa harga maksimum yang dapat dinyatakan oleh hanya satu angka adalah 9. Harga-harga yang lebih besar dapat dinyatakan hanya dengan memakai lebih dari satu angka secara bersama-sama. Nilai yang dikandung oleh setiap angka di dalam suatu bilangan demikian ditentukan oleh letak angka itu di dalam deretan di samping oleh nilai mutlaknya. Cara penulisan ini disebut sebagai sistem nilai (berdasarkan) letak/posisi (positional value sys-tem). Angka yang berada paling ka-nan dari suatu bilangan bulat tanpa bagian pecahan disebut berada pada letak ke 0 dan yang di kirinya adalah ke 1, ke 2 dan seterusnya sam-pai dengan ke (n-1) jika bi-langan itu terdiri dari n angka. Nilai letak dari pada angka paling kanan, yaitu kedudukan ke 0, adalah terkecil, yaitu 100 = 1. Nilai letak ke 1 adalah 101,
nilai letak ke 2 adalah 102 = 100, dan seterusnya nilai letak ke n-1 adalah 10n-1.
Untuk bilangan yang mengandung bagian pecahan, bagian bulat dan pecah-annya dipisahkan oleh tanda koma (tanda titik di Inggris, Amerika, dan lain-lain). Angka di kanan tanda koma puluhan (decimal point) disebut pada kedudukan negatif, yaitu letak ke -1, ke -2 dan seterus-nya dan nilai letaknya adalah 10-1, 10-2, dan seterusnya 10-m untuk
kali dari pada nilai mutlak dan nilai letaknya. Jadi, nilai yang diberikan oleh angka 5 pada bilangan 1253,476 adalah 5x101 = 50 dan yang diberikan oleh angka 7 adalah 7x10-2 = 0,07.
Secara umum, suatu bilangan puluhan yang terdiri atas n angka di kiri tanda koma puluhan dan m angka di kanan tanda koma puluhan, yang dapat dinyatakan dalam bentuk:
N = an-1 an-2 ... a1 a0, a-1 a-2 ... a-m,
mempunyai harga yang dapat dinyatakan dalam bentuk:
N = an-1 10n-1 + an-2 10n-2 +...+ a1 101 + a0 100 + a-1 10-1 + a-2 10-2 + ...
+ a-m 10-m (1.1)
1.2 Biner, Oktal dan Heksadesimal
Secara umum, semua sistem digital bekerja dengan sistem bilangan biner (binary) sehingga sistem binerlah yang paling penting dalam sistem digital. Selain sistem bilangan biner, sistem yang paling umum di-pakai dalam pengkodean instruksi untuk komputer digital adalah sistem bilangan oktal dan hekadesimal.
Harga dalam desimal (puluhan) yang dinyatakan oleh suatu bilangan biner, oktal, heksadesimal atau yang lain-lain yang bukan desimal dapat dihitung dengan memakai rumus:
an-1an-2... a1a0 a-1a-2... a-m= an-1 Rn-1 + an-2 Rn-2 +... + a1 R1 + a0 R0
+ a-1 R-1 + ... + a
-m R-m (1.2)
dengan: an-1 = angka yang paling kiri,
R = Angka dasar dari pada sistem bilangan
n = cacah angka yang menunjukan bilangan bulat m = cacah angka yang menunjukkan bilangan pecahan
Persamaan (1.2), yang merupakan bentuk umum dari pada persamaan (1.1), berlaku untuk semua sistem bilangan yang berdasarkan letak yang tegas. Untuk semua sistem bilangan seperti bilangan Romawi, misalnya, persamaan ini tentunya tak dapat dipergunakan.
1.2.1 Bilangan Biner
Sistem bilangan biner mempunyai hanya dua macam sim-bol angka, yaitu 0 dan 1, dan karena itu dasar dari sistem bilangan ini adalah dua. Harga yang ditun-jukkan oleh bilangan biner dalam puluhan dapat dihitung dengan memakai per-samaan (1.2) di atas dengan memasukkan R= 2 ke dalamnya. Sebagai contoh, harga bilangan biner 101,01
adalah :
1 x 22 + 0 x 21 + 1 x 20 + 0 x 2-1 + 1 x 2-2 = 5,25
Dapat disadari bahwa bila kita bekerja dengan lebih dari satu bilang-an, maka kita akan mengalami kebingungan bila kita tidak memakai suatu tanda yang me-nyatakan dasar setiap bilangan. Untuk mencegah hal ini, pada setiap bi-langan di-cantumkan dasar bibi-langannya, seperti (101)2 atau 1012 untuk menyatakan bilangan 101 dalam biner. Jadi, contoh diatas dapat dituliskan sebagai :
Untuk uraian selanjutnya, kita akan memakai cara pe-nulisan ini bila-mana diperlukan. Bilamana dasar dari pada bilangan sudah jelas dari uraian ataupun bila kita hanya membicarakan satu sistem bilangan, tentu-nya kita tidak perlu dan tak akan memberikan tanda tersebut. Didalam praktek pemrograman komputer, sering tanda tersebut hanya diberikan kepada bilangan yang bukan puluhan.
1.2.2 Bilangan Oktal dan Heksadesimal
Bilangan Oktal mempunyai delapan macam simbol angka, yaitu: 0, 1, 2, 3, 4, 5, 6, 7, dan karena itu, dasar daripada bilangan ini adalah delapan. Harga desimal yang dinyatakan oleh suatu bilangan oktal diperoleh dengan
me-masukkan R= 8 kedalam pers. (1.2) di depan. Sebagai con-toh, (235,1)8 = 2 x 82 + 3 x 81 + 5 x 80 + 1 x 8-1 = (157,125)
10.
Sistem bilangan Heksadesimal terdiri atas 16 simbol angka sehingga bilang-an dasarnya adalah 16. Sepuluh dari simbol tersebut diambil dari ke-sepuluh simbol angka pada sistem bilangan puluhan dan enam angka yang lain diambil dari huruf dalam abjad A - F. Jadi, ke-16 simbol hek-sadesimal adalah: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Huruf-huruf A, B, C, D, C dan F secara berturut-turut bernilai 10, 11, 12, 13, 14, 15.
Harga desimal yang dinyatakan oleh bilangan hek-sadesimal juga dapat dihi-tung dengan memasukkan harga R = 16 kedalam pers. (1.2) di depan. Sebagai con-toh,
(3C5,A)16 = 3 x 162 + 12 x 161 + 5 x 160 + 10 x 16-1 = (965,0625)10
Yang membuat sistem bilangan oktal dan heksadesimal banyak di-pakai dalam sistem digital adalah mudahnya peng-ubahan dari biner ke oktal dan hek-sadesimal, dan sebaliknya, seperti akan dibicarakan dalam sub-bab berikut ini.
1.3 Konversi Bilangan
Konversi bilangan desimal ke sistem biner diperlukan dalam mener-jemahkan keinginan manusia kedalam kode-kode yang dikenal oleh sistem digital, terutama komputer digital. Konversi dari biner ke desimal diperlu-kan untuk
menterjemah-kan kode hasil pengolahan sistem digital ke infor-masi yang dikenal oleh manusia. Peng-ubahan
(konversi) dari biner ke oktal dan heksadesimal dan sebaliknya meru-pakan pengantara konversi dari/ke biner ke/dari desimal. Konversi ini banyak di-lakukan karena disamping cacah angka biner yang disebut juga "bit", singkatan dari "binary digit", jauh lebih besar diban-dingkan dengan angka-angka pada sistem oktal dan hek-sadesimal, juga karena konversi itu sangat mudah.
Konversi dari biner, oktal dan heksadesimal ke sistem bilangan desi-mal, se-perti telah dijelaskan di bagian depan, dapat dilakukan dengan me-makai per-samaan (1.2). Konversi sebaliknya akan dite-rangkan dalam sub-sub bab berikut ini.
1.3.1 Konversi Desimal-Biner
Kalau kita perhatikan konversi dari biner ke desi-mal dengan memakai pers.(1.2), maka dapat dilihat bahwa untuk bagian bulat (di kiri tanda koma) kita peroleh dengan melakukan perkalian dengan 2 setiap kita bergerak ke kiri. Untuk bagian pecahan, kita melakukan pembagian dengan 2 setiap kita bergerak ke kanan. Untuk melakukan konversi dari desimal ke biner kita melakukan sebalik-nya, yaitu untuk bagian bulat bilangan desimal kita bagi dengan 2 secara ber-turut-turut dan sisa pembagian pertama sampai yang terakhir meru-pakan angka-angka biner paling kanan ke paling kiri. Untuk bagian pecahan, bilangan desimal dikali-kan 2 se-cara berturut-turut dan angka di kiri koma desimal hasil setiap perkalian meru-pakan angka biner yang dicari, berturut-turut dari kiri ke kanan.
Contoh berikut ini memperjelas proses itu.
Contoh 1.
Tentukanlah bilangan biner yang berharga sama dengan bilangan desimal 118. Pembagian secara berturut-turut akan menghasilkan:
118 : 2 = 59 sisa 0 7 : 2 = 3 sisa 1 59 : 2 = 29 sisa 1 3 : 2 = 1 sisa 1 29 : 2 = 14 sisa 1 1 : 2 = 0 sisa 1 14 : 2 = 7 sisa 0 0 : 2 = 0 sisa 0 Jadi, (118)10 = (01110110)2
Perhatikan bahwa walaupun pembagian diteruskan, ha-sil berikutnya akan tetap 0 dan sisanya juga tetap 0. Ini benar karena penambahan angka 0 di kiri bi-langan tidak mengubah harganya.
Contoh 2.
Tentukanlah bilangan biner yang berharga sama dengan bilangan desimal 0,8125. Pengalian secara berturut-turut akan menghasilkan :
0.8125 x 2 = 1,625 0,500 x 2 = 1,000 0,625 x 2 = 1,250 0,000 x 2 = 0,000 0,250 x 2 = 0,500
Jadi, (0,8125)10 = (0,11010)2
Perhatikan bahwa angka-angka biner yang dicari ada-lah angka yang di kiri tanda koma, dan yang paling kiri dalam bilangan biner adalah angka di kiri koma hasil perkalian pertama. Juga perhatikan bahwa walaupun penga-lian diteruskan hasil perkalian akan tetap 0 dan ini be-nar karena pe-nambahan angka 0 ke kanan tidak akan meng-ubah harganya.
Contoh 3.
Ubahlah bilangan desimal 457,65 ke bilangan biner.
Untuk melakukan konversi ini, dilakukan pembagian untuk bagian bulatnya dan pengalian untuk bagian pecahan-nya seperti yang dilakukan pada kedua con-toh sebelumnya, dengan hasil seba-gai berikut ini:
457 : 2 = 228 sisa 1 0,65 x 2 = 1,3 228 : 2 = 114 sisa 0 0,30 x 2 = 0,6 114 : 2 = 57 sisa 0 0,60 x 2 = 1,2 57 : 2 = 28 sisa 1 0,20 x 2 = 0,4 28 : 2 = 4 sisa 0 0,40 x 2 = 0,8 14 : 2 = 7 sisa 0 0,80 x 2 = 1,6 7 : 2 = 3 sisa 1 0,60 x 2 = 1,2 3 : 2 = 1 sisa 1 0,20 x 2 = 0,4 1 : 2 = 0 sisa 1 0,40 x 2 = 0,8 0,80 x 2 = 1,6 Jadi, (457,65)10 = (111001001,1010011001 ...)2
Dari contoh terakhir ini dapat dilihat bahwa untuk bagian pe-cahan, pengalian dengan 2 akan berulang-ulang menghasilkan deret-an 1,6; 1,2; 0,4; 0,8 yang berarti bahwa deretan angka biner 11001100 akan berulang terus. Ini berarti bahwa ada bilangan pecah-an puluhan yang tak dapat di-sa-jikan dalam biner dengan ketelitian 100 %. Ke-salahan atau ralat konversi itu semakin kecil bila cacah angka biner (bit) yang dipergunakan lebih besar. Bagai-manapun juga, cacah bit dalam setiap sistem digital sudah tertentu sehingga ketelitian pengkodean untuk setiap sistem digital sudah tertentu pula.
1.3.2 Konversi Biner-Oktal-Heksadesimal
Kemudahan konversi biner-oktal-heksadesimal secara timbal balik terletak pada kenyataan bahwa 3 bit tepat dapat menyatakan angka terbesar dalam oktal, yaitu 7, dan 4 bit tepat dapat menyatakan angka terbesar dalam hek-sadesimal, yaitu F=(15)10. Ini berarti bahwa untuk meng-ubah bilangan biner ke oktal, bilang-an biner dapat dikelompokkan atas 3 bit setiap kelom-pok dan untuk meng-ubah biner ke heksadesimal, bilangan biner dikelom-pokkan atas 4 bit setiap kelompok. Pengelompokan harus dimulai dari kanan bergerak ke kiri. Sebagai contoh, untuk mem-peroleh setara dalam oktal dan heksadesimal, bilangan biner 1011001111 dapat dikelompokkan sebagai berikut: 1 011 001 111 10 1100 1111
(1 3 1 7)8 (2 C F )16
Konversi sebaliknya, dari oktal dan heksadesimal ke biner juga dapat dilaku-kan dengan mudah dengan mengganti-kan setiap angka dalam oktal dan hek-sadesimal dengan se-taranya dalam biner.
Contoh 1.
(3456)8 = (011 100 101 110)2 (72E)16 = (0111 0010 1110)2
Dari contoh ini dapat dilihat bahwa konversi dari oktal ke hek-sadesi-mal dan sebaliknya akan lebih mudah di-lakukan dengan mengubahnya terlebih dahulu ke biner.
Contoh 2.
(3257)8 = (011 010 101 111)2
(0110 1010 1111)2 = (6AF)16
Perhatikan bahwa bilangan biner dalam konversi oktal biner dan kon-versi biner-heksadesimal hanyalah berbeda dalam penge-lompokannya saja.
1.3.3 Konversi Desimal-Oktal dan Heksadesimal
Konversi desimal ke oktal dan desimal ke heksadesimal dapat dila-kukan dengan melakukan pembagian berulang-ulang untuk bagian bulat dan perkalian berberulang-ulang-berulang-ulang untuk bagian pecahan seperti yang dilakukan pada konversi desi-mal-biner di bagian depan. Sebe-narnya cara ini berlaku untuk semua dasar sistem bilangan.
Contoh : Untuk (205,05)10
Oktal: Heksadesimal:
25 : 8 = 3 sisa 1 12 : 16 = 0 sisa 12 = C 3 : 8 = 0 sisa 3 0,05 x 8 = 0,4 0,05 x 16 = 0,8 0,40 x 8 = 3,2 0,80 x 16 = 12,8 (12 = C) 0,20 x 8 = 1,6 0,80 x 16 = 12,8 0,60 x 8 = 4,8 0,80 x 8 = 6,4 0,40 x 8 = 3,2 0,20 x 8 = 1,6 Jadi, (205,05)10 = (315,031463146...)8 = (CD,0CCCC..)16 1.4 Komplemen
Dalam sistem digital, semua perhitungan aljabar, baik perjum-lahan, pengu-rangan, perkalian maupun pem-bagian, dilaksanakan dengan penjum-lahan. Perka-lian dan pembagian dilaksanakan dengan melakukan penjum-lahan diselingi peng-geseran. Pelaksanaan pengu-rangan dengan penjum-lah-an dilakukan dengan menambahkan harga negatif bilangan pengurang. Ini dapat dilihat dari persamaan:
X - Y = X + (- Y)
Dalam pelaksanaanya, semua bilangan negatif dinyatakan dalam harga kom-plemennya. Untuk setiap sistem bilangan dengan dasar R, di-be-dakan 2 jenis kom-plemen, yaitu komplemen R dan komplemen R-1. Jadi, untuk sistem bilangan desimal dengan R= 10 ada komplemen 10 dan ada komplemen 9; untuk oktal ada komple-men 8 dan komplemen 7; untuk heksadesimal ada komplemen 16 dan komplemen 15, dan seterusnya.
Komplemen suatu bilangan N dalam sistem bilangan dengan dasar R dide-finisikan sebagai berikut : Komplemen R dari N : (N)c,R = Rn - N , N 0 (1.3)
= 0 , N = 0
Komplemen R-1 dari N : (N)c,R-1 = Rn - R-m - N (1.4)
dengan: n = cacah angka pada bagian bulat, m = cacah angka pada bagian pecahan. Contoh 1.
Tentukan komplemen R dari pada bilangan-bilangan berikut:
a. (345)10 b. (327,15)10 c. (10110)2 d. (1101,01)2 e. (320)16 f. (A53,2)16 Penyelesaian : a. Komplemen 10: (345)c,10= 103- 345 = 1000 - 345 = 655 Komplemen 9: (345)c,9 = 103- 100 - 345 = 654 b. Komplemen 10: (327,15)c,10 = 103- 327,15 = 1000,00 - 327,15 = 672,85
Komplemen 9: (327,15)c,9 = 103- 10-2- 327,15 = 1000,00 - 0,01 - 327,15 = 672,84 c. Komplemen 2: (10110)c,2 = 25-(10110) 2 = (100000)2 - (10110)2 = (01010)2 Komplemen 1: (10110)c,1 = 25 - 20 - (10110)2 = (100000)2 - (00001)2 - (10110)2 = (01001)2 d. Komplemen 2: (1101,01)c,2 = 24 - (1101,01) 2 = (10000,00)2 ( 1101,01)2 ( 0010,11)2 Komplemen 1: (1101,01)c,1 = 25 - 20 - (1101,01) 2 = (10000,00)2 ( 0,01)2 ( 1111,11)2 ( 1101,01)2 ( 0010,10)2 e. Komplemen 16: (320)c,16 = 163- (320) 16 = (1000)16 - (320)16 = (CE0)16 Komplemen 15: (320)c,16= 163- 160- (320)16 = (1000)16 - (001)16 - (320)16 = (CDF)16
f. Komplemen 16: (A53,2)c,16 = 163- (A53,2) 16
= (1000,0)16 - (320,0)16 = (5AC,E)16
Komplemen 15: (A53,2)c,15 = 163 - 16-1 - (A53,2) 16 = (1000,0)16 (0000,1)16 ( FFF,F)16 ( A53,2)16 (5AC,D)16
Dari definisi dan contoh-contoh di atas dapat dili-hat bahwa komple-men R-1 dari suatu bilangan dapat diperoleh dengan mengu-rangi angka terbesar dengan setiap angka dalam bilangan yang ber-sangkutan, sedang-kan
komple-men R dapat diperoleh dengan komple-menambahkan 1 ke angka paling kanan dalam komplekomple-men R-1 Contoh 2.
Dari contoh 1 di atas dapat dilihat bahwa:
(345)c,9 = 654 (9-3= 6, 9-4= 5, 9-5= 4) 1 655 = (345)c,10 (327,15)c,9 = 672,84 1 672,85 = (327,15)c,10 (10110)c,1 = (01001)2 1 (01010)2 = (10110)c,2 dan seterusnya.
Sebenarnya, komplemen bilangan biner dapat diperoleh dengan sangat mudah. Komplemen 1 diperoleh dengan meng-ganti-kan setiap angka 0 menjadi 1 dan angka 1 menjadi 0. Komplemen 2 dapat diperoleh dengan
menambahkan 1 kepada komplemen 1 atau kalau kita bergerak dari kanan ke kiri, biarkanlah semua angka 0 dan angka 1 paling kanan tak ber-ubah dan semua angka yang di kiri angka 1 ini diubah dari 0 menjadi 1 dan dari 1 menjadi 0.
Contoh 3.
(a) Untuk bilangan biner 10100100 komplemen 1 adalah : 01011011 komplemen 2 adalah : 01011100
Perhatikanlah bahwa untuk komplemen 1, masing-masing bit dikom-ple-menkan, 0 menjadi 1 dan 1 menjadi 0, sedang-kan untuk komplemen 2 kedua bit 0 di kanan dan bit 1 paling kanan tidak di-ubah sedangkan bit di kiri bit 1 paling ka-nan ini dikomplemenkan masing-masing bitnya. Hal ini juga berlaku walaupun bi-langan biner itu
mempunyai bagian pecahan, seperti pada contoh (b) berikut ini. (b) Untuk bilangan biner 10100,101
Komplemen 2 adalah: 01011,011 komplemen 1 adalah : 01011,010
1.5 Pengurangan Dengan Komplemen
Di bagian depan telah diterangkan bahwa tujuan pe-makaian komple-men adalah untuk melaksanakan pengurangan dengan pen-jumlahan. Hal ini dapat di-lakukan dalam setiap sistem bilangan. Karena pengurangan dalam sistem bilangan desimal dapat dilakukan dengan mudah kalau me-makai alat-alat tulis, pengurang-an dengan komplemen tidak memberi-kan keuntungan. Tetapi, dalam sistem elek-tronik digital cara pengurangan dengan komplemen ini sangat penting, dan se-mua sistem digital memakai cara ini. Ini penting karena pengubahan bilangan biner menjadi
komple-mennya dapat di-lakukan dengan mudah dan karena peranti keras (hard ware) untuk penjumlahan dan pengurangan dapat menggunakan kom-ponen yang sama sehingga harga akan lebih murah.
1.5.1 Pengurangan dengan komplemen R
Pengurangan dengan komplemen R (komplemen 10 dalam sistem bilangan desimal, komplemen 2 dalam biner) untuk dua bilangan dapat dilakukan sebagai berikut:
Sebutlah yang dikurangi sebagai M dan pengurang sebagai N. Untuk meng-hi-tung M - N, nyatakan N sebagai komplemen R-nya dan tam-bahkan ke M. Bila ada "end carry" (penambahan angka di kiri) pada penjumlahan itu, maka angka tambahan tidak dipakai (dibuang saja). Bila tidak ada "end carry" ini ber-arti bahwa hasil pe-ngurangan (yang dilakukan dengan pen-jum-lahan) itu adalah negatif. Untuk hal terakhir ini, harga hasil sebenarnya adalah negatif dari pada komple-men hasil penjum-lahan itu.
Contoh 1. Pengurangan dengan komplemen 10 untuk desimal. 25643 - 13674: M = 25643 25643 N = 13674 komplemen 10 = 86326 +
end carry 11969 end carry, dibuang : 11969 10023 - 13674: M = 10023 10023 N = 13674, komplemen 10 = 86326 +
96349
Karena tidak ada end carry, hasil ini dikomplemenkan, sehingga hasil sebe-narnya adalah - 03651. Contoh 2.
Pengurangan dengan komplemen 2 untuk biner. 100100 - 100010 : M= 100100, N= 100010
dan -N= (100010)c,2 = 011110
Maka hasil pengurangan adalah :
100100 011110 +
end carry 000010 end carry, dibuang : 000010
100100 - 101100 :
Karena (101100)c,2 = 010100, maka penjumlahan menghasilkan : 100100
010100 +
111000
Karena tidak ada end carry, harga sebenarnya adalah negatif dari 111000, yaitu: -001000. 1.5.2 Pengurangan dengan komplemen R-1 Seperti pada pengurangan dengan komplemen R, pada pengu-rangan dengan komplemen R-1 juga pengurang N dinyatakan dalam komplemen-nya, yaitu kom-plemen R-1. Harga komplemen ini ditambahkan ke bilangan yang dikurangi M. Perbedaan pelaksana-annya dengan pengurangan dengan komplemen R adalah pena-ngganan end-carry. Kalau pada pengurangan dengan komplemen R end-carry itu dibuang, maka pada komplemen R-1 end carry itu ditambahkan ke angka yang paling kanan hasil penambahan. Penanganan carry seperti ini disebut "end carry-around carry". Contoh 1. Desimal: 25643 - 13674: 10023 - 13674: 25643 25643 10023 10023 - 13674 86325 - 13674 86325 end carry 11968 96348 1 (negatif) 11969 Komplemen-9 = - 03651 Contoh 2. Biner : 100100 100100 100010 011101 end carry 000001 1 000010 100100 100100 101100 010011 110111 Negatif komplemen-1: - 001000
Dari uraian di atas dapat dilihat bahwa pengubahan suatu bilangan ke kom-plemen R-1 lebih mudah dibandingkan dengan pengubahan ke kom-plemen R. Tetapi dalam pelaksanaan penjum-lahan, komplemen R-1 mem-butuhkan dua kali penjumlahan bila ada "end carry", sedangkan dalam komplemen R end carry di-abaikan/ dibuang saja tanpa perlu dijumlahkan lagi. Disamping itu, dalam penya-jian dengan komplemen R-1 ada dua harga 0, yaitu +0 dan -0, sedangkan dalam komplemen R hanya ada satu 0. Hal ini dapat ditunjukkan dengan pengurangan suatu bilangan dengan bilangan itu sendiri. Sebagai contoh, hasil 1011 - 1011 ada-lah: Komplemen 2: 1011 0101 +
0000 (end carry dibuang) Komplemen 1: 1011
0100
+ (tak ada end carry, negatif) 1111
Dalam perhitungan Aljabar, adanya dua harga nol ini dapat mem-bingungkan, teru-tama bila tanda dipakai untuk menentukan langkah proses selanjutnya. Namun demikian, karena mudahnya pengubahan ke komple-men 1 dalam biner, penyajian dalam komplemen 1 masih juga dipakai.
1.6 Pengurangan dalam Komputer Digital
Setiap satuan data dalam komputer digital disajikan/dinyatakan dengan se-deretan angka-angka biner dengan panjang yang tertentu. Penya-jian yang paling umum adalah dengan panjang deretan yang merupakan kelipatan 4 atau 8 seperti 4, 8, 16, 36, atau 64 bit. Panjang deretan yang membentuk satu kesatuan data ini sering disebut "panjang kata" (word length).
Untuk data yang bersifat bilangan, setiap kata mempunyai bit tanda yang bi-asanya digunakan bit yang paling tinggi nilainya (Most Significant Bit, disingkat MSB), yaitu bit paling kiri. Untuk bilangan yang positif, umumnya bit tanda berharga 0, sedangkan untuk bilangan negatif bit tanda ini berharga 1. Bilangan negatif dapat disajikan dalam 3 cara, yaitu :
1. Dalam bentuk harga mutlak/magnitude dengan tanda (signed magnitude). 2. Dalam bentuk komplemen 1.
3. Dalam bentuk komplemen 2.
Dalam penyajian dalam bentuk harga mutlak dengan tanda, harga data yang sebenarnya dapat dilihat langsung dari bagian harga mutlaknya dan bit tanda. Ope-rasi pengurangan dalam penyajian ini dilakukan seperti biasa dan tanda hasil-nya ditentukan dengan membandingkan harga mutlak dari bilangan pengurang terha-dap yang dikurangi. Jadi, bit tanda diperla-kukan secara terpisah. Dibanding-kan dua cara penyajian lainnya, penyajian ini lebih jarang dipakai dalam kom-puter kini.
Penyajian dalam komplemen tidak memperlakukan bit tanda terpisah dari bit-bit harga mutlak. Harga mutlak sebenarnya tergantung dari harga bit tanda. Setiap data bilangan negatif mempunyai bit tanda 1 dan untuk
mengetahui harga mutlaknya, bilangan itu harus dikomplemenkan secara keseluruhan. Tetapi harga mutlak bilangan positif segera dapat dilihat dari penyajian biner bilangan itu. Sebagai contoh, untuk menyatakan bilangan desimal -45 dalam biner 8 bit, perta-ma harus dicari setara -45 dalam biner, baru dikomplemenkan. Harga biner -45 disajikan dalam 8 bit adalah 0010 1101. Maka -45 adalah 1101 0010 dalam kom-plemen 1 dan 1101 0011 dalam komplemen 2. Karena panjang kata dalam setiap komputer sudah tertentu maka dalam melakukan pengurangan dalam komplemen, semua bit sebelah kiri yang berharga 0 pun harus ditunjukkan secara lengkap, tak boleh hanya memperhatikan bit-bit yang di sebelah kanan bit 1 paling kiri. Sebagai contoh, untuk mengurangkan 17 - 5 dalam biner, maka pengurangan harus dilakukan sebagai berikut :
Komplemen 1 : 0001 0001 0001 0001 0000 0101 1111 1010 end carry around 0000 1011 1 0000 1100
Komplemen 2 : 0001 0001 0001 0001 0000 0101 1111 1011 0000 1100
end carry dibuang 0000 1100
Kalau seandainya kedua operannya tidak dinyatakan secara lengkap, maka akan diperoleh : 17 10001 dapat membawa kepada 10001
5 101 011 10100
Ini jelas salah. Kesalahan ini sebenarnya dapat segera dilihat bila diperhati-kan bahwa hasil 10001-101 bertanda negatif (bit paling kiri ber-harga 1).
Dalam melihat harga sebenarnya daripada hasil pengurangan, perha-tikan contoh berikut ini. 0000 0101 0000 0101 0000 0101 0101 1100 1001 0011 1001 0100 1001 1000 1001 1001 Harga sebenarnya : - (0110 0111) - (0110 0111) (komplemen 1) (komplemen 2) 1.7 Penyajian Data
Seperti diterangkan di bagian depan, setiap sinyal diskrit dapat dinya-takan sebagai kombinasi dari sejumlah angka biner (bit). Penyataan ini berarti pengubah-an suatu bentuk informasi kebentuk yang lain dengan pengkodean yang terdiri atas sekelompok biner yang merupakan satu kesa-tuan. Pengelompokkan yang paling banyak dilakukan adalah pengelompok-an atas kelipatan 4 bit. Kode yang terdiri atas 4 bit disebut "Nibble", kelom-pok yang terdiri atas 8 bit disebut "byte", dan kelompok terdiri dari 16 bit (2 byte) disebut "word". Word yang terdiri atas lebih dari 2 byte sering disebut long word. Berikut ini diuraikan secara singkat beberapa jenis kode yang sering dipergunakan dalam teknik digital.
1.7.1 Kode BCD
Seperti telah diterangkan dalam uraian mengenai sistem bilangan oktal dan heksadesimal di bagian depan, untuk menyatakan 1 angka desi-mal diperlukan 4 angka biner. Tetapi dengan 4 bit sebenarnya dapat dinya-takan 16 macam simbol yang berbeda sehingga kesepuluh simbol dalam bilangan desimal dapat dinya-takan dengan beberapa
himpunan (set) kode yang berbeda. Perlu dibedakan dengan tegas antara pengkodean dan konversi. Kalau suatu bilangan dikonversikan ke bilangan lain maka kedua bilangan itu mempunyai harga/nilai. Sebagai contoh, kalau angka 8 desimal dikonversikan ke biner, maka satu-satunya pilihan adalah 1000. Tetapi kalau angka 8 ini dikodekan ke biner, ada bermacam-macam kode yang dapat dibentuk, walaupun hanya terdiri atas 4 bit. Dari bermacam-macam kode untuk angka-angka desimal, kode BCD (singkatan dari Binary Coded Deci-mal) merupakan kode yang paling sederhana karena kode itu sendiri merupakan konversi dari desimal ke biner.
Setiap bit dalam BCD diberi bobot menurut letaknya dalam urutan kode se-suai dengan rumus (1.2) di depan, yaitu 1, 2, 4, dan 8, berurut dari bit yang paling kanan. Jadi, untuk angka 9, yaitu 8 + 1, kode BCD-nya adalah: 1001; untuk angka 6 yaitu 4 + 2, kodenya adalah: 0110. Kode-kode 1010, 1100, 1011, 1100, 1101, 1110, dan 1111 tidak ada didalam BCD karena nilai kode-kode ini sudah lebih dari 9. Kode-kode BCD yang lengkap ditunjukkan pada Tabel 1.1.
Setiap angka desimal dikodekan dengan satu BCD yang empat bit. Karena itu, untuk menyatakan bilangan desimal ratusan diperlukan 3 kode BCD, jadi 12 bit. Sebagai contoh, bilangan 163 dikodekan dengan 0001 0110 0011. Seperti yang ditunjukkan pada Tabel 1.1, bobot bit pada setiap posisi dapat dibuat berbeda-beda. Keuntungan kode
BCD standar (8421) terletak pada kenya-taan bahwa kode itu merupakan konversi langsung dari bit ke angka desimal. Dengan memberi bobot yang lain dapat diperoleh keuntung-an berupa simetri atau sifat komplemen. Sebagai contoh, kode dengan bobot 2421 dan 84-2-1 mempu-nyai sifat mengkomplemenkan sendiri (self com-plementing). Perhatikan bahwa komplemen 3 adalah 6 dan dalam kode 84-2-1 ini ditunjukkan dengan 1010 (=6) yang merupakan komplemen dari 0101 (=3).
Tabel 1.1. Kode-kode untuk angka-angka desimal
Desi- BCD* Excess-3 mal 8,4,2,1 (XS3) Gray 8,4,-2,-1 2,4,2,1 0 0000 0011 0000 0000 0000 1 0001 0100 0001 0111 0001 2 0010 0101 0011 0110 0010 3 0011 0110 0010 0101 0011 4 0100 0111 0110 0100 0100 5 0101 1000 1110 1011 1011 6 0110 1001 1010 1010 1100 7 0111 1010 1011 1001 1101 8 1000 1011 1001 1000 1110 9 1001 1100 1000 1111 1111
* Kode dengan bobot 8421 dianggap sebagai kode BCD standar.
1.7.2 Kode Excess-3 (XS3)
Seperti dapat dilihat dari Tabel 1.1, kode Excess-3 (XS3) diperoleh dengan menambahkan 3 (=0011) kepada kode BCD standar, dan inilah alasan pemberian namanya. Tetapi dengan penambahan ini diperoleh sifat bahwa
komplemen dalam kode XS3 juga menghasilakan komplemen dalam desimal. Sebagai contoh, kom-plemen 0100 (= 1 dalam desimal) adalah 1011 (= 8 dalam desimal) dan dalam desimal 1 adalah 8. Watak mengkom-plemenkan sendiri (self complementing) ini sangat berguna dalam komputer yang menggunakan kode BCD dalam perhitung-annya sebab rangkaian elektronik komplemennya menjadi sederhana.
1.7.3 Kode Gray
Dalam kode Gray, setengah bagian atas, yaitu untuk kode desimal 5-9, meru-pakan bayangan cermin dari pada setengah bagian bawah, yaitu kode untuk desi-mal 0-4, kecuali untuk bit 3 (bit ke 4 dari kanan). Sifat ini disebut reflective. Di samping itu, seperti dapat dilihat pada Tabel 1.1 di depan, kode Gray juga mem-punyai sifat bahwa kode untuk desimal yang berturutan berbeda hanya pada 1 bit. Sifat ini sangat penting dalam pengubahan sinyal-sinyal mekanis atau listrik ke bentuk digital. Sebagai contoh, kalau tegangan yang dikenakan pada suatu voltme-ter digital berubah dari 3 volt ke 4 volt (dalam biner dari 0011 ke 0100), maka ada kemungkinan bit 2 (bit ke 3 dari kanan) akan berubah lebih dulu dari bit-bit yang lain sehingga akan memberikan penunjukan sementara 0111 (= 7) yang jelas salah. Dengan penggunaan kode Gray kesalahan seperti ini tidak akan terjadi.
Dalam hubungan antar satu komputer dengan yang lain, sering terjadi perbe-daan antara sinyal yang dikirim dan sinyal yang diterima. Ini terjadi karena adanya gangguan (noise) yang timbul pada saluran komunikasinya. Untuk mengetahui adanya kesalahan itu sering ditambahkan satu bit tambahan kepada kode sinyal aslinya. Bit tambahan ini disebut bit parity. Dengan penambahan bit parity ini, maka kesalahan satu bit dalam setiap kode yang merupakan kesatuan dapat diketa-hui/diditeksi. Bit parity biasa-nya ditambahkan pada saat pengiriman dan di-buang kembali di sisi pene-rimaan sebelum diproses. Perlu dicatat bahwa bit parity ini hanyalah menunjukkan adanya kesalahan, bukan membetulkan kesalahan itu.
Dalam pemakaian bit parity dikenal dua macam cara: parity genap (even) dan parity ganjil (odd). Dalam sistem parity ganjil, cacah bit 1 harus selalu ganjil. Bila dalam sistem ini diterima suatu kode dengan cacah bit 1 yang genap, ini ber-arti telah terjadi kesalahan dalam pengiriman. Dalam sistem parity genap cacah bit 1 dalam setiap unit kode harus tetap genap. Bila dalam sistem ini diterima diterima suatu satuan kode dengan cacah bit 1 yang ganjil, maka suatu kesalahan telah ter-jadi dalam transmisi. Sebagai contoh, untuk kode-kode BCD standar di depan, satu angka desimal akan dikirimkan sebagai satuan yang terdiri atas 5 bit setelah ditambahkan satu bit parity, biasanya pada posisi nilai tertinggi (di kiri). Untuk kode-kode desimal 5 dan 8, yang kode sebenarnya adalah 0101 dan 1000, dalam sistem parity ganjil akan dikirimkan sebagai 10101 dan 01000, sedangkan pada sistem parity genap kode-kode tersebut akan dikirimkan sebagai 00101 dan 11000.
1.7.5 Kode Alfanumerik
Dalam penggunaan komputer secara umum, walaupun kode yang diolah dalam komputer itu sendiri adalah angka-angka biner, tetapi selain angka-angka-angka-angka desimal juga diproses huruf-huruf dan tanda-tanda baca/tanda khusus lainnya. Untuk memroses data seperti ini tentunya diperlukan sistem kode yang lebih luas dari pada sistem-sistem kode yang telah di-terangkan sebelumnya. Kode yang ber-laku umum ini disebut kode "Alphanumeric" yang sering juga disingkat dengan nama "Alphameric". Dua jenis kode yang paling umum dipakai dalam dunia kom-puter sekarang ini adalah: ASCII (baca: eskii, singkatan dari: American Standard Code for Information Inter-change) dan EBCDIC (baca: ebsidik, singkatan dari: Extended Binary Coded Decimal Interchange Code).
ASCII terdiri atas 7 bit yang dapat mengkodekan semua angka desimal, huruf abjad, baik huruf besar maupun kecil, tanda-tanda khusus dan tanda baca, dan beberapa kode kendali/kontrol yang umum dipakai dalam komu-nikasi data. Dalam praktek sekarang, walaupun aslinya 7 bit, kebanyak-an ASCII menggunakan 8 bit dengan bit tambahan dipakai sebagai bit parity, kadang-kadang untuk membentuk aksara yang bukan aksara latin.
Sistem kode EBCDIC terdiri atas 8 bit, digunakan dalam komputer-komputer IBM tipe 360 dan 370 yang sangat terkenal itu.
Dalam perekaman data pada kartu tebuk (puch card), data alfanume-rik diko-dekan dengan menggunakan kode Hollerith standar yang terdiri atas 12 bit. Kartu tebuk standar terdiri atas 80 kolom yang terdiri atas 12 baris tebukan yang dibeda-kan atas 2 kelompok, yaitu baris 12, 11, dan 0 di bagian atas disebut sebagai zone dan baris 9, 8, 7,.., 1 di bagian bawah disebut baris numeric.
Dalam Tabel 1.2 ditunjukkan ketiga jenis kode Alfanumerik yang disebut di atas. Bilangan yang ditunjukkan dalam kolom kode Hollerith dalam tabel ini menunjuk-kan nomor baris yang ditebuk/dilubangi sedangkan posisi yang tidak ditunjuk-kan berarti kosong. Perhatikan bahwa kode-kode EBCDIC sangat erat hubungan-nya dengan kode Hollerith. Terutama dalam kode huruf, naiknya satu harga angka hek-sadesimal pertama pada kode EBCDIC setara dengan turunnya satu baris lubang pada kode Hollerith. Juga perhatikan bahwa dalam kode Hollerith, angka dinyatakan dengan 1 lubang, huruf dengan 2 lubang sedangkan tanda lain dari 1, 2, atau 3 lubang pada kolom yang sama. Dalam EBCDIC, untuk 4 bit paling kiri, angka dinyatakan dengan 1111 (F heksadesimal), huruf kapital dinyatakan dengan C s/d E dan untuk huruf kecil dinyatakan dengan angka heksa-desi-mal 8 s/d A, se-dang tanda lain dinyatakan dengan 01xx, dengan x dapat berarti 0 atau 1. Dalam ASCII, karakter dengan kode dibawah 20 heksadesimal digunakan sebagai kode kendali komunikasi, angka dikode-kan dengan 30h - 39h, huruf kapital dikodekan 41h - 5Ah, huruf kecil 61h - 7Ah dan kode yang lainnya untuk tanda-tanda baca. Jelaslah bahwa kode ASCII lebih mudah
untuk diingat.
Tabel 1.2. Kode Alfanumerik ASCII, EBCDIC, dan Hollerith
Tanda ASCII EBCDIC Kartu Tanda ASCII EBCDIC Kartu
NUL 00 00 12,0,9,8,1 blank 20 40 no punch
SOH 01 01 12, 9, 1 ! 21 5A 12,8,7 STX 02 02 12, 9, 2 " 22 7F 8,7 ETX 03 03 12, 9, 3 # 23 7B 8,3 BOT 04 37 9,7 $ 24 5B 11,8,3 ENQ 05 2D 0, 9,8,5 % 25 6C 0,8,4 ACK 06 2E 0, 9,8,6 & 26 50 12 BEL 07 2F 0,9,8,7 ' 27 7D 8,5 BS 08 16 11,9,4 ( 28 4D 12,8,5 HT 09 05 11,9,5 ) 29 5D 11,8,5 LF 0A 25 0,9,5 * 2A 5C 11,8,4 VT 0B 0B 12,9,8,3 + 2B 4E 12,8,6 FF 0C 0C 12,9,8,4 , 2C 6B 0,8,3 CR 0D 0D 12,9,8,5 - 2D 60 11 S0 0E 0E 12,9,8,6 . 2E 4B 12,8,3 S1 0F 0F 12,9,8,7 / 2F 61 0,1 DLE 10 10 12,11,9,8,1 0 30 F0 0 DC1 11 11 11,9,1 1 31 F1 1 DC2 12 12 11,9,2 2 32 F2 2 DC3 13 13 11,9,3 3 33 F3 3 DC4 14 35 9,8,4 4 34 F4 4 NAK 15 3D 9,8,5 5 35 F5 5 SYN 16 32 9,2 6 36 F6 6 ETB 17 26 0,9,6 7 37 F7 7 CAN 18 18 11,9,8 8 38 F8 8 EM 19 19 11,9,8,1 9 39 F9 9 SUB 1A 3F 9,8,7 : 3A 7A 8,2 ESC 1B 24 0,9,7 ; 3B 5E 11,8,6 FS 1C 1C 11,9,8,4 < 3C 4C 12,8,4 GS 1D 1D 11,9,8,5 = 3D 7E 8,6 RS 1E 1E 11,9,8,6 > 3E 6E 0,8,6 US 1F 1F 11,9,8,7 ? 3F 6F 0,8,7
@ 40 7C 8,4
Tabel 1.2. Kode Alfanumerik (Lanjutan)
Tanda ASCII EBCDIC Kartu Tanda ASCII EBCDIC Kartu
A 41 C1 12,1 a 61 81 12,0,1 B 42 C2 12,2 b 62 82 12,0,2 C 43 C3 12,3 c 63 83 12,0,3 D 44 C4 12,4 d 64 84 12,0,4 E 45 C5 12,5 e 65 85 12,0,5 F 46 C6 12,6 f 66 86 12,0,6 G 47 C7 12,7 g 67 87 12,0,7 H 48 C8 12,8 h 68 88 12,0,8 I 49 C9 12,9 i 69 89 12,0,9 J 4A D1 11,1 j 6A 91 12,11,1 K 4B D2 11,2 k 6B 92 12,11,2 L 4C D3 11,3 l 6C 93 12,11,3 M 4D D4 11,4 m 6D 94 12,11,4 N 4E D5 11,5 n 6E 95 12,11,5 O 4F 6 11,6 o 6F 96 12,11,6 P 50 D7 11,7 p 70 97 12,11,7 Q 51 D8 11,8 q 71 98 12,11,8 R 52 D9 11,9 r 72 99 12,11,9 S 53 E2 0,2 s 73 A2 11,0,2 T 54 E3 0,3 t 74 A3 11,0,3 U 55 E4 0,4 u 75 A4 11,0,4 V 56 E5 0,5 v 76 A5 11,0,5 W 57 E6 0,6 w 77 A6 11,0,6 X 58 E7 0,7 x 78 A7 11,0,7 Y 59 E8 0,8 y 79 A8 11,0,8 Z 5A E9 0,9 z 7A A9 11,0,9 [ 5B AD 12,8,2 ( 7B 8B 12,0 \ 5C 15 0,8,2 | 7C 4F 12,11 ] 5D DD 11,8,2 ) 7D 9B 11,0 ^ 5E 5F 11,8,7 ~ 7E 4A 11,0,1 _ 5F 6D 0,8,5 DEL 7F 07 12,9,7 ‘ 60 14 8,1 *)
ASCII dan EBCDIC ditulis dalam kode Hexadecimal
1. Nyatakanlah bilangan-bilangan desimal berikut dalam sistem bilangan: a. Biner, b. Oktal, c. Heksadesimal.
5 11 38 1075 35001 0.35 3.625 4.33 2. Tentukanlah kompelemen 1 dan kompelemen 2 dari bilangan biner berikut: 1010 1101 11010100 1001001
3. Tentukanlah kompelemen 9 dan kompelemen 10 dari bilangan desimal berikut: 21 139 2400 9101
4. Tentukanlah kompelemen 7 dan kompelemen 8 dari bilangan Oktal berikut: 21 137 320 161
5. Tentukanlah kompelemen 15 dan kompelemen 16 dari bilangan Heksadesi-mal: BAC B3F 120 1A1
6. Dengan panjang kata 8 bit dan bit paling kiri menyatakan tanda, 0= positif dan 1= negatif, nyatakanlah bilangan-bilangan desimal berikut dalam biner dengan menggunakan kompelemen 1 dan kompelemen 2:
7 -11 -27
7. Dalam sistem yang menggunakan ukuran kata 16 bit, tentukanlah harga desi-mal dari bilang-an-bilangan berikut:
Biner : 0100 1101 1100 1000; 1011 0100 1010 0101 Oktal : 73 ; 201 ; 172 Heksadesimal: 6B ; A5 ; 7C
8. Dengan melakukan operasi penjumlahan, laksanakan pengurangan berikut: Desimal: 125 - 32; 15 - 72
Biner : 1001 - 1000; 1001 - 1110 (panjang kata 8 bit)
9. Nyatakanlah bilangan desimal berikut dalam kode-kode BCD, Gray dan Ex-cess-3: 51 125 0234
10. Tentukanlah hasil penjumlahan dalam kode BCD berikut:
52 + 19 125 + 93 59 + 45
11. Tuliskanlah kode ASCII dan EBCDIC, baik secara biner maupun heksadesi-mal, larik : "Kodya Medan (SUMUT)".
2
GERBANG dan ALJABAR BOOLE
Konsep dasar aljabar Boole (Boolean Algebra) telah diletakkan oleh seorang matematisi Inggeris George Boole, pada tahun 1854. Konsep dasar itu membutuh-kan waktu yang cukup lama untuk disadari kegunaannya, baik dalam bidang matematika maupun dalam bidang teknik.
Pada tahun 1938 Claude Shannon, seorang ahli komunikasi, meman-faatkan dan menyempurnakan konsep Boole tersebut. Sekarang ini, aljabar Boole meme-gang peranan yang sangat penting, tidak saja dalam logika, tetapi juga di bidang lain seperti teori peluang/kemungkinan, teori infor-masi/komunikasi, teori himpun-an dan lain-lain. Teori ini juga dipakai dalam merancang komputer elektronik dengan menerjemahkannya ke dalam rangkaian saklar (switching circuits) yang pada dasarnya adalah logika, tertutup atau terbuka, mengalirkan arus listrik atau tidak.
2.1 Gerbang Dasar dan Tabel Kebenaran
Harga peubah (variabel) logika, pada dasarnya hanya dua, yaitu benar (true) atau salah (false). Dalam persamaan logika, umumnya simbol 1 dipa-kai untuk menyatakan benar dan simbol 0 dipakai untuk untuk menyatakan salah. Dengan memakai simbol ini, maka keadaan suatu logika hanya mempunyai dua kemung-kinan, 1 dan 0. Kalau tidak 1, maka keadaan itu harus 0 dan kalau tidak 0 maka keadaan itu harus 1.
Operasi yang paling mendasar dalam logika adalah penyangkalan dengan kata-kata "tidak" (NOT). Jadi, "benar" adalah "tidak salah" dan "salah" ada-lah "tidak benar". Operasi ini dikenal secara umum dengan nama "inversion" yang disimbolkan dengan garis di atas peubah yang disangkal ataupun tanda petik (') di kanan-atas peubah itu.
Dengan notasi ini, maka logika penyangkalan dapat ditulis-kan sebagai :
Z = A
atau Z = A’ (2.1)
Karena masukan A hanya dapat berkeadaan 0 atau 1, maka Z juga hanya dapat berkeadaan 1 atau 0. Keadaan keluaran Z untuk setiap keadaan masukannya dapat ditunjukkan dalam bentuk tabel yang disebut "tabel kebenaran" (truth table), yang sering juga disebut tabel kombinasi (combination table), sebagai berikut:
Tabel Kebenaran NOT
A Z= A
0 1 1 0
Dari pers. (2.1) di atas dapat dilihat, yang juga ditunjukkan dalam tabel kebe-naran di atas, bahwa fungsi Z berkeadaan 1 bila A berkeadaan 0. Perhatikan juga bahwa fungsi dinyatakan untuk keadaan 1 dan peubah yang = 0 dan 0 = 1 atau: 1’ = 0 dan 0’ = 1
Gerbang elektronik yang berfungsi menidakkan ini disebut gerbang NOT dan sering juga disebut "inverter". Bila masukan gerbang NOT dina-makan A dan keluarannya dinamakan Z, maka hubungan masukan dan keluaran itu dituliskan seba-gai:
berkeadaan 0 di-NOT-kan (dikomplemenkan) untuk membuat Z = 1. Hal ini berlaku secara umum dalam aljabar Boole dan untuk peubah yang aktif untuk tegangan 0 Volt (rendah) sering diberi nama dengan garis komple-men diatasnya. Bentuk keluaran suatu rangkaian logika dalam bentuk fungsi Boole dapat diperoleh dengan mudah dari tabel kebe-naran rangkai-an logika yang bersangkutan. Tetapi fungsi yang dihasilkan dari tabel kebenaran umumnya belumlah dalam bentuk yang sederhana, yang membu-tuhkan gerbang yang paling sedikit, dan masih perlu
disederhanakan. Penyederhanaan ini akan dibahas dalam bab-bab berikutnya.
Dua operasi yang paling mendasar lainnya dalam aljabar logika ada-lah ope-rasi "DAN" (AND) dan operasi
"ATAU" (OR). Gerbang elektronik yang mereali-sasikan logika ini masing-masing diberi nama gerbang "AND" dan gerbang "OR". Perlu ditegaskan kembali bahwa untuk logika positif yang dipakai seterusnya dalam buku ini, 1 diartikan benar dan 0 diartikan salah dan secara elektroniknya, 1 diartikan sebagai tegangan tinggi (paling umum adalah +5 Volt) dan 0 diartikan sebagai tegangan rendah (0 Volt). Tegangan elektronik 0 - 5 Volt ini dikenal seba-gai level TTL, singkatan dari Transistor-Transistor Logic.
Untuk suatu gerbang OR dengan 2 masukan, katakanlah A dan B, keluaran-nya akan benar (= 1) bila salah satu masukan A "atau" B adalah benar dan keluar-an itu akan salah (= 0) bila kedua masukan A dan B secara bersama-sama salah. Untuk gerbang AND dengan dua masukan A dan B, keluarannya akan benar hanya bila kedua
masukannya A "DAN" B adalah benar dan salah bila salah satu masukan itu salah. Keterangan ini ditunjuk-kan lebih jelas oleh tabel kebenaran pada Gambar 2.1.
masukan keluaran masukan keluaran
A B Z= A+B A B Z= A.B 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1 (a) (b) Gambar 2.1. Tabel-tabel kebenaran gerbang OR dan AND
(a) Gerbang OR: Z = A + B (b) Gerbang AND: Z = A.B = AB
Dalam aljabar Boole, operasi yang dilakukan oleh gerbang OR disim-bolkan dengan operator "+" dan dibaca OR atau "ATAU" dan operasi AND disimbolkan dengan operator "." dan dibaca AND atau "DAN". Tanda operator "." sering dihi-langkan saja dengan catatan bahwa tanpa ada opera-tor lain diartikan sebagai ope-rasi AND. Seperti ditunjukkan dalam Gambar 2.1, operasi OR dan AND untuk dua peubah masukan dituliskan sebagai berikut : OR : Z = A + B (2.2)
AND : Z = A.B = AB (2.3)
Simbol yang umum dipakai dalam penyajian rangkaian logika untuk gerbang OR dan AND, juga NOT, ditunjukkan pada Gambar 2.2.
Gambar 2.2. Simbol-simbol gerbang dasar NOT, OR dan AND (a) NOT: Z = A, (b) OR: Z = A+B, (c) AND: Z = A.B
Dalam praktek, terutama dalam hubungan pernyataan fungsi Boole dan penyederhanaannya, operator OR sering dibaca "tambah" dan operator AND sering dibaca "kali". Karena kebiasaan ini, sering orang menganggap bahwa peubah logika (Boole) adalah peubah biner. Perlu ditegaskan bahwa peubah logika bukanlah peubah biner. Kalau peubah biner mempunyai harga yang padanya dapat dilakukan operasi aritmatika, maka peubah logika hanyalah simbol dan tidak mempunyai harga yang dapat ditambah-kurangkan atau dikali-bagikan. Tabel ke-benaran OR pada Gambar 2.1 menunjukkan hal ini. Dalam logika, 1+ 1= 1 sedangkan dalam biner, 1 + 1 =10. Selain itu, dalam logika tidak ada pengurang-an dan pembagian.
Pernyataan untuk gerbang OR dan AND dengan 2 masukan di atas dapat dikembangkan untuk semua jumlah
masukan; keluaran OR adalah 1 (benar) bila salah satu masukannya 1 dan hanyalah 0 (salah) bila semua masukannya 0; kelu-aran AND adalah 0 (salah) bila salah satu masukannya 0 dan hanyalah benar bila semua masukannya 1. Dalam pernyataan ini ter-sirat suatu dualitas antara OR dan AND, yaitu pernyataan untuk OR adalah lawan/ kebalikan daripada pernyataan untuk AND. Bila pernyataan untuk OR dipakai untuk AND, artinya menggantikan AND pada tempat OR, maka keadaan 1 (benar) harus digantikan dengan 0 (salah) dan keadaan 0 (salah) digantikan dengan 1 (benar), jadi keadaannya dikomple-menkan. Keadaan serupa berlaku bila AND pada pernyataan AND diganti-kan dengan OR.
2.2 Gerbang Tambahan
Di samping gerbang-gerbang elektronik NOT, OR, dan AND, dibuat juga ger-bang elektronik lain yang sangat mempermudah perencanaan bebe-rapa bentuk rangkaian logika. Gerbang tersebut adalah gerbang-gerbang NOR, NAND, Exclu-sive-OR (EXOR), Exclusive-NOR (EXNOR) atau Equivalence.
Keluaran gerbang NOR adalah komplemen dari keluaran OR, dan dari kenya-taan itulah disebut NOR yang
merupakan singkatan dari NOT OR. Jadi, gerbang NOR merupakan gerbang OR yang di keluarannya diberi gerbang NOT pada keluarannya. NAND, yang merupakan singkatan dari-pada NOT AND, juga dapat dipandang sebagai gabungan antara AND dan NOT, yaitu gerbang AND dengan NOT pada keluarannya. Jadi, walaupun NOT-nya ditempelkan didepan nama gerbang-gerbang NOR dan NAND, sebenarnya NOT itu ditempelkan di bagian keluaran gerbang OR dan AND. Simbol yang dipakai untuk menyatakan NOR adalah lambang OR yang ditambahkan
lingkaran kecil pada keluarannya, dan lambang untuk NAND adalah lambang AND dengan lingkaran kecil di keluar-annya. Lambang-lambang gerbang NOR dan NAND ditunjukkan pada Gambar 2.3 yang juga menunjukkan tabel kebenaran masing-masing gerbang.
EXOR : Z = A + B = A B + AB EXNOR: Z = A + B = A B + A B
Dari kesamaan ini dapat dilihat bahwa EXOR dan EXNOR dapat dibentuk dengan menggunakan AND dan OR ditambah NOT. A B Z=A+B A B Z= A B 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 0 (a) (b)
Gambar 2.3. Tabel kebenaran dan simbol gerbang-gerbang NOR (a) dan NAND (b). Untuk masukan A dan B, persamaan keluaran daripada gerbang-gerbang NOR dan NAND adalah :
NOR : Z = A + B NAND : Z = A B
Perhatikan bahwa keluaran NOR benar-benar merupakan komplemen dari-pada keluaran OR dan keluaran NAND merupakan komplemen dari-pada AND.
Gerbang-gerbang OR dan NOR sebenarnya adalah gerbang-gerbang inclu-sive-OR dan inclusive-NOR, walaupun kata inclusivenya tidak dise-butkan dengan tegas. Kalau keluaran (inclusive) OR berlogika 1 asal salah satu masukannya ber-logika 1, maka keluaran exclusive-OR (EXOR) hanya akan berlogika 1 bila kedua masukannya tidak sama. Keluaran exclusive-NOR (EXNOR), disebut juga Equivalence, hanya akan berlogika 1 bila kedua masukannya sama. Dalam Gam-bar 2.4 ditunjukkan lambang dan tabel kebenaran beserta persamaan gerbang EXOR dan EXNOR. Operasi EXOR ditunjukkan dengan + dan operasi EXNOR ditunjukkan dengan tanda "≡".
Dari tabel kebenaran dalam Gambar 2.4 dapat dilihat bahwa gerbang EXOR dan EXNOR dapat juga dinyatakan sebagai berikut:
A B Z A B Z 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 (a) (b)
Gambar 2.4. Tabel kebenaran dan Simbol gerbang-gerbang EXOR (a) dan EXNOR (b).
2.3 Teorema dan Hukum Dasar Aljabar Boole
Seperti telah diterangkan di bagian depan, setiap peubah Boole hanya dapat berkeadaan satu dari dua keadaan, 0 atau 1. Jadi, kalau satu peubah kan dengan 0 maka hasilnya akan tidak berubah sedangkan bila satu peubah di-OR-kan dengan 1, maka apapun keadaan peubah itu sebelumnya adi-OR-kan menjadi 1. Tetapi, bila satu peubah di-AND-di-OR-kan dengan 1, maka hasilnya tidak akan berubah sedangkan bila di-AND-kan dengan 0, apapun keadaan peubah itu sebelumnya akan berubah menjadi 0. Ini dapat disim-pulkan dalam bentuk teorema dasar:
X + 0 = X X.0 = 0
X + 1 = 1 X.1 = X (2.4)
Kalau suatu peubah di-OR-kan dengan dirinya sendiri, maka hasilnya akan 0 bila keadaan variabel itu adalah 0 dan hasilnya akan 1 bila keadaan variabel itu adalah 1. Jadi, peng-OR-an satu variabel dengan dirinya sendiri
menghasilkan keadaan yang sama dengan keadaan variabel itu. Keadaan serupa berlaku untuk operasi AND. Ini disebut hukum idempoten:
X + X = X X.X = X (2.5)
Sesuai dengan logika, maka kalau tidak benar disangkal (di-NOT-kan), hasil-nya menjadi benar dan kalau tidak-salah di-NOT-kan, hasilnya menjadi salah. Dengan kata lain, penidakan/penyangkalan (komplementasi) dua kali akan meng-hasilkan keadaan aslinya. Ini dikenal dengan nama hukum involusi yang di-tuliskan sebagai:
X = X (2.6)
Hasil dari keadaan benar ATAU tidak benar pasti selalu benar dan keadaan salah ATAU tidak salah juga akan selalu benar (terpenuhi). Tetapi keadaan salah DAN tidak salah dan benar DAN tidak benar akan selalu salah. Jadi, dalam aljabar Boole dapat dinyatakan dengan hukum komplemen sebagai berikut:
X + X = 1 (selalu benar) (2.7) X .X = 0 (selalu salah)
Untuk fungsi-fungsi Boole dengan dua peubah atau lebih, dikenal juga hukum-hukum kumulatif, assosiatif dan distributif yang berlaku dalam alja-bar biasa, yaitu:
Hukum Kumulatif : XY = YX ( I ) (2.8)
X + Y = Y + X (II )
Hukum Assosiatif: (X Y) Z = X (Y Z) = XYZ ( I ) (2.9)
(X+Y) + Z = X + (Y+Z) = X + Y + Z (II)
Hukum Distributif: X (Y + Z) = X Y + X Z ( I )
X + Y Z = (X + Y)(X + Z) (II) (2.10)
Hukum yang terakhir ini, yang tidak ada dalam hukum distributif aljabar bia-sa, dapat dibuktikan sebagai berikut: (X+Y)(X+Z) = XX + XZ + YX + YZ (distributif I)
= X + XZ + XY + YZ (idempoten) = X.1 + XZ + XY + YZ
= X(1+Z+Y) + YZ (substitusi p= Z+Y = X + YZ dan 1 + p = 1 )
Di samping dengan cara seperti di atas, keadaan itu juga dapat dibuk-tikan dengan mudah dengan membuat tabel kebenaran. Perlu ditegaskan disini bahwa dua fungsi adalah sama bila kedua fungsi itu berlogika sama untuk semua kombi-nasi masukan yang mungkin. Untuk pembuktian pers. (2.10) di atas, karena ada 3 peubah, maka ada 8 (= 23)
kemungkinan kom-binasi masukan. Harus dapat ditun-jukkan bahwa untuk setiap kombinasi masukan X, Y dan Z, keadaan f1= X + YZ adalah sama dengan keadaan f2= (X+Y)(X+Z). Ini ditunjukkan dalam Gambar 2.6. Kadang-kadang, pem-buktian kesamaan dua fungsi lebih mudah dengan tabel ke-benaran daripada pembuktian dengan memakai hukum-hukum dasar, tentunya terbatas pada fungsi dengan peubah yang sedikit.
X Y Z YZ f1 X+Y X+Z f2 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 f1 = X + YZ 0 1 1 1 1 1 1 1 f2 = (X+Y)(X+Z) 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 f1 = f2 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
Gambar 2.6. Contoh pembuktian kesamaan dengan memakai tabel kebenar-an.
Satu hal yang perlu diperhatikan dalam pembentukan tabel kebenaran seperti dalam Gambar 2.6 adalah penyusunan kombinasi masukan secara berurut, mulai dari setara biner terkecil sampai yang terbesar. Ini merupa-kan suatu cara standar penyusunan tabel kebenaran dan perlu untuk menghindari kemungkinan adanya kombinasi yang terlupakan. Perlu juga diperhatikan bahwa walaupun keadaan peubah X, Y dan Z yang 0 dan 1 bukanlah biner, kombinasinya itu dapat diartikan dalam harga biner.
fungsi-fungsi Boole seperti yang akan dibahas dalam sub-bab berikut ini. 2.4 Penyederhanaan Fungsi Boole Secara Aljabar
Ditinjau dari segi rangkaian logika, semua sistem digital dapat dibe-dakan atas dua jenis:
• rangkaian kombinasi (combinational circuit) dan
• rangkaian berurut (sequential circuit).
Dalam rangkaian kombinasi, keluaran rangkaian pada setiap saat hanya diten-tukan oleh masukannya pada saat itu. Pada rangkaian berurut, selain ditentukan oleh masukan saat itu, keluaran juga ditentukan oleh keadaan keluaran sebelum-nya. Jadi, rangkaian berurut mempunyai kemam-puan untuk mengingat keadaan keluarannya pada saat sebelumnya dan karena itu rangkaian berurut digunakan sebagai alat penyimpan/pengingat (storage/memory) dalam sistem digital.
Tabel 2.1. Rumus-rumus dasar aljabar Boole.
1. Operasi dengan 0 dan 1 x + 0 = x x.0 = 0 x + 1 = 1 x.1 = x 2. Hukum Idempoten x + x = x x.x = x 3. Hukum Involusi x = x 4. Hukum Komplement x + x = 1 x.x = 0 5. Hukum Kumutatif x + y = y + x x.y = y.x
6. Hukum Assosiatif (x+y)+z = x+(y+z) = x+y+z (xy)z = x(yz) = xyz
7. Hukum Distributif x(y+z) = xy+xz x+yz = (x+y)(x+z)
Pada umumnya, setidak-tidaknya di bagian masukan atau keluarannya, rangkaian ber-urut juga mempergunakan rangkaian kombinasi. Karena itu, penye-derhanaan rangkaian kombinasi merupakan hal yang penting dalam setiap peren-canaan sistem digital. Dengan penyederhanaan akan diperoleh rangkaian yang akan mem-butuh-kan gerbang yang lebih sedikit dengan jumlah masukan yang lebih sedikit dibandingkan dengan merealisasikan/
mengimplementasikan fungsi Boole hasil perencanaan awal.
Penyederhanaan fungsi Boole dapat dilakukan dengan beberapa cara/ metoda, antara lain:
• cara aljabar,
• cara pemetaan dan
• cara tabulasi.
Dua cara terakhir akan diuraikan kemudian. Berikut ini akan diberi-kan bebe-rapa contoh penyederhanaan fungsi Boole sederhana secara alja-bar. Rumus-rumus penyederhanaan berikut ini dapat dipandang sebagai rumus dasar yang siap pakai. Dengan memakai hukum-hukum dan teorema dasar di depan dapat diperoleh:
XY + XY = X(Y+Y ) = X.1 = X (2.11) X + XY = X(1+Y) = X.1 = X (2.12)
(X+Y)(X+Y ) = X.X + X(Y+Y) + Y.Y = X + X.1 + 0 = X + X = X (2.13) X(X+Y) = X + XY = X.1 + XY = X(1+Y) = X (2.14) (X+Y )Y = XY + YY = XY (2.15)
XY + Y = (X+Y)( Y +Y) (hukum distributif)
= X + Y (2.16)
Satu teorema yang sangat penting dalam aljabar Boole adalah teorema de Morgan yang menunjukkan dualitas dalam komplementasi operasi OR dan AND. Dalil de Morgan mengubah perkalian (operasi AND) menjadi perjumlahan (operasi OR) dengan komplementasi. Hukum de Morgan adalah:
X + Y = X . Y (a)
X Y = X + Y (b)
Hukum ini dapat dibuktikan dengan membuatkan tabel kebenaran untuk masing-masing operasi seperti ditunjukkan dalam Gambar 2.7.
X Y X+Y X.Y X.Y X+Y 0 0 1 1 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0
Gambar 2.7. Tabel kebenaran pembuktian hukum de Morgan.
Perhatikan bahwa untuk semua kombinasi masukan X dan Y keadaan di kolom 3 tepat sama dengan keadaan di kolom 4 (hukum a) dan keadaan di kolom 5 tepat tepat sama dengan keadaan di kolom 6 (bukti hukum b).
Walaupun ditunjukkan hanya untuk 2 peubah, tetapi hukum de Morgan pers. (2.7) berlaku juga untuk sembarang cacah peubah. Ini dapat dibuktikan dengan mudah dengan metode substitusi, yaitu dengan membe-rikan satu nama peubah baru untuk suatu bagian pernyataan. Sebagai contoh, untuk tiga peubah dilakukan sebagai berikut :
X + Y + Z = X . Y + Z = X.Y. Z
X . Y . Z = X + Y . Z = X + Y + Z
Dengan memakai dalil de Morgan, kita dapat merealisasikan fungsi AND dengan gerbang NOR atau fungsi OR dengan gerbang NAND. Mengenai gerbang NOR dan NAND akan dijelaskan kemudian; tetapi dapat disebutkan sebelumnya bahwa pada dasarnya, semua gerbang dapat di-realisasikan dengan mengguna-kan gerbang NAND dan NOR sehingga bi-asanya lebih mudah memperoleh gerbang-gerbang ini di pasaran.
Dalam menyederhanaan fungsi-fungsi Boole secara aljabar, penguasa-an sekumpulan rumus dasar akan sangat membantu. Untuk memudahkan pemakai-annya dalam Tabel 2.2 dikumpulkan beberapa rumus tambahan yang melengkapi rumus dasar yang diberikan dalam Tabel 2.1. Semakin banyak kita melakukan penyederhanaan, semakin sering memakai rumus-rumus tersebut, semakin hafal pula kita akan rumus-rumus tersebut.
2.5 Penyajian Fungsi Boole
Seperti disebutkan di bagian depan, dalam pembicaraan aljabar Boole pe-ngertian operasi AND sering disebut sebagai perkalian dan operasi OR disebut perjumlahan. Dengan memakai pengertian ini, maka istilah suku-min
(singkatan dari "suku minimum" yang berasal dari istilah minterm, minimum term) dan sukumax (singkatan dari "suku maksimum" yang berasal dari istilah maxterm, maximum term) dapat dijelaskan lebih mudah. Sukumin dan sukumax juga dike-nal dengan nama lain, yaitu "standard product" untuk sukumin dan "standard sum" untuk sukumax. Ini lebih memudahkan uraian aljabar dan penyajian fungsi-fungsi logika (fungsi Boole).
Sukumin adalah perkalian (operasi AND) dari sejumlah literal. Lite-ral disini dimaksudkan sebagai peubah, baik
dalam bentuk sebenarnya maupun komple-mennya. Dalam satu suku, setiap literal muncul paling banyak satu kali. Ini berarti bahwa bila satu suku mengandung literal A, misalnya, suku tersebut tidak boleh
Tabel 2.2. Rumus-rumus Tambahan Boole.
1. Teorema penyederhanaan: x y + x y = x x + x y = x (x + y) y = x y (x+y)(x+y ) = x x (x+y ) = x x + y = x + y 2. Hukum de Morgan: x + y + z+ ... = x y z ... x . y . z. ... = x + y + z + ... 3. Teorema Konsensus: xy + yz + xz = xy + xz (x+y)(y+z)(x+z) = (x+y)( x+z ) (x+y)(x+z) = xz + xy
4. Dualitas (x + y + z + ...)D = x y z
(x y z ...)D = x + y + z + .... [f (x1, x2, x3, ..., xn, 0, 1, +, .)]D = f (x1, x2, x3, ..., xn, 0, 1, +, .)
mengandung literal A. Karena untuk n peubah dapat dibentuk 2n macam kombi-na-si, maka untuk n peubah dapat dibentuk sejumlah 2n sukumin. Setiap sukumin berharga 1 hanya untuk satu kombinasi. Sebagai contoh, untuk dua peubah A dan B, sukumin yang dapat dibentuk adalah AB, AB, AB dan AB. Sukumin AB akan berharga 1 hanya untuk A = B = 0 atau A = 1 dan B = 1; sukumin AB = 1 hanya bila A = 0 dan B = 1, dan seterusnya. Untuk
penyingkatan penulisan, sukumin sering ditulis secara singkat dengan mi, dengan i menunjukkan harga desi-mal dari-pada sukumin tersebut. Sebagai contoh, sukumin AB akan berharga 1 hanya untuk AB= 01, artinya A = 0 dan B = 1, dan karena harga desimal daripada biner 01 ada-lah 1 maka sukumin AB disebut sukumin 1 atau m1, sukumin AB disebut m3, dan sebagainya .
Sukumax adalah penjumlahan (operasi OR) daripada sejumlah literal dengan setiap literal muncul hanya 1 kali, dan
setiap sukumax mempunyai harga 0 hanya untuk satu macam kombinasi daripada literal pembentuk-nya. A + B + C adalah sukumax yang dapat dibentuk dari 3 peubah A, B dan C dan berharga 0 hanya bila A = 1, B = 0, dan C = 0. Untuk penulisan secara singkat, sukumax ditulis dengan Mi, dengan i sebagai harga desimal daripada biner yang dibentuk oleh kombinasi AND peubahnya. Sukumax (A+B+C), yang akan berharga 0 hanya bila A= 0, B= 0 dan C= 0, yaitu bila ABC= 000 = 0 desimal, dituliskan dengan M0.
Perhatikan dalam penentuan sukumin dan sukumax di atas, bahwa untuk sukumin setiap literal yang dalam bentuk komplemen diartikan 0 sedangkan dalam penentuan sukumax setiap literal dalam bentuk komple-men diartikan 1. Ini adalah karena dalam sukumin kita membentuk suku yang berharga 1 sedangkan dalam sukumax kita membentuk suku yang berharga 0.
Dengan dalil de Morgan dapat dilihat dengan mudah bahwa: mi = Mi
dan
Mi = mi
Untuk 3 peubah, misalnya a, b, dan c, sukumin-5 dan sukumax-5 (i= 5) dapat ditulis: m5 = a b c
m5 = a + b + c = M5
Bila suatu fungsi Boole ditulis sebagai perjumlahan daripada sukumin, maka fungsi itu disebut sebagai ekspansi sukumin atau jumlah-perkalian standar (minterm expansion, standard sum-of-products) dan bila ditulis sebagai perkalian daripada sukumax, maka fungsi itu disebut dalam bentuk ekspansi sukumax atau perkalian-jumlah standar (maxterm expansion, standard product-of-sum). Bentuk jumlah perkalian sering ditulis dengan notasi sigma (S) dan bentuk perkalian jumlah ditulis dalam bentuk pi (p) yang sedikit diubah, yaitu:
n-1
m0+ m1+ m2+ .... + mn-1 =
Σ
mi =Σ
m(0,1,2,...,n-1) i=0M0 M1 M2 .... Mn-1 =
Π
Mi =Π
M(0,1,2,...,n-1) i=0Bilangan yang dicantumkan dalam tanda kurung ruas paling kanan rumus di atas hanyalah sukumin/sukumax penyusun fungsi.
Contoh:
Perhatikan tabel kebenaran fungsi seperti yang ditunjukkan dalam Gambar 2.8. Dari tabel kebenaran ini diperoleh pernyataan fungsi dalam bentuk jumlah-perkalian (ekspansi sukumin) dan dalam bentuk perkalian-jumlah (ekspansi suku-max) sebagai berikut:
A B C f 0 0 0 0 0 0 1 1 f =
Σ
m (1,3,4,6) 0 1 0 0 0 1 1 1 =Π
M (0,2,5,7) 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0Gambar 2.8. Tabel kebenaran untuk memperoleh fungsi dalam bentuk ekspansi sukumin dan sukumax.
Ekspansi sukumin :
f = (A + B + C) (A + B + C) (A + B + C) (A + B + C)
yang diperoleh dari pengalian (peng-AND-an) suku-suku 000 (0), 010 (2), 101 (5), dan 111 (7) yang membuat f= 0. Fungsi ini dapat dinyatakan sebagai:
f = M0 M2 M5 M7 =
Π
M (0,2,5,7)Dari sini dapat dilihat bahwa pernyataan suatu fungsi dapat diperoleh baik dengan menjumlahkan sukumin maupun dengan mengalikan suku-max, dan hasilnya harus sama. Buktikan !
f = A B C + A B C + A B C + A B C
yang diperoleh dari penjumlahan (peng-OR-an) suku-suku 001 (=1), 011 (=3), 100 (=4), dan 110 (=6) yang membuat f = 1. Fungsi ini dapat dinyatakan sebagai:
f = m1 + m3 + m4 + m6 =
Σ
m (1,3,4,6)2.6 Fungsi Tak Lengkap
Dalam sistem digital sering beberapa kombinasi masukan tidak mungkin ter-jadi atau dicegah oleh rangkaian di bagian masukannya. Kita tak perlu memperha-tikan sukumin yang tak mungkin timbul tersebut dan dapat diabaikan. Karena itu sukumin demikian disebut suku “abaikan” (don’t care). Kita juga tak perlu mem-perdulikan apakah keadaan keluaran untuk kombinasi masukan tersebut 0 atau 1 dan keluaran dalam tabel kebe-narannya tak perlu dijelaskan sebab bagaimanapun juga, itu tidak akan terjadi. Dengan adanya keluaran yang tak dijelaskan, maka fungsi keluar-annya menjadi tak lengkap (incompletely specified). Dalam perenca-naan suatu rangkaian logika, keadaan demikian dapat dimanfaatkan untuk mem-peroleh rangkaian yang lebih sederhana dan murah. Keadaan otuput untuk suku "abaikan" biasanya ditunjukkan dengan tanda "x" yang dapat diartikan 0 atau 1. Kita bebas menentukan keadaan keluaran 0 atau 1 untuk suku sedemikian, tergan-tung mana yang lebih menguntungkan perencanaan. Sebagai contoh, perhatikanlah tabel kebenaran tak lengkap seperti yang di-tunjukkan dalam Gambar 2.9. Dalam tabel kebenaran Gambar 2.9, suku ABC= 001 dan 110 (m1 dan m6) adalah suku abaikan, dan harga keluaran y(A,B, C) untuk suku-suku tersebut ditandai dengan x dan fungsi yang diwakili oleh tabel kebenaran tersebut dapat dituliskan dalam bentuk :
y =
Σ
m (0,3,7) +Σ
d (1,6), dengan d menunjukkan sukumin "abaikan" (don’t care). A B C y 0 0 0 1 0 0 1 x 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 x 1 1 1 1Gambar 2.9. Tabel kebenaran fungsi tak lengkap. y =
Σ
m (0,3,7) +Σ
d (1,6)Kita perhatikan kemungkinan harga x yang dapat kita pilih untuk suku abaikan sebagai berikut ini:
1. Semua x kita anggap 0.
Untuk pilihan ini, fungsi tersebut akan berbentuk: y = m0 + m3 + m7
= A B C + A B C + A B C = A B C + B C 2. Semua x kita anggap 1.
y = m0 + m1 + m3 + m6 + m7
= A B C + A B C + A B C + A B C + A B C + A B C
= A B (C+C) + (A+A) B C + A C (B+B) = A B+ B C + A C
3. Untuk m1 kita pilih x= 1 dan untuk m6 kita pilih x= 0.
y = m0 + m1 + m3 + m7
= A B C + A B C + A B C + A B C = A B + B C
4. Untuk m1 kita pilih x= 0 dan untuk m6 kita pilih x= 1.
y = m0 + m3 + m6 + m7
= 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 = A B C + B C + A B
Dari hasil-hasil di atas dapat dilihat bahwa penyelesaian paling sederhana adalah dengan pilihan ke 3, yaitu dengan m1 = 1 dan m6 = 0. Kesederhanaan suatu rangkaian logika pada umumnya diukur dari jumlah gerbang yang dibutuh-kan dan jumlah terminal masudibutuh-kan paling sedikit. Yang lebih gampang adalah hanya menghitung jumlah masudibutuh-kan yang dibutuhkan tanpa memperdulikan gerbang apa yang dipakai dan berapa jumlah masukan setiap gerbang.
Sebagai contoh, kalau dihitung, jumlah masukan untuk pilihan 1 di atas adalah 3 + 2 + 2 = 7 (1 AND dua masuk-an, 1 AND tiga masukan dan 1 OR dua masukan). Untuk pilihan 2 dibu-tuhkan 2 + 2 + 2 + 2 + 2= 10 masukan (3 AND dua masukan dan 2 OR dua masukan), untuk pilihan 3 dibutuhkan 2 + 2 + 2 = 6 masukan (2 AND dua masukan dan 1 OR dua masukan), dan untuk pilihan 4 dibutuhkan 2 + 2 + 3 + 3 = 10 masukan bila memakai 2 OR dua masukan, 1 AND 3 masukan dan 1 OR tiga masukan atau 3 + 2 + 2 + 2 + 2 = 11 masukan bila memakai 2 AND dengan 2 masukan, 2 OR dengan 2 masukan dan 1 AND dengan 3 masukan. (Periksa dengan menggambarkan rangkaiannya !). Sekarang perhatikan kembali pada Gambar 2.9, dan andaikan x dipilih seperti pada pilihan ke 2 di atas. Bila fungsi tersebut diekspansikan ke sukumax, maka akan diperoleh :
y = M2 M4 M5 = (A + B + C) (A + B + C) (A + B + C ) = (A B + A C + A B + B C + A C + B C + C) (A + B + C ) ={(A B + A B + (A + B + A + B + 1) C } (A + B + C ) = (A B + A B + C) (A + B + C) = A B + A B C + A B + A B C + A C + B C = A B (1+ C) + A B (1+ C) + A C + B C = A B + A B + AC + B C = A B + ( B C + A C + A B )
Dapat dilihat disini bahwa fungsi yang diperoleh dengan ekspansi ke suku-max tepat sama dengan yang diperoleh dengan ekspansi ke sukumin sebelumnya. Sebenarnya, hasil terakhir ini dapat diperoleh dalam bentuk lain yang sedikit ber-beda dengan harga yang sama (sama jumlah masukan-nya). Ini akan lebih jelas kalau kita
menyederhanakannya dengan cara peta yang akan diuraikan dalam bab berikutnya.
2.7 Soal Latihan
1. Buktikanlah Rumus-rumus penyederhanaan dan teorema konsensus Tabel 2.2.
2. Suatu sistem dengan 3 peubah masukan membutuhkan hubungan logika seperti yang ditunjukkan pada tabel kebenaran Tabel S2.1.
a. Tentukanlah pernyataan logika fungsi keluaran f dalam bentuk suku-min dan dalam bentuk sukumax b. Tentukanlah realisasi fungsi f yang paling murah
c. Gambarkanlah rangkaian logikanya dalam bentuk OR-AND (OR diikuti AND) dan AND-OR (AND diikuti OR). Tabel S2.1. p q r f 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1
3. Sederhanakanlah pernyataan Boole berikut: a. ABC(ABC + ABC +ABC )
b. AB + AB +AC +BC
c. A(A+B+C)(A+B+C)(A+B+C)(A+B+C) d. (A+B+C)(A+B+C)(A+B+C)(A+B+C)
4. Sederhanakanlah ke dalam bentuk ekspansi sukumin dan ekspansi sukumax dan gambarkan rangkaian untuk fungsi berikut: