DASAR ALGORITMA DAN PEMROGRAMAN ARRAY / TABEL [1] TOPIK BAHASAN • • • • • Definisi Array Deklarasi & Inisialisasi Array Pengaksesan & Pengisian Array Penelusuran Array Mencari Nilai Ekstrim ARRAY / TABEL / LARIK / VEKTOR • Type yang mengacu kepada sebuah atau sekumpulan elemen melalui indeks • Elemen dapat diakses langsung jika dan hanya jika indeks terdefinisi • Nama array diasosiasikan dengan jumlah elemen yang disimpan • Struktur data ini dipakai untuk merepresentasikan sekumpulan informasi yang bertype sama, dan disimpan dengan urutan tertentu secara kontigu INDEKS PADA ARRAY • Jika indeksnya adalah integer, maka keterurutan indeks sesuai dengan urutan integer (suksesor adalah plus satu, predesesor adalah minus satu) • Jika indeksnya ditentukan sesuai dengan enumerasi (misalnya bertype pada karakter), maka keterurutan indeks ditentukan sesuai dengan urutan enumerasi. CONTOH (1) KAMUS TabNamaHari: array [1..7] of string TabJumlahHari : array [1..12] of integer type Point : <x:integer, y:integer > type Indeks : integer [1..10] TabTitikSurvey : array [Indeks] of Point TabFREK : array ['A'..'Z'] of integer CONTOH (2) • Contoh Array dengan jumlah elemen 10 yang berisi angka : 5,3,2,4,9,8,10,3,6,15 ARRAY 0 1 2 3 4 5 6 7 8 9 5 3 2 4 9 8 10 3 6 15 DOMAIN & KONSTANTA • Domain : • Domain array sesuai dengan pendefinisian indeks • Domain isi array sesuai dengan jenis array • Konstanta : • Konstanta untuk seluruh array tidak terdefinisi • Konstanta hanya terdefinisi jika indeks dari array terdefinisi PENGAKSESAN ARRAY • Array dapat diakses dengan memanfaatkan posisi nilai yang akan diakses dengan menggunakan index • Contoh: • TabNamaHari[i], jika i terdefinisi • TabNamaHari[7] • TabJumlahHari[3] KASUS-1 : NAMA HARI • Nama hari dalam minggu akan direpresentasi sebagai array sebagai berikut, dan harus dituliskan sebuah algoritma yang membaca hari ke berapa [1..7], kemudian menuliskan nama harinya. • Contoh • Input : 1 Output 'Senin' • Input : 6 Output 'Sabtu' PENCARIAN NILAI EKSTRIM • Mencari nilai maksimum/minimum dari array • Contoh dalam kehidupan sehari-hari : mencari juara kelas, mencari data percobaan yang merupakan harga ekstrim, dll. PERSOALAN • Diketahui sebuah array bilangan integer TabInt [1..N], yang telah diisi. Tuliskanlah sebuah program Max, yang menghasilkan harga maksimum dari elemen tabel : i ∈ [1..N] TabInt i ≤ Max. • Contoh • N = 8, TabInt berisi : { 1, -3, 5, 8, -12, 90, 3, 5} Output : Maximum adalah 90 • N = 11, TabInt berisi : { -11, 3, 45, 8,3,45,-6,7,8,9,1} Output : Maksimum adalah 45 ALGORITMA MAX1 ALGORITMA MAX1 • Elemen pertama tabel diproses secara khusus (bukan di dalam pengulangan) • Menghasilkan nilai maksimum, namun tidak diketahui posisi (indeks) di mana nilai maksimum tersebut berada. • Seringkali dalam suatu proses, kita membutuhkan indeks di mana nilai maksimum tersebut berada (terutama jika nilai maksimum muncul beberapa kali). ALGORITMA MAX2 ALGORITMA MAX2 • Elemen pertama array diproses secara khusus (bukan di dalam pengulangan) • Algoritma TIDAK menghasilkan nilai maksimum, namun karena indeks di mana nilai maksimum tersebut berada diketahui maka nilai maksimum dapat diakses. • Jika bekerja dengan array, lebih disukai bekerja dengan indeks karena berkat indeks nilai dari elemen dapat diakses secara langsung. Sebaliknya, hanya mengetahui suatu nilai, tidak sederhana untuk mengetahui indeks dimana nilai tersebut berada, yaitu harus dilakukan dengan proses pencarian ALGORITMA MAX3 • Diketahui sebuah array bilangan integer TabInt [1..N], yang telah diisi dengan bilangan integer positip atau sama dengan nol. Tuliskanlah sebuah prosedur MAXPOS, yang menghasilkan harga maksimum dari elemen tabel • Contoh • N = 8, TabInt berisi : { 1, 3, 5, 8, 12, 90,0, 3, 5} Output : Maximum adalah 90 • N = 11, TabInt berisi : { 11, 3, 45, 8,3,45,6,7,8,9,1} Output : Maksimum adalah 45 ALGORITMA MAX3 ALGORITMA MAX3 • Semua elemen tabel diproses dengan cara yang sama, sehingga nilai maksimum sebelum elemen pertama diperiksa harus didefinisikan. Algoritma tersebut memakai suatu nilai yang didefinisikan oleh pemrogram di luar nilai tabel (max = -9999), yang pasti digantikan oleh salah satu elemen tabel. Algoritma ini hanya berlaku jika semua elemen tabel positif sesuai dengan spesifikasi. Nilai yang dipilih untuk inisialisasi nilai maksimum harus merupakan nilai yang tepat tergantung kondisi tabel. • Versi-versi sebelumnya lebih baik, bersifat umum dan tidak memakai suatu nilai di luar nilai tabel RINGKASAN • • • • • Definisi Array Deklarasi & Inisialisasi Array Pengaksesan & Pengisian Array Penelusuran Array Mencari Nilai Ekstrim