Selasa, 27 Maret 2018

Stack dan Queue

Assalamualaikum.Wr.Wb.

Hai kawan! Pada pembelajaran struktur data kali ini kita akan memperlajari tentang Stack dan Queue.
Ayo simak pembahasan berikut ini.

Stack


Stack adalah tumpukan, suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja.

Dalam stack terdapat operasi-operasi yang digunakan seperti:
1. Top merupakan sebutan untuk elemen yang paling atas atau tumpukan paling akhir ditambahkan.
2. Bottom merupakan sebutan untuk elemen yang paling bawah atau tumpukan paling awal.
3. Push digunakan untuk mengisikan data dalam stacks
4. Pop digunakan untuk mengeluarkan data dari stacks.

Kita bisa memasukkan data atau push jika top nya belum terisi tetapi jika sudah terisi semua maka stacks sudah penuh.


















Lalu bagaimana cara mengerjakannya ?


Pertama kita memasukkan elemen.

Kita memasukkan elemen  A dan terletak pada isi[1]

















Kita memasukkan elemen  B dan terletak pada isi[2]















Kita memasukkan elemen  C dan terletak pada isi[3]


















Kita memasukkan elemen  D dan terletak pada isi[4]

















Kita memasukkan elemen  E dan terletak pada isi[5]


















Kedua kita mengeluarkan elemen

Kita mengeluarkan elemen  E dan terletak pada isi[5]


















Kita mengeluarkan elemen  D dan terletak pada isi[4]




Kita mengeluarkan elemen C dan terletak pada isi[3]


























Kita mengeluarkan elemen B dan terletak pada isi[2]



















Kita mengeluarkan elemen A dan terletak pada isi[1]



















Stack bersifat LIFO ( Last In Frist Out) yaitu data yang terakhir kali dimasukkan akan pertama kali dikeluarkan dari tumpukan tersebut. Keterbatasan dalam stack yaitu sering menunggu untuk elemen yang awal dimasukkan.


Contoh penggunaan stack:

1. Untuk mengecek kalimat polindrom ( Kalimat = Hasil )
2. Mengubah bilangan desimal ke bilangan biner


mengecek kalimat polindrom yaitu kata yang dibaca dari depan atau dari belakang sama.

Contohnya pada kata KAKAK



























Contoh lainnya LEVEL



















Mengubah bilangan desimal ke bilangan biner

1110 ® X2

Desimal 10 ® Biner 2




















17010 ® X8

Desimal 10 ® Oktal 8









Recursion












































factorial ( 0 )
Jadi jika n = 0 maka hasilnya 1


factorial (1)
1 * factorial (0)


Jadi 1 * 1 = 1


factorial (2)

2 * factorial (1)


Jadi 2 * 1 = 2


factorial (3)

3 * factorial (2)


Jadi 3 * 2 = 6



Queue

Queue atau Antrian yaitu suatu kumpulan data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung ( disebut dengan sisi belakang atau rear ) dan penghapusan (pengambilan elemen) dilakukan lewat ujung lain(disebut dengan sisi depan atau front).


Enqueue yaitu memasukkan data
Dequeue yaitu mengeluarkan data


Queue bersifat FIFO (First In First Out) yaitu data yang pertama kali dimasukkan akan pertama kali dikeluarkan dari tumpukan tersebut.




























Contoh:


Enqueue

Memasukkan elemen A

A

Memasukkan elemen B

A
B

Memasukkan elemen C

A
B
C

Memasukkan elemen D

A
B
C
D

Memasukkan elemen E

A
B
C
D
E


Dequeue

Mengeluarkan elemen A

A
B
C
D
E

Mengeluarkan elemen B

B
C
D
E

Mengeluarkan elemen C

C
D
E

Mengeluarkan elemen D

D
E

Mengeluarkan elemen E


E





Dari pembahasan diatas, Semoga bermanfaat.

Wassalamualaikum.Wr.Wb.


Selasa, 06 Maret 2018

Sorting

Assalamualaikum.Wr.Wb

Kembali lagi untuk belajar bersama. Pada kesempatan kali ini kita akan mempelajari mengenai sorting.

Sorting atau pengurutan yaitu suatu proses untuk mengurutkan data yang ada dalam array dengan menyusun data yang sebelumnya sudah disusun sehingga tersurun secara teratur.


Sorting dapat dilakukan dengan cara:
1. Bubble Sort
2. Selection Sort
3. Insertion Sort



Mari kita mempelajari Bubble Sort, Selection Sort, dan Insertion Sort.

Bubble sort dilakukan dengan membandingkan 2 nilai yang berdampingan dengan cara menukar nilai antara data yang satu dengan data berikutnya tetapi jika sebelah data yang akan ditukar lebih besar maka tidak ditukar. Bubble sort ini algoritma yang paling lampat dalam pengerjaannya karena meskipun data sudah terurut kita tetap harus mengerjakan sampai data terakhir.

