rangakain logika

22
BAB 2 LANDASAN TEORI 2.1 Rangkaian Logika Rangkaian logika terbentuk dari hubungan beberapa gerbang (gate) logika. Rangkaian logika bekerja secara digital. Output dari suatu rangkaian logika ditentukan oleh karakterisitik dan hubungan dari gerbang-gerbang yang digunakan. Berikut ini akan dibahas gerbang logika yang umum digunakan di dalam suatu rangkaian logika. 2.1.1 Gerbang Logika Gerbang (gate) logika adalah suatu rangkaian digital yang mempunyai satu atau lebih input dan hanya mempunyai satu output (Malvino, 1983, hal:23). Output gerbang logika ini tergantung sinyal yang diberikan pada input-nya. Hal ini dapat kita lihat pada persamaan aljabar Boole dan tabel kebenaran yang dimiliki oleh setiap gerbang logika. Aljabar Boole juga memberikan persamaan untuk setiap gerbang serta memberi simbol untuk operasi gerbang tersebut. Suatu rangkaian digital dapat dibangun dari sejumlah gerbang logika. Dari persamaan untuk setiap gerbang dan tabel kebenaran tiap gerbang logika, maka dengan menggabungkan beberapa gerbang ini akan didapat operasi logika sesuai dengan keinginan dan tujuan yang diharapkan sehingga terbentuklah suatu rangkaian digital yang akan membangun sistem yang diinginkan. Adapun gerbang logika dasar adalah NOT, AND dan OR. Sedangkan gerbang NAND, NOR, XOR, XNOR merupakan gerbang yang dibentuk dari gabungan beberapa gerbang dasar. Universitas Sumatera Utara

Upload: m-taufik-pratomo

Post on 27-Oct-2015

96 views

Category:

Documents


1 download

DESCRIPTION

Test

TRANSCRIPT

BAB 2

LANDASAN TEORI

2.1 Rangkaian Logika

Rangkaian logika terbentuk dari hubungan beberapa gerbang (gate) logika. Rangkaian

logika bekerja secara digital. Output dari suatu rangkaian logika ditentukan oleh

karakterisitik dan hubungan dari gerbang-gerbang yang digunakan. Berikut ini akan

dibahas gerbang logika yang umum digunakan di dalam suatu rangkaian logika.

2.1.1 Gerbang Logika

Gerbang (gate) logika adalah suatu rangkaian digital yang mempunyai satu atau lebih

input dan hanya mempunyai satu output (Malvino, 1983, hal:23). Output gerbang

logika ini tergantung sinyal yang diberikan pada input-nya. Hal ini dapat kita lihat

pada persamaan aljabar Boole dan tabel kebenaran yang dimiliki oleh setiap gerbang

logika. Aljabar Boole juga memberikan persamaan untuk setiap gerbang serta

memberi simbol untuk operasi gerbang tersebut. Suatu rangkaian digital dapat

dibangun dari sejumlah gerbang logika. Dari persamaan untuk setiap gerbang dan

tabel kebenaran tiap gerbang logika, maka dengan menggabungkan beberapa gerbang

ini akan didapat operasi logika sesuai dengan keinginan dan tujuan yang diharapkan

sehingga terbentuklah suatu rangkaian digital yang akan membangun sistem yang

diinginkan. Adapun gerbang logika dasar adalah NOT, AND dan OR. Sedangkan

gerbang NAND, NOR, XOR, XNOR merupakan gerbang yang dibentuk dari

gabungan beberapa gerbang dasar.

Universitas Sumatera Utara

1. Gerbang NOT

Gerbang NOT disebut juga inverter, gerbang ini hanya mempunyai satu input dan satu

output. Persamaan logika aljabar Boole untuk output gerbang NOT adalah AY = .

Jadi output gerbang NOT selalu merupakan kebalikan dari input-nya. Jika input

diberikan logika tinggi maka pada output akan dihasilkan logika rendah, dan pada saat

input diberikan logika rendah maka pada output akan dihasilkan logika tinggi

(Tokheim, 1995). Simbol gerbang NOT diperlihatkan pada Gambar 2.1 dan tabel

kebenaran gerbang NOT diperlihatkan pada Tabel 2.1.

(a). Simbol (b). Persamaan Logika

Gambar 2.1 Gerbang NOT

Tabel 2.1 Tabel Kebenaran Gerbang NOT

A AY = 0 1 1 0

Dengan menggabungkan dua buah inverter, akan diperoleh suatu penguatan

non inverting (tak membalik). Operasi penguat ini akan selalu sama antara input dan

output, dimana jika input berlogika tinggi maka output juga berlogika tinggi dan jika

input berlogika rendah maka output juga berlogika rendah. Jadi tegangan masukan

