[go: up one dir, main page]

0% menganggap dokumen ini bermanfaat (0 suara)
87 tayangan2 halaman

Lab Activity 4. Stack (Page 2 of 2)

Dokumen tersebut memberikan penjelasan tentang konversi notasi aritmatika infix ke postfix menggunakan struktur data stack. Terdapat soal yang meminta menuliskan fungsi infix_to_postfix yang menerima string ekspresi infix dan mengembalikan string ekspresi postfix. Diberikan pula contoh tes dan pengujian output fungsi.

Diunggah oleh

Vicryy Fahreza
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
87 tayangan2 halaman

Lab Activity 4. Stack (Page 2 of 2)

Dokumen tersebut memberikan penjelasan tentang konversi notasi aritmatika infix ke postfix menggunakan struktur data stack. Terdapat soal yang meminta menuliskan fungsi infix_to_postfix yang menerima string ekspresi infix dan mengembalikan string ekspresi postfix. Diberikan pula contoh tes dan pengujian output fungsi.

Diunggah oleh

Vicryy Fahreza
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 2

12/11/21, 4:43 PM Lab Activity 4.

Stack (page 2 of 2)

 

Soal 2

Benar Poin 50,00 dari 50,00

Tuliskan sebuah fungsi dengan nama infix_to_postfix yang mengubah sebuah ekspresi aritmatika dalam notasi infix menjadi notasi
postfix menggunakan struktur Stack. Penjelasan mengenai notasi infix, notasi postfix, dan algoritma konversi notasi infix ke
notasi postfix
dapat dilihat pada file berikut: PenjelasanInfixdanPostfix.

Fungsi infix_to_postfix yang Anda tulis harus menerima sebuah argument string berupa ekspresi aritmatika dalam notasi infix dan
mengembalikan sebuah string berupa ekspresi aritmatika dalam notasi postfix. Sebagai contoh: pemanggilan fungsi:
infix_to_postfix('A+B') mengembalikan sebuah string 'AB+' yang merupakan notasi postfix ekuivalen dari notasi infix 'A+B'.

Asumsikan hal-hal berikut:

Operand hanya berupa huruf besar: A s.d Z.


Operator hanya berupa: +, -, *, dan /.
Tidak ada spasi diantara opreator, operand, maupun tanda kurung pada notasi infix yang diberikan sebagai argument.
Notasi infix yang diberikan sebagai argument selalu mempunyai tanda kurung yang seimbang.
Notasi postfix yang dikembalikan fungsi infix_to_postfix hanya terdiri dari operand dan operator (tidak ada spasi diantara operator
dan operand).

Petunjuk:

Gunakan fungsi precedence pada kotak jawaban untuk mendapatkan level precedence dari operator.
Pada kotak jawaban terdapat kerangka fungsi infix_to_postfix dengan comment-comment yang berisi panduan implementasi.
Ikuti algoritma konversi notasi infix ke notasi postfix pada file penjelasan yang dilampirkan di atas.
Download module yang berisi implementasi ADT Stack pada file berikut: linkedliststack.py.

Answer: (penalty regime: 0 %)

Reset answer

1 from linkedliststack import Stack


2
3 # Fungsi precendence menerima string (karakter) operator
4 # dan mengembalikan level precedence dari operator tersebut.
5▼ def precedence(operator):
6▼ if (operator == '*' or operator == '/'):
7 return 2
8▼ elif (operator == '+' or operator == '-'):
9 return 1
10
11 # Fungsi infix_to_postfix menerima string berupa ekspresi aritmatika
12 # dalam notasi infix, dan mengembalikan sebuah string berupa ekspresi
13 # aritmatika dalam notasi postfix yang ekuivalen dengan argument.
14 ▼ def infix_to_postfix(infix):
15 opStack = Stack()
16 postfix = ''
17 operand = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
18
19 # Scan karakter per karakter dari string infix
20 ▼ for token in infix:
21 opStack = Stack()
22 postfix = ''
23 operand = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
24
25 # Scan karakter per karakter dari string infix

Precheck Periksa

Pengujian Output diharapkan Output Anda

 1 Ekspresi infix: (A+(C+D*F+T*A)*B/C)


Ekspresi infix: (A+(C+D*F+T*A)*B/C)

Ekspresi postfix: ACDF*+TA*+B*C/+ Ekspresi postfix: ACDF*+TA*+B*C/+

 2 Ekspresi infix: (G+((E+D)*C-(F+T)*A)/B+H)


Ekspresi infix: (G+((E+D)*C-(F+T)*A)/B+H)

Ekspresi postfix: GED+C*FT+A*-B/+H+ Ekspresi postfix: GED+C*FT+A*-B/+H+

 3 Ekspresi infix: A*(B+(C*(D+E)+F))


Ekspresi infix: A*(B+(C*(D+E)+F))

Ekspresi postfix: ABCDE+*F++* Ekspresi postfix: ABCDE+*F++*

 4 Ekspresi infix: (A*(B+(C/D)))


Ekspresi infix: (A*(B+(C/D)))

Ekspresi postfix: ABCD/+* Ekspresi postfix: ABCD/+*

Passed all tests!   

https://praktikum.gunadarma.ac.id/mod/quiz/attempt.php?attempt=2841476&cmid=20413&page=1&scrollpos=1179 1/2
12/11/21, 4:43 PM Lab Activity 4. Stack (page 2 of 2)

Benar
 
Nilai untuk ajuan ini: 50,00/50,00.

https://praktikum.gunadarma.ac.id/mod/quiz/attempt.php?attempt=2841476&cmid=20413&page=1&scrollpos=1179 2/2

Anda mungkin juga menyukai