*** SELAMAT MENGERJAKAN

dokumen-dokumen yang mirip
DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

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

Algoritma dan Pemrograman Searching/Pencarian

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

Kompleksitas Algoritma

Kompleksitas Algoritma (1)

Pengurutan (Sorting) Algoritma Pemrograman

Algoritma Brute Force

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

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

Kompleksitas Algoritma

Searching [pencarian] Algoritma Pemrograman

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

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

c. Hasil pencarian berupa nilai Boolean yang menyatakan status hasil pencarian. Versi 1 (Pembandingan elemen dilakukan sebagai kondisi pengulangan)

CCH1A4 / Dasar Algoritma & Pemrogramanan

BAB VII ALGORITMA DIVIDE AND CONQUER

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

ALGORITMA PENGURUTAN & PENCARIAN

Analisis Algoritm. Fundamentals of the Anlysis of Algorithm Efficiency

BAB VI SEARCHING (PENCARIAN)

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

Selamat Mengerjakan. 2. Keluaran dari baris 10 adalah? a. 1 b. 4 c. 2.5 d. 2 e Keluaran dari baris 11 adalah? a. 1 b. 4 c. 2.5 d. 2 e.

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

SORTING. Brigida Arie Minartiningtyas, M.Kom

Bubble Sort (Pengurutan Gelembung / Pemberatan)

MODUL IV PENCARIAN DAN PENGURUTAN

APLIKASI ALGORITMA PENCOCOKAN STRING KNUTH-MORRIS-PRATT (KPM) DALAM PENGENALAN SIDIK JARI

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

Soal hari Jumat (16/10) Latihan 10 MS

Pengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok:

Pertemuan XII ALGORITMA. Algoritma & Pemrograman Ken Kinanti P 1. {Pencarian Beruntun / Sequential Search}

Konstruksi Dasar Algoritma

Algoritma Pencarian String dalam Pemilihan Anggota Sebuah Organisasi

Algoritma dan Pemrograman 2 PENCARIAN

ALGORITMA DAN PEMROGRAMAN

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

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

STRATEGI DIVIDE AND CONQUER

Modul Praktikum Algoritma dan Struktur Data

ARRAY STATIS. Type namatype_array = array [1..maks_array] of tipedata. nama_var_array : namatype_array {indeks array dari 1 sampai maksimum array}

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

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

Adam Mukharil Bachtiar English Class Informatics Engineering Algorithms and Programming Searching

Penggunaan Algoritma Pencocokkan Pola pada Sistem Barcode

Algoritma dan Struktur Data

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

BAB 3 SEARCHING A. TUJUAN

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

Algoritma Divide and Conquer (Bagian 2)

BAB V SORTING (PENGURUTAN) INTERNAL

7. SORTING DAN SEARCHING

Algoritma Divide and Conquer. (Bagian 2)

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

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

BAB 8 SORTING DAN SEARCHING

Aplikasi Algoritma Reverse Greedy pada Egyptian Fraction

Analisis Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore dalam Proses Pencarian String

Algoritma dan Pemrograman 2 PENGURUTAN

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

Meizano Ardhi M., S.T.

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

Algoritma Pencarian String Knuth-Morris-Pratt Dalam Pengenalan Tulisan Tangan

Array dan Matriks. IF2121 / Algoritma dan Struktur Data Sem / /7/2017 IF2121/sem /2018 1

Kompleksitas Algoritma

PENGURUTAN (SORTING) 1. Introduction 2. Bubble Sort 3. Selection Sort 4. Insertion Sort

Modul Praktikum Algoritma dan Struktur Data

LATIHAN UTS Tim Pengajar KU1071 Sem

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

Powered by icomit.wordpress.com

Array (Tabel) bagian 2

Algoritma,Flowchart, Konsep

OPERASI PERNYATAAN KONDISI

PERBANDINGAN ALGORITMA GREEDY DAN BRUTE FORCE DALAM SIMULASI PENCARIAN KOIN

Array (Tabel) Tim Pengajar KU1071 Sem /11/3 TW/KU1071 1

ALGORITMA & PEMROGRAMAN

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA SILABUS ALGORITMA PEMROGRAMAN

