KONVERSI BILANGAN
Pengenalan Komputasi
Sasaran
Setelah anda menamatkan bab ini, diharapkan anda dapat :
- Mengkonversi nilai bilangan dari/ke basis-2, basis-10, dan basis-16.
- Menambah dan mengurangi bilangan Hex.
- Menambah bilangan biner
- Menjabarkan bilangan-bilangan biner dalam komplement ke-2.
- Menjabarkan string alphanumeric ke dalam kode ASCII.
- Menjelaskan operasi dari gerbang-gerbang AND, OR, NOT, XOR, NAND, NOR.
- Menggunakan gerbang logika untuk membuat rangkaian sederhana.
- Menjelaskan pebedaan antara Bit, Nibble, Byte dan Word.
- Memberikan definisi matematik yang akurat tentang terminologi kilobyte, megabyte, gigabyte, dan terabyte.
- Memaparkan kegunaan komponen utama dan menjelaskan kegunaan type-type bus.
- Mejelaskan aturan yang digunakan CPU dalam System komputer.
Untuk
 mengerti software dan hardware dari system yang berbasis 
mikrokontroller, sesorang paling pertama harus memahami konsep paling 
dasar yang digunakan pada desain komputer. Pada bab ini (yang pada 
tradisi pada bilangan system komputer selalu dimulai dari 0 dan bukanlah
 1), hal mendasar adalah membahas bilangan dan system coding. Setelah 
mengenalkan pada gerbang logika, kita akan mengulas proses kerja di 
dalam komputer. Dan terkahir adalah kita akan memberikan sejarah dari 
arsitektur CPU. Sehingga pembaca yang budiman kemudian dapat memiliki 
latar belakang yang cukup sebelum beranjak pada bab selanjutnya, yakni 
dengan membaca bab ini dengan seksama dan menyeluruh.
SubBAB 0.1: Numbering anda Coding Systems
Di
 mana manusia selalu menggunakan aritmatika berbasis 10 (desimal), 
sementara itu sebuah komputer menggunakan state, dan berbasis 2. Dalam 
bab ini kita akan menjelaskan bagaimana mengubah system desimal menjadi 
system biner, dan juga sebaliknya. Dan padanan yang setara dari 
bilangan-bilangan biner, disebut dengan heksa-desimal, juga akan kita 
bahas. Dan terakhir adalah format biner pada kode alphanumeric, yang 
disebut dengan ASCII, akan kita gali kemudian.
Decimal and binary number systems
Konon
 kabarnya ada splekulasi bahwa kita manusia menggunakan bilangan 
berbasis 10, karena dipadankan dengan jumlah jari manusia yang berjumlah
 10 itu. Namun di luar hal itu, system bilangan biner yang digunakan 
oleh komputer bukanlah karangan dan spekulasi. System biner dalam 
komputer digunakan karena 1 dan 0 adalah representasi dari status level 
tegangan sebagai On atau Off. Di mana basis-10 memiliki beberapa symbol,
 0, 1, 2, 3, … ,9. Sedangkan dalam basis-2 hanya menggunakan simbol 1 
dan 0. Hal ini juga yang mewakili pada masing-masing digit. 1 digit 
dalam basis-10 bisa diwakili oleh simbol 0 s/d 9. Sedang 1 digit pada 
bilangan biner hanya diwakili nilai 0 atau 1. Nah.. dari digit biner 
inilah kemudian diingatkan orang menyebutnya menjadi bit (Biner digit).
Mengubah Desimal menjadi Biner
Satu
 metode pengubahan yang digunakan pada konversi desimal ke biner adalah 
membagi bilangan desimal dengan 2 secara berulang-ulang. Dengan terus 
memantau sisa dari pengurangannya. Proses ini terus dilakukan sampai 
bilangan menjadi 0 atau Zero. Sedang sisanya kemudian dituliskan pada 
angka yang terakhir. Hal ini di-demontrasi-kan pada Contoh 0-1.
|     
Contoh 0-1 
 |   
|     
Ubah   25 desimal (atau 2510 ) menjadi biner. 
Jawaban: 
Hasil       Sisa 
25/2   =          12          1       LSB (Least Significant bit) 
12/2   =          6         0 
6/2   =          3         0 
2/2   =          1         1 
1/2   =          0           1       MSB (Most Significant bit) 
Jadi,   2510 = 110012. 
 |   
Mengubah Biner ke Desimal
Untuk
 mengubah bilangan biner ke desimal, hal terpenting adalah mengerti 
konsep dari besaran setiap posisi digit. Pertama dengan analoginyaa, 
menyimak bersaran nilai dalam basis-10, seperti yang ada pada diagram di
 bawah ini.
|     
74068310 = 
3   x 100 =      3 
8   x 101 =     80 
6   x 102 =    600 
0   x 103 =   0000 
4   x 104 =  40000 
7   x 105 = 700000 + 
740683 
 |   
1101012 ======    Desimal     Biner
1 x 20 =  1×1  = 1               1
0 x 20 =  0×2  = 0              00
1 x 20 =  1×4  = 4             100
0 x 20 =  0×8  = 0            0000
1 x 20 =  1×16 = 16          10000
1 x 20 =  1×32 = 32 +       100000
0 53         110101
Mengerti
 besaran dari setiap bit dalam bilangan biner membuatnya menjadi mudah 
untuk menambahkan mereka semua untuk mendapatkan persamaannya dalam 
desimal, seperti yang ditunjukkan pada Contoh 0-2.
|     
Contoh 0-2 
 |   
|     
Ubahlah   bilangan biner 110012 menjadi desimal 
Jawaban : 
Besaran:   24 23 22 21 20 
Digit:     1    1   0   0   1 
Jumlah:    16 + 8 + 0 + 0 + 1 = 2510 
 |   
Mengerti
 besaran yang sesuai untuk setiap posisi bit bilangan biner membuat 
sesorang mudah untuk mengkonversi bilangan desimal menjadi bilangan 
biner secara langsung melalui proses pembagian berulang. Hal ini 
dicontohkan pada Contoh 0-3
|     
Contoh 0-3 
 |   