selalu sama dengan tegangan keluaran. Penggunaaan utama dari penguat tak

membalik ini adalah sebagai buffer (penyangga/memberikan isolasi) antara dua

rangkaian (Tokheim, 1995, hal:35). Diagram rangkaian inverter ganda ini

diperlihatkan pada Gambar 2.2, dan tabel kebenarannya diperlihatkan pada Tabel 2.2.

A Y AY =

Universitas Sumatera Utara

Gambar 2.2 Inverter Ganda

Tabel 2.2 Tabel Kebenaran Inverter Ganda

A Y 0 0 1 1

2. Gerbang AND

Gerbang AND adalah gerbang logika yang terdiri dari dua atau lebih input dan hanya

memiliki satu output. Output gerbang AND akan tinggi hanya jika semua input tinggi,

dan jika salah satu atau lebih input berlogika rendah maka output akan rendah.

Persamaan logika aljabar Boole gerbang AND adalah Y=A.B. Pada Aljabar Boole

operasi gerbang AND diberi tanda ”kali” atau tanda ”titik” (Malvino, 1983). Simbol

gerbang AND ditunjukkan pada Gambar 2.3. Tabel kebenaran diperlihatkan pada

Tabel 2.3.

(a). Simbol (b). Persamaan Logika

Gambar 2.3 Gerbang AND

Tabel 2.3 Tabel Kebenaran Gerbang AND

A B Y = A.B 0 0 0 0 1 0 1 0 0 1 1 1

A Y

A B

YQ

BAY .=

Universitas Sumatera Utara

3. Gerbang OR

Gerbang OR adalah gerbang logika dasar yang mempunyai dua atau lebih input dan

hanya memiliki satu output. Output gerbang OR akan berlogika tinggi apabila salah

satu atau lebih input ada yang berlogika tinggi, dan output akan berlogika rendah

hanya pada saat seluruh input berlogika rendah. Persamaan logika aljabar Boole untuk

output gerbang OR adalah Y=A+B. Pada aljabar Boole operasi gerbang OR diberi

tanda ”tambah” (Malvino, 1983). Simbol gerbang OR ini ditunjukkan pada Gambar

2.4 dan tabel kebenaran gerbang OR diperlihatkan Tabel 2.4.

(a). Simbol (b). Persamaan Logika

Gambar 2.4 Gerbang OR

Tabel 2.4 Tabel Kebenaran Gerbang OR

A B Y=A+B 0 0 0 0 1 1 1 0 1 1 1 1

4. Gerbang NAND

Gerbang NAND merupakan gabungan dari gerbang AND dan NOT. Output gerbang

NAND selalu merupakan kebalikan dari output gerbang AND untuk input yang sama.

Jadi output akan berlogika tinggi jika salah satu atau lebih input-nya berlogika rendah,

dan output akan berlogika rendah hanya pada saat semua input-nya berlogika tinggi.

Persamaan logika aljabar Boole untuk output gerbang NAND adalah

BAY .= (Tokheim, 1995). Simbol gerbang NAND ini ditunjukkan pada Gambar 2.5.

Tabel kebenaran gerbang NAND diperlihatkan pada Tabel 2.5.

BAY +=

Universitas Sumatera Utara

(a). Simbol (b). Persamaan Logika

Gambar 2.5 Gerbang NAND

Tabel 2.5 Tabel Kebenaran Gerbang NAND

A B BAY .= 0 0 1 0 1 1 1 0 1 1 1 0

5. Gerbang NOR

Gerbang NOR merupakan gabungan dari gerbang OR dan NOT. Output gerbang NOR

selalu merupakan kebalikan dari output gerbang OR untuk input yang sama. Jadi

output akan berlogika rendah jika salah satu atau lebih input-nya berlogika tinggi, dan

output akan berlogika tinggi hanya pada saat semua input berlogika rendah.

Persamaan logika aljabar Boole untuk output gerbang NOR adalah BAY +=

(Tokheim, 1995). Simbol gerbang NOR ini diperlihatkan pada Gambar 2.6 dan tabel

kebenaran diperlihatkan pada Tabel 2.6.

(a). Simbol (b). Persamaan Logika

Gambar 2.6 Gerbang NOR

Tabel 2.6 Tabel Kebenaran Gerbang NOR

A B BAY += 0 0 1 0 1 0 1 0 0 1 1 0

A B

Y BAY .=

Y BAY +=

Universitas Sumatera Utara

6. Gerbang XOR

Simbol dari gerbang Eksklusif OR (XOR) dengan 2 variabel input dan satu buah

output diperlihatkan pada Gambar 2.7. Tabel kebenarannya dapat dilihat pada Tabel

2.7. Dari tabel kebenaran XOR, dapat dilihat bahwa output pada logik 1 jika salah satu

