Anda di halaman 1dari 19

Struktur Data

Konversi Infiks Postfiks dan Prefiks

Disusun oleh :
Nama : Ida Bagus Ngurah Gede Suwambara
NIM : 120030079
Kelas : F123

Struktur Data

Sekolah Tinggi Manajemen Informatika dan


Teknik Komputer
STIKOM BALI
2013
DAFTAR ISI
Bab 1 Pendahuluan
1.1

Pengertian Struktur Data ....................................................................................................

Bab 2 Pembahasan
2.1

Pengertian Notasi Infiks, Postfiks, Prefiks ......................................................................

2.2

Konversi Notasi Infiks ke Postfiks Menggunakan Stack .............................................

2.3

Konversi Notasi Infiks ke Notasi Prefiks dan Postfiks .................................................

2.4

Konversi Notasi Prefiks ke Notasi Infiks dan Postfiks ...............

2.5

Konversi Notasi Postfiks ke Notasi Infiks dan Prefiks .................................................

Bab 3 Contoh Program Konversi Notasi Infiks ke Notasi Postfiks


3.1

Code ...

3.2

Output .....

13

Sumber

14

Struktur Data

Struktur Data

BAB 1

PENDAHULUAN

Struktur data adalah cara menyimpan atau merepresentasikan data didalam komputer agar
bisa dipakai secara efisien. Sedangkan data adalah representasi dari fakta dunia nyata. Fakta
atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam
bentuk tulisan, suara, gambar, sinyal atau simbol. Struktur data dapat di artikan juga sebagai
representasi data pada memory secara logika dan meng-karakterisasikan setiap variabel
dalam program secara eksplisit ataupun implicit. Untuk operasi yang dibolehkan/berlaku
pada object data tersebut sehingga sangat diperlukan dalam perencanaan Algoritma dan
penyusunan program sebagai dasar teknik dari Database.