|     
Ubahlah   bilangan desimal 3910 menjadi biner 
Jawaban : 
Jumlah:    32 + 0 + 0 + 4 + 2 + 1 = 39 
Besaran:   24 24 23 22 21 20 
Digit:     1    0   0   1   1   1 
hasilnya   adalah 1001112 
 |   
System Heksadesimal
System
 heksadesimal ini dalam literatur komputer juga disebut dengan Basis-16,
 digunakan untuk merepresentasikan bilangan biner dengan baik ke dalam 
bilangan manusia yang mudah diingat dan lebih ringkas. Misalnya manusia 
akan lebih untuk mengingat dan memahami bilangan 896h dibanding dengan 
bilangan yang sama, yakni biner 100010010110. System biner memliki 
simbol 0 dan 1 untuk merepresntasikan keadaannya. Sementara itu dalam 
bilangan basis-10, terdapat 10 buah simbol mulai dari 0 s/d 9. Sedang 
pada heksadesimal (basis-16) memiliki 16 simbol. Yang simbol pertamanya 
adalah seperti basis-10 yakni 0 s/d 9 sementara itu 6 symbol berikutnya 
adalah A, B, C, D, E, dan F. Table 0-1 menunjukkan persamaan dari 
bilangan biner, desimal, dan heksadesimal untuk merepresentasikan nilai 0
 s/d 15.
Tabel 0-1: System bilangan Basis-16
|     
Desimal   Biner    Hex 
0           0000     0 
1           0001     1 
2           0010     2 
3           0011     3 
4           0100     4 
5           0101     5 
6           0110     6 
7           0111     7 
8           1000     8 
9           1001     9 
10          1010     A 
11          1011     B 
12          1100     C 
13          1101     D 
14          1110     E 
15          1111     F 
 |   
Mengubah antara Biner dan Hex
Untuk
 mengubah kembali bilangan biner sebagaimana ekuivalensinya sebagai 
bilangan haksadesimal, dimulai dari kanan, dan mengelompokkan setiap 4 
digit, dan menggantikan 4-bit biner tersebut dengan persamaannya sebagai
 bilangan Hex sepeti yang ditunjukkan pada tabel 0-1. Utuk mengubah dari
 hex ke biner setiap digit hex harus diganti dengan persamaannya sebagai
 4 bit biner seperti pada table 0-1.
Lihat contoh 0-4 dan 0-5
|     
Contoh 0-4 
 |   
|     
Ubah   biner 100111110101 dalam Hex. 
Jawaban: 
Pertama   nilai di kelompokkan dalam rangkaian 4-bit menjadi: 
1001   1111 0101 
Kemudian   setiap kelompok diganti dengan padanannya dalam hex, menjadi: 
1001   1111 0101 
9      F    5 
Sehingga,   100111110101 biner  = 9F5 heksadesimal 
 |   
|     
Contoh 0-5 
 |   
|     
Ubah   bilangan Hex 29B menjadi biner. 
Jawaban: 
2      9    B 
=     0010 1001 1011 
kemudian   mengabaikan digit-digit 0 di depan, maka menjadi 
29Bh   = 1010011011b 
 |   
Mengubah bilengan desimal ke hex
Untuk mengubah nilai bilangan hex dapat dilakukan dengan dua cara.
1. Ubahlah desimal menjadi biner. Dan kemudian menjadi Hex. Seperti yang ditunjukkan pada Contoh 0-6.
2.
 Mengubah langsung dari desimal menjadi hex dengan melakukan pembagian 
terus, dengan memantau isi sisa. Percobaan ini saya serahkan pada para 
pembaca yang budiman.
|     
Contoh 0-6 
 |   
|     
(a)   Ubah 4510 menjadi Hex. 
Seperti   pada contih 0-1 maka diketemukan 
32 16 8 4 2 1 mengubah   menjadi biner 
1       0     1    1      0    1    32 + 8 + 4 + 1 = 45 
4510   = 001011012 = 2D hex 
(b)   Ubah 62910 menjadi Hex. 
Seperti   pada contih 0-1 maka diketemukan 
512 256 128 64 32 16 8   4 2 1 menjadi biner 
1         0      0        1     1     1      0    1    0    1 
62910   = (512 + 64 + 32 + 16 + 4 + 1) =0010 0111 01012 = 275 hex 
(a)   Ubah 171410 menjadi Hex. 
Seperti   pada contih 0-1 maka diketemukan 
1024 512 256 128 64 32 16   8 4 2 1 
1        1       0        1      0       1     1    0      0    1    0 
171410   = (1024 + 512 + 128 + 32 + 16 + 2) =0110 1011 00102 = 6B2 hex 
 |   
Mengubah bilengan hex ke desimal
Untuk mengubah nilai bilangan hex dapat dilakukan dengan dua cara.
1. Ubahlah hex menjadi biner. Dan kemudian menjadi desimal. Seperti yang ditunjukkan pada Contoh 0-7.
2. Mengubah langsung dari hex menjadi desimal dengan melakukan panambahan besaran dari masing-masing digit.
|     
Contoh 0-7 
 |   
|     
Ubahlah   bilangan heksadesimal berikut ini menjadi desimal 
(a)   6B216 = 0110 1011 00102. 
1024 512 256 128 64 32 16   8 4 2 1 
1        1       0        1      0       1     1    0      0    1    0 
1024   + 512 + 128 + 32 + 16 + 2 = 171410 
(b)   9F2D16 = 1001 1111 0010 11012. 
32768 16384 8192 4096 2048 1024   512 256 128 64 32 16 8 4   2 1 
1       0     0    1      1    1    1   1     0   0  1  0  1  1  0  1 
32768   + 4096 + 2048 + 1024 + 512 + 256 + 32 + 8 + 4 + 1 = 40.74910 
 |   
Mencacah dalam basis-10, 2 dan 16
Untuk
 menunjukkan hubungan antara masing-masing basis ini. Dalam table 0-2 