input pada keadaan logik 0 atau logik 1, sedangkan output pada keadaan logik 0

apabila kedua logik input sama. (Tokheim, 1995). Persamaan logika aljabar Boole

untuk output gerbang XOR adalah BABABAY +=⊕= .

(a). Simbol (b). Persamaan Logika

Gambar 2.7 Gerbang XOR

Tabel 2.7 Tabel Kebenaran Gerbang XOR

A B BABABAY +=⊕= 0 0 0 0 1 1 1 0 1 1 1 0

7. Gerbang XNOR

Simbol dari gerbang Eksklusif NOR (XNOR) dengan 2 variabel input dan satu buah

output diperlihatkan pada Gambar 2.8. Tabel kebenaran gerbang XNOR diperlihatkan

pada Tabel 2.8. Dari tabel kebenaran, dapat dilihat bahwa output pada keadaan logik 1

apabila input yang diberikan pada logik yang sama seperti A = 1 dan B = 1 atau input

A = 0 dan B = 0. Sedangkan output pada logik 0 jika input yang diberikan berlawanan.

Persamaan logika aljabar Boole untuk output gerbang XOR adalah

BAABBAY +=⊕= (Tokheim, 1995).

Y BABABAY +=⊕=

Universitas Sumatera Utara

(a). Simbol (b). Persamaan Logika

Gambar 2.8 Gerbang XNOR

Tabel 2.8 Tabel Kebenaran Gerbang XNOR

A B BAABBAY +=⊕= 0 0 1 0 1 0 1 0 0 1 1 1

2.1.2 Aljabar Boole

Aljabar Boole menyatakan ungkapan logika dari hubungan antara masukan dan

keluaran dari satu atau kombinasi beberapa buah gerbang logika (Malvino, 1985).

Penulisan ekspresi Boolean untuk suatu gerbang, misalnya gerbang AND dituliskan :

