P. 1
92057-6-432692221802

92057-6-432692221802

|Views: 28|Likes:
Published by Ana Rosita Melynda

More info:

Published by: Ana Rosita Melynda on Jul 06, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

07/06/2011

pdf

text

original

Struktur Data Dengan Bahasa C

- 50 -

BAB 6

APLIKASI STACK

Tujuan Instruksional Umum: Mahasiswa memahami aplikasi STACK Tujuan Instruksional Khusus:

Mahasiswa memahami aplikasi STACK dalam notasi matematika (prefix, postfix

dan infix) Pokok Bahasan:

Implementasi STACK dengan ekspresi matematika    Notasi Prefix Notasi Postfix Notasi Infix

Latihan

6.1 Aplikasi Stack Stack mempunyai aplikasi yang sangat luas di bidang komputer, salah satu aplikasi yang akan kita bahas di sini adalah penggunaan stack dalam polish notation ( notasi polish ). Sebelum dibahas tentang bagaimana penggunaan stack ini, akan disinggung terlebih dahulu tentang apakah polish notation ini. Didalam menuliskan ekspresi matematika, kita selalu mempergunakan operator dan operand. Operand adalah tanda operasi yang dipergunakan, diantaranya + (penjumlahan), (pengurangan), * (perkalian), / (pembagian), ^ (pangkat), dsbnya. Sedangkan operand adalah identifier yang dipergunakan sebagai symbol, misalnya alphabet a/A … z/Z. selain operator dan operand, di dalam pengerjaan ekpresi matematika harus diperhatikan juga mengenai prioritas dari operator, dengan urutan sebagai berikut: 1.() Operasi dalam tanda kurung akan dikerjakan paling awal. 2. ^ ( pangkat ) 3. * ( Perkalian dan / ( pembagian ). 4. + ( penjumlahan ) dan - ( pengurangan ). Pusat Pengembangan Bahan Ajar - UMB DEVI FITRIANAH, S.Kom, MTI STRUKTUR DATA

PREFIX Notasi disebut prefix. Lakukan operasi yang berada di dalam tanda kurung. INFIX Algoritma pengerjaan operasi matematika dengan notasi infix adalah sebagai berikut : 1. ketemu dengan kurung buka yang Pusat Pengembangan Bahan Ajar . S.Struktur Data Dengan Bahasa C . Scan kembali dari posisi tadi ke kiri sampai pertama. 5. Scan dari kiri ke kanan sampai ketemu dengan kurung tutup yang paling awal. Ganti ekspresi di dalam tanda kurung tersebut dengan hasil operasi. 2. Contoh : *+AB+CD POSTFIX Suatu notasi akan disebut postfix atau suffix atau juga dikenal sebagai Reverse Polish Notation bila operand berada di belakang kedua operandnya. berada diantara operandnya. 3. Contoh : AB+CD +*.51 - Notasi yang dipergunakan untuk menuliskan ekspresi matematika ada tiga yaitu : INFIX Suatu notasi disebut infix jika operator Contoh : ( A+ B ) * ( C + D ). Ulangi langkah 1 sampai 4 sehingga keseluruhan ekspresi dilaksanakan.Kom. Notasi ini merupakan notasi yang sering kita gunakan sehari – hari. MTI STRUKTUR DATA . atau sering juga di sebut Polish Notation ( diambil dari nama penemunya ) jika operator berada di depan dari kedua operandnya.UMB DEVI FITRIANAH. 4.

((10 + 15 )*20) + 200 { scan ke kanan sampai ketemu kurung tutup yang pertama } 2. ( 25 * 20)+200 { lakukan operasi ( 25*20) dan ganti ekspresi yang berada dalam tanda kurung dengan hasil operasi} tetap lakukan scan ke kanan untuk mencari tanda kurung bila sudah tidak ketemu maka lakukan operasi dari kiri ke kanan dengan memperhatikan prioritas pengerjaan ekspresi 6. 700 Beberapa kelemahan dari notasi infix di antaranya adalah proses pengerjaan ekspresi sangat lama. diperlukan tanda kurung untuk menandai operasi yang lebih rendah prioritasnya. maka pengerjaan operasi infix adalah sebagai berikut: 1. Pusat Pengembangan Bahan Ajar . S.Kom.UMB DEVI FITRIANAH. ((10+15)*20)+200 { scan ke kiri sampai ketemu kurung buka yang pertama } { lakukan operasi ( 10+15) dan ganti ekspresi yang berada dalam tanda kurung dengan hasil operasi } { scan lagi ke kanan sampai ketemu kurung buka yang pertama } { scan kembali ke kiri sampai ketemu kurung buka yang pertama } 3. 500 + 200 7. MTI STRUKTUR DATA .52 - Dengan menggunakan contoh ((10+15)*20)+20)=200. ( 25 * 20)+200 4. ( 25 * 20)+200 5.Struktur Data Dengan Bahasa C . dan pengerjaan sangat tidak efisien.

