Anda di halaman 1dari 24

STRUKTUR DATA

PERTEMUAN II & III


D. Cahyadi, S. Kom, M. KOM
Email : dccahyadi@yahoo.com
Daftar Linier
 Sebuah Daftar Linier atau List Linier, merupakan suatu
struktur Data umum yang berbentuk dari barisan yang
terurut dari suatu Data ataupun Record.
 Elemen yang terdapat didalam daftar disebut simpul atau
node, daftar disebut Linier (lurus) karena Elemen tampak
seperti berbaris yakni bahwa setiap simpul kecuali pertama
dan yang terakhir selalu memiliki sebuah elemen penerus
langsung dan sebuah elemen pendahuluan langsung.
 Simpul atau elemen tersebut dapat berubah-ubah berbeda
dengan Array yang banyak elemennya selalu tetap.
 List Linier A yang mengandung T elemen pada suatu saat
sebagai A=[A1, A2,....,AT].
 Jika T=0, maka A disebut List hampa atau Null List.
Definisi
 Kumpulan elemen-elemen data yang disimpan dalam
satu lajur linier
 Sebagai kumpulan data yang diolah-olah diletakkan
diatas data yang lain.
 Bentuk khusus dari list linier.
Lanjutan
 Pada Stack / Tumpukan, penghapusan dan pemasukan
elemennya hanya dapat dilakukan pada satu posisi
yakni posisi akhir dari list.
 Posisi ini disebut puncak atau Top dari stack.
 Elemen Stack S pada posisi ini dinyatakan dengan
TOP(S).
 Jika Stack S = [S1, S2,.....,ST) maka TOP(S) adalah ST.
 Banyaknya Stack S pada suatu saat tertentu disebut
NULL(S) atau NULL(S) = T
Lanjutan
 Seperti halnya pada semua List Linier, pada stack
dikena l opera si pengha pusa n da n pema suka n
(penyisipan).
 Operator penghapus elemen pada Stack disebut POP,
sedangkan Operator pemasukan elemen disebut
PUSH.
 Terlihat bahwa kedua operasi diatas pada Stack adalah
bersifat Terakhir Masuk Pertama ke Luar atau Last In-
First-Out (LIFO).
 Contoh : tumpukan sate, tumpukan cd
Lanjutan
Lanjutan
Operasi Dasar Pada Tumpukan/Stack
 Operasi yang sering diterapkan pada struktur data
tumpukan atau Stack adalah Push dan Pop. Operasi
dasar yang dapat diterapkan sbb :
1. CREATESTACK(S) : Membuat Tumpukan S jika ada
elemen kosong.
2. MAKENULL (S) : Mengosongkan Tumpukan S
jika ada elemen maka semua elemen dihapus.
3. EMPTY : Tumpukan kosong ? – menguji
apakah Tumpukan kosong.
4. PUSH (x,S) : Memasukan elemen baru x ke
dalam tumpukan S
5. POP (S) : Mengeluarkan elemen posisi
atas pada Tumpukan/Stack
Contoh : Stack/Tumpukan
Lanjutan
 Apa yang terjadi dilakukan POP(S) sebanyak dua kali
lagi ? Underflow, artinya tumpukan kosong tidak ada
elemen yang dapat diambil.
 Apa yang terjadi dilakukan PUSH(x,S) sebanyak 10 x,
jika kapasitas tumpukan adalah 5 lagi ? Overf low,
artinya tumpukan penuh tidak ada elemen yang dapat
dimasukan ke dalam tumpukan.
Notasi Aritmetik
 Salah satu pemanfaatan tumpukan atau Stack adalah
untuk menulis ungkapan dengan menggunakan notasi
tertentu. Seperti kita ketahui, dalam penulisan
ungkapan numerik selalu menggunakan tanda kurung
untuk mengelompokan bagian mana yang akan
dikerjakan terlebih dahulu.
Lanjutan

 Dengan Hirarchy operator pada komputer. Prioritas


pengerjaannya adalah :
 Tanda kurung (.......)
 Eksponential atau pangkat : ^
 Perkalian, Pembagian : * , /
 Penjumlahan, Pengurangan : +, -
Contoh : (A+B) * (C+D)
 Prioritas pengerjaan soal diatas adalah sbb :
 Dalam kurung yang paling kiri : (A+B)
 Dalam kurung yang kedua (C+D)
 Perkalian hasil pengurangan dengan hasil penjumlahan
 Notasi infix untuk penulisan aritmatik, biasa diubah
ke dalam notasi prefix atau postfix saat kompilasi.
Notasi prefix maupun postfix akan lebih mudah
dikerjakan oleh komputer karena tidak perlu mencari
urutan pengerjaan seperti pada notasi infix.
Lanjutan
 Prefix adalah keadaan dimana simbol operator
diletakkan sebelum dua operand.
 Postfix adalah keadaan dimana simbol operator
diletakkan sesudah dua operand.
 Aturan notasi infix, prefix dan postfix :
 Notasi Infix : operand operator operand A+B
 Notasi Prefix : operator operand operand +AB
 Notasi Postfix : operand operand operator AB+