(A.B) dan untuk gerbang NAND dituliskan : ).( BA (Tokheim, 1995). Dalam penulisan

ekspresi Boolean, simbol yang digunakan untuk masing-masing operator adalah tanda

plus (+) untuk operator or, tanda bintang (*) untuk operator and dan tanpa petik

tunggal (’) untuk operator not (Munir, 2007). Aljabar Boole memiliki hubungan-

hubungan dasar sebagaimana dikenal dalam aljabar biasa, yakni:

1. Hukum Komutatif

A + B = B + A

A.B = B.A

2. Hukum Assosiatif

A + (B + C) = (A + B) + C

A .(B.C) = (A.B).C

3. Hukum Distributif

A.(B + C) = A.B + A.C

Beberapa ketentuan persamaan Boole yang lain adalah:

1. A + 0 = A

Y BAABBAY +=⊕=

Universitas Sumatera Utara

2. A + A = A

3. A + 1 = 1

4. 1AA =+

5. A 1 = A

6. A A = A

7. A 0 = 0

8. 0AA =⋅

9. BABA =+

10. BABA +=

2.3 Struktur Data

Struktur data memiliki peran yang penting dalam pembuatan sebuah program. Alokasi

memori untuk menampung data yang akan diolah oleh program ditentukan melalui

struktur data. Di dalam pemodelan ini beberapa struktur data yang digunakan adalah

struktur data tumpukan (stack) dan struktur data pohon biner (binary tree).

2.3.1 Tumpukan (Stack)

Tumpukan (stack) termasuk struktur data linier dimana elemennya boleh ditambahkan

dan dihapus hanya dari satu ujung yang sama. Tumpukan merupakan suatu daftar

elemen-elemen dimana elemen hanya boleh disisipkan dan dihapus (diambil) hanya

pada satu ujung yang sama. Secara sederhana, tumpukan dapat digambarkan sebagai

suatu kumpulan data yang seolah-olah suatu data diletakkan di atas data yang lain. Hal

yang perlu diingat tentang tumpukan adalah bahwa data ditambahkan (disisipkan) dan

diambil (dihapus) dari ujung yang sama, yang disebut sebagai ujung atas tumpukan

(top of stack).

Tumpukan dapat digambarkan seperti pada Gambar 2.9 yakni (a) tumpukan

piring, (b) tumpukan kotak. Pada Gambar 2.9 terlihat bahwa kotak B diletakkan di

Universitas Sumatera Utara

atas kotak A dan kotak C diletakkan di atas kotak B dan seterusnya. Menambah atau

mengambil sebuah kotak dapat dilakukan lewat ujung bagian atas. Dengan illustrasi

ini dapat dilihat bahwa tumpukan merupakan kumpulan data yang sifatnya dinamis,

artinya elemen tumpukan dapat ditambahkan dan dapat dikurangi (diambil). Jika

dilihat dari sisi penyisipan dan penghapusan data, maka tumpukan juga dikenal

dengan daftar masuk-terakhir-keluar-pertama (Last In First Out (LIFO) List) (Santosa,

1992, hal:72).

(a). Tumpukan piring (b).Tumpukan kotak

Gambar 2.9 Illustrasi suatu tumpukan

2.3.1.1 Penyajian Tumpukan

Penyajian tumpukan dapat dilakukan dengan menggunakan tipe data terstruktur

berlarik (array) dengan anggapan bahwa banyaknya elemen tidak boleh melebihi

batas maksimum tumpukan. Dengan demikian diperlukan suatu variabel untuk

mencatat posisi ujung tumpukan (Top). Nilai variabel ini akan bertambah satu, setiap

menambahkan satu selemen dan berkurang satu, setiap penghapusan satu data.

Dengan anggapan ini, maka tumpukan dapat dideklarasikan sebagai berikut :

const MaxStack = 255 Type TipeStack Info(MaxStack) as String*1 Top as byte End Type Dim Tumpukan as TipeStack

Dengan deklarasi di atas, elemen tumpukan tersimpan dalam larik

Tumpukan.Info yang bertipe string*1 (menampung 1 karakter). Banyaknya elemen

A B C D

Universitas Sumatera Utara

tumpukan maksimum adalah sebesar MaxStack, yang dalam hal ini terdiri dari 255

elemen.

Banyak elemen yang terdapat di dalam suatu tumpukan dinyatakan dengan

Tumpukan.Top. Tumpukan.Top sekaligus menunjukkan posisi elemen terakhir/teratas

dalam tumpukan yang dimaksud. Sebagai contoh, jika Tumpukan.Top = 7, berarti

dalam tumpukan terdapat 7 elemen yaitu Tumpukan.Info(1), . . . , Tumpukan.Info(7).

Jika sebuah data yang diambil, maka nilai field Tumpukan.Top dikurangi 1 menjadi 6,

yang berarti Tumpukan.Info(6) menjadi elemen teratas setelah pengambilan data.

Sebaliknya, jika sebuah data ditambahkan ke tumpukan, maka nilai Tumpukan.Top

ditambah dengan 1 menjadi 7, sehingga Tumpukan.Info(8) adalah elemen teratas

(Santosa, 1992).

2.3.1.2 Operasi Pada Tumpukan

Ada dua operasi dasar yang dapat dilakukan pada sebuah tumpukan yaitu operasi

menambahkan data dan menghapus data. Operasi menambahkan data umumnya

dikenal dengan istilah ”push” data dan menghapus atau mengambil data dikenal

dengan istilah ”pop” data.

Berdasarkan deklarasi tumpukan seperti di atas, maka prosedur operasi push,

yakni untuk menambahkan data ke tumpukan dijelaskan sebagai berikut.

Prosedur PUSH (STACK, TOP, MAXSTACK, ITEM); Prosedur ini digunakan untuk

menambahkan ITEM ke STACK (Lipschutz, S. 1986).

1. [Periksa apakah STACK layak diisi]

If TOP = MAXSTACK Then PRINT ”OVERFLOW” : RETURN

Kondisi OVERFLOW menyatakan STACK telah penuh.

2. [Naikkan nilai TOP dengan 1]

TOP = TOP + 1

3. [Sisipkan ITEM ke posisi TOP yang baru]

STACK[TOP] = ITEM

4. RETURN

Universitas Sumatera Utara

Prosedur operasi pop, yakni mengambil data atau menghapus data dari

tumpukan, dijelaskan sebagai berikut.

Prosedur POP(STACK, TOP, ITEM); Prosedur ini menghapus elemen TOP dari

STACK dan menyimpannya ke variabel ITEM (Lipschutz, S. 1986).

1. [Periksa apakah STACK layak diisi]

If TOP = 0 Then PRINT ”UNDERFLOW” : RETURN

Kondisi UNDERFLOW menyatakan STACK telah kosong.

2. [Simpan elemen TOP ke ITEM]

ITEM = STACK[TOP]

3. [Turunkan nilai TOP dengan 1]

TOP = TOP – 1

4. RETURN

2.3.1.3 Implementasi Tumpukan

Tumpukan bisa digunakan untuk menangani pengolahan ungkapan numeris secara

umum. Dalam tulisan ini tumpukan akan digunakan untuk menangani pengolahan

ungkapan aljabar Boole, yakni untuk mengubah notasi infix menjadi notasi postfix.

Selanjutnya tumpukan juga akan digunakan untuk mengevaluasi ungkapan aljabar

Boole tersebut, sehingga diperoleh output dari suatu ungkapan. Dimana ungkapan

aljabar Boole terbentuk sesuai dengan susunan gerbang logika.

Berikut ini adalah algoritma transformasi ekspresi infix ke postfix dengan

menggunakan tumpukan, dimana Q adalah eskpresi infix dan P adalah ekspresi

postfix. (Lipschutz, S. 1986).

1. Push ”(” ke stack, dan tambahkan ”)” ke akhir Q.

2. Telusuri Q dari kiri ke kanan dan ulangi langkah 3 hingga 6 untuk setiap elemen

dari Q sampai stack kosong.

3. Jika sebuah operand dijumpai, tambahkan ke P.

4. Jika buka kurung dijumpai, push ke stack.

5. Jika operator :

Universitas Sumatera Utara

a. Secara berulang pop dari stack dan tambahkan ke P setiap operator (pada

puncak stack) yang memiliki preseden sama atau lebih tinggi dari preseden

.

b. Tambahkan ke stack.

[Akhir struktur jika]

6. Jika tutup kurung dijumpai, maka”

a. Secara berulang pop dari stack dan tambahkan ke P setiap operator (pada

puncak stack) hingga buka kurung dijumpai.

b. Hapus buka kurung. [Jangan menambahkan buka kurung ke P].

[Akhir struktur jika]

[Akhir perulangan pada langkah 2]

7. Keluar.

Tumpukan (stack) juga dapat digunakan untuk mengevaluasi ekpresi yang

dituliskan dengan notasi postfix. Berikut ini adalah algoritma untuk mengevaluasi

ekspresi dengan notasi postfix; P merupakan ekspresi postfix (Lipschutz, S. 1986).

1. Tambahkan buka kurung ”)” di akhir P. [Hal ini bertindak sebagai sentinel

(pembatas)].

