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

dokumen-dokumen yang mirip
Algoritma dan Pemrograman Array/Tabel[3] Oleh: Eddy Prasetyo N

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

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

Array (Tabel) bagian 2

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

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

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

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

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

List Linier (Bag. I) IF2121/Algoritma dan Struktur Data Sem. I 2016/ /25/2017 IF2121/Sem I 2017/2018 1

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

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

ANALISIS KOMPLEKSITAS ALGORITMA UNTUK BERBAGAI MACAM METODE PENCARIAN NILAI (SEARCHING) DAN PENGURUTAN NILAI (SORTING) PADA TABEL

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

ALGORITMA PENGURUTAN & PENCARIAN

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

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

MODUL IV PENCARIAN DAN PENGURUTAN

BAB VI SEARCHING (PENCARIAN)

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

Searching [pencarian] Algoritma Pemrograman

Pengurutan (Sorting) Algoritma Pemrograman

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

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

{ Kamus Umum } constant IdxMax : integer = 100 constant IdxMin : integer = 1 constant IdxUndef : integer = -999 { indeks tak terdefinisi}

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

LIST LINIER 1. DEFINISI

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

BAB VIII Pencarian(Searching)

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

List Linier. IF2030/Algoritma dan Struktur Data. 11/6/2009 FNA+WDS/IF2030/Sem

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

Algoritma dan Pemrograman 2 PENCARIAN

PENGULANGAN SKEMA PEMROSESAN SEKUENSIAL. Tim Pengajar KU1071 Sem

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

Algoritma dan Pemrograman Searching/Pencarian

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

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

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

1 Pencarian. 1.1 Tinjauan Singkat Larik

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

LATIHAN UTS Tim Pengajar KU1071 Sem

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

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

RENCANA PEMBELAJARAN SEMESTER (RPS)

BAB VII ALGORITMA DIVIDE AND CONQUER

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

Algoritma dan Struktur Data. Searching dan Sorting

SEARCHING & SORTING. Pendahuluan

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

STRATEGI DIVIDE AND CONQUER

Algoritma Brute Force

RENCANA PEMBELAJARAN SEMESTER (RPS)

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

Pengertian Algoritma Pengurutan

Larik/ Array int a1, a2, a3, a4, a5;

Pencarian (Searching)

VISUALISASI LOGIKA ALGORITMA PENGURUTAN DATA MENGGUNAKAN JAVA

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

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

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

Mesin Karakter dan Mesin Kata

BAB VI Pengurutan (Sorting)

A. TUJUAN PEMBELAJARAN

Pengurutan (Sorting)

Representasi Logic List Linier

Array (Tabel) [DalamBahasaC++]

Kompleksitas Algoritma

BAB I PENDAHULUAN.

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

*** SELAMAT MENGERJAKAN

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

1 Array dan Tipe Data Bentukan

Struktur Data. PDE - Struktur Data 1

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

IKG2A3/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Mesin Abstrak

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

Modul 8 SORTING (PENGURUTAN)

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

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

REVIEW ARRAY. Institut Teknologi Sumatera

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Algoritma dan Struktur Data

Gambar 13.1 Ilustrasi proses algoritma sorting

BAB VI SORTIR ATAU PENGURUTAN

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

PENGANTAR KOMPUTER & SOFTWARE II

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

SORTING (BAGIAN II) Proses kelima

BAB 2 LANDASAN TEORI

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

PENGANTAR KOMPUTER & SOFTWARE II

Modul Praktikum Algoritma dan Struktur Data

Transkripsi:

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

Topik Bahasan Pemrosesan Sequential Pencarian pada Array Sequential Boolean Sequential tanpa Boolean Binary Sentinel Pengurutan Count Sort

Pemrosesan Sequential Pemrosesan sekuensial terhadap tabel adalah pemrosesan sekuensial tanpa mark. Tabel memungkinkan adanya akses langsung jika indeks terdefinisi; maka akses dari satu elemen ke elemen berikutnya dapat dilakukan dengan memanfaatkan keterurutan indek. First-Elmt adalah elemen tabel dengan indeks terkecil, Next-Elmt dicapai melalui suksesor indeks. Model akses adalah model akses sekuensial tanpa mark, dan kondisi berhenti adalah jika indeks sudah mencapai harga indeks yang terbesar yang telah terdefinisi. Tabel tidak mungkin kosong

Skema Pemrosesan Tabel T untuk indeks [Nmin..Nmax]

Contoh 1 Bagaimana jika input N tidak dalam batasan NMin..NMax? Tuliskanlah algoritma yang lebih baik.

