Pertemuan
1
Konsep
Struktur Data & Array
Struktur
Data
Suatu koleksi atau kelompok data yang dapat dikarakteristikan
oleh organisasi serta operasi yang didefinisikan terhadapnya.
Pemakaian Struktur Data yang tepat dalam
proses pemrograman akan menghasilkan algoritma yang lebih jelas sehingga
menjadikan keseluruhan program lebih sederhana.
Konsep Dasar Tipe Data
A. Type
Data Sederhana/Data Sederhana
Terdiri
dari :
1.Data
Sederhana Tunggal : Integer, Real / Float, Boolean dan Character
2.Data
Sederhana Majemuk : String
B.
Struktur Data
Terdiri
dari :
1.Struktur
Data Sederhana : Array dan Record
2.Struktur Data Majemuk
a.Linier : Stack, Queue dan Linear Linked List
b.Non Linier :
Tree, Binary Tree, Binary Search Tree, General Tree serta Graph
Definisi Array
·
Array
/ Larik : Struktur Data Sederhana yang dapat didefinisikan sebagai alokasi memory sementara pada komputer.
·
Array
dapat didefinisikan sebagai suatu himpunan hingga elemen yang turut dan
homogen.
·
Terurut
: Diarttikan bahwa elemen dapat diidentifikasi sebagai elemen pertama,kedua,dan
seterusnya sampai ke-n.
·
Homogen
: Setiap elemen dari sebuah Array tertentu harus mempunyai tipe data yang sama.
·
Array
dapat mempunyai elemen yang seluruhnya berupa integer atau character atau
string bahkan dapat terjadi suatu Array mempunyai elemen berupa Array
·
Karakteristik
Array
1.Mempunyai
batasan dari pemesanan alokasi memory (Bersifat Statis)
2.Mempunyai
Type Data Sama (Bersifat Homogen)
3.Dapat
diakses secara acak
·
Hal
yang harus diketahui dalam mendeklarasikan Array
1.Type data
array
2.Nama
variabel array
3.Subskrip /
index array
·
Jenis
Array
1.Array
Dimensi Satu
2.Array
Dimensi Dua
3.Array Dimensi Tiga
Array Dimensi Satu
1. ARRAY DIMENSI SATU
Disebut dengan istilah
vektor yang menggambarkan data dalam suatu urutan.
Deklarasi : Type_Data
Nama_Variabel [index]
Misalnya : int A[5];
Rumus untuk
menentukan jumlah elemen dalam Array
n
π(Elemen Array)
i=1
π= Perkalian dari
elemen sebelumnya (untuk array dimensi dua & tiga)
Contoh: Suatu Array A
dideklarasikan sbb : int A[10];maka jumlah elemen Array dimensi satu tersebut
adalah = 10
PEMETAAN (MAPPING) ARRAY
DIMENSI SATU KE STORAGE
Rumus : @A[i] = B
+ (i–1)* L
Dimana : @A[i] : Posisi Array yg dicari B: Posisi awal index
di memory komputer i : Subkrip atau
indeks arrayyg dicari L: Ukuran / Besar memory suatu type data.
Contoh: Suatu Array A dideklarasikan sebagai berikut : int
A[5]; dengan alamat awal index berada di 0011 (H)dan ukuran memory type data
integer = 2 Tentukan berapa alamat array
A[3] ?
Rumus : @A[i] =
B + (i–1)* L
Diketahui: @A[i]
= A[3]
B= 0011
(H)
i= 3
L= 2
Penyelesaian : A[3] =
0011(H)+ (3 –1) * 2
= 0011(H) + 4 (D)
= 0011(H) + 4
(H)
= 0015(H)
0
1 2 3 4
A[1] A[2] A[3]
A[4] A[5]
0011 0013
0015 0017 0019
Array Dimensi Dua
2. ARRAY DIMENSI DUA
Sering digunakan dalam
menterjemahkan matriks pada pemrograman.
Deklarasi :
Type_DataNama_Variabel [Index1] [index2];
Misal : int A[3][2];
Rumus untuk
menentukan jumlah elemen Array
n
π(Elemen array)
i=1
Contoh: Suatu Array X
dideklarasikan sbb : int X[4][3]; maka jumlah elemen Array dimensi dua tersebut
adalah :
(4) * (3) = 12
PEMETAAN
(MAPPING) ARRAY DIMENSI DUA KE STORAGE
Terbagi Dua cara
pandang (representasi) yang berbeda:
1. Secara Kolom
Per Kolom (Coloumn Major Order/CMO)
@M[i][j] =
M[0][0] + {(j -1) * K + (i -1)} * L
2. Secara Baris
Per Baris (Row Major Order/ RMO
@M[i][j] = M[0][0] + {(i -1) * N + (j -1)}
* L
Keterangan:
@M[i][j] = Posisi Array yg dicari,
M[0][0] = Posisi alamat awal index array,I=
Baris, J = kolom, L = Ukuran memory type data, K = Banyaknya elemen per kolom,N
= Banyaknya elemen per baris
Misal : int
M[3][2];
(Array dengan 3 Baris & 2 Kolom)
Berdasarkan Cara
pandang:
1.Kolom
PerBaris(RowMajor Order/ RMO)
M[0,0]M[0,1]M[1,0]M[1,1]M[2,0]M[2,1]
Jumlah elemen
perbaris = 2
2. BarisPerKolom
(Coloumn Major Order/ CMO)
M[0,0]M[1,0]M[2,0]M[0,1]M[1,1]M[2,1]
Jumlah elemen per
kolom = 3
Contoh Pemetaan :
Suatu Array X dideklarasikan sebagai berikut :
Float X[4][3], dengan alamat index X[0][0] berada di 0011(H)dan ukuran type
data float = 4
Tentukan berapa
alamat array X[3][2] berdasarkan cara
pandang baris dan kolom ?
Penyelesaian :
Secara BarisPer
Baris(RowMajor Oder/ RMO)
@M[i][j]= @M[0][0] + {(i-1) * N+ (j-1)} * L
X[3][2]=0011(H)+ {(3 –1) * 3 + (2 –1)} * 4
= 0011(H)+ 28 (D)1C (H)
= 0011(H)+
1C (H)
= 002D(H)
Penyelesaian :
Secara Kolom Per
Kolom (Coloumn Major Oder/ CMO)
@M[i][j]= @M[0][0] + {(j -1) * K + (i -1)} * L
X[3][2] = 0011(H) + {(2 –1) * 4 + (3 –1)} * 4
= 0011(H) + 24 (D)18 (H)
=
0011(H) + 18 (H)
= 0029(H)