Algoritma & Struktur Data 2 P-6 Fery Updi, M.Kom 1
Capaian Kompetensi Mahasiswa mampu: 1. Memahami konsep Stack 2. Menjelaskan apa yang dimaksud dengan stack dan aplikasinya 2
Pokok Bahasan Stack 3
Stack Stack merupakan suatu struktur data yang memiliki sifat Last In First Out (LIFO). Seperti kata stack yang berarti tumpukan, stack dapat dianalogikan seperti suatu tumpukan. Tumpukan tersusun dari bawah ke atas, dengan setiap elemen yang baru selalu diletakkan di bagian paling atas tumpukan. Analogi dari stack dapat dilihat di gambar berikut:
Stack Sesuai namanya, struktur data ini digambarkan seperti keadaan tumpukan piring atau tumpukan buku. Cara yang paling mudah untuk meletakkan piring ke dalam tumpukan yakni dengan menaruhnya di bagian puncak. Begitu juga kalau Anda ingin mengambil piring. Piring diambil dari data yang berada di puncak tumpukan.
Stack
Stack Tumpukan memiliki sifat Last In First Out (LIFO). Artinya, data yang terakhir kali dimasukkan/disisipkan akan menjadi data yang pertama kali keluar. Pada contoh di atas, yang berisi tumpukan A, B, dan C jelas terlihat bahwa C adalah data yang terakhir kali ditumpukkan. Jika terjadi operasi pengambilan data maka C adalah data yang akan keluar terlebih dulu.
Operasi dasar pada tumpukan (Stack) adalah PUSH dan POP 1. Push (insert) Pada stack, proses insert elemen baru dinamakan push. Proses push selalu meletakkan elemen baru di atas elemen yang paling atas (top). 2. Pop (delete) Pada stack, proses delete elemen dinamakan pop. Proses pop selalu menghapus elemen yang terletak paling atas (top). Elemen yang dihapus oleh proses pop dikembalikan (return). Agar dapat digunakan oleh baris yang memanggil proses pop.
cara kerja stack dapat di ilustrasikan sebagai berikut: D ---> atas C B A ---> bawah Anggaplah gambar diatas sebagai tumpukan data, D sebagai node(struktur) yang atas (terkhir dimasukkan) dan A sebagai node yang bawah (pertamakali dimasukkan). Jika kita melakukan operasi Push (menambah), misalnya E, maka penambahan akan dilakukan pada nilai yang paling atas, yaitu D, sehingga menjadi:
E ---> atas D C B A ---> bawah Sehingga nilai E menjadi nilai atas yang baru, dan jika dilakukan operasi pop (delete), maka stack akan menjadi seperti gambar yang pertama diatas, yaitu nilai D menjadi nilai atas, dan nilai E akan dihapus dari tumpukan (stack).
Operasi-operasi stack secara lengkap adalah sebagai berikut : 1. Pendeklarasian stack Proses pendeklarasian stack adalah proses pembuatan struktur stack dalam memori. Karena stack dapat direpresentasikan dalam 2 cara, maka pendeklarasian stack pun ada 2 yaitu :
a. Pendeklarasian stack yang menggunakan array. Suatu stack memiliki beberapa bagian yaitu: top yang menunjuk posisi data terakhir (top) elemen yang berisi data yang ada dalam stack. Bagian ini lah yang berbentuk array. maks_elemen yaitu variable yang menunjuk maksimal banyaknya elemen dalam stack. Dalam bahasa C, pendeklarasiannya adalah :
b. Pendeklarasian stack yang menggunakan single linked list Adapun stack yang menggunakan single linked list, hanya memerlukan suatu pointer yang menunjuk ke data terakhir. Setiap elemen linked list mempunyai 2 field yaitu elemen datanya dan pointer bawah yang menunjuk posisi terakhir sebelum proses push. Pendeklarasian dalam bahasa C adalah :
2. Inisialisasi Inisialisasi stack adalah proses pembuatan suatu stack kosong. Adapun langkah-langkah proses tersebut berdasarkan jenis penyimpanannya adalah : a. Inisialisasi stack yang menggunakan array. b. Inisialisasi stack yang menggunakan single linked list
a. Inisialisasi stack yang menggunakan array. Proses inisialisasi untuk stack yang menggunakan array adalah dengan mengisi nilai field top dengan 0 (nol) jika elemen pertama diawali dengan nomor 1. Kalau elemen pertama array dimulai dengan 0 (contoh bahasa C), maka top diisi dengan nilai -1. Implementasinya dalam bahasa C adalah :
b. Inisialisasi stack yang menggunakan single linked list Proses inisialisasi untuk stack yang menggunakan single linked list adalah dengan mengisi nilai pointer stack dengan NULL. Implementasi dalam bahasa C adalah :
3. Operasi IsEmpty Operasi ini digunakan untuk memeriksa apakah stack dalam keadaan kosong. Operasi ini penting dilakukan dalam proses pop. Ketika suatu stack dalam keadaan kosong, maka proses pop tidak bisa dilakukan. Adapun langkah-langkah operasi ini adalah : a. Operasi IsEmpty pada stack yang menggunakan array. b. Operasi IsEmpty pada stack yang menggunakan single linked list.
a. Operasi IsEmpty pada stack yang menggunakan array. Operasi ini dilakukan hanya dengan memeriksa field top. Jika top bernilai 0 (untuk elemen yang dimulai dengan index 1) atau top bernilai -1 (untuk elemen yang dimulai dengan index 0), maka berarti stack dalam keadaan empty (kosong) yang akan mereturn-kan true (1) dan jika tidak berarti stack mempunyai isi dan me-return-kan nilai false (0). Implementasi dalam bahasa C adalah : int isempty(tstack stack) { if (stack.top==-1) return 1; else return 0; } Cara penggunaannya adalah : //Penggunaan isempty dalam statement if if( isempty(stack) )...
b. Operasi IsEmpty pada stack yang menggunakan single linked list. Operasi IsEmpty pada stack yang menggunakan single linked list adalah dengan memeriksa apakah pointer stack bernilai NULL. Jika stack bernilai NULL maka menandakan stack sedang keadaan empty (kosong) dan akan me-return-kan nilai 1 dan jika tidak NULL maka menandakan stack mempunyai isi (tidak kosong) sehingga operasi tersebut akan me-returnkan nilai false (0). Implementasinya dalam bahasa C adalah : int isempty(pstack stack) { if (stack==null) return 1; else return 0; }
Stack
Stack
Stack
Output Stack TUGAS Dari Output diatas coba anda masukkan angka (6, 1, 8, 2, 5) dengan memilih pilihan nomor 2 masukan angka 6 lakukan hal yg sama hingga angka 5, lalu pilih nomor 1, lalu pilih nomor 3, dan lalu pilih nomor 4, dan terakhir nomor 5 setiap langkah-langkah tersebut screenshot dalam bentuk file pdf kirim ke email: updi.fery@gmail.com dengan Subject/topic : Tugas Stack Unpri Nama_mhs, paling lambat 23 April 2018 jam 00.00 Wib
24