STRUKTUR DATA - " Stack, Recursion, Queue"


Assalamualaikum Wr.Wb

Hai teman teman kali ini saya akan membahas apa itu Stack, Recursion dan Queues. Mungkin ada yang bertanyaapa bedanya Stack, Recursion dan Queues ?.  oke kita akan bahas semua tapi kita bahasnya satuper satu ya

STACK

Stack adalah kumpulan data yang diletakkan di atas data yang lain.
Stack menggunakan konsep LIFO Singkatan dari “Last In First Out” Artinya adalah data yang petama masuk adalah data yang pertama akan keluar.

Di dalam stack ada istilah FLAG artinya adalah pembatas. Flag ada 2 yaitu : Flag Top dan Flag Button
  Flag Top : Batas Teratas
  Flag Buttom : Batas Terbawah

Di dalam stack ada istilah push dan pop. Kira kira artinya apa ya?
  Push : digunakan untuk menambah item pada stack
  Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas

Contoh penggunaan PUSH
Disini kita telah disediakan stack dengan jumlah data yang bias diisikan adalah 5 data, maka cara pengisiannya melalui Push










Contoh Penggunaan POP
Dari data yang diatas (penggunaan push ) kita disuruh untuk menganbil data data yang ada di dalam stack itu, maka cara penggunaannya adalah:









Istilah dan Operasi-Operasi yang ada di dalam stack
Selain ada operasi push dan pop, flag buttom dan flag Top ternyata masih ad yang lain, seperti:
Clear : digunakan untuk mengosongkan stack
IsEmpty : Digunkan untuk mengecek apakah stack sudah kosong
IsFull : Digunakan untuk mengecek apakah stack sudah penuh
Stack OverFlow : Artinya kepenuhan data
Terus untuk apa sih Stack?
1.      Stack digunkan untuk penanganan Intrupsi Komputer (ctrl+alt+del)
2.      Stack digunakanuntuk mengecek kalimat POLINDROM ( kata yang walaupun di bolak balik memiliki arti yang sama. Contohnya : KAKAK)




3.      Stack digunakan untuk mencari sebuah nilai konversi. Baik decimal ke biner,biner ke oktal ataupun sebaliknya

Contoh:
1.      Jika diketahui 11(decimal) konversikanlah dalam bentuk biner
2.      Jika diketahui 156( decimal) konversikanlah dalam bentuk octal

Jawab:
1.      Karena biner adalah bilangan berbasis 2 maka 11 akan kita bagi dengan 2



Keterangan :
-          sisa ita dapatkan dari =
Ø  contoh petama angka 11 dibagi dengan 2 maka sisa 1,
dikarenakan 2 x 5 = 10 , dan 11- 10 = 1
Ø  setelah itu 5 dibagi 2 maka sisanya 1,
2 x 2 = 4, dan 5 – 4 = 1
Ø  begitupun sampai sisa terakhir


2.      karena octal adalah bilangan berbasis 8 maka 156 akan kita bagi dengan 8





RECURSION

Recursion atau rekursi Adalah algoritma cepat tapi boros.
Contohnya ada pada pengerjaan factorial:
                    5! = 5 x 4 x 3 x 2 x1 = 120
Scriptnya (menggunakan looping/perulangan) :
                    hasil = 1;
                    for(int bilangan=5, bilangan>=1, bilangan --)
                    {
                        hasil = hasil x bilangan
                    }

rekursi adalah function yang memanggil function itu sendiri. Kalau dimanusia ini sering terjadi yaitu adalah mimpi dalam mimpi.

contoh script untuk rekursi
        function factorial(n)
        {
            IF(n===0)
            {
               return 1;
            }
            else
            {
               return n * factorial(n-1);
            }
        }

kalu digambarkan lewat contoh bias menggunkan pengerjaan factorial. Oh iya yang perlu diingat alur pengerjaan ini dilakukan dari bawah ke atas ya.

Contoh : carilah factorial dari 3
Jawab :
                    



QUEUE

Queue atau antrian. Queue menggunakan prinsip FIFO “First In First Out” artinya adalah masuk pertama dan akan keluar pertama
Kita sering menemukan queue disekitar kita, contohnya : antrian mobil di loket tol dan antrian bank.
Lalu bagai mana cara menambah atau menghapus data dari queue?
  Enqueue : digunakan untuk menambahkan data ke dalam queque
  Dequeue : digunakan untuk menghapus element terdepan di dalam queque

Didalam Queue juga terdapat element depan dan element belakang.
  depan = Front/Head
  Belakang = Rear/Tail


Contoh penggunaan Enqueue






Dari contoh diatas dapat dibuktikan bahwa saat data datang, maka data akan menempatkan diri di posisi array paling terdepan

Contoh penggunaan Dequeue



Dari contoh penggunaan Dequeue di atas dapat di ketahui bahwa data yang di hapus adalah data yang petama kali masuk/ data yang terletak pada indeks kecil.


Selain ada operasi Enqueue dan Dequeue, di Queue juga ada operasi yang lain, seperti:
Ø  Create() : digunakan untuk menciptakan dan menginisialisasi queue dengan cara
                 membuat head dan tail =-1
Ø  IsEmpty() : untuk memeriksa apakah antrian sudah penuh atau belum,
jika sedah penuh maka nilai tail akan terisi, namun jika data kosong maka
nilai head akan tidak terisi
Ø  IsFull() : untuk memeriksa apakah antrian sudah penuh atau belum,
jika sedah penuh maka nilai tail akan terisi, namun jika data kosong maka
nilai head akan tidak terisi
Ø  Clear() : untuk menghapus semua isi dari Queue
Ø  Tampil() : untuk menampilkan nilai nilai antrian menggunakan looping


Sekian dulu ya pembahasan kali ini tentang Stack,Recursion dan Queue. Semoga bermanfaat
wassalamualaikum Wr.Wb


Komentar

Postingan populer dari blog ini

STRUKTUR DATA - (Sequential Search dan Binary Search)

Belajar JavaScript --> Menghitung Rata-Rata Nilai

STRUKTUR DATA - Tree