Contoh 2 Menuliskan isi tabel secara "mundur" (mulai dari elemen dengan indeks yang terbesar yang terakhir sampai dengan yang pertama )

Pencarian pada Array / Table Look Up Proses ini sering dilakukan terhadap sekumpulan data yang disimpan dalam tabel. Ada beberapa variasi pencarian. Suatu Metoda yang dipakai dapat menentukan kecepatan pencarian. Untuk semua persoalan pencarian, dipakai kamus umum sebagai berikut :

Sequential Search pada Tabel Acak Diketahui sebuah tabel berisi harga integer TabInt [1..N], yang telah diisi. Tuliskanlah algoritma yang jika diberikan sebuah X bernilai integer akan mencari apakah harga X ada dalam TabInt.secara berurutan mulai dari elemen pertama sampai ketemu atau sampai elemen terakhir. Algoritma akan menghasilkan harga indeks IX dimana X diketemukan pertama kalinya, IX diberi harga 0 jika pencarian tidak ketemu. Pencarian segera dihentikan begitu harga pertama diketemukan Contoh-1 : N = 8, TabInt berisi : { 1, 3, 5, 8, 12, 90, 3, 5} X = 5 Pemeriksaan dilakukan terhadap {1,3,5} Output : IX = 3 Contoh-2 : N = 4, TabInt berisi : { 11, 3, 5, 8} X = 100 Pemeriksaan dilakukan terhadap {11,3,5,8} Output : IX = 0

Algoritma 1 : Sequential tanpa Boolean

Algoritma 1 Elemen tabel yang terakhir diperiksa secara khusus. Proses pada badan pengulangan hanya berisi maju. Pencarian dihentikan karena ketemu, atau karena sudah tidak dapat maju. Yang menentukan apakah pencarian ketemu atau tidak adalah kesamaan nilai elemen tabel ketika pencarian dihentikan. Pada versi ini tidak diperlukan nama boolean

Algoritma 1 : dengan Boolean

Algoritma 2: Seq. Search ver.2

Kasus 1: Cari Kesalahan dari Algorima ini

