Algoritma dan Pemrograman
Array/Tabel[1] Oleh: Eddy Prasetyo N
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
Deklarasi JAVA Array 1 dimensi Format : Tipe_data[] nama_array = new tipe_data[indeks]
Contoh : String[] TabNamaHari= new String[7]; Int[] TabJumlahHari = new int[12];
CONTOH Program JAVA utnuk Array 1 dimensi class Array1{ public static void main(String[] args){ int[] tabInt = new int[5];
tabInt[0]=1; tabInt[1]=2; tabInt[3]=3; system.out.println("isi array:"); int i; for(i=1;i<=3;i++){ system.out.println(tabInt[i]); } } }
Contoh (2)
Contoh Array dengan jumlah elemen 10 yang berisi angka : 5,3,2,4,9,8,10,3,6,15
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:
TabNamaHarii, jika i terdefinisi TabNamaHari7 TabJumlahHari3
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