kita ditunjukkan urutan nilai 0 s/d 31 dalam desimal dan persamaannya 
dalam biner dan heksadesmal. Perhatikan dalam masing-masing basis yang 
jika sebuah bilangan ditambah kemudian menjadi digit yang lebih tinggi, 
maka digit sebelumnya itu akan menjadi 0 dan akan memberikan kelebihan 
Carry 1 pada digit dengan posisi yang lebih tinggi. Misalnya desimal 9 +
 1 = 0 dengan membawa kelebihan Carry 1 pada posisi yang lebih tinggi 
sehingga menjadi 10. Misal dalam biner 1 + 1 = 0 dengan kelebihan Carry 
1. Juga dengan Hex jika F + 1 = 0 dengan Carry.
Tabel 0-2: Cacahan (Counting) dalam beberapa basis
|     
Desimal   Biner    Hex 
0           10000     0 
1           10001     1 
2           10010     2 
3           10011     3 
4           10100     4 
5           10101     5 
6           10110     6 
7           10111     7 
8           11000     8 
9           11001     9 
10          11010     A 
11          11011     B 
12          11100     C 
13          11101     D 
14          11110     E 
15          11111     F 
16          10000    10 
17          10001    11 
18          10010    12 
19          10011    13 
20          10100    14 
21          10101    15 
22          10110    16 
23          10111    17 
24          11000    18 
25          11001    19 
26          11010    1A 
27          11011    1B 
28          11100    1C 
29          11101    1D 
30          11110    1E 
31          11111    1F 
 |   
Penambahan bilangan biner dan Hex
Dalam
 hal penambahan bilangan biner adalah merupakan proses yang langsung. 
Table 0-3 menunjukkan penambahan 2 bit. Bahasan tentang pengurangan pada
 bilangan biner akan kita lewati, karena semua komputer menggunakan 
proses penambahan untuk juga digunakan pada proses pengurangan. Jadi 
maksudnya komputer-komputer itu menggunakan satu rangkaian elektronika 
untuk digunakan dalamproses penambahan dan sekaligus juga untuk proses 
pengurangan. Yaknid dengan denambahkan rangkaain kompolement ke-2 (2nd Complement) untuk setiap melakukan Pengurangan. Dalmakata lain, untuk melakuakn “x-y“,komputer akan membuat komplement ke-2 untuk y dan kemudian menambahkannya pada x. Konsep kemplemen ke-2 ini akan kita bahas nanti. Contoh 0-8 menunjukkan proses penambahan pada bilangan biner.
Tabel 0-3: Penambahan Biner
|     
A + B     Carry     Sum 
0   + 0         0        0 
0   + 1         0        1 
1   + 0         0        1 
1   + 1         1        0 
 |   
|     
Contoh 0-8 
 |   
|     
Tambahkan   bilangan biner berikut ini. Periksa dengan padanannya dalam desimal. 
Jawaban   : 
Biner        Desimal 
1101          13 
1001   9 + 
10110          22 
 |   
|     
Contoh 0-9 
 |   
|     
Lakukan   penjumlahan 2 buah bilangan heksadesimal 23D9 + 94BE ? 
Jawaban : 
23D9 
94BE + 
B897 
penjelasannya   : 
1.   LSD: 9 + 14(E) = 23   ==> 23 – 16 = 7 dgn Carry 
2.   1 + 13(D) + 11(B)= 25   ==> 25 – 16 = 9 dgn Carry 
3.   1 + 3 + 4 = 8 
4.   2 + 9 = 11(B) 
jadi   hasilnya adalah B897h 
 |   
|     
Contoh 0-10 
 |   
|     
Lakukan   mengurangan 2 buah bilangan heksadesimal 59F – 2B8 ? 
Jawaban : 
59F 
2B8 - 
2E7 
penjelasannya   : 
1.   LSD: 15(F) + 8 = 7 
2.   9 + 16(pinjam/borrow) – 11(B) = 14(E) 
3.   5 – 1 – 1 = 2 
jadi   hasilnya adalah 2E7h 
 |   
Pola
 biner untuk nilai 0 s/s 9, semua menggunakan alphabet Inggris, huruf 
Kapital, huruf kecil, dan beberapa kode kontrol dan tanda punctuation.
 Kelebihan dari system ini adalah dapat digunakan oleh semua komputer. 
Sehingga informasi ini dapat saling tukar antar komputer. System ASCII 
menggunakan total 7-bit untuk merepresentasiakan setiap kode-nya. 
Misalnya 100 0001 adalah dimiliki oleh huruf “A” dan 110 0001 adalah 
dimiliki oleh huruf kecil “a”. Kemudian, 0 di-imbuh-kan pada Most 
Significant Bit (MSB) atau bit paling kiri, sehingga total akan 
membentuk sebuah kode 8-bit. Gambar 0-1 menunjukkan kode ASCII yang 
dipilih. Daftar lengkap dari kode ASCII dapat dilihat pada Appendix F. 
Penggunaan ASCII tidak hanya sebagai standar pada penggunaan keyboard di
 United States dan beberapa negara lainnya, namun juga sebagai standar 
pada penggunaan pencetakan karakter pada Printer dan penampilan karakter
 pada Display Monitor.
|     
Hex       Symbol      Hex     Symbol 
41          A           61      a 
42          B           62      b 
43          C           62      c 
44          D           63      d 
..         ..         ..       .. 
59          Y           79      y 
5A          Z           7A      z 
 |   
Gambar 0-1: Sebahagian kode ASCII
Perhatikan
 bahwa pola kode ASCII dirancang demi kemudahan manipulasi data ASCII. 
Untuk contohnya, digit 0 sampai 9 direpresentasikan sebagai ASCII 30 s/d
 39. Hal ini menjadi sangat mudah untuk mengkonversi ASCII ini menjadi 
bilangan desimal atau biner dengan membuang angka 3 didepannya. Atau 
dengan hanya mengambil 4-bit LSB saja pada model biner-nya. Juga 
perhatikan hubungan antara huruf besar dan huruf kecil. Yakni dengan 
yang di-representasi-kan huruf “A” s/d “Z” pada 41 s/d 5A dan dengan 
huruf kecilnya, yakni 61 s/s 7A. Menyimak kode binernya, yang membedakan
 antara huruf “A” dan “a” adalah bit ke-5. Sehingga dengan demikian 
