STACK
STACK
Definisi
• Data: Kumpulan fakta mentah.
• Struktur data adalah representasi dari hubungan logis yang ada
antara elemen data individual.
• Struktur data adalah format khusus untuk mengatur dan menyimpan
data dalam memori yang mempertimbangkan tidak hanya elemen
yang disimpan tetapi juga hubungannya satu sama lain.
Pengenalan Struktur Data
• Struktur data mempengaruhi desain aspek struktural & fungsional
suatu program.
• Program=algoritma + Struktur Data
• Algoritma adalah prosedur langkah demi langkah untuk
menyelesaikan fungsi tertentu.
Klasifikasi Struktur Data
Struktur data biasanya dibagi menjadi dua kategori besar:
• Struktur Data Primitif
• Struktur Data Non-Primitif
Klasifikasi Struktur Data
Struktur Data Primitif
• Ada struktur dasar dan dioperasikan langsung oleh instruksi mesin.
• Struktur data yang dioperasikan secara langsung berdasarkan
instruksi tingkat mesin dikenal sebagai struktur data primitif.
• Integer, Angka floating-point, Konstanta karakter, konstanta string,
pointer, dll, termasuk dalam kategori ini.
Struktur Data Primitif
• Operasi yang paling umum digunakan pada struktur data secara luas
dikategorikan ke dalam tipe berikut:
• Create / Membuat
• Selection/Pilihan
• Updating/Memperbarui
• Destroy/Hancurkan atau Delete/Hapus
Struktur Data Non-Primitif
• Ada struktur data yang lebih canggih.
• Struktur data yang diturunkan dari struktur data primitif disebut
struktur data non-primitif.
• Struktur data non-primitif menekankan pada penataan sekelompok
item data yang homogen (tipe yang sama) atau heterogen (tipe
berbeda).
Struktur Data Non-Primitif
Struktur Data Linier:
• Struktur Data Linier adalah jenis struktur data yang memiliki elemen homogen.
• Struktur data yang elemen-elemennya berada dalam urutan dan membentuk rangkaian liner.
• Struktur data linier sangat mudah diterapkan, karena memori komputer juga diatur secara linier.
• Beberapa struktur data linier yang umum digunakan adalah Stack, Queue, dan Linked List.
• Di sini kita akan mulai dari awal dan berlanjut hingga elemen terakhir dan selama proses ini kita
akan mengakses nilai setiap elemen tepat satu kali seperti di bawah ini:
A [1] = 10
A [2] = 20 Algoritma : Traversal (A, LB,UB) A merupakan array
dengan batas bawah (Lower Bound) LB dan batas
A [3] = 30 atas (Upper Bound) UB.
A [4] = 40 Langkah 1: for LOC=LB to UB do
A [5] = 50 Langkah 2: PROCESS A [LOC]
[End of for loop]
Langkah 3: Exit
Insertion/Menyisipkan Array
• Penyisipan: Digunakan untuk menambahkan item data baru ke dalam
kumpulan item data tertentu.
• Misalnya, kita mempunyai array linier A seperti di bawah ini:
• Elemen baru yang akan disisipkan adalah 100 dan lokasi penyisipan
adalah 3. Jadi geser elemen dari lokasi ke-5 ke lokasi ke-3 ke bawah
sebanyak 1 tempat. Lalu masukkan 100 di lokasi ke-3. Itu ditunjukkan
di bawah ini:
A : nama array
N : jumlah elemen/isi array
Insertion/Penyisipan ITEM : angka yang akan disisipkan
Pos : Posisi yang diinginkan
1 2 3 4 5
10 20 50 30 15
LATIHAN !
• Lakukan pengurutan pada array berikut
0 1 2 3 4 10 20 30 70 80
arr 70 80 30 10 20
70 80 30 10 20
sorted unsorted
30 70 80 10 20
sorted unsorted
10 30 70 80 20
sorted unsorted
10 20 30 70 80
sorted unsorted
A : nama array
N : jumlah elemen/isi array
LATIHAN ! ITEM : angka yang akan disisipkan
Pos : Posisi yang diinginkan
Algoritma : 70 80 30 10 20
N=5
Langkah 1 for I = N-1 down to Pos unsorted
ITEM = 5 sorted
for I = 5-1 down to 2
Pos = 2
A[I+1] =A[I] 30 70 80 10 20
End for loop unsorted
sorted
Langkah 2 A[Pos] = ITEM
A[2] =50
10 30 70 80 20
Langkah 3 N = N+1
6 = 5+1 sorted unsorted
Langkah 3 Keluar
10 20 30 70 80
sorted unsorted
LATIHAN !
• Lakukan pengurutan pada array berikut
0 1 2 3 4
arr 100 80 50 90 120
80 100 50 90 120
sorted unsorted
50 80 100 90 120
sorted unsorted
50 80 90 100 120
sorted
LATIHAN !
• Lakukan penyisipan angka 110 pada array berikut pada posisi 3
1 2 3 4 5 6 10 20 30 70 80
arr 100 20 50 90 30 10
70 80 30 10 20
sorted unsorted
30 70 80 10 20
sorted unsorted
10 30 70 80 20
sorted unsorted
10 20 30 70 80
sorted unsorted
LATIHAN !
• Buatlah algoritma penyisipan angka 110 pada array berikut pada
posisi 3 1 2 3 4 5 6 10 20 30 70 80
arr 100 20 50 90 30 10
70 80 30 10 20
sorted unsorted
30 70 80 10 20
sorted unsorted
10 30 70 80 20
sorted unsorted
10 20 30 70 80
sorted unsorted
Deletion/ Menghapus Array
• Penghapusan: Digunakan untuk menghapus item data yang ada dari
kumpulan item data tertentu.
LATIHAN !
• Lakukan penghapusan angka 30 pada array berikut pada posisi 3
1 2 3 4 5 10 20 30 70 80
arr 70 80 30 10 20
70 80 30 10 20
sorted unsorted
30 70 80 10 20
sorted unsorted
10 30 70 80 20
sorted unsorted
10 20 30 70 80
sorted unsorted
LATIHAN !
• Lakukan hapus angka 100 pada array berikut pada posisi 1
1 2 3 4 5 6 10 20 30 70 80
arr 100 20 50 90 30 10
70 80 30 10 20
sorted unsorted
30 70 80 10 20
sorted unsorted
10 30 70 80 20
sorted unsorted
10 20 30 70 80
sorted unsorted
Latihan sorting, insertion, deletion
• Lakukan pengurutan pada array berikut beserta algoritmanya
0 1 2 3 4
arr 100 80 50 90 120
• Bandingkan 20 dengan 15
• 20 #15, lanjutkan ke elemen berikutnya.
• Bandingkan 20 dengan 50
• 20 #50, lanjutkan ke elemen berikutnya.
• Bandingkan 20 dengan 35
• 20 #35, lanjutkan ke elemen berikutnya.
• Bandingkan 20 dengan 20
• 20 = 20, jadi ditemukan 20 dan letaknya 4.
Linear Search / Pencarian Linier
Misalkan LA adalah array linier dengan N elemen dan J adalah bilangan bulat positif sehingga
J<N.
Berikut algoritma untuk mencari elemen dengan nilai ITEM menggunakan sequential search
/pencarian sekuensial
Latihan Searching/Pencarian
• Kami memiliki array linier arr seperti I = angka index
di bawah
0
ini: 1 2 3 4
ITEM = angka yang dicari
N = batas array
arr 100 80 50 90 120 arr = array
Array linier
X
1 2 3 4 5 6
20 53 55 80 100 120
• ALGORITHM:
PUSH (STACK, TOP, SIZE, ITEM)
STACK adalah array dengan N elemen. TOP adalah penunjuk ke bagian atas elemen array. ITEM
yang akan dimasukkan.
• Step 1: if TOP = N then [Check Overflow]
• PRINT “ STACK Full atau Overflow”
• Exit
[End if]
Step 2: TOP = TOP + 1 [Increment the TOP]
Step 3: STACK[TOP] = ITEM [Insert the ITEM]
Step 4: Return
Operasi POP
• Proses penghapusan satu elemen atau item dari tumpukan diwakili
oleh operasi yang disebut operasi POP.
• Ketika elemen dikeluarkan terus menerus dari tumpukan, elemen
tersebut menyusut di ujung yang sama, yaitu bagian atas
Operasi POP
• Proses penghapusan satu elemen atau item dari tumpukan diwakili oleh operasi
yang disebut operasi POP.