2. Telusuri P dari kiri ke kanan, dan ulangi langkah 3 dan 4 untuk setiap elemen P

hingga sentinel ”)” dicapai.

3. Jika sebuah operand dijumpai, letakkan ke stack.

4. Jika sebuah operator dijumpai, maka:

a. Hapus dua buah elemen puncak dari stack, dimana A adalah elemen top,

dan B adalah elemen berikutnya (di bawah top).

b. Evaluasi BA

c. Letakkan hasil b kembali ke stack.

[Akhir struktur jika]

[Akhir perulangan pada langkah 2]

5. Hasil akhir adalah nilai yang terdapat pada elemen top dari stack.

6. Keluar.

Universitas Sumatera Utara

2.3.1.4 Penulisan Ungkapan Numeris

Penulisan ungkapan logika menyerupai penulisan ungkapan numeris, hanya saja

operator yang digunakan pada penulisan ungkapan logika adalah penjumlahan dan

perkalian. Salah satu pemanfaatan tumpukan adalah untuk menulis ungkapan

matematika dengan menggunakan notasi tertentu. Seperti kita ketahui, dalam

penulisan ungkapan, khususnya ungkapan numerik, kita selalu menggunakan tanda

kurung untuk mengelompokkan bagian mana yang harus dikerjakan lebih dahulu

(Santosa, 1992). Sebagai contoh ungkapan numeris:

(A + B) * (C – D)

suku (A+B) akan dikerjakan lebih dahulu, kemudian suku (C–D), dan terakhir

mengalikan hasil yang diperoleh dari dua suku ini. Sedangkan pada ungkapan :

A + B * C – D

maka B * C akan dikerjakan lebih dahulu, diikuti yang lain. Dalam hal ini pemakaian

tanda kurung akan sangat mempengaruhi hasil akhir. Cara penulisan ungkapan sering

disebut dengan notasi infix, yang artinya adalah operator ditulis di antara dua operand.

Dalam ungkapan-ungkapan yang rumit, pemakaian tanda kurung ini tidak bisa

dihindari. Semakin rumit suatu ungkapan semakin banyak dibutuhkan tanda kurung.

Hal ini membawa suatu konsekwensi bahwa penulisan tanda kurung itupun harus

benar-benar terhindar dari kesalahan.

Seorang ahli matematika yang bernama Jan Lukasiewicz kemudian

mengembangkan satu cara penulisan ungkapan numeris yang selanjutnya disebut

notasi polish atau notasi prefix, yang artinya adalah bahwa operator ditulis sebelum

kedua operand yang akan disajikan. Berikut disajikan beberapa contoh notasi prefix

dari notasi infix (notasi ^ adalah simbol perpangkatan):

Universitas Sumatera Utara

Infix Prefix

A + B + A B

A + B – C - + A B C

(A + B) * (C – D) * + A B – C D

A – B / (C * D ^ E) - A / B * C ^ D E

Secara sederhana, proses konversi dari infix menjadi prefix dijelaskan sebagai