menjadi semakin mudahnya kita untuk mengubah Uppercase ataupun Lowercase
 dari huruf-huruf tersebut.
|     
Contoh 0-11 
 |   
|     
Lakukan   Pengurangan Hex 59F – 2B8. 
Jawaban   : 
59F       -=- 15 – 8 = 7 
-   2B8 -=- 25(9+16) – 11 = 14(Eh) 
2E7       -=- 4(5-1) – 2 = 2 
 |   
SubBAB 0-2 : Dasar-dasar Digital
Dalam
 bagian ini kita akan membahas tentang logika digital dan desainnya. 
Pertama adalah kita membahas operasi logika biner, kemudian kita 
ditunjukkan bagaimana gerbang-gerbang melakukan hal itu. Kemudian 
beberapa gerbang logika digunakan untuk membetuk rangkaian digital 
sederhana. Dan terakhir kita mengupas beberapa peralatan logika yang 
ternyata digunakan untuk interfacing pada mikrokontroller.
Binary Logic
Seperti
 yang sudah diterangkan sebelumnya, komputer menggunakan system bilangan
 biner karena 2 buah level tegangannya dapat direpresentasikan dengan 
digit 0 dan 1. Sinyal dalam elektronika digital memilki 2 keadaan level 
tegangan. Misalnya seperti system yang umum, tegangan 0 Volt diartikan 
sebagai logika 0, dan tegangan 5 Volt dianggap sebagai logika 1. Gambar 
0-2 menunjukkan system ini yang digunakan untuk menunjukkan representasi
 tegangan terhadaap status logika dan berikut kemungkian toleransinya.
Gambar 0-2 : Sinyal Biner
Gerbang logika
Gerbang
 logika biner adalah rengkaian sederhana yang memiliki 1 atau beberapa 
input digital, dan mengirimkan hasilnya sebagai 1 output. Beberapa 
gerbang yang umum diterangkan sebagaimana berikut ini.
gerbang AND
Gerbang
  AND membutuhkan 2 atau lebih input untuk melaksanakan logika AND 
tersebut. Lihat tabel kebenaran, yakni jika kedua input adalah 1 maka 
output akan menjadi 1. Dicontohkan dengan 2 input, x dan y. Jadi jika 
semua input adalah berlogika 1 maka output akan menjadi 1. Sedang jika 
ada salah satu input yang ternyata 0, maka input akan menjadi 0.
fungsi logika AND
|     
X    Y         X AND Y 
0      0          0 
0      1          0 
1      0          0 
1      1          1 
 |   
gerbang OR
fungsi
 logika OR adalah jika salah satu atau beberapa, atau semua inputnya 
berlogika 1, maka output menjadi berlogika 1. Dan sebaliknya output akan
 menjadi 0 hanya jika kesemua input adalah 0. OR ini memiliki input 
lebih dari 1.
fungsi logika OR
|     
X    Y         X OR Y 
0      0          0 
0      1          1 
1      0          1 
1      1          1 
 |   
Tri-State buffer
Buffer
 digunakan dan tidak akan mengubah level logika input-inputnya. 
peralatan ini biasanya digunakan untuk menyambungkan sinyal dari 2 buah 
peralatan dan juga digunakan untuk menguatkan sinyal-sinyal. Bufer ini 
memiliki input tunggal ditambah kontrol E.
Inverter
Inverter
 juga disebut dengan NOT, outputnya adalah selalu bernilai bertolak 
belakang dengan inputnya. Misalnya jika inputnya 0 maka outputnya 
menjadi 1 dan demikain sebaliknya. Inverter ini memiliki input tunggal.
fungsi logika INVerter
|     
Input       Output 
0               1 
1               0 
 |   
Gerbangan XOR
gerbang
 XOR melakukan operasi Exclusive-OR pada input-inputnya. XOR akan 
meghasilnya 1 jika salah 1 (namun bukan keduanya) inputnya adalah 1. Dan
 jika kedua input adalah 1, maka output XOR justru akan menjadi 0. Lihat
 XOR dalam tabel kebenaran. Fungsi ini dapat digunakan untuk 
membandingkan untuk melihat apakah 2 buah data adalah sama atau tidak. 
XOR ini memiliki input lebih dari 1.
fungsi logika XOR
|     
X    Y         X XOR Y 
0      0          0 
0      1          1 
1      0          1 
1      1          0 
 |   
gerbang NAND dan NOR
fungsi
 dari gerbang NAND adalah seperti dengan gerbang AND yang mana pabrik 
hanya menambahkan sebuah inverter pada outputnya. Sehingga outputnya 
akan menjadi 0 jika semua inputnya adalah 1. Dan output akan menjadi 1 
jika ada salah satu input atau semuanya berlogika 0. NAND dan NOR ini 
digunakan secara massive oleh desain komputer karena proses 
pembuatan dalam pabrik adalah sangat murah. Semua gerbang logika yang 
lain dapat diselenggarakan oleh kombinasi beberapa NAND dan NOR ini. 
Misalnya untuk membuat AND, OR, XOR, dan INV. Contoh sederhananya dari 
penggunaannya dapat dilihat pada gambar dibawah ini. NAND dan NOR ini 
memiliki input lebih dari 1. Sekali lagi unuk NAND jika semua inputnya 
adalah 1 maka outputnya akan menjadi 0. Dan untuk NOR, jika semua 
inputnya adalah 0, maka outputnya adalah 1. NAND dan NOR ini 
maisng-masing memiliki input lebih dari 1.
fungsi logika NAND
|     
X    Y         X NAND Y 
0      0          1 
0      1          1 
1      0          1 
1      1          0 
 |   
fungsi logika NOR
|     
X    Y         X NOR Y 
0      0          1 
0      1          0 
1      0          0 
1      1          0 
 |   
Rancangan logika dengan menggunakan gerbang-gerbang
Kemudian
 kita akan ditunjukkan desain logika sederhana untuk melakukan 
penambahan (ADD-ition) dari 2 buah bilangan biner. Jika kita hendak 
menambahkan 2 buah bilangan biner, maka akan muncul 4 kejadian yang bisa
 terjadi.