Pemakaian struktur data yang tepat didalam proses pemrograman akan menghasilkan
algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih
efisien dan sederhana.

Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom
data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya
digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari
kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat
berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan
dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur
data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan)
atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh
struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data
(database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas
dengan teknik tertentu yang memanfaatkan struktur data.

Pada makalah ini saya akan menjelaskan lebih lanjut tentang konversi aritmatika dari Infiks,
Postfiks dan Prefiks.

Struktur Data

Page 1

BAB 2

PEMBAHASAN

Pengertian Notasi Infliks, Postfiks, Prefiks :

Notasi Infiks

Struktur Data

Page 2

Adalah notasi yang terbentuk atas operator dengan operand, dimana operator berada
diantara operand. Notasi ini selalu digunakan dalam perhitungan aritmatika.

Notasi Postfiks
Adalah notasi yang terbentuk atas operator dengan operand, dimana operator berada
dibelakang operand. Notasi ini hanya dikenal oleh processor dan dipahami dalam ALU.

Notasi Prefiks
Adalah notasi yang terbentuk atas operator dengan operand, dimana operator berada didepan
operand.

A. Konversi Notasi Infiks ke Postfiks Menggunakan Stack


Ekspresi aritmatika yang dapat dionversi dengan menggunakan stack adalah hanya dari notasi
infliks ke notasi postfiks. Notasi infiks dapat dibedakan dengan dua bentuk, yaitu infiks tanpa
pasangan buka tutup kurung dan dengan pasangan buka tutup kurung lengkap yang disebut
istilah well form formula (wff). Konversi notasi ini juga berbeda.

1. Notasi Infiks Tak Bertanda Kurung


Untuk mengkonversi notasi infliks tak bertanda kurung ke notasi postfiks dapat
dilakukan dengan:

String infiks merupakan suatu ekspresi infiks tak bertanda kurung valid.

Satu stack diinisiasikan kosong.

String postfiks diinisiasikan dengan (null string) untuk menampung hasil


konversi.

Struktur Data

Page 3

Perhatikan tingkat kekuatan/prioritas symbol, pada Tabel 1.1.

Tabel 1.1. Tabel Tingkat Kekuatan Simbol Tak Bertanda Kurung

Tingkat Kekuatan
Nama
5
Variabel, Konstanta
4
Sign
3
Pangkat
2
Kali dan Bagi
1
Tambah dan Kurang
Langkah-langkah konversi notasi infliks ke notasi postfiks

Simbol
A..Z,0..9
-, +
^
*, /
+, -

Scan simbol dari kiri ke kanan ekspresi infliks dan setiap kali scan simbol infliks bandingkan
simbol yang di-scan dengan simbol yang ada pada Stack (posisi TOP) saat itu:
-

Jika tingkat kekuatan simbol di Stack lebih besar atau sama dengan tingkat
kekuatan simbol yang di scan maka simbol yang di stack disambung (concate)
dengan string postfiks.
Jika tingkat kekuatan simbol di Stack lebih kecil dengan tingkat kekuatan simbol
yang di scan atau Stack kosong maka simbol yang di scan dimasukkan (PUSH)
ke dalam Stack.
Jika infliks telah kosong maka POP semua isi Stack satu persatu dan Concate
dengan string postfiks.

Contoh : 5*2+4^3/8-7

52*43^8/+7-

Simbol di-Scan

Struktur Data

5
*
2
+
4
Simbol di-Scan
^
3
/
8
7

Isi Stack
#
#
#*
#*2
#+
#+4
Isi Stack
#+^
#+^3
#+/
#+/8
#Page 4
#-7
#

Postfiks

5
5
52*
52*
Postfiks
52*4
52*4
52*43^
52*43^
52*43^8/+
52*43^8/+7
52*43^8/+7-

2. Notasi Infiks Bertanda Kurung Lengkap


Konversi notasi infiks bertanda kurang lengkap dapat dilakukan dengan:
-

String infiks merupakan suatu ekspresi infiks bertanda kurung valid.


Tanda kurung buka pada string infiks masuk ke Stack tetapi tidak masuk ke
dalam string postfiks.
- Tanda kurung buka pada stack nilai prioritasnya berubah menjadi 0.
- Tanda kurung tutup di-scan maka elemen puncak Stack hingga kurung buka di
concate terhadap string postfiks.
- Tanda kurung tutup tidak pernah masuk ke dalam Stack
Perhatikan tingkat kekuatan atau prioritas simbol pada Tabel 1.2.
Tabel 1.2. Tabel Tingkat Kekuatan Simbol Notasi Infiks Bertanda Kurung
Lengkap
Simbol

Prioritas karakter di
scan (fungsi f)

Prioritas karakter dalam stack


(fungsi g)

Tidak pernah masuk stack

A..Z,0..9

*, /

+, -

Langkah-langkah konversi notasi infiks bertanda kurung lengkap ke notasi postfiks:


Scan simbol dari kiri ke kanan ekspresi infiks dan setiap kali scan simbol infiks
bandingkan simbol yang di scan (fungsi f) dengan simbol yang ada pada posisi
puncak (top) Stack (fungsi 1) saat itu :

Struktur Data

Page 5

Jika prioritas simbol di Stack (fungsi g) lebih besar dengan prioritas simbol yang
di scan (fungsi f) maka simbol yang di Stack disambung (Concate) dengan
string Postfiks.
Jika tingkat kekuatan simbol di Stack lebih kecil atau sama dengan tingkat
kekuatan simbol yang di scan atau Stack kosong maka simboll yang di scan
dimasukkan (PUSH) ke dalam Stack.

Contoh: (( 5*((2+4)^3))/(8-7))
Simbol di-Scan
(
(
5
*
(
(
2
+
4
)
^
3
Simbol di-Scan
)
)
/
(
8
7
)

Struktur Data

524+3^*87-/
Isi Stack
#
#(
#((
#((5
#((*
#((*(
#((*((
#((*((2
#((*((+
#((*((+4
#((*(
#((*(^
#((*(^3
Isi Stack
#((*
#(
#(/
#(/(
#(/(8
#(/(#(/(-7
#(/

Page 6

Postfiks

5
5
5
5
5
52
52
524+
524+
524+
Postfiks
524+3^
524+3^*
524+3^*
524+3^*
524+3^*
524+3^*8
524+3^*8
524+3^*87-

524+3^*87-/

B. Konversi Notasi Infiks ke Notasi Prefiks dan Postfiks


Yang perlu diperhatikan dalam konversi notasi infiks ke notasi lain hanya prioritas masingmasing operator yang ada dalam notasi infiks. Operator dengan prioritas tertinggi pertama
dilakukan. Jika terdapat dua atau lebih operator dengan prioritas yang sama maka akan
dikerjakan mulai dari yang kiri.
Misalnya: A + B * C / D E
Operator *
ambil operand sebelum dan sesudahnya : B dan C
Prefiks
: *BC
Postfiks
: BC*
Maka ekspresi di atas menjadi A + 1 / D E
1
Operator /
ambil operand sebelum dan sesudahnya : 1 dan D
Prefiks
: /1D
Postfiks
: 1D/
Maka ekspresi di atas menjadi A + 2 E
2
Operator +
ambil operand sebelum dan sesudahnya : A dan 2
Prefiks
: +A2
Postfiks
: A2+
Maka ekspresi di atas menjadi 3 - E

Struktur Data

Page 7

3
Operator Prefiks
Postfiks

ambil operand sebelum dan sesudahnya : 3 dan E


: -3E
: 3E-

Lakukan substitusi untuk memperoleh notasi yang selengkapnya untuk notasi Prefiks dan
Postfiks.
Prefiks
: -3E = -+A2E = -+A/1DE = -+A/*BCDE
Postfiks
: 3E- = A2e- = A1D/E- = ABC*D/E
C. Konversi Notasi Prefiks ke Notasi Infiks dan Postfiks
Konversi notasi prefix ke notasi infiks atau postfiks dilakukan dengan cara mengambil
operator mulai dari kanan ke kiri kemudian diikuti dengan mengambil dua operand
sebelumnya. Tapi untuk notasi infiks harus dituliskan dalam pasangan buka tutup kurung.
Misalnya : -+A/*BCDE
Operator *
ambil dua operand sebelumnya : B dan C
Infiks
: (B*C)
Postfiks
: BC*
1
Maka ekspresi di atas menjadi : -+A/1DE
Operator /
ambil dua operand sebelumnya : 1 dan D
Infiks
: (1/D)
Postfiks
: 1D/
2
Maka eskpresi di atas menjadi : -+A2E
Operator +
ambil dua operand sebelumnya : A dan 2
Infiks
: (A+2)
Postfiks
: A2+
3
Maka ekspresi di atas menjadi : -3E
Operator Infiks
Postfiks

ambil dua operand sebelumnya : 3 dan E


: (3-E)
: 3E-

Struktur Data

Page 8

Lakukan substitusi untuk memperoleh notasi yang selengkapnya untuk notasi infiks dan
postfiks.
Infiks
Postfiks

: (3 E) = ((A+2) E) = ((A+(1/D)) E) = ((A+((B*C)/D)) E)


: 3E- = A2+E- = A1D/+E- = ABC*D/+E

D. Konversi Notasi Postfiks ke Notasi Infiks dan Prefiks


Konversi notasi prefix ke notasi infiks atau postfiks dilakukan dengan cara mengambil
operator mulai dari kiri ke kanan kemudian diikuti dengan mengambil dua operand
sebelumnya. Tapi untuk notasi infiks harus dituliskan dalam pasangan buka tutup kurung.
Misalnya : ABC*D/+EOperator *
ambil dua operand sebelumnya : B dan C
Infiks
: (B*C)
Prefiks
: *BC
1
Maka ekspresi di atas menjadi : A1D/+EOperator /
ambil dua operand sebelumnya : 1 dan D
Infiks
: (1 / D)
Prefiks
: /1D
2
Maka ekspresi di atas menjadi : A2+EOperator +
ambil dua operand sebelumnya : A dan 2
Infiks
: (A + 2)
Prefiks
: +A2
3
Maka ekspresi di atas menjadi : 3EOperator Infiks
Prefiks

ambil dua operand sebelumnya : 3 dan E


: (3 E)
: -3E

Struktur Data

Page 9

Lakukan substitusi untuk memperoleh notasi yang selengkapnya untuk notasi infiks dan
prefiks.
Infiks
Prefiks

: (3 E) = ((A + 2) E) = ((A + (1/D)) E) = ((A+((B*C)/D)) E)


: -3E = -+A2E = -+A/1dE = -+A/*BCDE

BAB III
CONTOH PROGRAM KONVERSI INFIKS KE POSTFIKS DALAM
BAHASA C++

Code :

Struktur Data

Page 10

Struktur Data

Page 11

Struktur Data

Page 12

Struktur Data

Page 13

Struktur Data

Page 14

Output

Struktur Data

Page 15

SUMBER
Lamhot Sitorus, David J.M. Sembiring, 2012, Konsep dan Implementasi Struktur
Data dengan C++, Andi Offset, Yogyakarta

Struktur Data

Page 16

Anda mungkin juga menyukai