Lanjutan
Contoh 1
 Infix ke Prefix : (A+B) – (C*D)
o Kurung ke-1 : (A+B), prefixnya adalah +AB
o Kurung ke-2 : (C*D), prefixnya adalah *CD
o Terakhir adalah operator : +AB - *CD, prefixnya adalah -
+AB*CD

Contoh 2
 Infix ke Postfix : (A+B) – (C*D)
o Kurung ke-1 : (A+B), postfixnya adalah AB+
o Kurung ke-2 : (C*D), postfixnya adalah CD*
o Terakhir adalah operator : AB+ - CD*, postfixnya adalah AB +
CD * -
Lanjutan
Contoh 3
 Prefix ke Infix : + / * ABCD
 Untuk pengerjaan prefix, mencari operator dimulai dari
operand terkanan sbb :
o Operator ke-1 : *, ambil dua operand sebelumnya A dan
B, infixnya adalah (A*B)
o Operator ke-2 : /, ambil dua operand sebelumnya (A*B)
dan C, infixnya adalah ((A*B)/C)
o Operator ke-3 : +, ambil dua operand sebelumnya
((A*B)/C) dan D, infixnya adalah ((A*B)/C)+D
Lanjutan
Contoh 4
 Prefix ke Postfix : + / * ABCD
o Operator ke-1 : *, ambil dua operand sebelumnya A dan
B, postfixnya adalah A B *
o Operator ke-2 : /, ambil dua operand sebelumnya A B*
dan C, postfixnya adalah A B * C /
o Operator ke-3 : +, ambil dua operand sebelumnya A B *
C / dan D, postfixnya adalah A B * C / D +
Lanjutan
Contoh 5
 Postfix ke Infix : ABCD * / -
o Operator ke-1 : *, ambil dua operand sebelumnya C dan D, infixnya adalah (C*D)
o Operator ke-2 : /, ambil dua operand sebelumnya B dan (C*D), infixnya adalah ( B /
(C*D))
o Operator ke-3 : +, ambil dua operand sebelumnya A dan (B/(C*D)), infixnya adalah A
– ( B / ( C * D ))

Contoh 6
 Postfix Ke Prefix : ABCD * / -
o Operator ke-1 : *, ambil dua operand sebelumnya C dan D, prefixnya adalah *CD
o Operator ke-2 : /, ambil dua operand sebelumnya B dan *CD, prefixnya adalah / B *C
D
o Operator ke-3 : +, ambil dua operand sebelumnya A dan /B * CD, prefixnya adalah –A
/B *C D

o Untuk pengerjaan prefix, mencari operator dimulai dari operand


terkanan sbb :
Lanjutan
Lanjutan
Tugas
 Buat file Stack dengan elemen data sbb 5 lokasi:
 Masukan elemen =1
 Masukan elemen =2
 Masukan elemen =3 dan 4
 Masukan elemen =5
 Hapus elemen =5
 Masukan elemen 6 dan 7
 Hapus elemen =4
 Hapus elemen =3
 Hapus elemen =2
v Tugas : Buat file Stack dengan elemen data sebanyak
7 baris list sbb :

1. Masukan elemen =A
2. Masukan elemen =B
3. Masukan elemen =C dan D
4. Masukan elemen =E
5. Hapus elemen top
6. Masukan elemen F dan G
7. Hapus elemen top
8. Hapus elemen top
9. Hapus elemen top
10. Hapus semua elemen data
11. Uji elemen data apakah data kosong atau tidak
12. Hapus Elemen berikutnya
Tugas
1. Notasi Infix sbb : 7 + 10 / 2 - 10 ubah ke dalam Prefix dan
Postfix dan gunaka Stack / Tumpukan untuk menampilkan
hasil
2. Notasi Infix sbb : (1+2)*2^2 -1*(3+2) dan (5-3) * 2^2 + (4-2)
ubah ke dalam Prefix dan Postfix dan gunaka Stack /
Tumpukan untuk menampilkan hasil
3. Ubah notasi infix ke prefix dan postfix :
 A^(B+C)
4. Ubah notasi prefix ke infix dan postfix :
 - + DE / XY
5. Ubah notasi postfix ke infix dann prefix :
 GH+ IJ / *
6. Hitung hasil evaluasi tumpukan :
 Prefix : - +*1 23/62
 Postfix : 6 7 – 123 + - *
Tugas Pertemuan 2 N0 1 Dan Tugas Pertemuan 3 NO 2
1. Buat file Stack dengan elemen data sebanyak 5 lokasi sbb :
a. Masukan elemen =1
b. Masukan elemen =2
c. Masukan elemen =3 dan 4
d. Masukan elemen =5
e. Hapus elemen =5
f. Masukan elemen 6 dan 7
g. Hapus elemen =4 dan 6
h. Hapus elemen =3
i. Hapus elemen =2
j. Hapus semua elemen data
k. Uji elemen data apakah data kosong atau tidak
l. Hapus Elemen berikutnya
2, Notasi Infix sbb : (3*2 ) / 2 + 1 * (4-2) ubah ke dalam Prefix dan
Postfix dan gunaka Stack / Tumpukan untuk menampilkan hasil

Anda mungkin juga menyukai