♾️Praktikum 2
Last updated
Last updated
Pada percobaan ini, kita akan membuat program untuk melakukan konversi notasi infix menjadi notasi postfix.
Perhatikan class diagram Postfix
berikut sebagai acuan.
Buatlah proyek dengan nama Praktikum2
. Kemudian buatkla class Postfix
sesuai dengan class diagram yang telah dijelaskan sebelumnya.
Tambahkan atribut n
, top
, dan stack
sesuai diagram class Postfix
tersebut.
Tambahkan konstruktor Postfix
seperti potongan kode berikut,
Buat method push()
.
Buat method pop()
.
Buat method isOperand()
dengan tipe boolean yang digunakan untuk mengecek apakah elemen data berupa operand.
Buat method isOperator()
dengan tipe boolean yang digunakan untuk mengecek apakah elemen data berupa operator.
Buat method derajat()
yang mempunyai nilai kembalian integer untuk menentukan derajat operator.
Buat method konversi untuk melakukan konversi notasi infix menjadi notasi postfix dengan cara mengecek satu persatu elemen data pada String Q sebagai parameter masukan.
Selanjutnya, buat class baru dengan nama PostfixMain
tetap pada proyek Praktikum2. Buat class main, kemudian buat variabel P
dan Q
. Variabel P
digunakan untuk menyimpan hasil akhir notasi postfix setelah dikonversi, sedangkan variabel Q
digunakan untuk menyimpan masukan dari pengguna berupa ekspresi matematika dengan notasi infix. Deklarasikan variabel Scanner
dengan nama sc
, kemudian panggil fungsi built-in trim yang digunakan untuk menghapus adanya spasi di depan atau di belakang teks dari teks persamaan yang dimasukkan oleh pengguna.
Penambahan string “)” digunakan untuk memastikan semua simbol/karakter yang masih berada di stack setelah semua persamaan terbaca, akan dikeluarkan dan dipindahkan ke postfix.
Buat variabel total untuk menghitung banyaknya karaketer pada variabel Q.
Lakukan instansiasi objek dengan nama post dan nilai parameternya adalah total. Kemudian panggil method konversi untuk melakukan konversi notasi infix Q menjadi notasi postfix P.
Compile dan jalankan class PostfixMain
dan amati hasilnya.
Perhatikan class Postfix, jelaskan alur kerja method derajat!
Apa fungsi kode program berikut? c = Q.charAt(i);
Jalankan kembali program tersebut, masukkan ekspresi 3*5^(8-6)%3. Tampilkan hasilnya!
Pada soal nomor 3, mengapa tanda kurung tidak ditampilkan pada hasil konversi? Jelaskan!