Fakultas Teknologi Informasi

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

Gambar 13.1 Ilustrasi proses algoritma sorting

Algoritma Brute Force

BAB II NOTASI ALGORITMA

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-9 Pengurutan (Sorting) 2

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

MODUL 3 ALGORITMA PEMROGRAMAN

Nama : Suseno Rudiansyah NPM : Kelas : X2T Prodi : Teknik Informatika Tugas : Kuis Algoritma 2

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP

Pengertian Algoritma Pengurutan

Analisis Penggunaan Algoritma Greedy dalam Program Solusi Fisibel Basis Awal Transportasi

PRAKTIKUM 9 ARRAY. ARRAY BERDIMENSI SATU Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa :

Algoritma dan Struktur Data

Soal hari Selasa (13/10) Latihan 7 AN

JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

Transkripsi:

SOAL : Diketahui data dalam bentuk ARRAY 2 dimensi sebagai berikut : 70 50 6 77 37 12 94 75 81 58 75 47 67 14 35 33 63 9 49 97 57 6 90 92 41 18 48 92 36 22 80 11 50 21 17 Buatlah algoritma dan tuliskan dalam bentuk Pseudo Code untuk mendeteksi ada atau tidaknya data dengan pencarian data menggunakan metoda BINARY SEARCH. Output yang diharapkan adalah: Data ditemukan pada baris {sekian} kolom {sekian}. apabila data yang dicari ditemukan, atau Data tidak ditemukan. apabila data tidak ada pada array. *** Apabila anda menggunakan pengurutan, gunakan metoda SELECTION SORT! Contoh tampilan : Data yang dicari : 11 HASIL : Data ditemukan pada baris 1 kolom 4. {bila data ditemukan} Data yang dicari : 100 HASIL : Data tidak ditemukan. {bila data tidak ditemukan} *** SELAMAT MENGERJAKAN ***

JAWABAN : Poin poin penting dalam soal : 1. Array dalam bentuk 2 dimensi. 2. Ukuran 5x7 3. Data sudah ada, nilai tidak urut secara ascending maupun desccending. 4. Pencarian data menggunakan BINARY SEARCH (ingat syarat penggunaan Binary Search, data harus terurut) 5. Karena syarat Binary Search, maka pengurutan harus dilakukan terlebih dahulu, menggunakan SELECTION SORT. 6. Output merupakan keterangan data yang dicari ada atau tidak dalam array. Bila data ditemukan maka akan ada keterangan posisi data berupa baris dan kolom. Posisi data yang ditemukan merupakan baris dan kolom untuk data yang telah diurutkan. 7. Algoritma ditulis dalam bentuk PSEUDO CODE

ALTERNATIF 1 : Jawaban ini menggunakan algoritma untuk array 1 dimensi yang dipaksakan untuk digunakan pada array 2 dimensi dengan dibantu rumus rumus konversi indeks. {PSEUDO-CODE} ALGORITMA UAS_CARI_DATA_BINARY_SEARCH_PRE_SELECTION_SORT_1 {I.S. : Data dalam bentuk array 2 dimensi, sudah dalam kondisi terisi dan tidak urut. Input merupakan data yang dicari.} {F.S. : Output berupa keterangan apakah data yang dicari ada atau tidak. Bila ada ditambahkan keterangan berada pada baris dan kolom berapa.} DEKLARASI : D : ARRAY [1..5,1..7] OF INTEGER M, N, R, X, Y, i, x_i, y_i, j, x_j, y_j : INTEGER i_min, x_i_min, y_i_min, TEMP, K1, K2, KT, x_kt, y_kt : INTEGER KETEMU : boolean ALGORITMA : OUTPUT( Data yang dicari : ) INPUT(cari) OUTPUT( HASIL : ) M 5 {jumlah baris} N 7 {jumlah kolom} R M * N {jumlah data :: biasanya jumlah data dilambangkan dengan n } {karena data belum terurut maka pengurutan dilakukan menggunakan MINIMUM- SELECTION SORT ASCENDING} FOR i 1 TO (R 1) DO x_i ((i - 1) DIV N) + 1; y_i ((i - 1) MOD N) + 1; i_min i x_i_min ((i_min - 1) DIV N) + 1; y_i_min ((i_min - 1) MOD N) + 1; FOR j (i + 1) TO R DO x_j ((j - 1) DIV N) + 1; y_j ((j - 1) MOD N) + 1; IF (D[x_j,y_j] < D[x_i_min,y_i_min]) THEN x_i_min x_j; y_i_min y_j; TEMP D[x_i,y_i] D[x_i,y_i] D[x_i_min,y_i_min] D[x_i_min,y_i_min] TEMP

