array - Telkom University

advertisement
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
Download