Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Prodi S1-Sistem Komputer, F Teknik Elektro

Presentasi serupa


Presentasi berjudul: "Prodi S1-Sistem Komputer, F Teknik Elektro"— Transcript presentasi:

1 Prodi S1-Sistem Komputer, F Teknik Elektro
KUG1A3 Algoritma & Pemrograman Burhanuddin D Prodi S1-Sistem Komputer, F Teknik Elektro Universitas Telkom Array Bagian 1 ( Konsep Array )

2 Topik Bahasan Definisi Array/ Tabel / Larik / Vektor
Deklarasi & Inisialisasi Array Pengaksesan & Pengisian Array Penelusuran Array Mencari Nilai Ekstrim

3 Variabel Array Variabel yang terdiri dari sekumpulan elemen
Masing-masing elemen memiliki index Index akan membedakan masing-masing elemen Elemen array dapat diakses langsung jika indeks terdefinisi Nama array merupakan nama kumpulan elemen tersebut

4 [ ] X 1 X 1 Variabel Array –lanj. Sekelompok variabel X Dalam Pascal :
X1, X2, X3, X4, X Dalam Pascal : [ ] X 1 X 1 Nama Index Index Nama

5 Variabel Array – lanj. Jumlah elemen didaftarkan saat deklarasi array
Tipe dari sekumpulan informasi tersebut harus sama, dan ada keterurutan index  X1, X2, X3, X4, X5, semua integer  array [1..5] of integer

6 Lagu Variabel Array Segrup variabel yang bertipe sama Dengan nama sama hanya beda indeksnya Apa namanya : array namanya Nilai indeksnya tentukan variabelnya Variabel indeks tak penting artinya Yang ’kan menentukan hanya nilai indeksnya Indeks K dan I bernilai sama Maka keduanya menunjuk array yang sama

7 Indeks pada Array Digunakan untuk membedakan elemen
Harus memiliki keterurutan Paling sering digunakan : integer suksesor adalah plus satu, predesesor adalah minus satu Bisa juga : tipe enumerasi keterurutan indeks ditentukan sesuai dengan urutan enumerasi.

8 X1  X2 X1  X10 Index –lanj. X1, X2, X3, X4, X5 . . . .
Variabel dengan nama sama, tapi index berbeda merupakan dua objek yang berbeda !

9 Xi , Xk , XL Index –lanj. Index boleh berupa sebuah variabel
Variabel index harus bertipe enumerasi ( umumnya integer, boleh juga karakter ) Variabel index harus diketahui nilainya ! ( Tidak boleh kurang dari nol )

10 Xi = X10 Xk=X10 XL = X2 Xi Xk Xi XL =  Xi , Xk , XL Index –lanj.
Jika diketahui : i = 10, k=10, L=2 Xi = X10 Xk=X10 XL = X2 Xi Xk Xi XL =

11 Xi-1 = X9 Xk+1 = X11 XL+k = X12 Index –lanj.
Index boleh ekspresi numerik. Jika diketahui : i = 10, k=10, L=2 Xi-1 = X9 Xk+1 = X11 XL+k = X12

12 Xi+1 = 17 XL-2 = 10 Nilai variabel Array
Jika index diketahui, elemen array bisa dioperasikan seperti variabel biasa Jika diketahui : i = 1, k=2, L=3, dan X1=10,X2=17, X3=25 Xi+1 = 17 XL-2 = 10

13 Nilai variabel Array – lanj.
Operasi elemen variabel array seperti operasi variabel biasa input(X1, X2 ) X3  X1 +X2 output( X3) Jika input 3 dan 5, X1=3, X2 =5 X3 =3+5=8 Output ( X3=8)

14 Contoh (1) Sekumpulan mahasiswa yang terdiri dari lima orang. Masing-masing bernama : Siti, Ali, Minah, Budi dan Bambang. Untuk kelompok tersebut, dibuat sekumpulan variabel yang berisi nama-nama mahasiswa. Tiap mahasiswa dapat dipanggil dengan menyebut Mahasiswa ke-1, Mahasiswa ke-2, Mahasiswa ke-3 dan seterusnya.

15 Contoh (1) – lanj. Kumpulan tersebut dapat dideklarasikan sebagai berikut : Nama kelompok variabel : Mahasiswa Tipe kelompok : string ( karena untuk menyimpan nama → string ) Index : 1 sampai 5 Cara menulis pada KAMUS Mahasiswa : array [1..5] of string

16 Contoh (2) Sejumlah keranjang dibuat sebagai tempat meletakkan buah durian. Tiap keranjang akan berisi buah durian. Ada 10 keranjang, sehingga tiap keranjang diberi angka 1-10. Nama kelompok variabel : Keranjang Tipe kelompok : integer Index : 1 sampai 10 Keranjang : array [1..10] of integer

17 Contoh (3) Sebuah tabel yang berisi data koordinat titik-titik pada peta. Tipa koordinat terdiri dari absis dan ordinat. Disediakan 100 buah koordinat. KAMUS type Point : <x:integer, y:integer > type Indeks : integer [1..100] TitikSurvey : array [Indeks] of Point

18 Contoh (4) Array dengan jumlah elemen 10 yang berisi angka : 5,3,2,4,9,8,10,3,6,15. Indeks dari 0 sampai 9. 1 2 3 4 5 6 7 8 9 5 3 2 4 9 8 10 6 16

19 Domain Array Domain : Domain array sesuai dengan pendefinisian indeks
Domain isi array sesuai dengan tipe array Contoh : Keranjang : array [1..10] of integer; Domain array : 1 sampai 10  Index hanya dari 1 sampai 10, tidak ada index 0 atau 11. Domain isi array : harus integer

