Pages

Categories

Cari Blog Ini

Jumat, 05 Juni 2015

SEARCHING (SEQUENTIAL SEARCH DAN BINARY SEARCH)



Pencarian (Searching) merupakan proses untuk  menemukan data (nilai) tertentu yang ada dalam sekumpulan data yang bertipe sama. Fungsi pencarian itu sendiri adalah untuk mencocokkan data.

Ada 2 metode dalam Searching, yaitu:

1. Metode Pencarian Beruntun (Sequential Search)

Sequential Search merupakan konsep pencarian pada array 1 dimensi dimana metode yang digunakan adalah membandingkan data-data (nilai-nilai) yang terdapat di dalam kumpulan data tersebut, mulai dari data pertama sampai dengan nilai yang dicari ditemukan atau membandingkan dari nilai pertama sampai nilai terakhir tanpa pengurutan data-data terlebih dahulu, jika data yang dicari telah ditemukan maka proses pencarian dihentikan.


Misalkan ada 7 data dalam array A  





Data yang akan dicari adalah 1, misal X = 1
Pertama kita membandingkan X dengan nilai pertama 12, jika nilai yang dibandingkan dengan X tidak sama maka dilanjutkan ke nilai berikutnya yaitu 5, 23, 47 , 1 (nilai ditemukan pada indek ke 4)

Berikut ini contoh program Sequential Search
Hasil run program:













2. Metode Pencarian Bagi Dua (Binary Search) 

Metode ini diterapkan pada sekumpulan data dalam suatu array yang sudah terurut (ascending (kecil ke besar) atau descending (besar ke kecil)). Metode ini lebih cepat dibandingkan metode Sequential Search, akan tetapi metode ini memiliki kelemahan jika ada 2 data yang sama maka hanya 1 yang akan ditemukan.

Konsep dasar metode ini adalah membagi 2 jumlah data (nilai), dan menentukan apa data yang berada ditengah bernilai sama, lebih dari atau kurang dari nilai data yang akan dicari. Jika bernilai sama, maka langsung data yang dicari ditemukan.

Jika data terurut secara ascending, maka nilai data yang ada di tengah kurang dari data yang dicari, maka pencarian selanjutnya dimulai dari di data tengah ke kanan, dan begitu seterusnya sampai ketemu atau tidak sama sekali. Dan sebaliknya nilai data yang berada di tengah lebih dari data yang dicari, maka pencarian selanjutnya dimulai di data tengah ke kiri, dan begitu seterusnya sampai ketemu atau tidak sama sekali. Dan begitu juga untuk data yang terurut secara descending.

Langkah-langkah untuk metode Binary Search :
  • Urutkan data dari indeks 0 sampai n-1 (kanan ke kiri) apakah ascending atau descending
  • Cari posisi tengah pada data (posisi awal (indeks ke-0) + posisi akhir (indeks ke-n) / 2), misalkan jika saat membagi mendapat hasil 6,5 maka abaikan ,5 gunakan 6
  • Bandingkan data yang dicari dengan data ditengah
  • Jika lebih kecil, maka pencarian dimulai dari posisi awal adalah posisi tengah -1
  • Jika lebih besar, maka pencarian dimulai dari posisi awal adalah posisi tengah +1
  • Jika data sama berarti data ditemukan

Misalkan ada 9 data terurut secara ascending A[9] = { 2, 7, 11, 16, 21, 22, 29, 31, 99}
carilah data X = 31

Penyelesaian :






1.  Karena data sudah diurutkan maka langsung saja cari posisi tengah
Posisi awal + posisi akhir / 2
(0 + 8) / 2 = 4 jadi posisi tengah berada pada indeks ke 4






2. Bandingkan data yang dicari X=31 dengan data yang ditenganh 21
31 > 21 maka posisi tengah + 1 (langkah ke 5)

3. Abaikan data yang berada di kiri, karena posisi tengah +1 maka posisi awal dimulai dari indeks ke 5 dan posisi akhir indeks ke 8

4.  Ulangi langkah ke 2, posisi awal + posisi akhir /2
(5 + 8) / 2 = 6,5 abaikan ,5. Jadi posisi tengan adalah indeks ke 6






5.  Bandingkan x=31 dengan data tengah 31
 31 = 31 , data yang dicari sama dengan data yang berada di posisi tengah. Jadi data ada di indeks ke 6.

Berikut ini contoh program Binary Search
Hasil run program:













Contoh hasil build program diatas menggunakan Borland C++. Mungkin hanya sekian penjelasan tentang Searching (Sequential search dan Binary search) dari saya kurang lebihnya. Jika ada yang ingin ditanyakan dapat ditanyakan pada kolom komentar dibawah ini. Terimakasih telah berkunjung ke blog saya :v





Sumber :

KONSEP DAN APLIKASI PEMROGRAMAN MENGGUNAKAN BORLAND C++ BUILDER 6 M. Fachrurrozi