A + B     Carry     Sum
0 + 0       0        0
0 + 1       0        1
1 + 0       0        1
1 + 1       1        0
Perhatian
 saat kita menambahkan 1 + 1 termasuk dengan carry, pada digit bilangan 
yang lebih tinggi. Kita akan membutuhkan jumlah dan Carry (kelebihan) 
dan desain ini. Perhatikan bahwa kolom SUM (penjumlahan) di atas 
dihasilkan dari output fungsi XOR dan kemudian kolom Carry (Kelebihan) 
dihasilkan dari fungsi AND. Gambar 0-3 (a) menunjukkan implementasi dari
 adder sederhana. Gambar 0-3 (b) menunjukkan implementasi rangkaian logika yang sama dengan menggunakan gerbang AND dan OR.
Gambar 0-3 Implementasi dari Half-Adder
Gambar
 0-4 menujukkan diagram blok dari half-adder. Dua buah half-adder dapat 
dikompbinaskan dengan memnjadikkannya memiliki 3 buah input digital. Ini
 kemudian disebut dengan full-adder. Gambar 0-5 menunjukkan bagaiaamna 
dari diagram dari full-adder tersebut. Perhatikan pula bahwa blok 
diagram yang menyembunyikan detil dari rangkaian. Gambar 0-6 menunjukkan
 adder 3-bit dengan menggunakan 3 buah full-adder.
Gambar 0-4 Blok diagram dari Half-Adder
Gambar 0-5 Full-adder yang dibangun dengan menggunakan Half-Adder
Gambar 0-6 Adder 3-bit dengan menggunakan 3 buah Full-adder
Decoders
Contoh yang lain dari aplikasi gerbang logika adalah sebuah docoder.
 Decoder adalah digunakan secara luas sebagai pen-dekode-an alamat dari 
sebuah system komputer. Gambar 0-7 menunjukkan dekoder untuk 9 (biner 
1001), dan 5 (biner 0101) dengan menggunakan gerbang INV dan AND.
Gambar 0-7. Decoder alamat
Flip-Flop
Komponen
 system komputer yang juga digunakan secara luas adalah flip-flop. 
Paling banyak flip-flop ini digunakan sebagai memory untuk menyimpan 
data. Gambar 0-8 menunjukkan bagaimana diagram logika, diagram blok, 
tabel kebenaran untuk sebuah flip-flop.
Flip-flop
 type D, digunakan secara luas untuk mengunci data. Perhatikan tabel 
kebenaran, D-FF mengambil data dari input seiring dengan diaktifkannya 
Clock. Kemudian D-FF menahan statusnya (datanya) selama mungkin selama 
adanya listrik pada-nya.
Flip-flop type D inilah yang menjadi komponen utama dari RAM statis berkecepatan tinggi. Dan digunakan sampai sekarang.
Gambar 0-8. Flip-flop type D
SubBAB 0-3: Bagian dalam komputer
Pada
 bagian ini kita akan mengenalkan organisasi dari kerja internal dari 
sebuah komputer. Model yang digunakan adalah secara umum, namun konsep 
yang dibahas dapat diaplikasi pada semua komputer, termasuk IBM PC, 
PS/2, dan yang kompatible lainnya. Sebelum itu, akan sangat membantu 
jika kita me-review definisi dari beberapa terminologi yang digunakan 
secara luas dalam literatur komputer seperti K, mega, giga, byte, ROM, RAM, dan seterusnya.
Beberapa terminologi yang penting
Salah
 satu dari sekian banyak kelebihan terpenting dari komputer adalah 
berapa banyak jumlah memory yang dimilikinya. Kemudian kita dapat 
merujuk jumlah memory yang digunakan pada IBM PC atau yang kompatible. 
Mengingat apa yang sudah didiskusikan sebelumnya bahwa bit adalah binary
 digit yang hanya mungkin bernilai 0 dan 1. Sementara byte adalah 
sebutan untuk 8-bit.  Sementara Nibble adalah setengah dari byte, yakni 
4-bit. Word adalah 2 byte, atau 16-bit. Berikut ini adalah ilustrasi 
yang menampilkan ukuran relatif dari unit-unit tersebut. Tentu saja 
bahwa semua itu bisa dibangun dari logika 0 dan 1.
|     
bit                         0 
nibble                   0000 
byte                0000 0000 
word      0000 0000 0000 0000 
 |   
Kilobyte adalah 210 bytes, yng mana adalah 1024 bytes. Singkatan “K” kemudian digunakan sebagai kilobytes ini, misalnya “sebuah floppy disk memiliki kapasitas 356K bytes”. Megabytes (M) adalah 220 bytes, yang mana berarti 1.048.576 bytes (lebih dari 1 juta). Kemudian Gigabytes (G) adalah 230 bytes (lebihdari 1 milyar), dan Terabyte (T) adalah 240
 bytes (lebih dari 1 triliun). Contoh tentnag bagaimana orang menerapkan
 aturan ini, seperti pada sebuah komputer yang memiliki 16 Mbyte memory.
 Yang berarti 16 x 220 atau 24 x 220 atau 224. Sehingga 16 Mbytes berarti adalah 224 bytes.
Dua tipe memory yang paling terkenal adalah RAM (Random Access Memory) dan ROM (Read only Memory).
 RAM digunakan menyimpan data sementara saat program berjalan. Data di 
dalamnya akan hilang saat komputer dimatikan. Karena inilah RAM juga 
disebut dengan volatile memory. ROM berisikan program dan 
informasi paling mendasar untuk operasi dari komputer. Informasi dari 
ROM ini adalah bersifat permanen, dan tidak bisa diubah oleh user, dan 
tidak hilang jika komputer dimatikan. Sehingga juga disebut dengan non volatile memory.
Organisasai Internal dalam komputer
Bagian
 internal pada setiap komputer dapat dipisahkan menjadi 3 bagian: CPU 