20 Nilai Array Nilai untuk seluruh array tidak terdefinisi
Nilai hanya terdefinisi jika indeks dari array terdefinisi Contoh : Jika I=10, maka Keranjang[I] = Keranjang[10] Mahasiswa[I-5]=Mahasiswa[5]

21 Pengaksesan Array Array biasanya diakses dalam bentuk pengulangan
Pengaksesan elemen array dilakukan dengan menggunakan index Contoh: i traversal [1..5] input(Xi) Membaca Xi sebanyak 5 kali Membaca X1, X2, X3, X4, dan X5

22 Pengaksesan Array – lanj.
Misal : i traversal [5..8] Xi  i * 10 I traversal [4..1] Xi  Xi*2 i Xi 5 50 X5 6 60 X6 7 70 X7 8 80 X8 i Xi 4 X8=80 X4 3 X6=60 X3 2 X4=80 X2 1 X2=80 X1

23 Contoh Kasus-1 : Nama Hari
Program akan menuliskan nama hari yang sesuai dengan input. Input adalah sebuah bilangan integer, antara 1 sampai 7, dan mengeluarkan elemen array dengan index yang sesuai. Array berisi ’Senin’ ..’Minggu’. Contoh : Input : 6, Output 'Sabtu‘ Input : 1, Output ‘Senin'

24 Contoh Kasus-1 : Nama Hari-lanj.
Program TabelHari; Kamus I : integer; Hari : array[1..7] of string Algoritma Hari1  ‘Senin’; Hari2  ‘Selasa’ Hari3  ‘Rabu’; Hari4  ‘Kamis’ Hari5  ‘Jumat’; Hari6  ‘Sabtu’ Hari7  ‘Minggu’ input(i) output(‘Nama hari adalah :’, Harii)

25 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.

26 Persoalan Diketahui sebuah array TabInt yang memiliki N elemen dengan tipe integer dan telah diisi. Tuliskanlah sebuah prosedur NilaiMax, yang menghasilkan harga maksimum dari TabInt. Contoh N = 7, TabInt berisi : { 1,-3,5,8,-12,90,3} Output : Maximum adalah 90 N = 6, TabInt berisi : {-11,3,45,8,3,45} Output : Maksimum adalah 45

27 Solusi 1 Misal : Diketahui nilai elemen TabInt selalu lebih besar dari nilai tertentu, contoh -9999 Cara mencari nilai maksimum : Nilai diinisialisasikan ke variabel Max Bandingkan nilai elemen TabInt dengan Max Jika lebih besar dari Max, maka nilai Max diisi dengan nilai elemen tersebut Ulangi agar semua elemen array TabInt sudah dibandingkan dengan Max

28 Procedure NilaiMax1 ( Input N : integer, Output Max : integer )
{ Mencari nilai maksimum dari suatu array, yang sudah diisi. Array di program utama } Kamus i : integer Algoritma Max  -9999 i traversal [1..N] if TabInti > Max then Max  TabInti Ouput(Max) { optional}

29 Catatan Solusi I Algortima HANYA berlaku jika nilai minimal dari elemen array diketahui Tidak berlaku secara umum Menggunakan suatu nilai yang berada di luar domain nilai array Dapat diperbaiki dengan tidak menggunakan nilai di luar domain nilai array

30 Solusi 2 Diketahui bahwa jika hanya terdapat 1 nilai elemen saja, maka nilai maksimum pasti berada pada nilai elemen tersebut. Elemen pertama dijadikan nilai Max pertama kali Cara mencari nilai maksimum : Nilai elemen pertama diisikan ke variabel Max Bandingkan nilai elemen TabInt dengan Max Jika lebih besar dari Max, maka nilai Max diisi dengan nilai elemen tersebut Ulangi agar semua elemen array TabInt sudah dibandingkan dengan Max

31 Procedure NilaiMax2 ( Input N : integer, Output Max : integer )
{ Mencari nilai maksimum dari suatu array, yang sudah diisi. Array di program utama } Kamus i : integer Algoritma Max  TabInt1 i traversal [2..N] if TabInti > Max then Max  TabInti Output(Max) { optional}

32 Algoritma Solusi2 Elemen pertama tabel diproses secara khusus, bukan di dalam pengulangan Nilai elemen pertama menjadi nilai Max yang pertama Menghasilkan nilai maksimum, namun tidak diketahui posisi (indeks) di mana nilai maksimum tersebut berada. Bagaimana untuk mencari posisi / indeksnya ? Dg indeks, nilai maksimum dapat diketahui

33 Solusi 3 Cara mencari nilai maksimum :
Pembandingan menekankan pada indeks, bukan nilai elemennya Indeks elemen pertama dijadikan nilai indeks Max pertama kali Cara mencari nilai maksimum : Indeks elemen pertama dimasukkan ke IMax Bandingkan nilai TabInti dengan TabIntIMax Jika lebih besar dari TabIntIMax, maka nilai IMax diisi dengan i. Ulangi untuk semua elemen array TabInt

34 Procedure NilaiMax3 ( Input N : integer, Output IMax : integer )
{ Mencari nilai maksimum dari suatu array, yang sudah diisi. Array di program utama } Kamus i : integer Algoritma IMax  1 { Index TabInt dr 1 } i traversal [2..N] if TabInti > TabIntIMax then IMax  i Ouput(IMax) { optional}

35 Algoritma Solusi3 Indeks dari elemen pertama array dimasukkan ke indeks nilai maksimum (Imax). Hasil dari algoritma adalah indeks elemen array yang memiliki nilai maksimum Nilai maksimum bisa dicari dari : TabIntImax


Download ppt "Prodi S1-Sistem Komputer, F Teknik Elektro"

Presentasi serupa


Iklan oleh Google