45
BAB IV IMPLEMENTASI DAN EVALUASI
4.1.
Implementasi Dalam mengimplementasikan tugas akhir ini digunakan PC dengan
spesifikasi sebagai berikut : 4.1.1.
Spesifikasi Kebutuhan Perangkat keras yang digunakan dalam menjalankan program ini
adalah : 1)
Prosesor Pentium II
2)
RAM 64 MB
3)
Hard Disk 10 GB Program ini dapat dijalankan dengan menggunakan sistem operasi
Window 95, Windows 98, Windows 2000, Windows ME, Windows NT, maupun Windows XP.
4.1.2.
Penjelasan pemakaian program Setelah kebutuhan atas perangkat keras dan perangkat lunak terpenuhi
selanjutnya aplikasi perancangan dan pembuatan program ini dapat dijalankan. A.
Tampilan Menu Utama Tampilan menu utama dari program ini terlihat pada gambar dibawah ini :
46
Gambar 4.1 Tampilan menu utama
Tombol Buka File Stack digunakan untuk membuka file stack yang telah disimpan sebelumnya. Jika keluar dari program, tekan tombol Keluar.
B.
Tampilan Menu Pulldown Tampilan menu utama berisi menu notasi (prefix, infix, postfix), dan
help. Jika menu prefix diklik secara otomatis akan muncul output berupa infix dan postfix, seperti terlihat pada gambar dibawah ini :
47
Gambar 4.2 Tampilan menu prefix
Jika menu infix diklik maka akan muncul output berupa prefix dan postfix, seperti terlihat pada gambar dibawah ini :
Gambar 4.3 Tampilan menu infix
48
Pernyataan matematik diinput pada Notasi Awal, untuk prosesnya tekan tombol Proses, sedangkan tombol Hapus berfungsi untuk hapus data, jika ingin keluar dari program, tekan tombol Keluar. Jika menu postfix diklik maka akan muncul output berupa prefix dan postfix, seperti terlihat pada gambar dibawah ini :
Gambar 4.4. Tampilan menu postfix
Untuk tampilan menu help terdiri atas Konversi Notasi Help dan About, seperti terlihat pada gambar dibawah ini :
49
Gambar 4.5 Tampilan Menu Help
Menu Konversi Notasi Help merupakan program bantu untuk melakukan konversi notasi, seperti terlihat pada gambar dibawah ini :
50
Gambar 4.6. Tampilan menu help untuk konversi notasi
Selanjutnya dengan memilih menu about akan terlihat tampilan yang berisi versi program serta nama programer “Tatin Wahyanto”, seperti terlihat pada gambar dibawah ini :
Gambar 4.7. Tampilan menu about
51
Untuk menghilangkan informasi ini tekan tombol Tutup, maka akan kembali ke menu utama. Untuk mengetahui implementasi stack, tekan tombol Lihat Stack, seperti tampak pada gambar di bawah ini :
Gambar 4.8. Tampilan untuk melihat stack
Gambar 4.9. Tampilan untuk implementasi stack
52
Form ini digunakan untuk melihat implementasi konversi pada stack. Tombol Simpan untuk menyimpan implementasi stack pada file dengan extention txt.
4.2.
Contoh Pemakaian Program Untuk mengkonversi notasi prefix, infix, dan postfix serta simulasinya
dalam stack, maka dilakukan pengujian. Pengujian dilakukan dengan mengubah-ubah bilangan, operand dan operator pada ekspresi.
4.2.1.
Pengujian Konversi Notasi Prefix ke Infix dan Postfix
A. Berikut disajikan contoh konversi notasi prefix ke infix : 1. Prefix Infix
: *+AB–CD : ((A+B)*(C–D))
Gambar 4.10. Tampilan konversi notasi prefix ke infix (1)
53
D C B
D C
A
-
(C-D)
+
(A+B)
(A+B)
*
*
*
((A+B) * (C-D))
Gambar 4.11. Stack konversi notasi prefix ke infix (1)
2. Prefix Infix
: -A/B+*CD^EF : (A-(B/((C*D)+(E^F))))
Gambar 4.12. Tampilan konversi notasi prefix ke infix (2)
54
F E ^
(E^F)
D
D
C
C
(E^F)
*
*
+
+
(C^D) +
((C^D) + (E^F))
B /
B /
B /
B /
(B/((C*D) + (E^F)))
A
A
A
A
A
-
-
-
-
-
(A-(B/((C*D) + (E^F))))
1
2
3
4
5
6
Gambar 4.13. Stack konversi notasi prefix ke infix (2)
B. Contoh konversi notasi prefix ke postfix 1. Prefix Postfix
: /A–B*C+DE : ABCDE+*-/
55
Gambar 4.14. Tampilan konversi notasi prefix ke postfix (1)
E D +
DE+
C
C
*
*
CDE+*
B -
B -
B -
BCDE+*-
A
A
A
A
/
/
/
/
1
2
3
4
ABCDE+*-/ 5
Gambar 4.15. Stack konversi notasi prefix ke postfix (1)
56
2. Prefix Postfix
: *+AB^-CD/EF : AB+CD–EF/^*
Gambar 4.16. Tampilan konversi notasi prefix ke postfix (2)
F E /
EF/
D C
D C
EF/
-
-
D
^
^
C
EF/
B
B
-
CD-
A
A
^
^
CD-EF/^
+
+
*
*
AB+ *
AB+ *
AB+CD-EF/^*
1
2
AB+ * 3
4
5
6
Gambar 4.17. Stack konversi notasi prefix ke postfix (2)
57
4.2.2.
Pengujian Konversi Notasi Infix ke Prefix dan Postfix
A. Berikut disajikan contoh konversi notasi infix ke prefix 1. Infix Prefix
: A – ( B+ C ) * ( D + E ) : -A*+BC+DE
Gambar 4.18. Tampilan konversi notasi infix ke prefix (1)
58
) E + D (
)
*
E
)
+
C
D
+
(
+DE
B
*
*
(
+BC
+BC
*+BC+DE
-
-
-
-
A
A
A
A
1
2
3
4
-A*+BC+DE
Gambar 4.19. Stack konversi notasi infix ke prefix (1)
2. Infix Prefix
: (A–B)*(((C–D^E)/F)/G)*H : **-AB//-C^DEFGH
5
59
Gambar 4.20. Tampilan konversi notasi infix ke prefix (2)
60
H * ) G /
H
)
*
F
)
H
/
G
*
)
/
)
E
)
G
^
F
/
H
D
/
)
*
-
)
F
)
C
E
/
G
(
^
)
/
(
D
^DE
)
(
-
-
F
*
C
C
/
)
(
(
-C^DE
B
(
(
(
-
(
(
(
A
*
*
*
(
-AB
-AB
-AB
1
2
3
4
61
H * ) G /
H
/-C^DEF
*
(
//-C^DEFG
*//-C^DEFGH
*
*
*
-AB
-AB
-AB
**-AB//-C^DEFGH
5
6
7
8
Gambar 4.21. Stack konversi notasi infix ke prefix (2)
62
B. Contoh konversi notasi infix ke postfix 1. Infix Postfix
: (A+B)*(C+D)+E : AB+CD+*E+
Gambar 4.22. Tampilan konversi notasi infix ke postfix (1)
63
Input
Stack (top of right)
Output
(A+B)*(C+D)+E
kosong
kosong
A+B)*(C+D)+E
kosong
(
+B)*(C+D)+E
A
(
B)*(C+D)+E
A
(+
)*(C+D)+E
AB
(+
*(C+D)+E
AB+
kosong
(C+D)+E
AB+
*
C+D)+E
AB+
*(
+D)+E
AB+C
*(
D)+E
AB+C
*(+
)+E
AB+CD
*(+
+E
AB+CD+
*
E
AB+CD+*
+
kosong
AB+CD+*E
+
kosong
AB+CD+*E+
kosong
Gambar 4.23. Stack konversi notasi infix ke postfix (1)
2. Infix Postfix
: A+B- C*D/E^F : AB+CD*EF^/-
64
Gambar 4.24. Tampilan konversi notasi infix ke postfix (2)
Input
Output
A+B-C*D/E^F Kosong +B-C*D/E^F A B-C*D/E^F A -C*D/E^F AB C*D/E^F AB+ *D/E^F AB+C D/E^F AB+C
Stack (top of right)
Kosong Kosong + + -*
/E^F AB+CD
-*
E^F AB+CD*
-/
^F AB+CD*E F AB+CD*E
-/ -/^
Kosong AB+CD*EF
-/^
Kosong AB+CD*EF^
-/
Kosong AB+CD*EF^/
-
Kosong AB+CD*EF^/-
Kosong
Gambar 4.25 Stack konversi notasi infix ke postfix (2)
65
4.2.3.
Pengujian Konversi Notasi Postfix ke Infix dan Prefix
A. Berikut disajikan contoh konversi notasi postfix ke infix : 1. Postfix Infix
: A B – C D E ^ */ : ((A–B)/(C*(D^E)))
Gambar 4.26. Tampilan konversi notasi postfix ke infix (1)
66
/ * ^
/
E
*
D
(D^E)
/
C
C
(C*(D^E))
-
-
-
/
B
B
B
(C*(D^E))
A
A
A
(A-B)
((AB)/(C+(D^E))
1
2
3
4
5
Gambar 4.27. Stack konversi notasi postfix ke infix (1)
2. Potsfix Infix
: ABCDE^F/+G–H/*+ : (A+(B*(((C+((D^E)/F))–G)/H)))
Gambar 4.28. Tampilan konversi notasi postfix ke infix (2)
67
+ * /
+
H
*
-
/
+
G
H
*
+
-
/
+
/
G
H
*
F
+
-
/
^
/
G
H
E
F
+
-
D
(D^E)
((D^E)/F)
G
C
C
C
(C+((D^E)/F))
B
B
B
B
A
A
A
A
1
2
3
4
68
+ * /
+
H
*
((C+((D^E)/F)) -G)
(((C+((D^E)/F))G)/H)
+
B
B
(B*(((C+((D^E)/F))G)/H)
A
A
A
5
6
7
(A+(B*(((C+(D^E) /F))-G)/H)
Gambar 4.29. Stack konversi notasi postfix ke infix (2)
B. Contoh konversi notasi postfix ke prefix : 1. Postfix Prefix
: AB/CD/+ : +/AB/CD
8
69
Gambar 4.30. Tampilan konversi notasi postfix ke prefix (1)
+ / D
+
C
/
/
D
+
B
C
A
/AB
/CD /AB
+/AB/CD
1
2
3
4
Gambar 4.31. Stack konversi notasi postfix ke prefix (1)
70
2. Potsfix Prefix
: ABCDE+F/+G–H^*+ : +A*B^-+C/+DEFGH
Gambar 4.32. Tampilan konversi notasi postfix ke prefix (2)
71
+ * ^
+
H
*
-
^
+
G
H
*
+
-
^
+
/
G
H
*
F
+
-
^
+
/
G
H
E
F
+
-
D
+DE
/+DEF
G
C
C
C
+C/^DEF
B
B
B
B
A
A
A
A
1
2
3
4
72
+ * ^
+
H
*
-+C/^DEFG
^-+C/^DEFGH
+
B
B
*B^-+C/^DEFGH
A
A
A
+A*B^-+C/^DEFGH
5
6
7
8
Gambar 4.33. Stack konversi notasi postfix ke prefix (2)
4.2.4
Error Message Pada saat menjalankan program, kemudian ada kesalahan dalam
penginputan notasi, maka akan muncul beberapa pesan atau error message sebagai berikut : a.
Bila input yang dimasukkan berupa notasi infix, maka akan dilakukan pengecekan tanda kurung terlebih dahulu, jika input notasi infix kelebihan atau kekurangan tanda kurung maka akan muncul pesan kesalahan. Hal ini
73
membawa konsekuensi bahwa penulisan tanda kurung itu harus benar-benar terhindar dari kesalahan. Berikut gambar pesan kesalahan atau error message untuk notasi infix :
Gambar 4.34 Pesan kesalahan notasi infix
b.
Pesan kesalahan dibawah ini akan muncul bila tidak ada input pada form “Notasi Awal”.
Gambar 4.35 Pesan kesalahan tidak ada input
Bila input data yang akan dimasukkan berupa notasi prefix ( operator + operand + operand ), akan tetapi pada pengujian program ditulis notasi postfix ( operand + operand + operator ), maka secara otomatis program akan muncul pesan kesalahan seperti tampak pada gambar dibawah ini :
74
Gambar 4.36 Pesan kesalahan input notasi
4.3.
Evaluasi Setelah dilakukan implementasi program dengan menguji 12 contoh
notasi aritmatika, diperoleh hasil evaluasi bahwa pemakaian tanda kurung akan sangat mempengaruhi hasil akhir, sebagai contoh dalam konversi notasi infix ke postfix yang diambil dari contoh Sub Bab 4.2.2. bagian B : Infix
: (A+B)*(C+D)+E
Postfix : A B + C D + * E + Sedangkan pada ungkapan : Infix
: A+B * C+D+E
Postfix : A B C * + D + E + Jadi notasi yang berada dalam dalam tanda kurung akan dikerjakan terlebih dahulu. Dalam ungkapan-ungkapan yang rumit, pemakaian tanda kurung ini tidak bisa dihindari. Semakin rumit suatu ungkapan semakin banyak dibutuhkan tanda kurung. Jadi penulisan tanda kurung harus benar-benar terhindar dari kesalahan. Untuk konversi notasi infix ke prefix dan infix ke postfix, jika ada salah satu tanda kurung yang tidak ditulis, maka akan terjadi kesalahan, sehingga muncul pesan kesalahan. Sebagai contoh yang diambil dari Sub Bab 4.2.2 bagian A (1) :
75
Infix
: A–(B+C *(D+E)
Prefix
: Error
Dari uji coba program, untuk hasil output konversi notasi infix ke prefix terjadi kesalahan karena kurang ‘)’. Untuk notasi prefix dan postfix tidak pernah digunakan tanda kurung untuk pengelompokan. Dalam hal ini valensi atau derajat operator akan menentukan operasi mana yang harus dikerjakan terlebih dahulu, sehingga tidak mempengaruhi hasil akhir dari notasi. Program konversi ini jika dibalik notasi awalnya (output digunakan sebagai input) maka hasilnya akan tetap sama. Sebagai contoh yang diambil dari Sub bab 4.2.1 bagian B (2), untuk konversi notasi prefix ke postfix : Prefix
: *+AB^-CD/EF
Postfix : A B + C D – E F / ^ * Jika dibalik notasi awalnya : Postfix : A B + C D – E F / ^ * Prefix
: *+AB^-CD/EF
Jumlah operand harus lebih banyak 1 karakter dari pada operator, jika ada kelebihan salah satu diantara keduanya, maka akan terjadi kesalahan. Sebagai contoh yang diambil dari Sub Bab 4.2.3 bagian A (1). untuk konversi notasi postfix ke infix : Postfix : A B – C D E ^ * / Jumlah operand = 5 Jumlah operator = 4 Selisih
= 1
76
Jika notasi postfix ditulis : Postfix : A B – C D ^ * / Maka akan terjadi kesalahan, karena selisih antara jumlah operand dan operator nol. Input notasi pada konversi ini bisa menampung sampai dengan 255 karakter, jika lebih dari 255 karakter maka akan terjadi kelebihan data, sehingga notasi tidak dapat diproses.