berikut. Misalnya ungkapan yang akan dikonversikan adalah:

(A + B) * (C – D)

Dengan menggunakan tanda kurung bantuan, ungkapan di atas diubah

menjadi:

[+ A B] * [ - C D]

Jika [- A B] dimisalkan P, dan [- C D] dimisalkan Q maka ungkapan di atas

bisa ditulis sebagai:

P * Q

Selanjutnya, notasi infix di atas diubah menjadi notasi prefix:

* P Q

Dengan mengembalikan P dan Q ke notasi pemisalan sebelumnya dan

menghapus tanda kurung bantuan, maka diperoleh notasi prefix dari persamaan (A+B)

* (C–D), yaitu:

* + A B – C D.

Dari contoh di atas dapat diperhatikan bahwa dalam penulisan ungkapan,

bahkan yang rumit sekalipun, tidak pernah menggunakan tanda kurung untuk

pengelompokan. Dalam hal ini urutan penulisan operator akan menentukan operasi

mana yang harus dikerjakan terlebih dahulu.

Universitas Sumatera Utara

Notasi lain, yang merupakan kebalikan notasi prefix adalah notasi postfix atau

notasi suffix atau lebih dikenal dengan notasi Polish terbalik (Reverse Polish Notation

atau RPN). Sama halnya dengan notasi prefix, dalam notasi postfix tidak diperlukan

adanya tanda kurung pengelompokan. Pada notasi postfix operator diletakkan paling

akhir. Sintaks notasi posfix adalah <operand> <operand> <operator>.

Proses konversi dari notasi infix ke notasi postfix juga sama dengan konversi

dari infix ke prefix. Sebagai contoh ungkapan,

(A + B) * (C – D)

dengan kurung bantuan kita peroleh,

[A B +] * [C D -]

kemudian dengan memisalkan [A B +] sebagai P, dan [C D -] sebagai Q, maka notasi

postfix untuk ungkapan di atas menjadi,

PQ*

substitusi nilai P dan Q maka diperoleh

A B + C D - *

Dalam hal inipun urutan penulisan operator juga menentukan operasi mana

yang harus dikerjakan lebih dahulu. Pada halaman berikut disajikan beberapa contoh

lain hasil konversi notasi infix menjadi postfix

Infix Prefix

A + B – C A B + C -

(A + B) * (C – D) A B + C D - *

A – B / (C * D ^ E) A B C D E ^ * / -

Universitas Sumatera Utara

2.3.2 Pohon (Tree)

Struktur data pohon (tree) memegang peranan yang cukup penting, karena struktur ini

biasa digunakan terutama untuk menyajikan data yang mengandung hubungan hirarki

antara elemen-elemennya. Tree atau pohon adalah salah satu graph terhubung yang

tidak mengandung sirkuit. Karena merupakan graph terhubung, maka pada pohon

selalu terdapat jalur (path) yang menghubungkan setiap dua simpul dalam pohon.

2.3.2.1 Pohon Biner (Binary Tree)

Pohon biner adalah pohon yang setiap simpul cabangnya mempunyai paling banyak

dua buah anak yang disebut anak kiri (left child) dan anak kanan (right child). Pohon

yang akarnya adalah anak kiri disebut subpohon kiri (left subtree), sedangkan pohon

yang akarnya adalah anak kanan disebut subpohon kanan (right subtree). Subpohon

disebut juga cabang.

Pohon biner merupakan struktur pohon yang penting dalam ilmu komputer.

Terapan pohon biner di dalam ilmu komputer sangat banyak, diantaranya pohon

ekspresi (expression tree), pohon keputusan (decision tree), kode prefix (prefix code),

kode Huffman (Huffman code) dan pohon pencarian biner (binary search tree).

Pada bagian ini akan dibahas bagaimana cara menyusun sebuah pohon biner

yang apabila dikunjungi preorder akan menghasilkan notasi prefix, kunjungan inorder

akan menghasilkan notasi infix dan kunjungan postorder akan menghasilkan notasi

postfix. Melakukan kunjungan juga memerlukan bantuan struktur data tumpukan

untuk membentuk pohon biner.

Dengan menggunakan pohon biner, operator akan selalu diletakkan sebagai

akar dan operand selalu diletakkan sebagai daun. Dengan demikian, simpul yang

berisi operator selalu mempunyai dua buah cabang dan simpul yang berisi operand

selalu tidak mempunyai cabang, baik cabang kiri ataupun cabang kanan.

Universitas Sumatera Utara

Karakteristik yang dimiliki oleh pohon biner yaitu bahwa setiap simpul paling

banyak hanya mempunyai dua buah anak. Dengan kata lain, derajat tertinggi dari

