Pencarian (Searching)

dokumen-dokumen yang mirip
A. TUJUAN PEMBELAJARAN

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

Praktikum 8. Pengurutan (Sorting) Bubble Sort, Shell Sort

Praktikum 9. Pengurutan (Sorting) Quick Sort, Merge Sort

BAB VIII Pencarian(Searching)

BAB VI Pengurutan (Sorting)

Gambar 13.1 Ilustrasi proses algoritma sorting

Modul 15 Searching. 1.1 Kompetensi

BAB 2 TINJAUAN PUSTAKA

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-7 Pencarian (Searching) 2

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

Penambahan Simpul (Node)

1. Algoritma Searching

# TEN Sorting PENDAHULUAN

Algoritme dan Pemrograman

Searching. Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

BAB 3 SEARCHING A. TUJUAN

A. TUJUAN PEMBELAJARAN

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA Searching ( Pencarian ) Modul III

Sequential Search (Linear Search)

Modul Praktikum Algoritma dan Struktur Data

Array ARRAY BERDIMENSI SATU. Representasi (Pemetaan) di memori. Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.

SORTING (Pengurutan)

Dinamik Linked List. hari bulan tahun

STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-6 Pencarian (Searching) 1

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

nama array untuk menyimpan data jumlah data

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

A. TUJUAN PEMBELAJARAN

REVIEW ARRAY. Institut Teknologi Sumatera

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Seharusnya. if (antrian.tail==max-1) return 0;

Praktikum 6. Konsep Rekursi Perbandingan Perulangan biasa dan Rekursi Implementasi Rekursi dalam Bahasa C

Algoritme dan Pemrograman

A. TUJUAN PEMBELAJARAN

KOMPARASI ALGORITMA QUICKSORT DAN BUCKET SORT PENGURUTAN DATA INTEGER MENGGUNAKAN BAHASA C++

LAPORAN PRAKTIKUM SEMENTARA PENGANTAR PEMROGAMAN BAHASA C++

MODUL IV PENCARIAN DAN PENGURUTAN

Pencarian pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

Materi 5: SEARCHING (PENCARIAN) Dosen:

Algoritma Searching Tenia wahyuningrum, S.Kom. MT dan Sisilia Thya Safitri, MT

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

STRATEGI DIVIDE AND CONQUER

Operator Precedence dan Associativity DASAR PEMROGRAMAN. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 2

ALGORITMA SEARCHING. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

Algoritma Pemrograman & Struktur Data

Tipe Data dan Operator

Algoritme dan Pemrograman

PENGANTAR KOMPUTER & SOFTWARE II. Array (Part II) Tim Pengajar KU Institut Teknologi Sumatera

A. TUJUAN PEMBELAJARAN

CCH1A4 / Dasar Algoritma & Pemrogramanan

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

MODUL 10 Fungsi 10.1 Kompetensi 10.2 Alat Dan Bahan: 10.3 Ulasan Teori: Dasar Fungsi Deklarasi Fungsi

ALGORITMA PENGURUTAN & PENCARIAN

PRAKTIKUM 6 PENGULANGAN PROSES 2

Praktikum 5. Antrian (Queue)

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

7. SORTING DAN SEARCHING

Praktikum 4. Tumpukan (Stack)

Politeknik Elektronika Negeri Surabaya

Algoritma dan Pemrograman Array/Tabel[2] Oleh: Eddy Prasetyo N

Algoritma dan Pemrograman 2 PENCARIAN

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

Algoritma dan Struktur Data

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

ANALISIS DAN PERANCANGAN SISTEM

A. TUJUAN PEMBELAJARAN

ARRAY / LARIK. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

Politeknik Elektronika Negeri Surabaya

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 14 & 15

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

Algoritma dan Struktur Data. Searching dan Sorting

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

VARIABEL & TIPE DATA PEMROGRAMAN C++

BAB 8 SORTING DAN SEARCHING

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Struktur Data. Stack STMIK AMIKOM YOGYAKARTA. Bayu Setiaji, S.Kom

Modul Praktikum Algoritma dan Struktur Data

ARRAY. 7 th week Estu Sinduningrum ST,MT

Algoritma dan Struktur Data

Tipe Data dan Variabel

Algoritma dan Pemrograman Searching/Pencarian

