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.

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 
Praktikum modul5

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

Postingan populer dari blog ini

GRAPH [Struktur Data]

TREE [Struktur Data]

Searching [Struktur Data]