3. S. MTI STRUKTUR DATA . Lebih cepat dan efisien karena tidak diperlukan scan dari awal ekspresi. yaitu 10 15 + 20 * 200 +. 500 200+ selanjutnya } { ambil kedua operand ( 500 200+) dan lakukan operasi } 6. scan dilakukan mulai dari posisi pergantian ekspresi. Berikut adalah algoritma pengerjaan operasi matematika dengan notasi postfix. di antaranya adalah tidak diperlukannya tanda kurung untuk menandai operasi yang lebih tinggi prioritasnya. Ulangi langkah 1 sampai 3 hingga keseluruhan ekspresi dilaksanakan. 25 20 *200+ 4. 25 20*200 + 3.53 - POSTFIX/ SUFFIX / REVERSE POLISH Notasi postfix atau juga disebut suffix atau reverse polish notation (selanjutnya akan dipergunakan istilah postfix) dapat mengatasi kelemahan dari notasi infix.Kom. Dengan contoh yang dikonversikan dari notasi infix . { ambil operand ( 25 20* ) dan lakukan operasi terhadapnya} 2. lakukan operasi terhadap kedua operand ( 10 15+) dan ganti ekspresi dengan hasil operasi}. 500 200+ {scan lagi dari posisi tadi ke kanan untuk mencari operator} berikutnya } { scan ke kanan lagi sampai ketemu tanda operator yang 5. Lakukan operasi dan ganti ekspresi tersebut dengan hasil operasi. maka hasil pengerjaan dengan menggunakan notasi postfix adalah sebagai berikut : 1.UMB DEVI FITRIANAH. Scan dari kiri ke kanan sampai ketemu dengan tanda operator.Struktur Data Dengan Bahasa C . 10 15 + 20* 200+ { scan ke kanan sampai ketemu tanda operator yang pertama } { ambil dua operand yang berada di kirinya. Ambil 2 operand yang berada langsung di sebelah kiri dari operator tersebut. 4. 2. 1. 700 Pusat Pengembangan Bahan Ajar . jadi tidak perlu men-scan dari posisi paling awal.

} } While (!empty(STACK)) { Pop(c). Clear(STACK). oleh karena itu diperlukan algoritma yang mengkonversikan ekspresi yang ditulis oleh user dalam notasi infix ke dalam notasi postfix sehingga dapat dikerjakan oleh compiler. Postfix = postfix + c. symb) == TRUE) { Pop(c). If(symb == operand) postfix = postfix + symb.Struktur Data Dengan Bahasa C . } Push(symb). Postfix = postfix + c. MTI STRUKTUR DATA . Permasalahannya adalah pengguna komputer (user) lebih menyukai dan lebih akrab dengan notasi infix dibandingkan dengan notasi postfix. Algoritma Konversi INFIX ke POSTFIX Infixtopostfix() { Postfix=” ”.UMB DEVI FITRIANAH.Kom. S. maka pada umumnya compiler akan dipergunakan notasi postfix di dalam mengerjakan ekspresi yang ada.54 - KONVERSI INFIX KE POSTFIX Setelah mengetahui keuntungan notasi postfix dibandingkan dengan notasi infix. } } Pusat Pengembangan Bahan Ajar . While(!eoln(infix)) { Read(symb). Else { While(!empty(STACK)) && prcd(stack[top].

Pusat Pengembangan Bahan Ajar . S. Contoh prcd (’’*’’.Struktur Data Dengan Bahasa C . ’’+’’) TRUE prcd (’’+’’. diperlukan STACK sebagai penampungan atau penyimpan operand (kita akan menemukan operasi stack seperti pop. MTI STRUKTUR DATA . Algoritma di atas hanya berlaku bagi notasi infix yang tidak mempergunakan tanda kurung. ’’*’’) FALSE Ide dasar dari algoritma ini adalah ketika terlihat sebuah operator dan di letakkan didalam sebuah stack. yaitu sebuah function yang akan mengecek prioritas dari dua buah operator dan akan mengembalikan nilai TRUE bila operator pertama mempunyai prioritas lebih tinggi dari operator kedua. Stack disana berfungsi sebagai sebuah operator.Kom. clear dan empty dalam algoritma konversi ini). selain itu ada function lain yang diperlukan: Precedence atau disingkat prcd. untuk notasi infix yang dipergunakan tanda kurung diperlukan sedikit modifikasi terhadap algoritma di atas.55 - Seperti terlihat pada algoritma konversi di atas. push.UMB DEVI FITRIANAH. Beberapa operator didalam stack memiliki presedence yang harus dikerjakan dan seharusnya di pop dan tidak boleh berada di stack lagi.

Buat algoritma untuk konversi dari notasi infix menjadi notasi prefix.D)) * (E .F) + T c.UMB DEVI FITRIANAH.Kom. Rubah ke notasi postfix dan prefix a. A + B * C + D / E b. MN*R/S-T d. hj*br/l-s c. K*LC+S*S e. (b * b – 4 * a * c) / (2 * a) 2. S. (a+b)c-d*e b. A * (R + (C . Rubahlah ke notasi prefix dan postfix a.Struktur Data Dengan Bahasa C . MTI STRUKTUR DATA . Latihan dirumah 1. AB+CD*S*S Pusat Pengembangan Bahan Ajar .56 - Latihan 1.

Pearson Int’l. Daniel F Stubbs & Neil W. Maria. MTI STRUKTUR DATA . Data Structures and Algorith Analysis in C++ . Anna (1998). Weiss. Mark Alan. Buku Ajar Universitas Bina Nusantara Jakarta.57 - Referensi 1. Pusat Pengembangan Bahan Ajar .Kom.Struktur Data Dengan Bahasa C . Brook/ Cole Publishing Company 2.UMB DEVI FITRIANAH. Data Structures with Abstract Data Type and Pascal. S. Florida 3. Webre (1985). (2006). Struktur Data.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->