{Pencarian menggunakan BINARY SEARCH} X 0 {X digunakan untuk menunjuk baris pada data yang ditemukan} Y 0 {Y digunakan untuk menunjuk kolom pada data yang ditemukan} KETEMU FALSE IF (D[1,1] = cari) THEN X 1 Y 1 IF (D[M,N] = cari) THEN X M Y N K1 1 K2 R WHILE (NOT KETEMU) AND ((K2 - K1) > 1) DO KT (K1 + K2) DIV 2 x_kt ((KT - 1) DIV N) + 1 y_kt ((KT - 1) MOD N) + 1 IF (D[x_KT,y_KT] = cari) THEN X x_kt Y y_kt IF (D[x_KT,y_KT] > cari) THEN K2 KT K1 KT ENDWHILE IF (KETEMU) THEN OUTPUT('Data ditemukan pada baris ',X,' kolom ',Y,'.') OUTPUT('Data tidak ditemukan.')

ALTERNATIF 2 : Jawaban ini menggunakan algoritma untuk array 1 dimensi dengan cara memindahkan dahulu data yang ada pada array 2 dimensi pada array bantuan yang berdimensi 1. {PSEUDO-CODE} ALGORITMA UAS_CARI_DATA_BINARY_SEARCH_PRE_SELECTION_SORT_2 {I.S. : Data dalam bentuk array 2 dimensi, sudah dalam kondisi terisi dan tidak urut. Input merupakan data yang dicari.} {F.S. : Output berupa keterangan apakah data yang dicari ada atau tidak. Bila ada ditambahkan keterangan berada pada baris dan kolom berapa.} DEKLARASI : D : ARRAY [1..5,1..7] OF INTEGER T : ARRAY [1..256] OF INTEGER M, N, R, X, Y, IDX, i, j, i_min, TEMP, K1, K2, KT : INTEGER KETEMU : boolean ALGORITMA : OUTPUT( Data yang dicari : ) INPUT(cari) OUTPUT( HASIL : ) M 5 {jumlah baris} N 7 {jumlah kolom} R M * N {jumlah data :: biasanya jumlah data dilambangkan dengan n } {Pemindahan data dari array 2 dimensi ke array 1 dimensi} FOR i 1 TO M DO FOR j 1 TO N DO T[((i - 1) * N) + j] D[i,j] {karena data belum terurut maka pengurutan dilakukan menggunakan MINIMUM- SELECTION SORT ASCENDING} FOR i 1 TO (R 1) DO i_min i FOR j (i + 1) TO R DO IF (T[j] < T[i_min]) THEN i_min j; TEMP T[i] T[i] T[i_min] T[i_min] TEMP

{Pencarian menggunakan BINARY SEARCH} IDX 0 {IDX digunakan untuk menunjuk indeks pada data yang ditemukan} KETEMU FALSE IF (T[1] = cari) THEN IDX 1 IF (T[R] = cari) THEN IDX R K1 1 K2 R WHILE (NOT KETEMU) AND ((K2 - K1) > 1) DO KT (K1 + K2) DIV 2 IF (T[KT] = cari) THEN IDX KT IF (T[KT] > cari) THEN K2 KT K1 KT ENDWHILE IF (KETEMU) THEN {Perlu dicari indeks 2 dimensi dari IDX} X ((IDX - 1) DIV N) + 1 Y ((IDX - 1) MOD N) + 1 OUTPUT('Data ditemukan pada baris ',X,' kolom ',Y,'.') OUTPUT('Data tidak ditemukan.')