SUB PROGRAM P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

SENARAI BERANTAI (LINK LIST)

Tes Asisten Praktikum Alpro Lanjut

Bahasa C Array. Slide diambil dari MK Dasar-Dasar Pemrograman Fasilkom UI Dimodifikasi dan disesuaikan dngn kebutuhan pengajaran di PTI-Undiksha

BAB II TINJAUAN PUSTAKA

Dasar-dasar Pemrograman C DASAR PEMROGRAMAN & ALGORITMA

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

Algoritma Brute Force

BAB VI SEARCHING (PENCARIAN)

LAPORAN PRAKTIKUM RESMI QUEUE

Pointer. Yuliana Setiowati

BAB 2 SORTING (PENGURUTAN)

Transkripsi:

Praktikum 11 Pencarian (Searching) POKOK BAHASAN: Konsep pencarian dengan sequential search dan binary search Struktur data proses pencarian Implementasi algoritma pencarian sequential search dan binary search dalam Bahasa C TUJUAN BELAJAR: Setelah melakukan praktikum dalam bab ini, mahasiswa diharapkan mampu: Memahami konsep pencarian dengan metode sequential search dan binary search. Mengimplementasikan algoritma sequential search dan binary search dalam bentuk flowchart. Membuat diagram alir dan mengimplementasikan algoritma pada suatu permasalahan. DASAR TEORI: Algoritma pencarian (searching algorithm) adalah algoritma yang menerima sebuah argumen kunci dan dengan langkah-langkah tertentu akan mencari rekaman dengan kunci tersebut. Setelah proses pencarian dilaksanakan, akan diperoleh salah satu dari dua kemungkinan, yaitu data yang dicari ditemukan (successful) atau tidak ditemukan (unsuccessful). 113

PRAKTIKUM 11 PENCARIAN ( SEARCHING ) 114 Ada dua macam teknik pencarian yaitu pencarian sekuensial (sequential search) dan pencarian biner (binary search). Perbedaan dari dua teknik ini terletak pada keadaan data. Pencarian sekuensial digunakan apabila data dalam keadaan acak atau tidak terurut. Sebaliknya, pencarian biner digunakan pada data yang sudah dalam keadaan urut. 1. PENCARIAN BERURUTAN (SEQUENTIAL SEARCH) Algoritma pencarian dapat dijelaskan sebagai berikut : pencarian dimulai dari data paling awal, kemudian ditelusuri dengan menaikkan indeks data, apabila data sama dengan kunci pencarian dihentikan dan diberikan nilai pengembalian true, apabila sampai indeks terakhir data tidak ditemukan maka diberikan nilai pengembalian false. Ilustrasi dari algoritma pencarian biner adalah sebagai berikut : Kunci=3 i=0 i=1 i=2 i=3 i=0 Data[4]=3 sama dengan kunci=3 maka data ditemukan dan diberikan nilai pengembalian i (posisi) dan proses dihentikan. Apabila data tidak ditemukan, maka fungsi akan mengembalikan nilai -1

PRAKTIKUM 11 PENCARIAN ( SEARCHING ) 115 2. PENCARIAN BINER (BINARY SEARCH) Salah satu syarat agar pencarian biner dapat dilakukan adalah data sudah dalam keadaan urut. Dengan kata lain, apabila data belum dalam keadaan urut, pencarian biner tidak dapat dilakukan. Ilustrasi dari algoritma pencarian biner adalah sebagai berikut : Kunci=3 L=0 m=4 R=9 3 9 11 12 15 17 20 23 31 35 L=0 m=1 R=3 3 9 11 12 15 17 20 23 31 35 L=0;m=0;R=0 3 9 11 12 15 17 20 23 31 35 Data[1]=3 sama dengan kunci=3 maka data ditemukan dan diberikan nilai pengembalian i (posisi) dan proses dihentikan. Apabila data tidak ditemukan, maka fungsi akan mengembalikan nilai -1 TUGAS PENDAHULUAN: 1. Buatlah flowchart untuk operasi pencarian bilangan bulat dengan metode sequential search dan binary search. 2. Buatlah flowchart untuk operasi penyisipan sebelum dan sesudah serta operasi penghapusan data kunci. 3. Buatlah deklarasi data pegawai dan flowchart fungsi untuk pencarian data dengan metode sequential search dan binary search sebagai berikut : Data bertipe rekaman bernama Pegawai yang mempunyai 4 data yaitu : o NIP, bertipe bulat o Nama, bertipe string

