♾️Praktikum 2
Pengantar
Pada percobaan ini, kita akan membuat program untuk melakukan konversi notasi infix menjadi notasi postfix.
Perhatikan class diagram Postfix
berikut sebagai acuan.
Langkah Percobaan
Buatlah proyek dengan nama
Praktikum2
. Kemudian buatkla classPostfix
sesuai dengan class diagram yang telah dijelaskan sebelumnya.Tambahkan atribut
n
,top
, danstack
sesuai diagram classPostfix
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 variabelP
danQ
. VariabelP
digunakan untuk menyimpan hasil akhir notasi postfix setelah dikonversi, sedangkan variabelQ
digunakan untuk menyimpan masukan dari pengguna berupa ekspresi matematika dengan notasi infix. Deklarasikan variabelScanner
dengan namasc
, 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.
Pertanyaan
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!
Last updated