(Central Processing Unit), memory, dan peralatan I/O (Input/Output). 
Fungsi dari CPU adalah untuk menjalankan informasi yang tersimpan pada 
memory. Sedang fungsi dari peralatan I/O seperti Keyboard, monitor Video
 digunakan oleh user manusia untuk berkomunikasi dengan CPU. CPU 
terhubung dengan memory dan I/O dengan menggunakan jalinan kabel yang 
disebut dengan bus (berumbung yang berisi banyak). Bus di dalam 
komputer membaca informasi dari satu tempat ke tempat lain, mirip dengan
 bus di jalan raya, yang datang mengangkut orang-orang dari tempat yang 
satu ke tempat yang lain. Pada setiap komputer ada 3 tipe dari bus ini, 
yakni bus alamat, bus data dan bus kontrol.
Agar
 peralatan lain (memory dan I/O) dimengerti oleh CPU, mereka harus 
menduduki alamatnya sendiri. Alamat yang diberikan harus unik, dan tidak
 boleh ada 2 peralatan yang menduduki alamat yang sama. CPU mengambil 
alamat (tentu saja dalam biner) pada bus alamat, dan unit rangkaian 
decoder yang kemudian menemukan atau menetukan alamat sebenarnya dari 
peralatan tersebut. Kemudian CPU menggunakan bus data untuk mengambil 
data dari peralatan itu, atau untuk megirimkan data pada peralatan 
tersebut. Bus kontrol digunakan untuk menyelenggarakan proses read/write
 tersebut dengan mengirimkan sinyal-sinyal yang mem-beri-tahu-kan bahwa 
CPU membutuhdan data atau hendak mengirimkan data. Dari 3 bus ini, bus 
alamat dan bus data yang menjelaskan kemampuan dari CPU.
Gambar 0-9 bagian dalam CPU
Penjelasan lebih jauh tentang bus data
Mengingat
 bus-bus data digunakan untuk membaca informasi dari dan ke CPU, semakin
 banyak bus yang tersedia, maka semakin bagus sebuah CPU itu. Jika 
sesorang berfikir bahwa bus-bus data adalah jalan tol, maka semakin 
lengang jalan tersebut maka semakin baik hubungan antara CPU dan 
peralatan eksternal lainnya (misalnya Printer, RAM, ROM, seperti pada 
gambar 0-10). Dengan cara yang sama, bahwa meningkatkan jumlah bus akan 
membuat meningkatnya jumlah biaya dari pembuatan system tersebut. Bus 
data yang lebih banyak akan membuat harga CPU atau computer menjadi 
lebih mahal. Ukuran yang umum dari bus-bus data ini adalah di antara 8 
s/d 64 bit. Komputer kuno seperti “Apple2″ menggunakan bus data 8-bit, 
sementara super-computer seperti “Cray” menggunakan data bus 64-bit. 
Data bus adalah bersifat 2 arah, mengingat CPU akan menggunakan mereka 
untuk mengiriman dan menerima data sekaligus. Kekuatan pemrosesan pada 
komputer berkaitan erat dengan ukuran dari bus, mengingat bus 8-bit 
hanya dapat mengirimkan data 1 byte dalam sekali kirim, sedang bus 
16-bit dapat mengirimkan data 2 byte dalam sekali kirim.
Lebih jauh tentang bus alamat
Karena
 bus alamat digunakan untuk menentukan identitas dari masing-masing 
peralatan atau memory yang terhubung pada CPU, maka semakin besar bus 
yang ada, semakin besar pula jumlah paralatan yang mungkin dapat 
dihubungkan kepadanya. Degan kata lain, jumlah dari bus alamat CPU 
menjelaskan jumlah lokasi yang mana dia mampu berkomunikasi. Jumlah 
lokasi tersebut selalu equal dengan 2x, dimana x berarti 
jumlah dari jalur bus alamat, seperti yang ada pada bus data. Misalnya 
CPU memiliki jalur alamat 16, yang dapat mengalamati 65.536 (116
 atau 64K byte) dari alamat-alamat memory. Setiap lokasi dapat diartikan
 untuk mengalamati 1 byte data. This is due to the fact that all 
general-purposes microprocessor CPUs are what called byte addressable.
 Misalnya juga, sebuah PC IBM 80186 yang memiliki jalur alamat 24 buah 
dan jalur data 16 buah. Dalam hal ini total memory yang bisa dialamati 
adalah 16 megabytes (224 = 16 MB). Dalam contoh ini maksudnya adalah terdapat 224 lokasi
 memory, karena setiap lokasi adalah 1 byte, sehingga total adalah 16 
megabyte memory yang bisa dialamati oleh komputer tersebut. Bus address 
(alamat) ini adalah tergolong sebagai unidiretional bus, yang 
mana berarti bahwa CPU menggunakan bus alamat ini hanya untuk mengirim 
keluar alamat-alamat. Singkatnya : Total jumlah dari lokasi memory yang 
bisa dialamati yang diberikan CPU selalu equal dengan 2x, di mana x adalah jumlah bit alamat, seperti yang terjadi pula pada bus data.
Gambar 0-10 : Organisasi Internal, dalam Komputer
CPU dan hubugannya dengan RAM dan ROM
Agar
 CPU dapat memproses informasi, data harus disimpan pada dalam RAM atau 
ROM. Fungsi dari ROM dalam komputer adalah untuk memberikan informasi 
yang mana informasi tersebut bersifat tetap dan permanen. Informasi ini 
bisa seperti table dari pola karakter yang mungkin digunakan untuk 
menampilkan hasil perhitungan pada display monitor, atau program yang 
esensial (mendasar) agar komputer dapat bekerja, misalnya program untuk 
menguji atau menghitung jumlah RAM yang terpasanag dalam system, dan 
menampilkan hasilnya pada layar monitor. Hal ini berbeda dengan RAM yang
 digunakan untuk menyimpan informasi yang tidak bisa permanen. Dan dapat
 diubah-ubah setiap saat. Misalnya untuk komputer IBM PC, RAM diubah 
oleh beberapa operating system berbeda atau aplikasi lain, misalnya Word
 Proccessing atau Penghitung Pajak dll. Aplikasi ini di-load ke dalam 
