Jelajah dunia dengan ilmu dan pengetahuan

Laporan Struktur Data

STACK 
Definisi Stack Stack adalah metode atau teknik dalam menyimpan atau mengambil data ke dan dari memori. Stack dapat diibaratkan sebuah tumpukan dalam suatu tempat yang hanya memiliki satu pintu diatasnya. Kaidah stack adalah First In Last Out atau Last In First Out (LIFO), benda yang terakhir masuk akan menjadi benda yang pertama dikeluarkan. Cara Kerja Stack Stack pada umumnya digunakan untuk menyimpan data atau ekpresi matematis. Selain untuk menyimpan dan mengambil kembali data matematis, stack juga dapat memeriksa apakah ekspresi matematis yang dimasukan sudah sesuai dengan kaidah penulisan matematisnya atau belum, misalnya kekurangan satu tanda kurung, kelebihan tanda matematis dan sebagainya. 


Berikut cara kerja stack : Misalkan kita akan memasukan data “R”,”O”,”M” DAN “A” ke dalam stack. Maka langkah pertama adalah computer akan melakukan pembuatan (CREATE) stack, misalnya untuk 4 lokasi memory. 

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. 
b. Pendeklarasian stack yang menggunakan single linked list Adapun stack yang menggunakan single linked list, hanya memerlukan suatu pointer yang menunjuk ke data terakhir (perhatikan proses di halaman sebelumnya). Setiap elemen linked list mempunyai 2 field yaitu elemen datanya dan pointer bawah yang menunjuk posisi terakhir sebelum proses push. Kelebihan dan kekurangan pada Queue Queue memiliki kelebihan dan kekurangan, yaitu : 
a. Kelebihan, data yang terakhir masuk maka akan pertama dilayani. 
b. Kekurangan, data yang pertama masuk, bila waktu pelayanan habis kemungkinan bisa tidak dilayani. 

QUEUE 
Definisi Queue Queue atau antrian sebenarnya juga merupakan suatu list. Salah satu sifat yang membedakan queue dengan stack adalah bahwa pada queue penambahan elemen dilakukan pada salah satu ujung (ujung depan) dan pengambilan dilakukan pada ujung yang lain (ujung belakang) . Dengan demikian queue menggunakan prinsip FIFO (First In First Out), yaitu elemen yang pertama masuk akan pertama kali pula dikeluarkan. Implementasi Queue Implementasi dalam bahasa Pascal dapat dilakukan dengan memanfaatkan struktur data record dan array. Array dipergunakan untuk menyimpan elemen-elemen yang dimasukkan. Selain itu diperlukan pula suatu variabel untuk mencatat banyaknya elemen yang ada di dalam array. Pada implementasi di bawah ini: 
a. Konstanta maxelm menyatakan banyaknya elemen maksimum yang dapat ditampung oleh queue 
b. Typeelemen adalah tipe data yang akan disimpan di dalam queue(bisa integer, word, real, boolean, char , string atau lainya) 
c. Banyak adalah field yang menyatakan banyaknya elemen dalam queue saat itu 
d. Queue diimplementasikan sebagai array linier dengan memandang bahwa elemen terdepan selalu berada pada sel pertama (implementasi fisik), sehingga bila terjadi pengambilan satu elemen maka semua elemen di belakang elemen terambil (bila ada) harus digeser ke depan satu langkah. 

Kelebihan dan kekurangan pada Queue Queue memiliki kelebihan dan kekurangan, yaitu : 
a. Kelebihan, data yang pertama masuk maka akan pertama dilayani. 
b. Kekurangan, data yang terakhir masuk, bila waktu pelayanan habis kemungkinan bisa tidak dilayani.

Dari penjelasan di atas timbul sebuah pertanyaan, yaitu apakah stack dan queue bias digabung ? Untuk Penggabungan sendiri, stack dan queue tidak dapat digabung karena pada prinsip dasarnya kedua ADT tersebut mempunyai konsep yang berbeda. Dimana stack menjalankan suatu perintah dengan mengutamakan data yang terakhir di input, sedangakan queue mengeksekusi dan mengutamakan data yang terakhir di input.