PRAKTIKUM ALGORITMA
& STRUKTUR DATA (LAB)
09 Fakultas
TEKNIK
Array dan Struktur Data
Program Studi
Ilmu
Komputer
Latar Belakang Array
• Sejauh ini cuplikan program yang kita pelajari masih
sangat terbatas, karena statement assignment hanya
berupa pemberian satu nilai pada satu variabel
• Padahal sering kali kita perlu untuk meng-assign
ataupun memanipulasi banyak nilai ke sekelompok
variabel
• Sebagai contoh jika anda membuat program yang
membaca 6000 nilai percobaan untuk dihitung nilai
rata-rata-nya, akan sangat lucu jika anda
menghitungnya dengan cara berikut: rata_rata = (x1 +
x2 + x3 + x4 + x5 + + dst )/6000.
• Ekspresi matematis berikut akan lebih baik :
Pengertian Array
• Adalah struktur data standar yang mempunyai
elemen-elemen sejenis dan dapat diakses
menggunakan indeks
• Mempunyai nama dan tipe data
• Contoh: Tabel[30], mengembalikan nilai elemen
array bernama Tabel pada indeks ke-30
• Panjang suatu array terbatas, dicatat oleh length
• Contoh: Tabel.length, mengembalikan panjang Tabel
• Array dapat berupa array 1 dimensi, 2 dimensi,
bahkan n-dimensi.
Array dan Record Data
• Definisi: Array (larik) adalah suatu himpunan berhingga
elemen, terindeks dan homogen.
• Terindeks berarti elemen-elemennya dapat diacu
sebagai elemen ke-1, ke-2, …, ke-n.
12 15 32 66 3 20
elemen ke-2 = 15
elemen ke-5 = 3
• Homogen berarti bahwa semua elemen dalam suatu
array bertipe sama.
12.3 “AB” -12 TRUE 288.3 3213
Deklarasi Array
Contoh :
Int nilai[6];
Inisialisasi Array
Menginisialisasi array sama dengan memberikan nilai
awal array pada saat didefinisikan.
• Order array A =
(U1-L1+1) * (U2-L2+1) * … * (Un-Ln+1)
Contoh Kasus
Suatu kelas terdiri atas 50 siswa SD kelas 6.
Dari kelas 1 s.d. kelas 6, ujian selalu
dilaksanakan 3kali, yaitu uji-1, uji-2, dan uji-3
untuk mata pelajaran Matematika.
• Jawaban II :
NilaiMat(1:6, 1:50, 1:3) bertipe integer
• Cara mengacu ke elemen array
Pada soal di atas untuk Jawaban I, untuk
mengacu Nilai siswa ke-45, pada kelas 3,
ujian ke-2 ditulis: NilaiMat(45,3,2)
...
...
…
81345
INPUT 81346
(KEYBOARD) 81347
...
...
21
•
Review Sistem Komputer(2)
Komputer sekarang ini = komputer digital
• Komputer ini hanya memahami bilangan
digital: ‘0’ and ‘1’
– Disebut BIT (binary digit) Biner Desimal Heksa
– Mewakili tegangan elektronik -5 atau +5 volt (4 bit)
(secara mudahnya) 0000 0 0x0
• ‘Semua’ bilangan dapat direpresentasikan 0001 1 0x1
dengan menggunakan bit ini 0010 2 0x2
0011 3 0x3
– 15 1111 (cukup 4 bit) 0100 4 0x4
– 253 11111101 (cukup 8 bit) 0101 5 0x5
– -2.99x108 1001010100101…10101011 0110 6 0x6
(cukup 32 bit, ilustrasi) 0111 7 0x7
• Kebanyakan bit menyulitkan manusia 1000 8 0x8
membaca, jadi dikelompokkan 1001 9 0x9
– Kelompok 4 bit diwakili dengan bilangan 1010 10 0xA atau 0xa
heksa (hexadecimal) 1011 11 0xB atau 0xb
• Biasa dinotasikan dengan prefiks 0x 1100 12 0xC atau 0xc
• Co: 1001 ditulis 0x9 1101 13 0xD atau 0xd
– Kelompok 8 bit disebut BYTE 1110 14 0xE atau 0xe
• Perlu 2 angka heksa 1111 15 0xF atau 0xf
• Co: 1000 1111 ditulis 0x8F 22
Review Sistem Komputer(3)
• Merupakan subsistem komputer yang sering
menjadi fokus pemrogram:
– Terutama memori primer (RAM)
– Memori sekunder lebih banyak diakses sebagai file
– Jika tidak disebutkan secara khusus, kata ‘memori’
berarti ‘memori primer’
• Memori merupakan tempat software berada
– Jadi, isinya dapat berupa SO, aplikasi atau data
– Jika ditelusuri lebih rinci lagi, setiap lokasi dapat berisi
perintah dan/atau data (angka, alamat, nilai, dsb.)
23
Review Sistem Komputer(4)
• Lihat ilustrasi Alamat memori dalam notasi heksa,
isi memori dalam notasi desimal
– Lebar bit memori saat ini 32 bit
Alamat Memori Keterangan
(co: Intel Pentium IV) ... ...
... ...
– Prosesor 64 bit sudah mulai muncul 0x0012F084 1 int = 32 bit
(co: AMD Athlon64) 0x0012F088 2 int = 32 bit
0x0012F08C 3.33 float = 32 bit
0x0012F090 4.44 float = 32 bit
0x0012F094
5.5x1067 double = 64 bit
0x0012F09C
6.6x1078 double = 64 bit
... ...
... Me ...
Keadaan sebenarnya dalam sistem memori komputer Ma muda
Me nusia hkan
mb
Alamat Memori aca
... ...
... ...
00000000000100101111000010000100 00000000000000000000000000000001
00000000000100101111000010001000 00000000000000000000000000000010
00000000000100101111000010010100 00010010010001000100100100100110
00000000000100101111000010010000 00100010010001000100100100100110
00000000000100101111000010010100 01001011001100001110100010100110
01011011001100101110101010110110
00000000000100101111000010010110 01000101001010100110011100100010
01000011011100000110101001110110
... ...
...
IF2031-Algoritma dan
...
24
Review Sistem Komputer(5)
• Untuk kemudahan pemrograman,
komputer dapat dimodelkan secara sederhana terdiri atas
– prosesor (CPU)
– memori (RAM)
• Sebenarnya, CPU hanya memahami instruksi sederhana, misalnya:
– baca data dari sebuah lokasi memori
– tulis data ke sebuah lokasi memori
– jumlahkan dua bilangan
– bandingkan dua bilangan
• Ingat, semua ini direpresentasikan dalam bilangan biner!
– Dinamakan BAHASA MESIN
– Sebuah program merupakan seruntunan instruksi-instruksi dan data
dalam bahasa mesin ini
25
Review Sistem Komputer(6)
• Karena manusia mengalami kesulitan
ketika harus memberikan perintah dalam bahasa mesin
– Diciptakanlah bahasa pemrograman yang lebih mendekati bahasa
manusia (terutama: bahasa Inggris)
– COMPILER atau INTERPRETER bertindak sebagai penerjemah bahasa
tingkat tinggi ini ke bahasa mesin
• Compiler
– Menerjemahkan dari file teks bahasa tingkat tinggi ke file biner bahasa
mesin
• Co: hello.cpp (file teks bahasa C++) hello.exe (file biner bahasa mesin)
• Interpreter
– Menerjemahkan on-the-fly, instruksi per instruksi, jadi tidak
menghasilkan file binernya
• Co: hello.bas (file teks bahasa BASIC) dijalankan di BASIC prompt
• Co: hello.m (file teks bahasa Matlab) dijalankan di Matlab prompt
26
Review Sistem Komputer(7)
{
x=x*2; set memory[803] to 2 times memory[801]
jump to instruction #3