Sebagai contoh:

Kita melihat data satu dengan membandingkan data selanjutnya. Kita dapat menukar jika nilai data yang selanjutnya lebih kecil. Lakukan langkah tersebut sampai data terakhir sehingga mendapatkan data yang terurut dengan nilai yang terkecil sampai terbesar seperti pada data di bawah ini.













Selanjutnya kita mengerjakannya dengan menggunakan looping  tetapi untuk looping meskipun data sudah terurut tetap melanjutkan pada fase selanjutnya. Untuk menentukan berapa banyak fase dalam looping caranya Fase n-1 x


Misal:

1.




Fase 1



Fase 2










Dari data diatas pada fase 1 kita mengurutkan dari data pertama sampai data terakhir. Karena tidak boleh ada pertukaran setelah data terurut pada fase 1 kita membuat fase 2.



2.
100
20
7
50
2
33



Fase 1












Fase 2



Fase 3



Fase 4



Fase 5












Dari data diatas pada fase 1 kita mengurutkan dari data pertama sampai data terakhir. Karena tidak boleh ada pertukaran setelah data terurut pada fase 4 kita membuat fase 5.




Lalu kita mengerjakan dengan cara selection sort yang dapat mengerjakan data lebih mudah.

Selection sort
Selection sort adalah salah satu algoritma pengurutan yang sederhana. Cara untuk mengerjakan selection sort dimulai dari data 1 dan mencari elemen yang tepat untuk diletakkan di posisi yang telah diketahui. Selection sort membandingkan elemen yang sekarang dengan elemen berikutnya sampai elemen terakhir dan jika menemukan elemen yang lebih kecil maka catat posisinya dan kemudian ditukar.

Sebagai contoh mengerjakan algoritma dalam selection sort.







Data 1 bernilai 10 maka 10 dibandingkan dengan sisanya yaitu nilai 4,70,20 dan data tidak disimpan hanya ditandai. Terdapat data 4 lalu dibandingkan sebanyak 3 kali dan diambil nilai yang terkecil.


4
10
70
20

Lalu algoritma mengecek pada data kedua yaitu bernilai 10.







dan 10 dibandingkan dengan sisanya yaitu 70 dan 20.


4
10
20
70




Contoh lainnya:


100
20
7
50
2
33



Proses 1







Pembanding                   Posisi
100 > 20    ( ditukar )         1
20   > 7      ( ditukar )         2
7     < 50                            2
7     > 2      ( ditukar )         4
2     < 33                            4


Tukar data ke-0 (100) dengan data ke-4 (2)








Proses 2







Pembanding                   Posisi
20   > 7      ( ditukar )          2
7     < 50                             2
7     < 100                           2
7     < 33                             2


Tukar data ke-1 (20) dengan data ke-2 (7)






Proses 3






Pembanding                   Posisi
20   < 50                             2
20   < 100                           2
20   < 33                             2

Tukar data ke-2 (20) dengan data ke-2 (20)





Proses 4



Pembanding                   Posisi
50   < 100                           3
50   > 33     ( Ditukar )        5

Tukar data ke-3 (50) dengan data ke-5 (33)





Proses 5






Pembanding                   Posisi
100 > 50     ( ditukar )        5
100 < 33                             5

Tukar data ke-4 (100) dengan data ke-5 (50)









Insertion Sort
sebuah metode pengurutan data dengan menempatkan setiap elemen data pada pisisinya dengan cara melakukan perbandingan dengan data – data yang ada.


Contoh :








Proses 1


10 < 22  ( Geser data ke-0 ke posisi 1 )





Proses 2






15 < 22 ( Geser data ke-1 ke posisi 2 )
15 > 10 ( Tetap )






Proses 3






3 < 22 ( Geser data ke-2 ke posisi 3 )
3 < 15 ( Geser data ke-1 ke posisi 2 )
3 < 10 ( Geser data ke-0 ke posisi 1 )






Proses 4






8 < 22 ( Geser data ke-3 ke posisi 4 )
8 < 15 ( Geser data ke-2 ke posisi 3 )
8 < 10 ( Geser data ke-1 ke posisi 2 )
8 < 3   ( Tetap )





Proses 5






2 < 22 ( Geser data ke-4 ke posisi 5 )
2 < 15 ( Geser data ke-3 ke posisi 4 )
2 < 10 ( Geser data ke-2 ke posisi 3 )
2 < 8   ( Geser data ke-1 ke posisi 2 )
2 < 3   ( Geser data ke-0 ke posisi 1 )






Dari materi tentang sorting yang paling mudah digunakan adalah Insertion sort karena tidak membandingkan satu per satu data dan cara pengerjaannya membutuhkan waktu yang singkat. Semoga bermanfaat.

Wassalamualaikum.Wr.Wb.