Sequential Search pada Tabel Terurut Diketahui sebuah tabel bilangan integer TabInt [1..N], yang telah diisi, dan isinya teurut membesar ( untuk setiap i [1..N-1], Ti _ T(i+1). Tuliskanlah algoritma, yang jika diberikan sebuah X bernilai integer akan mencari apakah harga X ada dalam TabInt secara berurutan mulai dari elemen pertama array sampai ketemu atau sampai elemen terakhir. Prosedur akan menghasilkan harga indeks IX dimana X diketemukan pertama kalinya, IX diberi harga 0 jika pencarian tidak ketemu. Pencarian segera dihentikan begitu harga pertama diketemukan. Contoh N = 8, TabInt berisi : { 1, 3, 5, 8, 12, 90, 311, 500} X = 5 Pemeriksaan dilakukan terhadap {1,3,5} Output : IX = 3 N = 7, TabInt berisi : { 11, 30, 50, 83,99,123,456} X = 100 Pemeriksaan dilakukan terhadap {11,30,50,83,99,123} Output : IX = 0

Algoritma tergantung kepada keterurutan nilai pada tabel: Membesar atau Mengecil.

Sequential Search dengan Sentinel Dengan teknik sentinel, sengaja dipasang suatu elemen fiktif setelah elemen terakhir tabel, yang disebut SENTINEL. Elemen fiktif ini harganya adalah sama dengan elemen yang dicari. Jika nilai ditemukan, diperiksa lagi apakah ketemunya : di antara elemen tabel yang sebenarnya sesudah elemen terakhir (berarti tidak ketemu, karena elemen fiktif) Sentinel dapat diletakkan sebelum elemen pertama tabel atau sesudah elemen terakhir tabel tergantung kepada arah pencarian Jika pencarian dilakukan secara maju, maka sentinel diletakkan sesudah elemen terakhir tabel. Teknik sentinel sangat efisien, terutama jika pencarian dilakukan sebelum penyisipan sebuah elemen yang belum terdapat di dalam tabel.

Kamus Umum

Persoalan Diketahui sebuah tabel bilangan integer TabInt [1..N], yang telah diisi. Tuliskanlah sebuah algoritma, yang jika diberikan sebuah X bernilai integer akan mencari apakah harga X ada dalam TabInt secara berurutan. Prosedur akan menghasilkan harga indeks IX dimana X diketemukan pertama kalinya, IX diberi harga 0 jika pencarian tidak berhasil. Pencarian segera dihentikan ketika harga pertama diketemukan. Contoh : N = 8, TabInt berisi : { 1, 3, 5, 8, -12, 90, 3, 5} X = 5 TabInt dijadikan { 1, 3, 5, 8, 12, 90, 3, 5, 5} Pemeriksaan dilakukan terhadap {1,3,5} Output : IX = 3 N = 4, TabInt berisi : { 11, 3, 5, 8} X = 100 Akibatnya minimal ukuran array harus 5, berarti N dijadikan 5 TabInt dijadikan { 11, 3, 5, 8, 100} Pemeriksaan dilakukan terhadap {11,3,5,8,100} Output : IX = 0

Binary Search Bekerja sebagai berikut : jika diberikan sebuah X bernilai integer akan mencari apakah harga X ada dalam TabInt.secara dikhotomik, yaitu setiap saat pemeriksaan dilakukan dengan mereduksi elemen tabel, yaitu terhadap separuh dari elemen tabel: bandingkan harga yang dicari dengan harga elemen tengah jika sama, berarti ketemu jika yang dicari lebih kecil, berarti pencarian dengan cara yang sama harus dilakukan terhadap elemen-elemen pada belahan atas. jika harga yang dicari lebih besar, berarti pencarian dengan cara yang sama harus dilakukan terhadap elemen-elemen pada belahan bawah. Teknik ini hanya dapat diterapkan pada data yang terurut Pencarian dengan cara ini akan mengurangi waktu pencarian karena pembandingan harga direduksi secara logaritmik (dengan basis 2). Kecepatan pencarian sebanding dengan ln (N).

Kasus Algoritma pencarian secara dikhotomik berikut akan menghasilkan sebuah harga boolean FOUND, yang berharga true jika X ada dalam tabel, false jika tidak. Selain itu, harga indeks IX dimana X diketemukan pertama kalinya juga disimpan. Pencarian segera dihentikan begitu harga pertama diketemukan Contoh N = 8, TabInt berisi : { 1, 3, 5, 8, 12, 90, 113, 500} X = 5 Pemeriksaan dilakukan terhadap {8,3,5} Output : Found = true, IX = 3 N = 5, TabInt berisi : { 11, 37, 51, 80,90} X = 100 Pemeriksaan dilakukan terhadap {51,80,90} Output : Found = false, IX = 0

Solusi 1 : dengan Boolean

Solusi 1 : dengan Boolean Semua pemeriksaan dilakkan dengan cara yang sama di dalam badan pengulangan. Algoritma tersebut berlaku untuk elemen tabel yang terurut membesar, dan harus dimodifikasi untuk elemen tabel yang terurut mengecil.

Solusi 2 : tanpa Boolean

Solusi 2 : tanpa Boolean Pemeriksaan elemen terakhir dilakukan secara khusus di luar badan pengulangan. Perhatikan bagaimana indeks Tengah didefinisikan.

Pengurutan Merupakan suatu proses untuk mengatur dimana posisi suatu data seharusnya. 2 macam pengurutan : pengurutan internal, yaitu pengurutan terhadap sekumpulan data yang disimpan dalam media internal komputer yang dapat diakses setiap elemennya secara langsung. pengurutan eksternal, yaitu pengurutan data yang disimpan dalam memori sekunder, biasanya data bervolume besar sehingga tidak mampu untuk dimuat semuanya dalam memori.

Macam Algoritma Pengurutan Internal Counting Sort Maximum Sort Insertion Sort Bubble sort Shaker sort Heap Sort Shell sort Quick Sort Radix sort dll

Kamus & Persoalan Umum Persoalan : Diberikan sebuah Tabel integer TabInt [1..N] yang isinya sudah terdefinisi. Tuliskan sebuah algoritma yang mengurutkan elemen tabel sehingga tersusun membesar : TabInt1 TabInt2 TabInt3... TabIntN

Counting Sort Merupakan pengurutan yang paling sederhana jika diketahui bahwa data yang akan diurut mempunyai daerah jelajah (range) tertentu, dan merupakan bilangan bulat, misalnya [Min..Max] Proses Umum: 1. Sediakan array TabCount [Min..Max] yang diinisialisasi dengan nol, dan pada akhir proses TabCounti berisi banyaknya data pada tabel asal yang berharga i. 2. Tabel dibentuk kembali dengan menuliskan kembali haraaharga yang ada.

Counting Sort : Ilustrasi

Catatan TabCount TabInti i dituliskan untuk menunjukkan bahwa indeks TabInt adalah i, dan TabInt i merupakan indeks dari TabCount.

Ringkasan Pencarian pada Array Sequential Boolean Sequential tanpa Bolean Binary Sentinel Pengurutan Count Sort