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

dokumen-dokumen yang mirip
Array (Tabel) Tim Pengajar KU1071 Sem /11/3 TW/KU1071 1

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

LATIHAN UTS Tim Pengajar KU1071 Sem

BAB VI SEARCHING (PENCARIAN)

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

Searching [pencarian] Algoritma Pemrograman

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

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

Array (Tabel) bagian 2

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

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

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

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

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

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

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

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

MODUL IV PENCARIAN DAN PENGURUTAN

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Stack (Tumpukan)

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

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

Algoritma dan Pemrograman 2 PENCARIAN

STRATEGI DIVIDE AND CONQUER

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Decrease and Conquer

PENGULANGAN SKEMA PEMROSESAN SEKUENSIAL. Tim Pengajar KU1071 Sem

Mesin Karakter dan Mesin Kata

CCH1A4 / Dasar Algoritma & Pemrogramanan

LAPORAN AKHIR PRAKTIKUM STRUKTUR DATA

1 Pencarian. 1.1 Tinjauan Singkat Larik

Array (Tabel) [DalamBahasaC++]

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

Algoritma dan Pemrograman Searching/Pencarian

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

LIST LINIER 1. DEFINISI

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Kompleksitas Algoritma

REVIEW ARRAY. Institut Teknologi Sumatera

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

Kompleksitas Algoritma Sorting yang Populer Dipakai

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

Algoritma Pemrograman

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

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

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

BAB VII ALGORITMA DIVIDE AND CONQUER

CCH1A4 / Dasar Algoritma & Pemrogramanan

Kompleksitas Algoritma

ALGORITMA PENCARIAN. c. Hasil pencarian berupa nilai Boolean yang menyatakan status hasil pencarian.

CCH1A4 / Dasar Algoritma & Pemrogramanan

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

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

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

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

*** SELAMAT MENGERJAKAN

Kode MK/ Pemrograman Terstruktur 2

BAB 1 PENGANTAR KE STRUKTUR DATA

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

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

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

IKG2A3/ Pemrograman Terstruktur 2

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

Algoritma Pemrograman

Pert 3: Algoritma Pemrograman 1 (Alpro1) 4 sks. By. Rita Wiryasaputra, ST., M. Cs.

Soal hari Jumat (16/10) Latihan 10 MS

DIKTAT KULIAH STRUKTUR DATA. Disusun oleh: Sri Primaini A.

SORTING. Brigida Arie Minartiningtyas, M.Kom

RENCANA PEMBELAJARAN SEMESTER (RPS)

Kompleksitas Algoritma (1)

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

Identitas dosen POKOK BAHASAN. Suherman,, ST Address. : Cilegon Mobile : Ym Blog

ARRAY/LARIK. 3/25/2010 Materi Array - RIE 1

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

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

PROSES PENJUALAN BUKU

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

[Type the company name] [Type the document title] [Type the document subtitle] Gilang Abdul Aziz [Pick the date]

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

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Konstruksi Dasar Algoritma

Universitas gunadarma. pascal. Bab 4- bab 10. Hana Pertiwi S.T

STRUKTUR DATA. Pengajar. Jaidan Jauhari, M.T. Alamat

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

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

2 ATURAN PENULISAN TEKS ALGORITMA

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Aturan Penulisan Algoritma Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu : Judul (Header) Kamus Algoritma

ALGORITMA TUGAS 2 RESUME ALGORITMA PERCABANGAN DAN ALGORITMA PERULANGAN. Disusun Oleh : Sakina Mawardah Teknik Informatika. Dosen : Asep M. Yusuf, S.

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

Algoritma dan Pemrograman 2 PENGURUTAN

Outline. Ekuivalensi Notasi Algoritmik Dengan ETNA. Struktur Umum

Transkripsi:

Pertemuan Ke 3 Referensi: 1. Inggriani Liem. 2003. Catatan Kuliah & Pemrograman, Jurusan Teknik Informatika ITB 2. Rinaldi Munir. 2003. dan Pemrograman II. Bandung : Penerbit Informatika I. Tabel/Larik/Array Tabel/larik/array adalah struktur data yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen dalam tabel diakses langsung melalui indeksnya. Dengan demikian indeks larik harus tipe data yang mempunyai keterurutuan misalnya integer atau character. Cara mengakses elemen larik dalam notasi algoritma ditulis sbegai berikut : T[index] adalah elemen ke index dari larik T T[1] adalah elemen ke 1 dari larik T T[100] adalah elemen ke 100 dari larik T T[index].x adalah elemen ke index komponen x dari larik T T[1].x adalah elemen ke 1 komponen x dari larik T T[100].x adalah elemen ke 100 komponen x dari larik T Berikut adalah gambaran tabel 1 120 a <8.6,7.8> 2 90 b <10.0,2.8> 3 34 c <4.5,6,8> 4 56 d <23.45,4.67> 5 78 e 6 1 f 7 2 g 8 3 h... 5... 100 6 z (a) Larik berisi tipe integer (b) larik berisi tipe Point.