setiap simpul dalam pohon biner adalah dua. Karakteristik lain adalah bahwa dalam

pohon biner dimungkinkan tidak mempunyai simpul (Santosa, 1992). Gambar 2.10

menunjukkan contoh suatu pohon biner.

Gambar 2.10 Pohon Biner

2.3.2.2 Pohon Ekspresi

Pohon ekspresi adalah pohon biner dengan daun menyatakan operand dan simpul

dalam (termasuk akar) menyatakan operator. Tanda kurung tidak lagi diperlukan bila

suatu ekspresi aritmatik direpresentasikan sebagai pohon biner. Sebagai contoh,

ekspresi (a+b)*(c/(d+e)) dinyatakan dalam pohon biner pada Gambar 2.11.

Gambar 2.11 Pohon Ekspresi

*

+ /

a b c +

d e

A

G

F

E

D

C B

Universitas Sumatera Utara

Daun menyatakan operand a, b, c, d dan e sedangkan simpul termasuk akar

menyatakan operator +, * dan /. Pohon ekspresi digunakan oleh compiler bahasa

tingkat tinggi untuk mengevaluasi ekspresi yang ditulis dalam notasi infix, prefix

(polish notation) dan postfix (reverse polish notation).

Dalam notasi infix, operator berada di antara dua buah operand. Pada notasi

prefix, operator mendahului operand dan pada notasi postfix kedua operand

mendahului operatornya. Ekspresi (a+b)*(c/(d+e)) adalah notasi dalam bentuk infix,

sedangkan ekspresi prefixnya adalah *+ab/c+de dan ekspresi postfix-nya adalah