SORTING (SELECTION SORT DAN INSERTION SORT)

Pengurutan (sorting) adalah proses mengatur sekumpulan obyek menurut urutan atau susunan tertentu. Urutan tersebut dapat dari kecil ke besar (ascending) atau dari besar ke kecil (descending).
Pengurutan berdasarkan jenisnya, dibagi dua kategori, yaitu:

1. Pengurutan Internal, yaitu pengurutan terhadap sekumpulan data yang disimpan di dalam memori utama komputer.
2. Pengurutan Eksternal, yaitu pengurutan data yang disimpan di dalam memori sekunder, biasanya data bervolume besar sehingga tidak mampu dimuat semuanya dalam memori komputer, disebut juga pengurutan arsip (file), karena struktur eksternal yang dipakai adalah arsip. 

Karena pengaksesan memori utama lebih cepat dari pada memori skunder, maka pengurutan internal lebih cepat daripada pengurutan eksternal.  

Bermacam-macam metode yang dipakai untuk melakukan pengurutan, antara lain:
  • Bubble Sort
  • Selection Sort (Maximum & Minimum Sort)
  • Insertion Sort
  • Heap Sort - Shell Sort
  • Quick Sort
  • Merge Sort
  • Radix Sort
  • Tree Sort. 

Kali ini hanya akan dibahas mengenai 2 buah metode sederhana yang mendasar, yaitu:

1. Selection Sort

Metode pengurutan ini membandingkan elemen yang sekarang dengan elemen berikutnya sampai ke elemen yang terakhir. Jika ditemukan elemen  lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan langsung ditukar.
Berikut ini langkah-langkah selection sort :
  1. Mencari data terkecil dari data pertama sampai dengan data yang terakhir. kemudian ditukar posisinya dengan data pertama.
  2. Mencari data terkecil dari data kedua sampai dengan data terakhir, kemudian ditukar posisinya dengan data kedua.
  3. Begitu seterusnya sampai semua data terurut naik. Apabila terdapat n buah data yang akan diurutkan, maka membutuhkan (n-1) langkah pengurutan, dengan data terakhir, yaitu data ke n tidak perlu diurutkan karena hanya tinggal data satu-satunya.
      Contoh :

Contoh program Selection Sort
Hasil run program:













2. Insertion Sort

Metode ini bertujuan untuk menjadikan bagian sisi  kiri array terurutkan sampai dengan seluruh array berhasil diurutkan. Metode ini mengurutkan bilangan-bilangan yang telah dibaca dan berikutnya secara berulang akan menyisipkan bilangan-bilangan dalam array yang belum terbaca ke sisi kiri array yang telah terurut. Berikut ini contoh ilustrasinya.



























Contoh program Insertion Sort
Hasil run program:














Contoh hasil build program diatas menggunakan Borland C++. Mungkin hanya sekian penjelasan tentang sorting (selection sort dan insertion sort) dari saya kurang lebihnya. Jika ada yang ingin ditanyakan dapat ditanyakan pada kolom komentar dibawah ini. Terimakasih telah berkunjung ke blog saya :v






Sumber :
KONSEP DAN APLIKASI PEMROGRAMAN MENGGUNAKAN BORLAND C++ BUILDER 6 M. Fachrurrozi
http://frediannotes.blogspot.com/2013/02/selection-sort.html
Algoritma & Pemrograman dengan C++ oleh Andri Kristanto

QUEUE

Queue (Data Antrean) adalah suatu kumpulan data dimana operasi penambahan data (Insertion) hanya bisa dilakukan pada salah satu ujung saja, yang disebut sisi Belakang (Rear) dan operasi penghapusan (Deletion) hanya bisa dilakukan pada sisi lainnya yang disebut sisi Depan (Front) dari List.


Prinsip Queue adalah FIFO (First In First Out) atau FCFS (First Come First Serve) yaitu yang tiba lebih awal maka akan dilayani terlebih dahulu. Jika diartikan secara sederhana, Queue berarti antrian, Salah satu contohnya yang cukup sering kita jumpai dalam kehidupan sehari-hari, seperti saat anda mengantri di loket untuk membeli tiket masuk bioskop, pasti yang dilayani paling pertama adalah orang yang paling pertama mengantri.

Adapun operasi-operasi pada Queue, yaitu :
  • EnQueue  : Fungsi EnQueue berguna untuk memasukkan sebuah data dalam queue
  • DeQueue : Fungsi DeQueue berguna untuk mengambil sebuah data dari queue. Operasi ini sering disebut juga serve. Hal ini dilakukan dengan cara memindahkan sejauh satu langkah ke posisi di depannya sehingga otomatis data yang paling depan akan tertimpa dengan data yang terletak di belakangnya.
  • Clear       : Fungsi Clear berguna untuk menghapus semua data dalam queue dengan jalan mengeluarkan semua data tersebut satu per satu hingga queue kosong dengan memanfaatkan fungsi Dequeue
  •  IsEmpty  : Fungsi IsEmpty berguna untuk mengecek apakah queue masih kosong atau sudah berisi data. hal ini dilakukan dengan mengecek apakah tail bernilai -1 atau tidak. Nilai -1 menandakan bahwa queue masih kosong.
  •  IsFull      : Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau masih bisa menampung data dengan cara mengecek apakah nilai tail sudah sama dengan jumlah maksimal queue. Jika nilai keduanya sama, berarti queue sudah penuh.
