ROSITA
WULANDARI
1506071
Sebuah
Stack adalah kumpulan benda di mana hanya benda yang most
recently inserted dapat diakses
Cara
Kerjanya :
·
Bayangkan setumpuk koran.
·
Benda yang paling terakhir ditambahkan ditaruh di atas tumpukan (top).
·
Operasi pada Stack membutuhkan waktu konstan (O(1)).
·
Data
yang disimpan terakhir, akan diambil terlebih dahulu.
·
Konsep
LIFO (Last In First Out)
Contoh
Interface stack :
void
push(Benda x);
Benda
pop();
Benda top()
Sebuah
Queue adalah kumpulan benda di mana hanya benda yang least
recently inserted dapat diakses.
Cara
Kerja nya :
·
Bayangkan antrian printer job pada jaringan.
·
Benda yang paling awal ditambahkan berada di depan antrian (front).
·
Operasi pada Queue membutuhkan waktu konstan (O(1)).
Disebut juga
dengan antrian.
● Data
yang disimpan diawal, akan diambil
terlebih dahulu.
● Konsep FIFO (First In First Out)
Contoh
Interface queue :
void
enqueue(Benda x);
Benda
dequeue();
Benda
getFront();
·
Sequential
Search
Algoritma
pencarian berurutan dapat dituliskan sebagai berikut :
1) I ← 0
2) ketemu ←
false
3) Selama (tidak
ketemu) dan (i <= N) kerjakan baris 4
4) Jika (Data[i]
= x) maka ketemu ← true, jika tidak i ← i + 1
5) Jika (ketemu)
maka i adalah indeks dari data yang dicari,
jika tidak data tidak
ditemukan
·
Binary
Search
Algoritma pencarian biner dapat dituliskan sebagai berikut :
1) L
← 0
2) R
← N – 1
3)
ketemu ← false
4)
Selama (L <= R) dan (tidak ketemu) kerjakan baris 5 sampai dengan 8
5) m ←
(L + R) / 2
6) Jika
(Data[m] = x) maka ketemu ← true
7) Jika
(x < Data[m]) maka R ← m – 1
8) Jika
(x > Data[m]) maka L ← m + 1
9)
Jika (ketemu) maka m adalah indeks dari data yang dicari, jika tidak data tidak
Ditemukan
Bubble
Sort
Merupakan metode sorting termudah, diberi nama “Bubble”
karena proses pengurutan secara berangsur- angsur bergerak/berpindah
ke posisinya yang tepat, seperti gelembung yang keluar dari sebuah
gelas bersoda. Bubble Sort mengurutkan data dengan cara
membandingkan elemen sekarang dengan elemen berikutnya.
Jika elemen sekarang lebih besar dari elemen berikutnya maka kedua elemen
tersebut ditukar, jika pengurutan ascending. Jika elemen sekarang lebih
kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar, jika
pengurutan descending. Algoritma ini seolah-olah menggeser satu per satu
elemen dari kanan ke kiri atau kiri ke kanan,tergantung jenis pengurutannya.
Ketika satu proses telah selesai, maka bubble sort
akan mengulangi proses, demikian seterusnya. Kapan berhentinya?
Bubble sort berhenti jika seluruh array telah diperiksa dan tidak ada
pertukaran lagi yang bisa dilakukan, sertatercapai perurutan yang
telah diinginkan.
Insertion
Sort
Adalah sebuah metode pengurutan data dengan menempatkan
setiap elemen data pada posisinya dengan cara melakukan perbandingan dengan
data – data yang ada. Index algoritma dari metode insertion sort ini dapat
dianalogikan sama seperti mengurutkan kartu, dimana jika suatu kartu
dipindahtempatkan menurut posisinya, maka kartu yang lain akan bergeser mundur
atau maju sesuai kondisi pemindahanan kartu tersebut. Dalam pengurutan data,
metode ini dipakai bertujuan untuk menjadikan bagian sisi kiri array terurutkan
sampai dengan seluruh array diurutkan.
Merge
Sort
Merupakan algoritma pengurutan dalam ilmu komputer
yang dirancang untuk memenuhi kebutuhan pengurutan atas suatu rangkaian
data yang tidak memungkinkan untuk ditampung dalam memori komputer karena
jumlahnya yang terlalu besar. Merge sort berfungsi untuk mengurutkan
sebuah array berisi nilai-nilai yang acak dengan cara mengurutkan sebagian
dari array terlebih dahulu sebelum mengurutkan semua array secara
keseluruhan.
Langkah
kerja merge sort:
- Divide adalah membagi masalah menjadi beberapa masalah yang memiliki kemiripan dengan masalah semula namun berukuran lebih kecil (idealnya berukuran hampir sama) dan membagi elemen-elemen dari rangkaian data menjadi dua bagian.
- Conquer adalah memecahkan (menyelesaikan) masing-masing masalah (secara rekursif). Dan memberi solusi pada setiap bagian dengan memanggil prosedur merge sort.
- Combine adalah menggabungkan solusi masing-masing masalah sehingga membentuk solusi masalah semula dan menggabungkan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan.
Quick
Sort
Adalah algoritma sorting yang berdasarkan pembandingan
dengan metode divide dan conquer (bagi dan kuasai). Disebut
Quick Sort, karena algoritma quick sort mengurutkan dengan sangat
cepat. Quick sort disebut juga dengan partition exchange sort, karena
konsepnya membuat partisi- partisi, dan sorting dilakukan per
partisi. Algoritma quick sort mengurutkan dengan sangat cepat, namun
algoritma ini sangat komplex dan diproses secara rekursif. Sangat
memungkinkan untuk menulis algoritma yang lebih cepat untuk beberapa kasus
khusus, namun untuk kasus umum, sampai saat ini tidak ada yang lebih cepat
dibandingkan algoritma quick sort.
Selection
Sort
Adalah mencari elemen yang tepat untuk diletakkan di posisi
yang telah diketahui, dan meletakkannya di posisi tersebut setelah data
tersebut ditemukan. Selection Sort Membandingkan elemen yang sekarang
dengan elemen yang berikutnya sampai dengan elemen yang terakhir. Jika
ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat
posisinya dan kemudian ditukar.
Shell
Sort
Adalah pengurutan yang lebih baik dalam menangani banyak
data. Shell sort menggunakan metode perbandingan dan pertukaran. Metode
ini disebut juga dengan metode pertambahan menurun (diminishing
increment). Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959
sehingga sering disebut dengan Metode Shell sort. Perbandingan dimulai
dari separuh array yang akan disortir dengan separuh bagian yang lain.
Struktur Data Tree
– Linked List
Single linked list
Kita akan lebih efektif jika kita menggunakan konsep Linked List jika kita
memerlukan suatu pengaksesan pada struktur data yang lebih dinamis. Konsep yang
lebih cocok menggunakan linked list adalah : Stack, Queue, Tree, dan Graph.Hal ini dikarenakan oleh sifat dinamis dari Linked List. Kita tidak perlu untuk mengetahui berapa block memory yang akan kita akses. Jadi, jika kita butuh block baru pada memory, tinggal menyisipkan pada kanan atau kiri list yang telah ada.
– Array
Kita dapat memanfaatkan secara efektif konsep array dengan mengenal metode indexing pada array. Array merupakan struktur data statis yang mempunyai index penomoran alamat variable array yang dimaksud. Jadi, secara umum, kita dapat mengaksesnya dengan lebih cepat.
Konsep – konsep yang dapat memanfaatkan konsep indexing untuk mempercepat pengaksesannya adalah Sorting dan Searching.
Hal ini dikarenakan oleh penomoran alamat variable pada memory yang telah diketahui terlebih dahulu. Jadi, semisal kita menginginkan mencari variable dengan indeks tengah, kita bisa langsung menujuk ke indeksnya.
thanks guys udah mampir di blog saya :)
kritik saran komen !!