ab+cde+/* (Lipschutz, S. 1986).

2.4 Pemodelan Sistem

Model adalah suatu representasi atau formalisasi dalam bahasa tertentu (yang

disepakati) dari suatu sistem nyata (realitas). Jadi, model adalah representasi dari suatu

objek, benda atau ide-ide dalam bentuk yang lain dengan entitasnya. Model berisi

informasi tentang suatu sistem yang dibuat dengan tujuan untuk mempelajari perilaku

sistem yang sebenarnya. Model dapat berupa tiruan dari suatu benda, sistem atau

peristiwa sesungguhnya yang hanya mengandung informasi yang dipandang penting

untuk ditelaah (Sridadi. B, 2009. hal:5).

Sommerville, Ian. (2003. hal: 42), menyatakan dalam proses pembentukan

perangkat lunak, terdapat beberapa model proses yang dapat digunakan yakni,

1. Model air terjun (waterfall). Model ini mengambil kegiatan proses dasar seperti

spesifikasi, pengembangan, validasi, evolusi dan merepresentasikannya sebagai

fase-fase proses yang berbeda seperti spesifikasi persyaratan, perancangan

perangkat lunak, implementasi, pengujian dan seterusnya.

2. Pengembangan evolusioner. Pendekatan ini berhimpitan dengan kegiatan

spesifikasi, pengembangan dan validasi. Suatu sistem awal dikembangkan dengan

cepat dari spesifikasi abstrak, sistem ini kemudian diperbaiki dengan masukan dari

Universitas Sumatera Utara

pelanggan untuk menghasilkan sistem yang memuaskan bagi kebutuhan

pelanggan.

3. Pengembangan sistem formal. Pendekatan ini didasarkan atas pembuatan

spesifikasi sistem matematis dan pentransformasian spesifikasi dengan memakai

metode matematis untuk membangun program. Verifikasi komponen sistem

dilakukan dengan membuat argumen matematis yang disesuaikan dengan

spesifikasi.

4. Pengembangan berdasarkan pemakaian ulang. Pendekatan ini didasarkan atas

adanya komponen yang dapat dipakai ulang dalam jumlah yang signifikan. Proses

pengembangan sistem terfokus pada integrasi komponen-komponen ini ke dalam

suatu sistem, dan bukan mengembangkannya dari awal.

Berdasarkan uraian di atas, perancangan perangkat lunak penganalisis

rangkaian logika ini menggunakan model air terjun (waterfall). Suatu fase

perancangan akan diturunkan ke fase berikutnya. Menurut Sommerville, Ian. (2003.

hal: 43) tahap-tahap utama dari model air terjun adalah memetakan kegiatan-kegiatan

pengembangan dasar seperti diperlihatkan pada Gambar 2.12, yaitu:

1. Analisis dan definisi persyaratan. Pelayanan, batasan dan tujuan sistem ditentukan

melalui konsultasi dengan user sistem. Persyaratan ini kemudian didefinisikan

secara rinci dan berfungsi sebagai spesifikasi sistem.

2. Perancangan sistem dan perangkat lunak. Proses perancangan sistem membagi

persyaratan dalam sistem perangkat keras atau perangkat lunak. Kegiatan ini

menentukan arsitektur sistem secara keseluruhan. Perancangan perangkat lunak

melibatkan identifikasi dan deskripsi abstraksi sistem perangkat lunak yang

mendasar dan hubungan-hubungannya.

3. Implementasi dan pengujian unit. Pada tahap ini, perancangan perangkat lunak

direalisasikan sebagai serangkaian program atau unit program. Pengujian unit

melibatkan verifikasi bahwa setiap unit telah memenuhi spesifikasinya.

Universitas Sumatera Utara

4. Integrasi dan pengujian sistem. Unit program atau program individual

diintegrasikan dan diuji sebagai sistem yang lengkap untuk menjamin bahwa

persyaratan sistem telah dipenuhi. Setelah pengujian sistem, perangkat lunak

dikirim kepada pelanggan.

5. Operasi dan pemeliharaan. Biasanya (walaupun tidak seharusnya), ini merupakan

fase siklus hidup yang paling lama. Sistem diinstal dan dipakai. Pemeliharaan

mencakup koreksi dari berbagai error yang tidak ditemukan pada tahap-tahap

terdahulu, perbaikan atas implementasi unit sistem dan pengembangan pelayanan

sistem, sementara persyaratan-persyaratan baru ditambahkan.

Gambar 2.12 Siklus Hidup Perangkat Lunak

2.5 Grafika Komputer

Grafika komputer (Computer Graphics) adalah sebuah disiplin ilmu yang mempelajari

proses untuk menciptakan suatu gambar berdasarkan deskripsi objek maupun latar

belakang yang terkandung pada gambar tersebut. Hal ini meliputi teknik-teknik untuk

membuat gambar objek sesuai dengan keberadaan objek tersebut di alam nyata.

Grafika komputer mencoba memvisualisasikan suatu informasi menjadi citra. Jadi,

Definisi persyaratan

Perancangan sistem dan perangkat

l k Implementasi dan

pengujian unit

Integrasi dan pengujian sistem

Operasi dan pemeliharaan

Universitas Sumatera Utara

input dari grafika komputer adalah informasi atau data deskriptif tentang citra yang

akan digambar, sedangkan output-nya adalah berupa citra (Sutoyo et al, 2009, hal:5).

Grafika komputer bertujuan menghasilkan citra (lebih tepat disebut grafik atau

picture) dengan primitif-primitif geometri seperti garis, lingkaran dan sebagainya.

Primitif-primitif geometri tersebut memerlukan data deskriptif untuk melukis elemen-

elemen gambar. Contoh data deskriptif adalah koordinat titik, panjang garis, jari-jari

lingkaran, tebal garis, warna dan sebagainya. Grafika komputer memainkan peranan

penting dalam visualisasi dan virtual reality (Munir, R, 2004:hal: 4).

Grafika komputer lebih menitikberatkan pada segi rancang bangun yang

berorientasi geometri. Kenyataannya, gambar yang dihasilkan oleh grafika komputer

memiliki tampilan yang tidak berbeda jauh dari objek sebenarnya. Blok diagram

grafika komputer diperlihatkan pada Gambar 2.13.

Gambar 2.13 Bidang Studi Grafika Komputer

2.6 Pengenalan Visual Basic 6.0

Microsoft Visual Basic 6.0 adalah sebuah bahasa pemrograman untuk windows. Sama

halnya seperti Bahasa Pemrograman Basic, Pascal, C dan lain-lain. Tetapi Basic,

Pascal dan C ditujukan untuk sistem operasi MS-DOS, sedangkan Visual Basic

ditujukan untuk sistem operasi windows (Balena, 1999).

2.6.1 Sekilas Tentang Visual Basic

Visual Basic adalah bahasa pemrograman Windows yang berbasis grafis (GUI,

Graphical User Interface). Visual Basic termasuk bahasa pemrograman yang

Grafika Komputer Data Deskriptif Citra

Universitas Sumatera Utara

berorientasi objek (Object Oriented Programming), artinya suatu program aplikasi

yang disusun berdasarkan objek-objek. Objek berarti sesuatu yang dapat diamati.

Dalam Visual Basic terdapat empat hal yang penting diperhatikan, yaitu Object,

Property, Event, dan Method (Yuswanto, 2002).

Multiple Document Interface (MDI) adalah fasilitas yang disediakan oleh

Visual Basic, yang memungkinkan pemrogram untuk membuat sejumlah form di

dalam satu form induk. Dalam hal ini pengguna dapat membuka beberapa dokumen

pada waktu yang bersamaan dalam satu form induk. Masing-masing dokumen yang

dibuka ditampilkan form/ window tersendiri dan disebut form anak (childform).

Universitas Sumatera Utara