Jika nama larik pertama (a) adalah A maka A[1] = 120, A[100] = 6. Jika nama larik kedua (b) adalah TPoint maka TP[a] = <8.6,7.8>, TP[a].X = 8.6, TP[b].Y = <2.8> 1. Deklarasi Tabel Deklarasi tabel dituliskan sebagai berikut : <nama> : array [Nmin...Nmax] of TipeElemen Dengan Nmin adadah index minimum, Nmax index maksiumum, TipeElemen adalah tipe elemen isi tabel. Contoh T : array [1...100] of Integer {T adalah tabel dengan index 1.s.d. 100 yang isinya bertipe inteher} TPoint : array [1...100] of Point {T adalah tabel dengan index 1.s.d. 100 yang isinya bertipe Point} 2. Pemrosesan terhadap Tabel Pemrosesan dasar terhadap tabel antara lain : Pengisian, Pencarian, Pengurutan. Berikut beberapa contoh primitif pemrosesan terhadap tabel. 2.1. Pengisan Tabel 2.1.1. Pengisian tabel dengan skema traversal. Traversal adalah skema menjalani semua isi dalam tabel tanpa kecuali, dari index terkecil (pertama) sampai dengan index terbesar (terakhir). di bawah digunakan untuk melakukan pengisian tabel dengan langkah langkah : 1. Menerima masukan jumlah elemen N tabel yang akan di isi dengan 1 <= N <= Nmax. Nmax adalah index maksimum tabel Kamus/Deklarasi variable Constant Nmin : integer = 1; Constant Nmax : integer = 100; T : array [Nmin...Nmax] of Integer; {temperatur air} N : integer {jumlah maksimum }

Repeat Input (N) Until (N > 0) {tidak akan selesai melakukan input N selama N <= 0} I traversal [1...N] input(t[i]) 2.1.2. Pengisian tabel dengan menerima masukan dari alat masukan (keyboard). Jika maukan bernilai -99 maka proses pengisian tabel dianggap selesai. Proses isi tabel juga dihentikan jika semua index sudah terisi, sebanyak Nmax. Nmax adalah index maksimum tabel Kamus/Deklarasi variable Constant Nmin : integer = 1; Constant Nmax : integer = 100; T : array [Nmin...Nmax] of Integer; {temperatur air} N : integer {jumlah maksimum } X : integer { adalah elemen yang dimasukkan} I Nmin; Input (X) While (i <= Nmax) and (X <> -99) do T[I] <= X I I +1 Input(X)

{(i > Nmax) or (X == -99)} If (I > Nmax) then Output ( Tabel penuh ) 2.2. Pencarian Isi Tabel secara terurut Misalnya diketahui suatu tabel T [1...Nmax] yang elemennya merupakan bilangan integer. Persoalan yang diberikan adalah mencari apakah integer X ada di dalam tabel. Proses pencarian dilakukan secara berurutan mulai dari T[Nmin] s.d T[IX] di mana IX adalah index di mana X berada atau sampai dengan T[Nmax], yaitu pencarian dilakukan sampai dengan elemen terakhir pada tabel. Pada pencarian ini digunakan deklarasi global sebagai berikut Constant Nmin : integer = 1; Constant Nmax : integer = 100; Type TabInt : array [Nmin...Nmax] of Integer; { definisi tipe tabel integer } T : TabInt 2.2.1. Prsedur Pencarian versi 1, tanp boolean Procedure SeqSearch1(Input T: TabInt; N:Integer; X: Integer; Output : IX :integer) {Memeriksa apakah X ada didalam tabel T yang berindex dari 1 s.d N. Jika X ada di dalam tabel maka IX akan berisi index terkecil tempat X berada. Jika X tidak ada didalam tabel, IX berisi 0} Kamus/Deklarasi

I <= 1 While (i < N) and (T[i] <> X) do I <= I+1 {i = N or T[i] = X} Depend on T, i, X T[i] = X : IX I TI <> X : IX 0 2.2.2. Prsedur Pencarian versi 2, dengan menggunakan boolean Procedure SeqSearch2(Input T: TabInt; N:Integer; X: Integer; Output : IX :integer; Found : Boolean) {Memeriksa apakah X ada didalam tabel T yang berindex dari 1 s.d N. Jika X ada di dalam tabel maka IX akan berisi index terkecil tempat X berada, Found berisi true. Jika X tidak ada didalam tabel, IX berisi 0 found berisi false} Kamus/Deklarasi I 1 Found false While (i <= N) and (not Found) do If T[I] == X then Found True Else I <= I+1 {i > N or found }

