0% menganggap dokumen ini bermanfaat (0 suara)
566 tayangan33 halaman

Struktur Data-Stack

Dokumen tersebut membahas tentang stack, yaitu struktur data yang menyimpan objek secara LIFO (last in first out). Stack dapat diimplementasikan menggunakan array atau linked list, dan memiliki kelebihan seperti mudah mengelola data dan membersihkan objek secara otomatis. Aplikasi stack antara lain pemrograman dan pengorganisasian penyimpanan komputer.

Diunggah oleh

alxndr 13
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
566 tayangan33 halaman

Struktur Data-Stack

Dokumen tersebut membahas tentang stack, yaitu struktur data yang menyimpan objek secara LIFO (last in first out). Stack dapat diimplementasikan menggunakan array atau linked list, dan memiliki kelebihan seperti mudah mengelola data dan membersihkan objek secara otomatis. Aplikasi stack antara lain pemrograman dan pengorganisasian penyimpanan komputer.

Diunggah oleh

alxndr 13
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 33

STRUKTUR DATA

TOPIC: STACK
REINHARD KOMANSILAN, M.KOM
POKOK BAHASAN

1. Apa Itu Stack?


2. Kelebihan dan Kekurangan Menggunakan Stack
3. Jenis-Jenis Operasi Stack
4. Aplikasi Stack
5. Implementasi Stack
APA ITU STACK?
• Dilansir dari TechTerms, stack adalah salah satu struktur
data yang digunakan untuk menyimpan sekumpulan
objek ataupun variabel.
• Sesuai namanya yaitu stack, tidak heran apabila objek
yang terkumpul terlihat seperti tumpukan.
• karakteristik stack sendiri bersifat LIFO (last in first out).
Artinya, data yang terakhir masuk merupakan data yang
akan keluar terlebih dahulu.

• Seperti halnya tumpukan pada umumnya, misalnya


tumpukan buku, yang di atas atau yang terakhir masuk
harus dikeluarkan terlebih dahulu untuk mendapatkan
buku yang berada di tumpukan bawah.
• Sebagai contoh, kamu mempunyai empat buku, yaitu
buku matematika, fisika, biologi, dan kimia. Buku
matematika kamu masukkan terlebih dahulu, lalu buku
selanjutnya fisika, biologi, dan kimia.

• Nah, untuk mendapatkan buku fisika, kamu harus


mengeluarkan buku kimia dan biologi terlebih dahulu,
karena kedua buku tersebut tergolong buku yang terakhir
masuk.
CONTOH:

https://www.mathsisfun.com/games/towerofhanoi.htm
l
• Analogi di atas seperti halnya stack yang memiliki sifat
LIFO. Data terakhir yang masuk harus keluar terlebih
dahulu.

• Konsep ini pada umumnya digunakan dalam


pemrograman dan mengorganisir penyimpanan komputer
KELEBIHAN DAN KEKURANGAN MENGGUNAKAN
STACK

1. Kelebihan
• membantu mengelola data dengan metode LIFO
• secara otomatis membersihkan objek
• tidak mudah rusak
• ukuran variabel tidak dapat diubah
• mengontrol memori secara mandiri
2. Kekurangan
• memori stack sangat terbatas
• ada kemungkinan stack akan meluap atau overflow jika
terlalu banyak objek
• tidak memungkinkan akses acak, karena harus
mengeluarkan tumpukan paling atas terlebih dahulu
untuk mengakses tumpukan paling bawah
JENIS-JENIS OPERASI STACK
APLIKASI STACK
1. SINGLE
STACK

diatas diilustrasikan ada sebuah indeks array yang masih kosong pada awal
pembuatan stack dimana n[10], variabel Top berada pada -1 yang menunjukkan
indeks masih dalam keadaan kosong
Di atas adalah keadaan ketika stack sudah diisi data. Pada kondisi ini data pertama
yang diinputkan adalah S[0]=11, data kedua S[1]=7, data ketiga S[2]=15, data
keempat S[23]=23.

Kondisi Top sudah berubah menjadi data yang terakhir diinputkan (data keempat)
sehingga Top[3] X=23.
Variabel Top digunakan sebagai indeks untuk menunjuk nomor elemen
array yang berisi nilai stack yang berada paling kanan atau Top, yang
ditunjukan dengan angka 3.

Variabel X bertipe integer digunakan sebagai perantara, dimana data yang


akan disimpan kedalam stack harus berasal dari X.

Demikian juga data yang baru diambil dari dalam stack harus diterima
terlebih dahulu oleh variabel X, kemudian baru diberikan ke variabel lain
untuk diolah.
Oleh karena itu, jika ada instruksi PUSH, maka data baru (yang diambil
dari isi variabel X) akan disimpan dalam elemen S[4] sehingga indeks
Top harus diarahkan ke posisi no. 4.

Artinya, Top maju terlebih dahulu satu langkah ke S[4], kemudian baru
mengisi nilai pada S[4].

Sedangkan jika ada instruksi Pop, maka yang akan diambil adalah isi
dari S[3] dan datanya akan disimpan terlebih dahulu dalam variabel X,
kemudian indeks Top menjadi mundur satu langkah sehingga akan
menunjuk S[2].
2. DOUBLE STACK

Pada gambar 4.4 diatas adalah ilustrasi indeks array pada double stack. Pada stack1 kondisi
data pertama yang diinputkan adalah S[0], data kedua S[1], data ketiga S[2] dan Top1=data
input terakhir S[2]. Sedangkan pada stack2 data pertama adalah S[9], data kedua S[8], data
ketiga S[7], data keempat S[6] dan Top2=data input terakhir S[6].
Operasi Dasar Pada Double Stack
IMPLEMENTASI STACK

Sekarang kita sudah tahu pengertian dari stack serta


kelebihan dan kekurangan dalam menggunakannya.

Lalu, seperti apa sih implementasinya?

STACK dapat dengan mudah diimplementasikan


dengan menggunakan array atau linked list.
ARRAY
Array adalah salah satu implementasi dari stack yang paling sederhana dan
menawarkan akses acak ke pengguna berdasarkan indeks.

dalam implementasi stack menggunakan array, programmer dapat menggunakan


bahasa pemrograman seperti C, C++, Java, Phyton, dan C#.

Kelebihan dari implementasi stack menggunakan array adalah mudah untuk


diimpelementasikan.

Sementara itu, kekurangannya adalah bisa dibilang tidak terlalu dinamis. Pasalnya,
hal itu tidak tumbuh dan menyusut, tergantung pada kebutuhan saat proses.
LINKED LIST
Sama halnya array, linked list juga mudah dalam mengimplementasikan stack.

Seperti yang sudah dijelaskan sebelumnya, operasi dasar dari stack adalah menambahkan data (push)
dan menghapus data (pop).

Dengan menggunakan linked list, operasi push bisa diganti dengan metode addAtFront dan operasi
pop bisa diganti dengan fungsi yang menghapus node depan dari linked list.

Masih sama seperti array, linked list juga dapat digunakan bahasa pemrograman seperti C, C++, Java,
Phyton, dan C#.

Kelebihan dari implementasi stack menggunakan linked list adalah dapat bertambah dan berkurang
sesuai dengan kebutuhan saat runtime.

Sementara kekurangannya adalah harus membutuhkan memori ekstra karena ada pointer di dalamnya.
CONTOH MENGGUNAKAN ARRAY
TERIMA KASIH
• DEMO PROGRAM 1 & 2

Anda mungkin juga menyukai