Stacks, Recursion, Queue [Struktur Data]
Assalamualaikum.Wr.Wb
Haloo teman – teman..
Jangan bosan dan tetap terus
semangat belajar yaa, kali ini aku mau berbagi sedikit ilmu yang sdah aku dapat
tentang STACKS atau tumpukan.
Sebelumnya kita harus tau dulu ya apasih itu STACKS?
STACKS
adalah suatu urutan yang elemennya dapat diambil dan ditambah hanya pada posisi
akhir. Contoh dalam kehidupan sehari hari misalnya tumpukan piring yang
tumpukannya ditambah pada bagian paling atas, dan untuk mengambilnya juga
diambil dari bagian atas terlebih dahulu.
Misal seperti dibawah ini :
Ø Deklarasi
struktur data
Pada stack ini kita dapat menggunakan 2 cara yaitu
·
Push : untuk mengisi
data ke dalam stack
·
Pop : untuk mengeluarkan data yang berada di dalam stack
Stack disebut sebagai LIFO (
Last In First Out ), dan biasanya stack banyak digunakan untuk penanganan
sistem oprasi atau penanganan intrupsi komputer.
Ø Contoh
penggunaan Stack
1.
Untuk mengecek
kalimat Polindrom (kalimat yg dibolak balik tetap sama)
Contoh : KAKAK
Nah pada gambar diatas membuktikan bahwa
kalimat kakak termasuk kalimat polindrom, karena pada saat kita push lalu kita
pop kalimat tetap.
1.
Mengubah bilangan
Desimal ke bilangan Biner
Operasi pop
Misal : 11
Dari angka 11 kita bagi 2 dan didapat sisa
1 lalu 5 dibagi 2 sisa 1. Dan 2 dibagi 2 hasilnya 1 dan sisanya 0 . Lalu kita
push hingga pada buttom dan hasil terahir kita push pada bagian top.
Saya memiliki contoh program yang terdapat sebuah kasus dimana kita akan menginputkan satu per satu huruf menjadi sebuah kalimat yang akan diuji, apakah kalimat tersebut termasuk kalimat Polindrome atau tidak.
Saya memiliki contoh program yang terdapat sebuah kasus dimana kita akan menginputkan satu per satu huruf menjadi sebuah kalimat yang akan diuji, apakah kalimat tersebut termasuk kalimat Polindrome atau tidak.
Pembuktian kata Palindrome/tidak dalam STACKS
Selanjutnya kita membahas tentang Recursion
Recursion atau rekursi adalah konsep
pengulangan yang penting dalam ilmu komputer. Rekursi dapat diartikan function
dalam function yang biasa digunakan untuk merumuskan solusi sederhana pada
permasalahan.
Contoh rekursi pada pengerjaan factorial :
5! = 5 x 4 x 3 x 2 x 1 = 120
Script
menggunakan looping/perulangan
Contoh
script untuk rekursi
Contoh
soal!
Carilah factorial dari 3!
Jawab :
Nah selanjutnya aku juga mau bahas materi tentang
Queue (Antrian). Sebelumnya kita simak dulu apa definisi dari queue.
Queue adalah sekumpulan data dimana elemen hanya bisa
dilakukan pada suatu ujung tersebut dengan sisi belakang (rear). Dan
penghapusan atau pengambilan elemen dilakukan dari sisi lain dengan sisi depan
(front).
Contoh queue pada kehidupan sehari-hari pada antrian mobil di loket tol dan antrian
pendaftaran mahasiswa.
Jika pada stack menggunakan prinsip LIFO maka pada
queue prinsip yang digunakan yaitu FIFO (First In First Out).
Karakteristik
Queue
1.
Elemen antrian
2.
Front (elemen
terdepan antrian)
3.
Tail (elemen
terakhir)
4.
Jumlah elemen
pada antrian
5.
Status antrian
Operasi pada Queue
1.
Tambah : menambah item pada belakang antrian
2.
Hapus : menghapus elemen depan dari
antrian
3.
Kosong : mendeteksi apakah pada antrian
terdapat elemen atau tidak
Ø Enqueue
(memasukkan data)
Menambahkan
elemen ke dalam antrian ,penambahan elemen ditambahkan di elemen paling
belakang.
Contoh :
kita akan mengisi elemen pada tabel sebelah kiri, lalu dapat dilihat pada tabel sebelah kanan kita akan menempatkan elemen pada indeks ke-0 (terdepan)
selanjutnya kita memasukkan elemen yang kedua pada indeks ke-1, dan elemen yang ketiga ditempatkan pada indeks ke-2 .
dan yang terakhir kita menempatkan elemen ke 4 pada indeks ke-3
Pada gambar diatas terlihat bahwa elemen yang akan
masuk akan ditempatkan pada posisi paling terdepan.
Ø Dequeue
(mengeluarkan data)
Digunakan
untuk menghapus elemen terdepan/pertama kali dari antrian. Dengan cara
menggeser elemen antrian kedepan dan mengurangi Tail dengan 1 geseran dengan
menggunakan looping.
Contoh :
terlihat bahwa elemen yang pertama akan keluar terlebih dahulu.
pada tabel diatas terlihat bahwa mengeluarkan elemen dari yang terdepan yaitu dari indeks ke-0
Berikut contoh queue:
disini saya menggunakan data random, klik button "Tampilkan bilangan random" setelah muncul kita klik button "Baca Data" nah otomatis dia akan menempatkan pada bilangan ganjil atau genap. lalu setelah itu kita akan menjumlahkan kedua bilangan tersebut. Ketika bilangan tidak memiliki pasangan maka akan ditambahkan dengan nlai 0
Berikut contoh queue:
disini saya menggunakan data random, klik button "Tampilkan bilangan random" setelah muncul kita klik button "Baca Data" nah otomatis dia akan menempatkan pada bilangan ganjil atau genap. lalu setelah itu kita akan menjumlahkan kedua bilangan tersebut. Ketika bilangan tidak memiliki pasangan maka akan ditambahkan dengan nlai 0
Queue Bil Random
Pada program diatas kita menggunakan dua fungsi yaitu enqueue dan dequeue terhadap kedua array ganjil dan genap tersebut. Kita membuat function dequeue atau mengeluarkan data dan elemen yang terdepan atau pertama kali antrian itu mengurangi dengan satu geseran menggunakan looping.
Terimakasih sudah menyimak, semoga dapat dipahami dan bermanfaat yaa teman-teman.
Wassalamualaikum.Wr.Wb.
Komentar
Posting Komentar