INFIX, PREFIX DAN POSTFIX

dokumen-dokumen yang mirip
Pertemuan 10. Tumpukan (Stack) Dipersiapkan oleh : Boldson Herdianto. S., S.Kom., MMSI.

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

BAB III METODE PENELITIAN / PERANCANGAN SISTEM. perancangan dan pembuatan program ini meliputi : dengan konversi notasi infix, prefix, dan postfix.

INFIX, POSTFIX, dan PREFIX Bambang Wahyudi

Algoritma dan Struktur Data STACK

STACK. Sistem penyimpanan data dengan mekanisme Last In First Out( LIFO).

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

ALGORITMA DAN STRUKTUR DATA

BAB II STACK (TUMPUKAN)

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

Tumpukan(Stack)!! " # $ %&' $ %& ( ) ( * +, / ( (

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 4 & 5

BAB II STACK Atau TUMPUKAN

BAB II LANDASAN TEORI

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

Kasus Penggunaan Stack: Komputasi Ekspresi Aritmatika

STRUKTUR DATA Pertemuan 4

BAB IV IMPLEMENTASI DAN EVALUASI

Stack. Pointer ke node pertama dari stack. Bagian deklarasi di atas kita asumsikan disimpan menjadi sebuah header file dengan nama stack.

S TA C K Sunu Wibirama

LIST LINIER & STACK. Pertemuan 6 Yani sugiyani, M.Kom

KUNJUNGAN PADA POHON BINER

STACK (Tumpukan) Tumpukan Koin. Tumpukan Kotak

TERAPAN POHON BINER 1

Struktur Data Array. Rijal Fadilah S.Si

STACK ATAU TUMPUKAN 3.1 DAFTAR LINEAR

Gambar 1. Ilustrasi Stack

BAB III ANALISA DAN PERANCANGAN

4. STACK / TUMPUKAN TEORI PENUNJANG

BAB IV DESKRIPSI DAN ANALISIS DATA. maka akan dilakukan pembahasan dalam bentuk paparan dan analisis faktor-faktor

ARNA FARIZA YULIANA SETIOWATI

BAB III STACK ATAU TUMPUKAN

Praktikum Stack. A. Stack Collection di java.util.collection. Percobaan 1. Percobaan 2. import java.util.iterator; import java.util.

SOAL TUGAS STRUKTUR DATA

BAB 2 LANDASAN TEORI

S T A C K ( T U M P U K A N )

Gambar 2.1 Ilustrasi Stack

APLIKASI PERANGKAT AJAR PENGELOLAAN DAN PERHITUNGAN EKSPRESI MATEMATIKA DARYANTO

Algoritma Pemrograman

BAB 3 STACK (TUMPUKAN)

TRANSKIP WAWANCARA 62

BAB IV HASIL DAN PEMBAHASAN PENELITIAN

BAB IV HASIL PENELITIAN DAN ANALISIS DATA. maka untuk menjawab pertanyaan tersebut dilakukan pembahasan dalam bentuk

BAB IV HASIL PENELITIAN

Pertemuan Ke-4 Urutan (sequence) Rahmady Liyantanto. liyantanto.wordpress.com. S1 Teknik Informatika-Unijoyo

INPUT OUTPUT. cout. Digunakan untuk mencetak suatu informasi ke layar Contoh : cout << Halo Teknik Informatika

Praktikum 4. Tumpukan (Stack)

Mari belajar keliling dan Luas Lingkaran.

BAB IV HASIL PENELITIAN

A. TUJUAN PEMBELAJARAN

Algoritma Pemrograman

BAB 4 HASIL DAN PEMBAHASAN

BAB IV HASIL PENELITIAN

Ingatan lo ternyata payah ya. Ini gue Rio. Inget nggak? Rio... Rio yang mana ya? Ok deh, gue maklum kalo lo lupa. Ini gue Rio, senior lo di Univ

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE

Bab 1 Sindrom Mahasiswa

Algoritma Pemrograman

Naskah Manajemen Complain dan Customer Care

Abe Poetra YM! = abe_poetra. 1. Kata-Kata Introduksi

Saksi #11: Conny Kurniawan

