Anda di halaman 1dari 20

STRUKTUR DATA

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

Queue (antrian) dapat diimplementasikan dengan array ataupun


linked list. Implementasi queue dengan array, perlu
memperhatikan indeks yaitu depan (front) dan belakang (rear)
sehingga dapat diketahui queue kosong atau tidak. Queue dapat
ditambahkan dengan suatu elemen baru selama posisi dari rear
tidak sama dengan indeks maksimum dari queue array. Untuk
melakukan dequeue pada array biasanya dengan mengambil atau
mengeluarkan nilai elemen pada indeks ke 0, kemudian
menggeser nilai nilai selanjutnya. Jika ingin melakukan enqueue
pada array, perlu mencari indeks dimana nilai elemen terakhir
berada.

13
Representasi dengan Linked List

Implementasi Queue dengan menggunakan linked list memiliki


keunggulan jika dibandingkan dengan array yaitu antrian dapat
dilakukan secara dinamis dengan menggunakan pointer.

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.

* Silahkan kerjakan di buku kerja dengan waktu pengerjaan 30 menit.

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?

* Silahkan kerjakan di buku kerja dengan waktu pengerjaan 10 menit.

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

1. Esensi Informatika Hal 17 – 19

2. Stack (Tumpukan)

3. Queue (Antrean)
Selesai.

Anda mungkin juga menyukai