Project Pembuatan Program Diferensial Parsial
Project Pembuatan Program Diferensial Parsial
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.
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 Y = A .
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.
Y =A
(a). Simbol
Y=A
1
0
Y
0
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
B
Y = A.B
Y
Q
(a). Simbol
B
0
1
0
1
Y = A.B
0
0
0
1
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.
Y = A+ B
(a). Simbol
B
0
1
0
1
Y=A+B
0
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
Y = A.B (Tokheim, 1995). Simbol gerbang NAND ini ditunjukkan pada Gambar 2.5.
A
B
Y = A.B
Y
(a). Simbol
0
0
1
1
0
1
0
1
Y = A.B
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 Y = A + B
(Tokheim, 1995). Simbol gerbang NOR ini diperlihatkan pada Gambar 2.6 dan tabel
kebenaran diperlihatkan pada Tabel 2.6.
Y = A+ B
(a). Simbol
B
0
1
0
1
Y = A+ B
1
0
0
0
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 Y = A B = AB + A B .
Y = A B = AB + A B
(a). Simbol
B
0
1
0
1
Y = A B = AB + A B
0
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
Y = A B = AB + A B (Tokheim, 1995).
(a). Simbol
Y = A B = AB + A B
2.1.2
B
0
1
0
1
Y = A B = AB + A B
1
0
0
1
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 : ( A.B ) (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 hubunganhubungan 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
2. A + A = A
3. A + 1 = 1
4. A + A = 1
5. A 1 = A
6. A A = A
7. A 0 = 0
8. A A = 0
9. A + B = A B
10. A B = A + B
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
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).
D
C
B
A
(b).Tumpukan kotak
2.3.1.1
Penyajian Tumpukan
tumpukan maksimum adalah sebesar MaxStack, yang dalam hal ini terdiri dari 255
elemen.
2.3.1.2
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.
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
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.
2.3.1.4
(A + B) * (C D)
suku (A+B) akan dikerjakan lebih dahulu, kemudian suku (CD), dan terakhir
mengalikan hasil yang diperoleh dari dua suku ini. Sedangkan pada ungkapan :
A+B*CD
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.
Infix
Prefix
A+B
+AB
A+BC
-+ABC
(A + B) * (C D)
*+ABCD
A B / (C * D ^ E)
-A/B*C^DE
Secara sederhana, proses konversi dari infix menjadi prefix dijelaskan sebagai
berikut. Misalnya ungkapan yang akan dikonversikan adalah:
(A + B) * (C D)
[+ A B] * [ - C D]
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)
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+BC
AB+C-
(A + B) * (C D)
AB+CD-*
A B / (C * D ^ E)
ABCDE^*/-
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 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.
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.
A
B
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.
*
+
a
/
b
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).
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.
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,
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 elemenelemen 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).
Data Deskriptif
Grafika
Komputer
Citra
2.6
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).
Visual Basic adalah bahasa pemrograman Windows yang berbasis grafis (GUI,
Graphical User Interface). Visual Basic termasuk bahasa pemrograman yang