BAB IV DESKRIPSI DAN ANALISIS DATA PENELITIAN. Tabel 4.1 Jadwal Waktu dan Kegiatan Penelitian

Materi. Tipe, Variabel dan Operator Algoritma Pemrograman PENULISAN ALGORITMA PENULISAN ALGORITMA 15/03/2010 NAMA DAN EKSPRESI

Mata Kuliah : Matematika Diskrit Program Studi : Teknik Informatika Minggu ke : 8

STACK dan QUEUE MODUL PRAKTIKUM STRUKTUR DATA 09 UNIVERSITAS KRISTEN DUTA WACANA. Daftar Isi: Stack dan Queue. Latihan soal. Guided.

BAB I PENDAHULUAN Latar Belakang. Pengembangan sarana pendidikan berupa gedung baru di Universitas Atma

Algoritma dan Struktur Data I 2014

Stack. Gambar 1.1 Stack

BAB IV DESKRIPSI DAN ANALISIS DATA PENELITIAN

Kustomisasi Desktop dan Taskbar

1. E = a + 2b d + dh f g. Ubah ke dalam notasi postfix: a. Menggunakan Algoritma b. Secara manual c. Dari pohon biner menggunakan Stack

OPERATOR & UNGKAPAN. Contoh operator : a + b Simbol + merupakan operator untuk melakukan operasi penjumlahan dari kedua operandnya ( yaitu a dan b ).

b) Tentukan nilai dari C. Tentukan nilai dari d. Tentukan nilai dari e. Tentukan nilai dari f. Tentukan nilai dari

BAB IV POHON. Diktat Algoritma dan Struktur Data 2

BAB 3 MODE AKSES MEMORI, PENGGUNAAN VARIABEL DAN STACK

CARA AMPUH MEMBUAT WANITA JATUH CINTA PADA PRIA

BAB VII POHON BINAR POHON

KLASIFIKASI BINARY TREE

BAB IV HASIL PENELITIAN. kelas VII. Penelitian ini dilaksanakan di MTsN 2 Tulungagung tepatnya di kelas

Operator Aritmatika MODUL III OPERATOR

Aku, Sekolah, dan Cita-citaku

SOAL-JAWAB MATEMATIKA PENCACAHAN

PANDUAN VERVAL PESERTA DIDIK (NISN)

Perkenalkan nama saya Fonika. Saya adalah seorang

ALGORITMA PEMOGRAMAN SEMESTER GENAP 2017/2018

I. Arga ( tentang Dia dan Dia )

BAB IV DESKRIPSI DAN ANALISIS DATA PENELITIAN

Mata Kuliah : Struktur Data Semester : Genap Kode Mata Kuliah : 307 Waktu : 180 Menit Bobot : 4 sks. Jurusan : MI

Keindahan Seni Pendatang Baru

*Sekumpulan elemen yang diatur secara terurut. *Linear List tidak sama dengan Connected-List

TUTORIAL MAIL MERGE DENGAN MS.OFFICE 2007 & MS.EXCEL 2007

BAB III ANALISIS DAN PERANCANGAN

Operator Precedence dan Associativity DASAR PEMROGRAMAN. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 2

PROFIL PEMECAHAN MASALAH PADA MATERI OPERASI HITUNG CAMPURAN BILANGAN BULAT BERDASARKAN TAHAPAN POLYA

BAB IV HASIL PENELITIAN

Termilogi Pada Pohon Berakar 10 Pohon Berakar Terurut

BAB VII KOMPUTER SEDERHANA SAP-3 (SIMPLE AS POSSIBLE-3)

Hanif Fakhrurroja, MT

Membuat Login Pop Up Dengan JqueryUI

BAB IV HASIL PENELITIAN

SELAMAT DATANG!!! SELAMAT BELAJAR!!!!

Transkripsi:

PENDAHULUAN INFIX, PREFIX DAN POSTFIX Salah satu kegunaan stack adalah untuk mengubah notasi infix menjadi prefix ataupun postfix. Sebelum kita lihat yang dimaksud dengan infix, prefix dan postfix, ada baiknya mengenal istilah operand dan operator dahulu. Apa itu Operand dan Operator? Lalu apa sih Infix, Prefix, Postfix tersebut? Infix, Prefix ataupun Postfix adalah bentuk penulisan operasi matematika, bedanya : Infix = Operator diletakkan di antara Operand Prefix = Operator diletakkan di depan Operand Postfix / Sufix = Operator diletakkan di belakang Operand Contoh : Infix Prefix Postfix A + B x C x + A B C A B C x + D / E F - / D E F D E / F - Bingung kenapa Prefix atau Postfix-nya bisa seperti itu? Mengapa sih mesti ada notasi Prefix atau Postfix? Kenapa nggak gunakan infix aja, seperti yang sudah kita pelajari sejak zaman TK? Karena infix memiliki beberapa kekurangan, yaitu :. Urutan pengerjaan tidak berdasarkan letak kiri atau kananya, tetapi berdasarkan precedence-nya Contoh : 3 + 4 x 2 3 + 4 x 2, maka urutan pengerjaan adalah 4 x 2 dahulu. 3 + 8, baru hasilnya ditambah 3 Urutan precedence (dari prioritas tertinggi) adalah sebagai berikut :. Pemangkatan 2. Perkalian dan Pembagian 3. Penjumlahan dan Pengurangan. Kecuali kalau ada tanda kurung.

2. Menggunakan tanda kurung. Betul, infix bisa menggunakan tanda kurung. Repotnya, si tanda kurung ini bisa ngacak-ngacak urutan precedence. Contoh : Tanpa penggunaan tanda kurung : 9 5 3 9 5 3, maka urutan pengerjaan adalah 9-5 dahulu. 4 3 Bandingkan dengan penggunaan tanda kurung berikut : 9 ( 5 3 ) 9 ( 5 3 ), maka urutan pengerjaan adalah 5 3 dahulu. 9 2 7 3. Jika suatu program akan mengevaluasi (mencari hasil) suatu infix, maka komputer perlu men-scan berulang-ulang mencari urutan pengerjaannya dahulu. Contoh : 7 + 4 x 2 6 / 3 Jika kita diminta untuk menghitung soal seperti itu, maka kita tahu bahwa yang pertama kali harus kita kerjakan adalah 4 x 2. Lalu 6 / 3 dsb, seperti langkah-langkah berikut : 7 + 4 x 2 6 / 3 7 + 8 6 / 3 7 + 8 2 5 2 3 Bingung pada tahapan ini? Jangan lupa bahwa pengerjaan suatu soal tergantung pada urutan precedence-nya. Masalahnya, si komputer tidak bisa membaca keseluruhan soal sekaligus. Komputer hanya bisa men-scan soal satu per satu operand atau operator. Sehingga untuk mengetahui mana yang harus dikerjakan duluan, komputer harus men-scan keseluruhan soalnya dulu. Jadi langkah-langkah si komputer dalam mengerjakan soal infix seperti berikut:. Cari precedence tertinggi dengan men-scan kiri ke kanan keseluruhan soal. 2. Hitung nilai operator dengan precedence tertinggi tersebut. 3. Ulangi lagi dari langkah, sampai semua operator selesai dikerjakan. Jika si komputer yang tidak men-scan keseluruhan soalnya dulu, maka bisa salah hasilnya.

KONVERSI Konversi Infix ke Postfix Manual Langkah-langkahnya :. Cari operator yang memiliki precedence tertinggi. 2. Letakkan operator tsb di belakang operand-operandnya. 3. Ulangi terus sampai bosan, eh salah, sampai selesai. Contoh: A + B C x D ^ E / F, D ^ E maksudnya tuh D pangkat E. A + B C x D ^ E / F, pangkat memiliki precedence tertinggi A + B C x D E ^ / F, taruh ^ di belakang D dan E A + B C x D E ^ / F, x (kali) dan / (bagi) memiliki precedence sama tapi x di kiri A + B C D E ^ x / F, taruh x di belakang A + B C D E ^ x / F, dsb..., pelajari saja dulu. A + B C D E ^ x F / A + B C D E ^ x F / A B + C D E ^ x F / A B + C D E ^ x F / A B + C D E ^ x F /, inilah bentuk Postfix-nya. Konversi Infix ke Postfix Menggunakan Stack Bahan-bahan yang dibutuhkan : bh stack, misal bernama Stack. bh rangkaian soal, misal bernama Infix. bh variabel untuk penampung, misal bernama Postfix. Pikiran yang jernih secukupnya. Kemauan mencoba sesuai selera. Cara pembuatan :. Scan Infix dari kiri ke kanan. 2. Jika berupa operand, maka tulis di Postfix. 3. Jika berupa operator, maka bandingkan operator NEW tsb dgn TOP pada Stack :