Berikut ini contoh programnya
Hasil run program:















Contoh hasil build program diatas menggunakan Borland C++. Mungkin hanya sekian penjelasan tentang Queue dari saya kurang lebihnya. Jika ada yang ingin ditanyakan dapat ditanyakan pada kolom komentar dibawah ini. Terimakasih telah berkunjung ke blog saya :v





Sumber :
Algoritma & Pemrograman dengan C++ oleh Andri Kristanto
http://www.esokharinanti.com/2014/04/struktur-data-antrean-queue.html

STACK

Stack atau tumpukan adalah kumpulan data yang seolah-olah diletakkan di atas data yang lain. Dalam suatu tumpukan akan dapat dilakukan operasi penambahan (penyisipan) dan pengambilan (penghapusan) data melalui ujung paling atas tumpukan (TOP).

Stack bersifat LIFO (Last In First Out),setiap data yang terakhir masuk ke dalam stack akan menjadi data pertama yang dikeluarkan dari stack.

Gambar diatas menunjukan bahwa C merupakan ujung atas stack (TOP).
Operasi-Operasi / Fungsi Stack :
  • Push      : digunakan untuk menambah item pada stack pada tumpukan paling atas
  • Pop        : digunakan untuk mengambil item pada stack pada tumpukan paling atas
  • IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
  •  IsFull     : fungsi yang digunakan untuk mengecek apakah stack sudah penuh

Gambar diatas merupakan ilustrasi PUSH dan POP.

Berikut ini contoh program menggunakan Stack
Hasil run program:













Contoh hasil build program diatas menggunakan Borland C++. Mungkin hanya sekian penjelasan tentang stack dari saya kurang lebihnya. Jika ada yang ingin ditanyakan dapat ditanyakan pada kolom komentar dibawah ini. Terimakasih telah berkunjung ke blog saya :v





Sumber :
Algoritma & Pemrograman dengan C++ oleh Andri Kristanto

ARRAY

Array disebut juga Larik merupakan kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama. Nilai-nilai data di suatu array disebut dengan elemen-elemen array. Letak urutan dari elemen-elemen array ditunjukkan oleh suatu subscript atau indeks, indeks  pertama dari suatu array dimulai dari indeks nol.
Ada beberapa jenis array, yaitu :
  • Array satu dimensi (vector)
  • Array dua dimensi (matriks atau table)
  • Array tiga dimensi (bentuk suatu ruang)


Pada kali ini saya hanya menjelaskan Array berdimensi satu dan dua saja.

1.  Array Satu Dimensi


Array satu dimensi merupakan tipe data yang sering digunakan pada pendeklarasian variabel yang sama tapi memiliki indeks yang berbeda, serta pengisian elemen array dilakukan melalui indeks. Indeks larik secara default dimulai dari 0.

Bentuk umum penulisannya:

TYPE_DATA VARIABEL[JUMLAH_ELEMEN];

contoh :

int nilai[5]  > "int" merupakan tipe data dari variabel "nilai" dan "[5]" merupakan jumlah elemen yang terdapat di dalam array.

Contoh program Array satu dimensi

Run program :













2.    Array Dua Dimensi

Array dua dimensi merupakan tipe data yang sering digunakan pada pendeklarasian variabel yang sama tapi memiliki dua indeks yang berbeda, serta pengisian elemen array dilakukan melalui indeks. Berbeda dengan indeks array satu dimensi yang di mulai dari 0, Indeks array dua dimensi secara default dimulai dari 0,0. Jumlah elemennya adalah indeks 1 x indeks 2.
 
Bentuk umum penulisan:

TYPE_DATA VARIABEL[JUMLAH_ELEMEN1] [JUMLAH_ELEMEN2];

contoh :

int nilai[3][2]={{1,2 }, {4,5,}, {6,7}};  









Contoh program Array dua dimensi
Run program:













Contoh hasil build program diatas menggunakan Borland C++. Mungkin hanya sekian penjelasan tentang array dari saya kurang lebihnya. Jika ada yang ingin ditanyakan dapat ditanyakan pada kolom komentar dibawah ini. Terimakasih telah berkunjung ke blog saya :v





Sumber:
KONSEP DAN APLIKASI PEMROGRAMAN MENGGUNAKAN BORLAND C++ BUILDER 6 M. Fachrurrozi
Algoritma & Pemrograman dengan C++ oleh Andri Kristanto