Depend on Found Found : IX I Not Found : IX 0 2.3. Pencarian pada Tabel yang isinya terurut menaik Misalnya diketahui suatu tabel T [1...Nmax] yang telah terisi dan elemennya merupakan bilangan integer yang terurut menaik. Persoalan yang diberikan adalah mencari apakah integer X ada di dalam tabel. Proses pencarian dilakukan secara berurutan mulai dari T[Nmin] s.d T[IX] di mana IX adalah index di mana X berada atau sampai dengan T[Nmax], yaitu pencarian dilakukan tidak harus dilakukan sampai dengan elemen terakhir pada tabel. Misalnya N = 6, T {2,4,5,7,8,9}, X= 5 maka pencarian dilakukan terhadap {2,4,5}, IX= 3; Misalnya N = 10, T {2,4,5,7,8,9,20,22,45,60}, X= 35 maka pencarian dilakukan terhadap {2,4,5, 7,8,9,20,22,45}, IX= 0; Pada pencarian ini digunakan deklarasi global sebagai berikut Constant Nmin : integer = 1; Constant Nmax : integer = 100; Type TabInt : array [Nmin...Nmax] of Integer; { definisi tipe tabel integer } T : TabInt 2.3.1. Prsedur Pencarian Tabel terurut Procedure SeqSearchSorted(Input T: TabInt; N:Integer; X: Integer; Output : IX :integer) {Memeriksa apakah X ada didalam tabel T yang berindex dari 1 s.d N dengan isi elemen adalah integer terurut menaik. Jika X ada di dalam tabel maka IX akan berisi index terkecil tempat X berada. Jika X tidak ada didalam tabel, IX berisi 0}

Kamus/Deklarasi I <= 1 While (i < N) and (T[i] < X) do I <= I+1 {i = N or T[i] = X} Depend on T, i, X T[i] == X : IX I TI <> X : IX 0 {TI > X} 2.4. Pencarian pada Tabel yang isinya terurut menaik dengan metode Binary Search Dichotomic Misalnya diketahui suatu tabel T [1...Nmax] yang telah terisi dan elemennya merupakan bilangan integer yang terurut menaik. Persoalan yang diberikan adalah mencari apakah integer X ada di dalam tabel. Bayangkan index tabel disusun dari atas kebawah artinya index terkecil di atas, dan index terbesar di bawah. Proses pencarian dilakukan dengan membandingkan X dengan elemen yang di tengah. Jika X lebih kecil dari yang di tengah, maka pencarian di fokuskan di belahan setengah atas, sebaliknya jika X lebih besar dari tengah maka pencarian difokuskan di belahan setengah bawah. Proses ini diluang sampai ditemukan atau tabel tidak dapat dibagi setengah setengah lagi. Proses pencarian ini hanya bisa digunakan untuk tabel dengan elemen terurut menaik. Perhatikan ilustrasi berikut, memeriksa apakah 12 ada di dalam tabel : X= 10 Index Index Index ==> Atas 1 1 1 1 1 1

2 4 2 4 2 4 3 6 3 6 3 6 4 7 4 7 4 7 ==> Tengah 5 9 5 9 5 9 6 10 ==> Atas 6 10 ==> Atas 6 10 ==> 7 12 7 12 Bawah,Tengah 7 12 8 14 ==> Tengah 8 14 8 14 9 15 9 15 9 15 ==> Bawah 10 18 ==> Bawah 10 18 10 18 2.4.1. Prsedur Pencarian Tabel terurut dengan Binary Search Procedure BinarySearch(Input T: TabInt; N:Integer; X: Integer; Output : IX :integer; Found : Boolean) {Memeriksa apakah X ada didalam tabel T yang berindex dari 1 s.d N. Elemen Tabel terurut menaik T[1]<= T[2] <= T[3]..., pencarian dilakuan dengan model Binary Search dichotomic.} Kamus/Deklarasi Atas, Bawah, Tengah : integer {pencacah yang digunakan sebagai batas pemeriksaan} Atas 1; Bawah N Found false ; IX 0; While ( Atas <= Bawah ) and (not Found) do Tengah <= (Atas + Bawah ) div 2

Depend on T, Tengah, X X = T[Tengah] Found True; IX Tengah X > T[Tengah] : Atas Tengah + 1 X < T[Tengah] : Bawah Tengah - 1 {Atas > Bawah or Found} 3. Latihan 3.1. Mencari nilai minimal Ujian Permasalahan : Nilai ujian mahasiswa Kelas dimasukkan ke dalam tabel yang tiap elemennya merupakan komponen NIM dan Nilai. Nim bertipe Integer dan Nilai bertipe riil. Diasumsikan tabel Nilai sudah berisi. Tugas yang harus anda lakukan adalah mengeluarkan NIM dan Nilai mahasiswa dengan nilai tertinggi dan nilai terendah. Contoh : Jika tabel berisi {(41501,80.5), (41502,90.5), (41503,60)}, maka outputnya adalah Nilai minimum NIM 41503, nilai 60, Nilai maksimum NIM 41502, nilai 90.5 3.2. Menghitung nilai rata rata Permasalahan : Diterima masukan berupa bilangan riiel lebih besar atau sama dengan nol sebanyak N kali. Setiap menerima masukan bilangan riil tersebut dimasukkan ke dalam tabel yang index maksimumnya N. Hitunglha nilai rata ratanya. Contoh : jika berturut turut dimasukkan nilai riil tiga kali yatu 3.0, 1.0, 7.0, 5.0, maka outputnya adalah 5.0 ==== End of Document ===