RAM, kemudian CPU menjalankan program yang telah di-load tersebut. CPU 
mungkin tidak dapat menjalankan program langsung dari disk, karena disk 
memiliki kecepatan yang sangat rendah. Atau denga kata lain, CPU hendak 
mengambil informasi untuk diproses, pertama dilihat dari RAM atau ROM. 
Jika ternyata tidak ada maka CPU akan mencarinya di dalam Disk, kemudian
 menyalin isinya pada RAM. Untuk alasan ini RAM dan ROM disebut dengan primary memory dan disk disebut sebagai secondary memory. Gambar 0-11 menunjukkan diagram blok dari organisassi internal dari sebuah PC.
Dalam
 mikrokontroller, yang umumnya hanya memiliki hanya 1 buah program yang 
disimpan dalam ROM. Dan CPU dapat menggunakan RAM untuk menyimpan 
variable-variable tertentu yang digunakan untuk keperluan dalam program 
tersebut. Misalnya untuk menyimpan data yang dibaca dari port. Atau 
menyimpan kerakter yang nanti hendak ditampilkan pada Monitor.
Bagian dalam CPU
Program
 disimpan dalam memory untuk memberikan instruksi pada CPU agar dia 
dapat berjalan. Kerja dari CPU ini secara sederhaa adalah untuk menambha
 data seperti meis kasir atau mengontrol mesin seperti robot. Hal ini 
adalah fungsi dari CPU untuk mnerima inforamsi dari memory (fetch) dan 
kemudian menjalankannaya (execute). Untuk menyelenggarakan fetch and execute terssebut CPU harus dilengkapi dengan sumber daya semacam berikut:
1. Salah satu hal yang penting dari CPU adalah adanya beberap abuah regsiter. CPU mengunakan register
 untuk menyimpan informasi secara sementara. Informasi mungkin 2 jenis, 
yakni sebauh nilai yang bisa langsung diproses, atau sebuah nilai dari 
sebuah alamat dari sebuah nilai lain yang harus diambil untuk bisa 
diproses. register dalam CPU bisa 8-bit, 16-bit, 32-bit atau 64-bit, 
tergantung dari seberap aperkasanya CPU. Sehingga CPU yang baik harusnya
 memiliki register yang banyak dan besar. Tentu saja dengan demikian 
tingkat kesulitan pembuatannya juga semakin tinggi, sehingga semakin 
mahal harganya.
2. CPU harus juga memiliki ALU (Aritmatic/Logic Unit).
 Bagian ALU dalam CPU adalah yang paling bertanggung jawab ataas proses 
perhitungan matematika seperti add, subtract, multiply, divide, dan 
dungsi logika seperti AND, OR, XOR dan NOT.
3. Setiap CPU harus memiliki apa yang disebut dengan Program Counter.
 Fungsi dari Program Cotner ini adalah untuk menunjuk alamat dari 
instruksi yang hendak dilaksanakan.. Setaip satu instruksi dilaksanakan,
 maka isi program counter ini akan di-INC-rement ke alamata selanjutnya 
untuk dilaksanakan kemudian. Dalam mikro kontroller program Counter ini 
disingkat sebagai “PC”, sedang pada komputer IBM -PC disebut dengan IP 
atau Instruction Pointer.
4. Fungsi dari “instruction decoder” adalah mengartikan instruksi yang diterima oleh CPU. Orang bia berfikir bahwa instruction decoder ini
 adalah sbeuah kamus, yang menyimpan arti dari setiap instrukis dan apa 
yang harus dikerjakan oleh CPU setelah menerima instruksi tersebut. 
Persis seperti kamus, semakin banyak instrkki yang hendak diartikan, 
maka semakin banyak instruksi yang bis diterjemahkan oleh CPU, dan juga 
semakin banyak jumlah transistor yang harus ditanam ke dalam CPU.
Proses kerja dalam komputer
Untuk mendemonstrasikan beberapa konsep yang dibahas sebelumnya, analisys langkah demi langkah dari proses CPU
akan
 menuntun kita, yakni dengan cara menambhakan 3 nilai berbeda yang akan 
ditemui nanti. Menganggap bahwa seolah CPU memiliki register-regsiter 
sebutlah A, B, C, dan D. Dia juga memiliki 8-bit bus data dan bus alamat
 16-bit. Sehingga CPU dana mengakses emory dari alamat 0000h s/d FFFFh 
(untuk jumlah total 10000h). Tindakan yang harus dilakukan adalah CPU 
harus mengambil nilai heksadesimal 21 dan menyimpannya pada register A, 
dan kemudian menambahkannya dengan nilai 42h dan 12h. Anggaplah bahwa 
kode untuk CPU tersebut untuk memindahkan nilai pada register A adalah 
1011 0000 (B0h) dan kode untuk menambahkan nilai pada register A adalah 
0000 0100 (04h). Langkah yang penting dan kode untuk melaksanakannya 
adalah seperti berikut ini.
Tindakan                               Kode        Data
Salin nilai 21h pada register A        80h        21h
Tambahkan nilai 42h pada register A    04h        42h
Tambahkan nilai 12h pada register A    04h        12h
Jika
 program untuk melakukan tindakan seperti di atas adalah tersimpan pada 
memory pada lokasi dimulai dari 1400h, berikut ini adalah isi memory 
selengkapnya sesuai dengan kode di atas.
Alamat memory         Isi dari alamat memory
1400                  (B0) kode untuk memindahkan nilai ke register A
1401                  (21) nilai yang hendak dipindah
1402                  (04) kode untuk menambahkan nilai ke register A
1403                  (42) nilai yang hendak dipindah
1404                  (04) kode untuk menambahkan nilai ke register A
1405                  (12) nilai yang hendak dipindah
1406                  (F4) kode untuk HALT
Tindakan yang diambil oleh CPU untuk menjalankan program di atas adalah seperti berikut ini:
1.
 Program-Counter (CP) dapat bernilai di antara 0000 s/d FFFFh. 
Program-Counter harus diatur pada 1400h (lokasi instruksi pertama dari 
program di atas). Setelah program-counter siap, yakni dengan menunjuk 
alamat instruksi pertama yang akan segera dilaksanakan
2.
 CPU mengaplikasikan 1400h pada bus alamat dan mengirimkannya keluar. 
