INFORMATIKA
Pertemuan 5
1
D. Tumpukan (Stack) dan Antrean (Queue)
Pada pertemuan 3-4 kita sudah membahas Berifkir Komputasional (Pertemuan 3) dan Algoritma Dasar (Pertemuan 4). Selanjutnya
pada Pertemuan 5 (Struktur Data), kita akan mempelajari dua buah konsep cara penyimpanan data/objek dalam sebuah struktur
yang akan menentukan urutan pemrosesan data/onjek tersebut. Konsep tersebut yaitu tumpukan (stack) dan antrean (queue).
2
1. Tu m p u k a n ( S t a c k )
Stack atau tumpukan adalah kumpulan data yang mana data diletakkan di atas data lain, konsep dari tumpukan ini bersifat LIFO
(Last In First Out). Elemen terakhir yang disimpan dalam stack menjadi elemen pertama yang diambil. Untuk meletakan sebuah
elemen pada bagian atas dari stack, kalian akan melakukan push. Adapun untuk mengeluarkan isi stack menggunakan pop. Sebagai
contoh, kamu dapat membayangkan kamu sedang makan di tempat makan, dimana kamu dapat mengambil makanan sepuasnya.
Nah pastikan ada piring yang menumpuk ke atas, seperti itulah konsep LIFO. Dimana piring yang terakhir masuk (yang paling atas)
akan keluar terlebih dahulu.
3
I l u s t r a s i L I F O ( L a s t I n F i r s t O u t ) p a d a S TA C K
4
Operasi pada Stack
1. Push yaitu menambahkan elemen ke atas tumpukan
2. Pop yaitu menghapus elemen paling atas
3. Display yaitu menampilkan elemen pada tumpukan
4. isEmpty yaitu mengembalikan nilai keadaan dari tumpukan, apakah kosong atau ada isinya
5. isFull kebalikan dari isEmpy yaitu mengembalikan nilai true ketika tumpukanpenuh
Kita dapat membuat tumpukan dengan menggunakan Array atau Linked List.
5
Representasi dengan Array
Penggunaan stack dengan array sebenarnya kurang tepat, karena array memiliki ukuran yang tidak dinamis seperti linked list.
Dimana biasanya jumlah elemen dalam tumpukan bersifat dinamis.
Ilustrasi diatas adalah keadaan ketika sebagian tumpukan sudah diisi dengan data. Dimana data yang pertama masuk adalah 7 yang
berada di indeks ke 0, kemudian 12 pada indeks ke 1, 9 pada indeks ke 2, keempat data 2 yang berada di indeks ke 3 yang
merupakan data terakhir yang masuk ke tumpukan, sehingga data ini merupakan top dari single stack tersebut.
6
Representasi dengan Linked List
Penggunaan linked list pada tumpukan memiliki keutungan jika dibanding array yaitu dengan linked list jumlah elemen data pada
tumpukan dapat bervariasi atau dinamis. Stack dengan linked list juga menerapkan LIFO sama seperti dengan menggunakan array.
Pada ilustrasi di samping terdapat sebuah tumpukan yang memiliki 4 node, dimana node top
berlaku sebagai node headnya juga, yaitu node dengan nilai 9. Ketika melakukan push pada stack
yang menggunakan linked list, data yang dipush akan disisipkan di awal linked list dan akan
menjadi node head, sedangkan pop akan mengeluarakan node yang baru ditambahkan yaitu yang
berada pada posisi top linked list atau node head.
7
K e s i m p u l a n Tu m p u k a n ( S t a c k )
Jadi stack adalah tumpukan elemen data yang bersifat LIFO (Last In First Out) atau data yang terakhir masuk akan menjadi data
yang pertama keluar. Pada stack terdapat beberapa operasi sederhana yang dapat dilakukan seperti push, pop dan display.
8
2. A n t r e a n ( Q u e u e )
Queue atau antrian adalah suatu kumpulan data yang mana penambahan data atau elemennya hanya dapat dilakukan pada sisi
belakangnya, sedangkan penghapusan atau pengeluaran elemennya hanya dapat dilakukan pada sisi depan. Jadi terdapat 2 gerbang
pada antrian, satu gerbang digunakan untuk masuk dan satu lainnya digunakan untuk keluar. Hal ini sama dengan konsep antrian
yang biasa dilakukan sehari hari, dimana yang pertama mengantri maka dia yang akan pertama keluar kemudian disusul dengan
selanjutnya dan seterusnya.
9
Ilustrasi Queue
10
Operasi pada Queue
1. Enqueue. Operasi ini digunakan untuk menambahkan elemen ke bagian akhir antrian. Operasi penambahan dapat dilakukan
selama antrian tidak dalam keadaan penuh. Setiap kali terjadi penambahan (enqueue) maka variabel rear atau penunjuk nilai
belakang akan ditambah 1 (increment).
2. Dequeue. Operasi ini digunakan untuk mengeluarkan elemen pertama pada antrian. Elemen dalam suatu antrian dapat
dikeluarkan (dequeue) selama antrian tidak dalam keaadan kosong, jika kosong maka dapat terjadi underflow. Karena
pengahapusan dilakukan pada elemen yang berada di urutan atau indeks pertama, maka setelah penghapusan perlu dialkukan
penggeseran setiap elemen setelahnya.
3. Display / View. Operasi ini digunakan untuk mencetak atau menampilkan semua data yang ada pada antrian.
4. IsEmpty. Operasi ini digunakan untuk mengecek kondisi dari antrian apakah kosong atau tidak. Karena pada saat dilakukan
dequeue, maka perlu dipastikan bahwa antrian masih ada / tidak kosong sehingga tidak terjadi underflow. Antrian dapat
dikatakan kosong jika penunjuk posisi belakang bernilai sama dengan 0. Operasi ini biasanya dibuat dalam bentuk fungsi,
sehingga setiap kali fungsi ini dipanggil akan mengembalikan nilai sesuai dengan kondisi. Apabila antrian kosong maka fungsi
akan mengembalikan true, sebaliknya jika tidak kosong maka akan dikembalikan false.
1
1
Operasi pada Queue (2)
5. IsFull. Operasi ini digunakan untuk mengecek apakah antrian penuh atau tidak. Karena pada proses enqueue (menambahkan
nilai pada antrian) perlu dipastikan bahwa enqueue tidak penuh sehingga tidak terjadi overflow. Antrian dapat dikatakan sudah
penuh apabila penunjuk posisi belakang bernilai sama dengan nilai maksimal antrian. Operasi ini biasanya dibuat dalam fungsi,
sehingga setiap kali fungsi ini dipanggil maka akan mengembalikan nilai sesuai dengan kondisi. Apabila antrianpenuh maka
fungsi mengembalikan true, sebaliknya jika tidak penuh maka akan mengembalikan false dan program dapat melakukan
enqueue.
6. Destroy / clear. Operasi ini digunakan untuk menghapus atau membersihkan semua data pada antrian. Operasi ini biasanya
memanggil fungsi isEmpty untuk memastikan bahwa pada antrian terdapat nilai atau data yang dapat dihapus. Jika kosong maka
akan ditampilkan pesan bahwa antrian masih kosong.
7. Peek. Operasi ini digunakan untuk mendapatkan nilai dari elemen pertama pada antrian tanpa menghapusnya
12
Representasi dengan Array
13
Representasi dengan Linked List
14
Kesimpulan Antrean (Queue)
Queue atau antrian merupakan struktur data yang berisi kumpulan data dimana Queue ini bersifat FIFO (First In First Out) yaitu
data yang pertama masuk akan menjadi yang pertama keluar.
15
Tugas (Essay)
1. Jelaskan apa yang dimaksud dengan berfikir komputasional dan mengapa kemampuan ini penting dalam pemecahan masalah di era digital
saat ini.
2. Gambarkan langkah-langkah dalam proses berfikir komputasional secara terperinci, mulai dari identifikasi masalah hingga solusi yang
diimplementasikan.
3. Berikan contoh konkret bagaimana berfikir komputasional dapat diterapkan dalam kehidupan sehari-hari, baik dalam konteks teknologi
maupun non-teknologi.
4. Jelaskan perbedaan antara algoritma pencarian (searching) dan algoritma pengurutan (sorting). Berikan contoh penerapan keduanya dalam
situasi nyata.
5. Bagaimana cara kerja algoritma Binary Search? Berikan contoh langkah-langkahnya serta jelaskan mengapa algoritma ini efisien untuk
mencari data dalam himpunan besar.
6. Pilih salah satu algoritma pengurutan (misalnya Selection Sort, Insertion Sort, atau Bubble Sort) dan jelaskan prinsip kerjanya beserta
kompleksitas waktu yang terkait.
16
Tugas (Essay 2)
7. Apa itu struktur data Stack? Berikan penjelasan tentang konsep dasarnya, operasi-operasi yang dapat dilakukan pada Stack, dan berikan
contoh situasi di mana penggunaan Stack sangat berguna.
8. Bandingkan antara struktur data Stack dan Queue. Berikan contoh kasus penggunaan masing-masing struktur data tersebut dalam konteks
dunia nyata.
9. Jelaskan konsep antrian (Queue) dalam struktur data. Bagaimana implementasi antrian dapat membantu dalam simulasi proses real-world
seperti antrian di kasir supermarket atau antrian panggilan telepon?
17
Tugas Online (Resume)
Setelah mempelajari beberapa materi dari Pertemuan 3 – Pertemuan 5 silahkan kalian buat resume di buku kerja kalian dengan minimal 4
lembar kertas, dan maksimal 10 lembar kertas (bulak-balik dan buku besar, jika buku kecil maka minimalnya menjadi 5 lembar dan
maksimalnya menjadi 11). Resume harus memiliki metode/cara jika terdapat pada materi.
* Silahkan kerjakan di buku kerja, dan kumpulkan di pertemuan 6. (Pastikan bukan menulis ulang, namun merangkum).
18
Referensi
2. Stack (Tumpukan)
3. Queue (Antrean)
Selesai.