1 / 11

SEARCHING ARRAY

SEARCHING ARRAY. Searching. Searching adalah pencarian data dengan cara menelusuri data-data tersebut . Tempat pencarian data dapat berupa array dalam memori , bisa juga pada file pada external storage. Sequential Search.

kirk
Download Presentation

SEARCHING ARRAY

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SEARCHING ARRAY

  2. Searching • Searching adalahpencarian data dengancaramenelusuri data-data tersebut. • Tempatpencarian data dapatberupa array dalammemori, bisajugapada file pada external storage.

  3. Sequential Search Adalahteknikpencarian data dalam array ( 1 dimensi ) yang akanmenelusurisemuaelemen-elemen array dariawalsampaiakhir, dimana data-data tidakperludiurutkanterlebihdahulu. Kemungkinanterbaik (best case) adalahjika data yang dicariterletakdiindeks array terdepan (elemen array pertama) sehinggawaktu yang dibutuhkanuntukpencarian data sangatsebentar (minimal). Kemungkinanterburuk (worst case) adalahjika data yang dicariterletakdiindeks array terakhir (elemen array terakhir) sehinggawaktu yang dibutuhkanuntukpencarian data sangat lama (maksimal).

  4. Sequential Search (2) 0 1 2 3 4 5 6 7 indeks 8 10 6 2 10 7 1 100 value Misalnyaterdapat array satudimensisebagaiberikut: Kemudian program akanmeminta data yang akandicari, misalnya 6. Jikaadamakaakanditampilkantulisan “ADA”, sedangkanjikatidakadamakaakanditampilkantulisan “TIDAK ADA”.

  5. Detail Program #include <stdio.h> #include <conio.h> void main(){ clrscr(); int data[8] = {8,10,6,2,10,7,1,100}; intcari; intket=0; printf("masukkan data yang ingindicari = "); scanf("%d",&cari); for(inti=0;i<8;i++){ if(data[i] == cari) ket=1; } if(ket==1) printf("Data ada!\n"); else printf("Data tidakada!\n"); }

  6. Keterangan Program • dilakukanperulanganuntukmengaksessemuaelemen array data satupersatuberdasarkanindeksnya. • menggunakanvariabel“ket” yang bergunauntukmenadaiadaatautidaknya data yang dicaridalam array data. Hanyabernilai 0 atau 1. • “ket” pertamadiinisialiasasidengannilai 0. • Jikaditemukan, maka“ket” akandisetmenjadi 1, jikatidakadamaka“ket” akantetapbernilai 0. • Semuaelemen array data akandibandingkansatupersatudengan data yang dicaridandiinputkanoleh user.

  7. Binary Search • teknikpencarian data dengancaramembagi data menjadiduabagiansetiap kali terjadiprosespengurutan. • SYARAT: “Data harusdiurutkanterlebihdahuluberdasarkansuatuurutantertentu yang dijadikankuncipencarian.” • Prinsippencarianbineradalah: • Data diambildariposisi 1 sampaiposisiakhir N • Kemudiancariposisi data tengahdenganrumus (posisiawal + posisiakhir) / 2 • Kemudiandata yang dicaridibandingkandengan data yang ditengah, apakahsamaataulebihkecil, ataulebihbesar? • Jikalebihbesar, makaprosespencariandicaridenganposisiawaladalahposisitengah + 1 • Jikalebihkecil, makaprosespencariandicaridenganposisiakhiradalahposisitengah – 1 • Jika data sama, berartiketemu.

  8. Binary Search Contoh Data: Misalnya data yang dicari17 0 1 2 3 4 5 6 7 8 1 81013 15 17 203040 A B C Karena 17 > 15 (data tengah), maka: awal = tengah + 1 0 1 2 3 4 5 6 7 8 1 8 10 13 15 17 20 30 40 A B C Karena 17 < 20 (data tengah), maka: akhir = tengah – 1 0 1 2 3 4 5 6 7 8 1 8 10 13 15 17 20 30 40 A=B=C Karena 17 = 17 (data tengah), maka KETEMU!

  9. Interpolation Search • dilakukanpada data yang sudahterurutberdasarkankuncitertentu • dilakukandenganperkiraanletak data. • Contoh: • jikakitahendakmencarisuatunamadidalambukutelepon, • misalyang berawalandenganhuruf W, makakitatidakakanmencarinyadariawalbuku, tapikitalangsungmembukanyapada 2/3 atau ¾ daritebalbuku. • Jadikitamencari data secararelatifterhadapjumlah data. • Rumusposisirelatifkuncipencariandihitungdenganrumus:

  10. InterpolasiSearch Kasus: misalkanterdapat data sbb:

  11. InterpolasiSearch Kasus #1: • KunciPencarian? 088 • Low? 0 • High? 8 • Posisi = int((088 - 025) / (096 - 025) * (8 - 0) + 0) = [7] • Kode[7] = kuncipencarian, data ditemukan: Visual Basic 2005 Express Kasus #2: • KunciPencarian? 060 • Low? 0 • High? 8 • Posisi = int((060 – 025) / (096 – 025) * (8 – 0) + 0) = [3] • Kunci[3] < kuncipencarian, makateruskan • Low = 3 + 1 = 4 • High = 8 • Posisi = int((060 – 025) / (096 – 025) * (8 – 4) + 4) = [5] • Ternyata Kunci[5] adalah 063 yang lebih besar daripada 060. • Berartitidakadakode060.

More Related