PRAKTIKUM 11 PENCARIAN ( SEARCHING ) 116 o Alamat, bertipe string o Golongan, bertipe char Kunci yang digunakan untuk pencarian data adalah berdasarkan NIP dan Nama PERCOBAAN: 1. Buatlah workspace menggunakan Visual C++. 2. Buatlah project baru SEARCHING yang berisi file C source untuk metode pencarian sequential search dan binary search. 3. Cobalah untuk masing-masing percobaan di bawah dengan menambahkan menu pilihan metode pencarian pada program utama. Percobaan 1 : Implementasi pencarian dengan metode sequential search #include <stdio.h> #include <stdlib.h> #define MAX 10 int Data[MAX]; int SequentialSearch(int x) int i = 0; bool ketemu = false; while ((!ketemu) && (i < MAX)) if(data[i] == x) ketemu = true; i++; if(ketemu) return i; return -1;

PRAKTIKUM 11 PENCARIAN ( SEARCHING ) 117 void main() int i; //pembangkit bilangan random srand(0); //membangkitkan bilangan integer random printf("\ndata : "); for (i = 0; i < MAX; i++) Data[i] = rand()/1000+1; printf("%d ", Data[i]); int Kunci; printf("\nkunci : "); scanf("%d", &Kunci); int ketemu = SequentialSearch(Kunci); if(ketemu>0) printf("data ditemukan pada posisi %d", ketemu); printf("data tidak ditemukan"); Percobaan 2 : Implementasi pencarian dengan metode binary seach #include <stdio.h> #include <stdlib.h> #define MAX 10 int Data[MAX]; // Prosedur menukar data void Tukar (int *a, int *b) int temp; temp = *a; *a = *b; *b = temp;

PRAKTIKUM 11 PENCARIAN ( SEARCHING ) 118 // Prosedur pengurutan metode Quick Sort void QuickSort(int L, int R) int i, j, x; x = Data[(L+R)/2]; i = L; j = R; while (i <= j) while(data[i] < x) i++; while(data[j] > x) j--; if(i <= j) Tukar(&Data[i], &Data[j]); i++; j--; if(l < j) QuickSort(L, j); if(i < R) QuickSort(i, R); // Fungsi pencarian biner int BinarySearch(int x) int L = 0, R = MAX-1, m; bool ketemu = false; while((l <= R) && (!ketemu)) m = (L + R) / 2; if(data[m] == x) ketemu = true; if (x < Data[m]) R = m - 1; L = m + 1; if(ketemu) return m; return -1;

PRAKTIKUM 11 PENCARIAN ( SEARCHING ) 119 void main() int i; //pembangkit bilangan random srand(0); //membangkitkan bilangan integer random printf("\ndata : "); for (i = 0; i < MAX; i++) Data[i] = rand()/1000+1; printf("%d ", Data[i]); //mengurutkan data QuickSort(0, MAX-1); int Kunci; printf("\nkunci : "); scanf("%d", &Kunci); int ketemu = BinarySearch(Kunci); if(ketemu>0) printf("data ditemukan pada posisi %d", ketemu); printf("data tidak ditemukan"); LATIHAN: 1. Tambahkan kode program untuk menghitung jumlah perbandingan yang dilakukan dengan metode sequential search dan binary search. 2. Bandingkan kinerja pencarian dengan sequential search dan binary search berdasarkan latihan point 1. 3. Implementasikan prosedur untuk menyisipkan data sebelum dan sesudah data kunci serta prosedur untuk menghapus data kunci pada tugas pendahuluan. 4. Implementasikan pencarian data Pegawai pada tugas pendahuluan dengan ketentuan : a. Metode pencarian dapat dipilih. b. Pencarian dapat dipilih berdasarkan NIP, Nama dan gabungan keduanya. c. Gunakan struktur data array.

PRAKTIKUM 11 PENCARIAN ( SEARCHING ) 120 d. Lakukan penyisipan data sebelum dan sesudah data kunci serta penghapusan data kunci. 5. Berikan kesimpulan dari percobaan dan latihan yang telah Anda lakukan.