Rabu, 22 Juni 2016

struktur data



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:
  1. 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.
  2. Conquer adalah memecahkan (menyelesaikan) masing-masing masalah (secara rekursif). Dan memberi solusi pada setiap bagian dengan memanggil prosedur merge sort.
  3. 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 !!