A. TUJUAN PEMBELAJARAN

dokumen-dokumen yang mirip
Pencarian (Searching)

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

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

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

BAB VIII Pencarian(Searching)

BAB VI Pengurutan (Sorting)

Gambar 13.1 Ilustrasi proses algoritma sorting

Modul 15 Searching. 1.1 Kompetensi

A. TUJUAN PEMBELAJARAN

BAB 2 TINJAUAN PUSTAKA

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

Penambahan Simpul (Node)

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

Sequential Search (Linear Search)

A. TUJUAN PEMBELAJARAN

BAB 3 SEARCHING A. TUJUAN

1. Algoritma Searching

Modul Praktikum Algoritma dan Struktur Data

Politeknik Elektronika Negeri Surabaya

# TEN Sorting PENDAHULUAN

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

A. TUJUAN PEMBELAJARAN

Dinamik Linked List. hari bulan tahun

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

SORTING (Pengurutan)

Politeknik Elektronika Negeri Surabaya

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

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

nama array untuk menyimpan data jumlah data

STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)

Algoritme dan Pemrograman

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

STRATEGI DIVIDE AND CONQUER

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

REVIEW ARRAY. Institut Teknologi Sumatera

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

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

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

ANALISIS DAN PERANCANGAN SISTEM

MODUL IV PENCARIAN DAN PENGURUTAN

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

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Algoritma dan Struktur Data. Searching dan Sorting

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

Algoritma Pemrograman & Struktur Data

Politeknik Elektronika Negeri Surabaya

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

A. TUJUAN PEMBELAJARAN

Gambar 1. Langkah-langkah pengurutan metode Insertion Sort (1)

LAPORAN PRAKTIKUM SEMENTARA PENGANTAR PEMROGAMAN BAHASA C++

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

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

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

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

BAB VII ALGORITMA DIVIDE AND CONQUER

Tipe Data dan Variabel

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

Algoritma dan Struktur Data. Ramos Somya

BAB II TINJAUAN PUSTAKA

Materi 5: SEARCHING (PENCARIAN) Dosen:

Algoritma dan Struktur Data

Fungsi : Dasar Fungsi

PERTEMUAN 7 REVIEW (QUIZ)

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

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

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

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

Algoritma dan Pemrograman 2 PENCARIAN

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

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

Praktikum 5. Antrian (Queue)

CCH1A4 / Dasar Algoritma & Pemrogramanan

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

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

PRAKTIKUM 6 PENGULANGAN PROSES 2

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

Politeknik Elektronika Negeri Surabaya

A. TUJUAN PEMBELAJARAN

Algoritme dan Pemrograman

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

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

Tes Asisten Praktikum Alpro Lanjut

PENCARIAN (SEARCHING)

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

Minggu III STRUKTUR PEMILIHAN (KONTROL PROGRAM)

Bahasa C melengkapi fasilitas modular dengan menggunakan fungsi pada setiap SubProgram. Contoh pembagian program menjadi beberapa subprogram.

7. SORTING DAN SEARCHING

Tipe Data dan Operator

SEQUENTIAL/ URUTAN Program dijalankan mulai dari perintah paling atas/ awal sampai paling akhir secara berurutan/ sekuensial.

SENARAI BERANTAI (LINK LIST)

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

Praktikum 4. Tumpukan (Stack)

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

ARRAY. 7 th week Estu Sinduningrum ST,MT

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

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

Politeknik Elektronika Negeri Surabaya

Transkripsi:

Praktikum 13 Algoritma Pencarian (Searching) A. TUJUAN PEMBELAJARAN Setelah melakukan praktikum dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami konsep pencarian dengan metode sequential search dan binary search. 2. Mengimplementasikan algoritma sequential search dan binary search dalam bentuk flowchart. 3. Membuat diagram alir dan mengimplementasikan algoritma pada suatu permasalahan. B. 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). 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. B.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, Algoritma dan Struktur Data 114

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 B.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 Algoritma dan Struktur Data 115

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. C. TUGAS PENDAHULUAN Jawablah pertanyaan berikut ini : 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 o Alamat, bertipe string o Golongan, bertipe char Kunci yang digunakan untuk pencarian data adalah berdasarkan NIP dan Nama D. 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. Algoritma dan Struktur Data 116

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; 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 Algoritma dan Struktur Data 117

int Data[MAX]; // Prosedur menukar data void Tukar (int *a, int *b) int temp; temp = *a; *a = *b; *b = temp; // 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; Algoritma dan Struktur Data 118

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"); E. 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 method sequential search dengan cara rekursif. 4. Implementasikan method binary search dengan cara rekursif. 5. Implementasikan method sequential search menggunakan linked list. 6. Implementasikan prosedur untuk menyisipkan data sebelum dan sesudah data kunci serta prosedur untuk menghapus data kunci pada tugas pendahuluan. 7. 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. Algoritma dan Struktur Data 119

d. Lakukan penyisipan data sebelum dan sesudah data kunci serta penghapusan data kunci. 8. Guessing Game. User memikirkan suatu angka yang berada pada range 1 n (n diinputkan oleh user). Buat program untuk menebak angka tersebut, tebakan berdasarkan informasi dari user. > (guessing-game 100) Is your number less than 51? yes Is your number less than 26? no Is your number less than 38? no Is your number less than 44? no Is your number less than 47? yes Is your number less than 45? no Is your number less than 46? no Since your number is less than 47 but not less than 46, it must be 46. F. LAPORAN RESMI 1. Kerjakan hasil percobaan(d) dan latihan(e) di atas dan tambahkan analisa. 2. Tuliskan kesimpulan dari percobaan dan latihan yang telah anda lakukan. Algoritma dan Struktur Data 120