Rangkaian memory Menentukan lokasi yang diminta oleh CPU, dan kemudian 
CPU menerbitkan perintah sinyal READ, yang mengindikasikan kepada 
memory, bahwa CPU membutuhkan data byte pada lokasi 1400 tersebut. Hal 
ini membuat isi dalam lokasi 1400h, yakni B0h, kemudian dikirimkan oleh 
memory pada CPU melalui bus data.
3. CPU kemudian menterjemahkan instruksi B0 tersebut dengan menggunakan bantuan “kamus” milik Instruction Decoder.
 Saat mencari definisi dari instruksi tersebut, kemudian diketahui bahwa
 instruksi tersebut ternyata berarti CPU harus membaca data yang 
letaknya berada pada lokasi memory selanjut (1401h), yang harus 
dikirimkan kepada register A. Saat data 21h dikirimkan oleh CPU dari 
memory lokasi 1401h ke dalam register A tersebut, CPU harus memastikan 
bahwa pintu-pintu pada register yang lain harus tertutup, kecuali untuk 
register A. Sehingga nilai 21h tersebut dapat dikirimkan langsung pada 
register A. Seteleh menyelesaikan instruksi ini, maka Program-Counter 
akan menunjukkan instruksi selanjutnya. Yakni dalam hal ini adalah 
menunjuk lokasi memory 1402h. Alamat 1402 dikirim kemudian oeh CPU, 
sebelum CPU membaca instruksi berikutnya.
4.
 Dari lokasi memory 1402h dikirim kode 04h. Setelah diterjemahkan 
ternyata berarti, ada sesuatu yang harus ditambahkan pada register A. 
Yakni byte yang lokasinya setelah instruksi, yakni lokasi 1403h. Setelah
 membawa data tersebut ke dalam CPU (yakni 42h), maka oleh peralatan ALU
 ke dua bilangan tersebut ditambahkan. Setelah proses penambahan terjadi
 maka hasil dari ALU tersebut dikembalikan pada register A lagi. 
Sementara itu Program-Counter sekarang telah menunjuk alamat 1404h, 
sebagai alamat dari instruksi selanjutnya.
5.
 Alamat 1404h diberikan pada bus alamat, dan datanya diberikan pada CPU,
 diterjemahkan, dan dijalankan. Kode ini ternyata juga melakukan 
penambahan terhadap register A. Kemudian Program-Counter menjadi 1406h.
6.
 Terakhir, isi dari alamat 1406 ini diambil dan dijalankan. Ternyata 
adalah perintah HALT. Yang memerintahkan CPU untuk berhenti bekerja dan 
tidak menambahkan isi PC (Program-Couter) lagi untuk menanyakan 
instruksi berikutnya. Setelah CPU dipaksa keluar dari kondisi HALT, maka
 komputer kembali menambahkan PC dan menjalankan instruksi berikutnya.
Sekarang
 bagaimana jika alamat 1403 isinya kita ubah dari 42 menjadi 04. 
Bagaimana komputer dapat membedakan kemudian dengan kode 04 atau data 04
 yang akan ditambahkan? Ingat bahwa kode 04 untuk CPU ini adalah berarti
 memindahkan nilai berikutnya kepada register A. Sehingga komputer tidak
 perlu untuk men-dekode-kan lagi data byte berikunya. Dia akan segera 
untuk memindahkan isi dari memory tersebut pada register A.
Gambar 0-11 Blok diagram internal dari CPU
RINGKASAN
System
 bilangan biner merepresentasikan semua bilangan dengan kombinasi dari 
digit-digit biner, yakni 0 dan 1. Penggunaan system biner dibutuhkan 
komputer digital karena hanya 2 hal itu yang direpresntaskan komputer, 
yakni On dan Off. Segala jenis bilangan biner dapat diubah dan 
dikonversi menjadi padanannya dengan heksadesimal, dan begitu pula 
sebaliknya. Bilangan kode ASCII adalah bilangan biner yang 
merepresentasikan data alphanumerik dalam proses internal CPU.
Gerbang
 logika AND, OR dan Inverter adalah dasar dari membangun rangkaian blok 
sederhana. Gerbang NAND, NOR, dan XOR juga digunakan untuk 
mengimplementasikan desain rangkaian. Diagram half-adder dan full-adder 
diberikan berikut contohnya dalam penggunaan gerbang logika untuk desain
 rangkaian. Decoder digunakan untuk mendeteksi alamat-alamat. Flip-flop 
digunakan untuk mengunci data sampai rangkaian lain mengubahnya.
Komponen
 utama dari berbagai system komputer adalah CPU, memory dan paralatan 
I/O. Memory terbagi menjadi 2 jenis, yakni sifatnya yang “sementara” 
dan/atau “permanen” dalam menyimpan data. Dalam beberapa komputer, 
memory diakses dalam byte atau word. Istilah Kilobytes, megabytes, Gigabytes, dan Terabytes digunakan untuk menyingkat jumlah byte yang sangat banyak. Ada 2 jenis utama dari sebuah memory, yakni RAM dan ROM. RAM (Random Access Memory) digunakan untum menyimpan data/kode secara sementara. Sementara ROM (Read Only Memory)
 digunakan untuk menyimpan data/kode secara permanen, yang biasanya ini 
digunakan oleh CPU untuk menyimpan instruksi-istruksi yang akan 
dijalankan agar CPU dapat bekerja. Semua komponen dari system komputer 
dapat dikontrol oleh CPU. Peralatan pelengkap semacam I/O (input/output)
 memberian kesempatan pada CPU untuk berkomunikasi dengan manusia atau 
juga system komputer yang lain.
Ada
 3 tipe bus untuk sebuah komputer: bus alamat, bus data, dan bus 
kontrol. Yang bus-bus ini digunakan CPU untuk menghubungi peralaan 
lainnya. Bus data digunakan untuk mengirimkan inforamasi di antara CPU 
dan peralatan lainnya.
 Home
Geen opmerkings nie:
Plaas 'n opmerking