a. WHILE precedence TOP >= NEW, maka POP Stack pindahkan ke Postfix. b. Lalu Push NEW ke dalam Stack. 4. Jika berupa (, maka Push ( ke Stack. 5. Jika berupa ), maka Pop Stack pindahkan ke Postfix sampai ketemu (. 6. Ulangi terus dari langkah sampai seluruh Infix sudah di-scan. 7. POP semua isi Stack, pindahkan ke Postfix. Perlu diingat!! tanda kurung ( ataupun ) tidak dimasukkan ke Postfix. Contoh : A + B x C

Contoh Lagi : A ^ B / ( C D ) Infix Postfix Stack. A ^ B / ( C D ) A 2. A ^ B / ( C D ) A ^ 3. A ^ B / ( C D ) A B ^ 4. A ^ B / ( C D ) A B ^ / 5. A ^ B / ( C D ) A B ^ / ( 6. A ^ B / ( C D ) A B ^ C / ( 7. A ^ B / ( C D ) A B ^ C / ( 8. A ^ B / ( C D ) A B ^ C D / ( 9. A ^ B / ( C D ) A B ^ C D / 0. A ^ B / ( C D ) A B ^ C D / Keterangan : Tanda kurung ( dan ), dapat dianggap tidak memiliki precedence, sehingga pada langkah ke-7, operator tidak perlu dibandingkan lagi dengan ( dan langsung di Push ke Stack. Pada langkah ke-8, tanda ) dibaca dari Infix, maka Stack di Pop terus sampai ketemu tanda (. Sehingga pada contoh di atas operator di Pop dan dipindahkan ke Postfix.

Konversi Infix ke Prefix Manual Langkah-langkahnya (mirip dengan Infix Postfix loh! dicek aja deh) :. Cari operator yang memiliki precedence tertinggi. 2. Letakkan operator tsb di depan operand-operandnya. 3. Ulangi lagi. Contoh: A + B C x D ^ E / F, D ^ E lagi-lagi maksudnya D pangkat E. A + B C x D ^ E / F, pangkat memiliki precedence tertinggi A + B C x ^ D E / F, taruh ^ di depan D dan E A + B C x ^ D E / F, x (kali) dan / (bagi) memiliki precedence sama tapi x di kiri A + B x C ^ D E / F, taruh x di belakang A + B x C ^ D E / F, dsb..., pelajari lagi saja dulu. A + B / x C ^ D E F A + B / x C ^ D E F + A B / x C ^ D E F + A B / x C ^ D E F + A B / x C ^ D E F, inilah bentuk Prefix-nya. Miripkan langkah-langkahnya dengan Infix Postfix yang tadi. Bahkan karena miripnya, sehingga saya menggunakan cara copy-paste aja untuk contoh Prefix di atas hehehe. Konversi Infix Ke Prefix Menggunakan Stack Kali ini kita menggunakan 2 Stack, yang satu untuk menampung operand (saya sebut aja namanya Stack Pre ) dan yang satunya lagi untuk menampung operator (yang ini saya sebut Stack Opr deh). Langkah langkah :. Scan Infix dari kanan ke kiri. 2. Jika berupa operand, maka Push ke Stack Pre. 3. Jika berupa operator, maka bandingkan operator NEW tersebut dengan TOP pada Stack Opr : a. WHILE precedence TOP > NEW, maka POP Stack Opr pindahkan ke Stack Pre. b. Lalu Push NEW ke dalam Stack Opr. 4. Jika berupa ), maka Push ) ke Stack Opr. 5. Jika berupa (, maka Pop Stack Opr pindahkan ke stack Pre sampai ketemu ). 6. Ulangi terus dari langkah sampai seluruh Infix sudah di-scan. 7. POP semua isi Stack Opr, pindahkan ke Stack Pre. 8. POP semua isi Stack Pre, pindahkan ke Prefix.

Contoh yang mirip Postfix tadi : A ^ B / ( C D ) Infix Stack Pre Stack Opr. A ^ B / ( C D ) ) 2. A ^ B / ( C D ) D ) 3. A ^ B / ( C D ) D ) 4. A ^ B / ( C D ) D C ) 5. A ^ B / ( C D ) D C 6. A ^ B / ( C D ) D C / 7. A ^ B / ( C D ) D C B / 8. A ^ B / ( C D ) D C B / ^ 9. A ^ B / ( C D ) D C B A / ^ 0. A ^ B / ( C D ) D C B A ^ /. A ^ B / ( C D ) D C B A ^ / 2. Prefix-nya menjadi / ^ A B C D Keterangan : Setelah Stack Opr dikosongkan. Jangan lupa untuk memindahkan isi Stack Pre ke Prefix. Sehingga urutan peletakkan operand pada hasil akhirnya tetap sama (coba diperhatikan, ternyata sewaktu bentuk Infix diubah ke Postfix ataupun Prefix, urutan letak operand-nya tetap sama!!! ). EVALUASI Yang dimaksud dengan Evaluasi disini adalah mencari nilai akhir dari suatu notasi. Dengan kata lain, disuruh ngitung hasilnya. Contoh : Berapa hasil 3 + 4? Jawab : 7 (bingung nilai 7 dapat dari mana? Coab dibuka buku matematika kelas SD). Yah udah cuma begitu aja. Evaluasi Postfix Manual Langkah-langkahnya :. Scan Postfix dari kiri ke kanan. 2. Jika berupa operand, cuekin dulu aja. 3. Jika berupa operator, ambil 2 operand sebelumnya (yang tadi sempet kita cuekin di sebelah kiri), lakukan perhitungan, lalu simpan lagi berupa operand. 4. Begitu seterusnya sampai ujung kanan Postfix. Contoh : Postfix : 7 6 5 x 3 2 ^ + 7 6 5 x 3 2 ^ +, scan terus sampai ketemu operator pertama. 7 6 5 x 3 2 ^ +, hitung 6 x 5.

7 30 3 2 ^ +, scan lagi cari operator berikutnya. 7 30 3 2 ^ +, hitung 3 pangkat 2. 7 30 9 +, scan lagi cari operator berikutnya. 7 30 9 +, hitung 30 9. 7 2 +, scan lagi. 7 2 +, hitung 7 + 24. 28, selesai. Evaluasi Postfix Menggunakan Stack Langkah-langkahnya :. Scan Postfix dari kiri ke kanan. 2. Jika berupa Operand, masukkan ke Stack. 3. Jika berupa Operator, Pop Stack 2 kali (ambil 2 operand), hitung hasilnya, lalu Push lagi ke dalam Stack. 4. Ulangi lagi sampai ujung kanan Postfix. Evaluasi Prefix Manual Langkah-langkahnya idem, sama kaya Postfix, tapi arah scannya dari kanan ke kiri. Contoh : Prefix : + 7 x 6 5 ^ 3 2 (soalnya sama nih sama soal Postfix tadi) + 7 x 6 5 ^ 3 2, scan kanan ke kiri sampai ketemu operator. + 7 x 6 5 ^ 3 2, hitung 3 pangkat 2. + 7 x 6 5 9, selanjutnya silahkan pelajari sendiri dulu. + 7 x 6 5 9 + 7 30 9 + 7 30 9 + 7 2 + 7 2 28 Evaluasi Postfix Menggunakan Stack Langkah-langkahnya :. Scan Postfix dari kanan ke kiri. 2. Jika berupa Operand, masukkan ke Stack. 3. Jika berupa Operator, Pop Stack 2 kali (ambil 2 operand), hitung hasilnya, lalu Push lagi ke dalam Stack. 4. Ulangi lagi sampai ujung kanan Postfix. Karena caranya mirip, lagi-lagi saya gunakan copy-paste. --- SELAMAT MENCOBA ---