Pertemuan 2 revisijan2013-mhs
-
Upload
bina-sarana-informatika -
Category
Education
-
view
102 -
download
3
Transcript of Pertemuan 2 revisijan2013-mhs
![Page 1: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/1.jpg)
Pertemuan 2
ARRAYARRAYARRAYARRAY
DIMENSI 1 & 2DIMENSI 1 & 2DIMENSI 1 & 2DIMENSI 1 & 2
![Page 2: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/2.jpg)
� Array / Larik : Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer.
� Array dapat didefinisikan sebagai suatu himpunan hingga elemen yang terurut dan homogen.
� Terurut : Dapat diartikan bahwa elemen tersebut dapat � Terurut : Dapat diartikan bahwa elemen tersebut dapat diidentifikasi sebagai elemen pertama, elemen kedua dan seterusnya sampai elemen ke-n.
� Homogen : Adalah bahwa setiap elemen dari sebuah Array tertentu haruslah mempunyai type data yang sama.
![Page 3: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/3.jpg)
� Sebuah Array dapat mempunyai elemen yang seluruhnyaberupa integer atau character atau String bahkan dapat pula terjadi suatu Array mempunyai elemen berupa Array.
� Karakteristik Array :1. Mempunyai batasan dari pemesanan alokasi memory1. Mempunyai batasan dari pemesanan alokasi memory
(Bersifat Statis)2. Mempunyai Type Data Sama (Bersifat Homogen)3. Dapat Diakses Secara Acak
![Page 4: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/4.jpg)
� 3 Hal yang harus diketahui dalam mendeklarasikan array : a. Type data arrayb. Nama variabel arrayc. Subskrip / index array
� Jenis Array (yang akan dipelajari) adalah :� Jenis Array (yang akan dipelajari) adalah :a. Array Dimensi Satu (One Dimensional Array)b. Array Dimensi Dua (Two Dimensional Array)c. Array Dimensi Tiga (Thee Dimensional Array)
![Page 5: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/5.jpg)
1. ARRAY DIMENSI SATU (One Dimensional Array)
Dapat disebut juga dengan istilah vektor yangmenggambarkan data dalam suatu urutanDeklarasi : Type_Data Nama_Variabel [index]Misalnya : int A[5];
Penggambaran secara Logika :Penggambaran secara Logika :
A[1] A[2] A[3] A[4] A[5]
Elemen Array
0 1 2 3 4
Subscript / Index
![Page 6: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/6.jpg)
void main(){ int bil [5];clrscr;cout<<"Masukkan 5 bilangan genap : "<<endl;for (int i = 0; i < 5; i++){ cout<<"Bilangan ";cout<< i + 1 <<" : ";cin>> bil[i];cout<<endl;
}cout<<endl;cout<<"5 bilangan genap yang dimasukkan “ <<endl;cout<<"5 bilangan genap yang dimasukkan “ <<endl;for (int i = 0; i < 5; i++)cout<<" "<<bil[i];
getch();}
![Page 7: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/7.jpg)
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
![Page 8: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/8.jpg)
Rumus : @A[i] = B + (i – 1) * L
Dimana : @A[i] : Posisi Array yg dicariB : Posisi awal index di memory komputeri : Subkrip atau indeks array yg dicariL : Ukuran / Besar memory suatu type data
PEMETAAN (MAPPING) ARRAY DIMENSI SATU KE STORAGE
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] ?
![Page 9: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/9.jpg)
Rumus : @A[i] = B + (i – 1) * L
Diketahui :@A[i] = A[3]
B = 0011 (H)
i = 3
Penyelesaian :A[3] = 0011(H) + (3 – 1) * 2
= 0011(H) + 4 (D)
= 0011(H) + 4 (H) i = 3L = 2
= 0011(H) + 4 (H)
= 0015(H) 4 Desimal = 4 Hexa
0011
A[1] A[2] A[3] A[4] A[5]0013 0015 0017 0019
0 1 2 3 4
![Page 10: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/10.jpg)
Cara lain mengenal alamat elemen array1. Terdapat array 1 dimensi dengan char A[10].
Diketahui &A[0] = 1000(H). Berapa alamat array untuk posisi A[7]?
Jawab : Tipe char = 1byte
0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9
&A[0]=1000(H) &A[7]=.....?
Perpindahan=7-0=7 elemen 7 elemen * 1 byte=7 Byte, jadi &A[7]=1000H + 0007H=1007H
![Page 11: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/11.jpg)
2. Terdapat array 1 dimensi dengan int A[10]. Diketahui &A[0] = 1000(H). Berapa alamat array untuk posisi A[7]?
Jawab : Tipe int = 2byte
0 1 2 3 4 5 6 7 8 9
&A[0]=1000(H) &A[7]=.....?
Perpindahan=7-0=7 elemen 7 elemen * 2 byte=14 Byte, jadi &A[7]=1000H + 000EH=100EH
![Page 12: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/12.jpg)
0 1 2 3 4 5 6 7
21d2 21d4 21d6 21d8 21da 21dc 21de 21e0
indeks
value
alamat
Contoh Penerapan Array Dimensi 1 Pada Program C++
%x adalah hexadesimal
![Page 13: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/13.jpg)
2. ARRAY DIMENSI DUA (Two Dimensional Array)
Deklarasi : Type_Data Nama_Variabel [Index1] [index2];Misal : int A[3][2];
Sering digunakan dalam menterjemahkan matrikspada pemrograman.
Misal : int A[3][2];
Penggambaran secara Logika : 0 1
0
1
2
![Page 14: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/14.jpg)
Menentukan jumlah elemen dalam Array dimensi dua:
nπ (Elemen array)i=1
Contoh :
π = Perkalian dari elemen sebelumnya(untuk array dimensi dua & tiga)
Contoh : Suatu Array X dideklarasikan sbb : int X[4][3];maka jumlah elemen Array dimensi dua tersebut adalah :
(4) * (3) = 12
![Page 15: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/15.jpg)
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)
Keterangan : @M[i][j] = Posisi Array yg dicari, M[0][0] = Posisi alamat awal index array,i = Baris, j = kolom, L = Ukuran memory type dataK = Banyaknya elemen per kolom, N = Banyaknya elemen per baris
2. Secara Baris Per Baris (Row Major Order / RMO)
@M[i][j] = M[0][0] + {(i - 1) * N + (j - 1)} * L
![Page 16: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/16.jpg)
Misal : int M[3][2];(Array dengan 3 Baris & 2 Kolom)
Berdasarkan Cara pandang : 1. Kolom Per Baris (Row Major Order / RMO)
M[0,0] M[0,1]
Penggambaran secara logika
M[1,0] M[1,1] M[2,0] M[2,1]
0 1
0
1
2
M[0,0] M[0,1] M[1,0] M[1,1] M[2,0] M[2,1]
M[0,0] M[1,0] M[2,0] M[0,1] M[1,1] M[2,1]
2. Baris Per Kolom (Coloumn Major Order / CMO)
Jumlah elemen per baris = 2
Jumlah elemen per kolom = 3
![Page 17: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/17.jpg)
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 ?
Contoh Pemetaan :
0 1 2 index
0011(H)
??
0 1 2
0
1
2
3
index
index
![Page 18: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/18.jpg)
Penyelesaian :
Secara Baris Per Baris (Row Major 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 + 1C
Lanjutan Contoh Pemetaan :
(H) (D) (H)= 0011(H) + 1C (H)
= 002D(H)
![Page 19: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/19.jpg)
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)
Lanjutan Contoh Pemetaan :
= 0011(H) + 18 (H)
= 0029(H)
![Page 20: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/20.jpg)
#include<stdio.h>#include<conio.h>main(){int a[3][5];for (int i=0;i<3;i++){for (int j=0;j<5;j++)
Contoh program array dua dimensi
for (int j=0;j<5;j++){printf("%x ",&a[j][i]);}printf("\n");}getch();
}
![Page 21: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/21.jpg)
Cara lain Mengenal Alamat Elemen Array 2 Dimensi
Terdapat array 2 dimensi yang dibuat dengan int A[3][5].Diketahui &A[0][0]=1000H. Tentukan &A[3][4]?
Jawab : tipe int satu elemen = 2byte
0 1 2 3 4
&A[0][0]=1000H
&A[0][0]0 1 2 3 40
1
2
&A[3][4]=....?
&A[0][0]Pindah baris =2-0=2 baris2*5 kolom=10 elemen
Pindah elemen dalam baris terakhir :=3-0=3elemen
Total perpindahan=10+3=13 elemen =13*2byte=26 byte26D=1AHJadi &A[2][3]=1000H+001AH=101AH
![Page 22: Pertemuan 2 revisijan2013-mhs](https://reader033.fdocument.pub/reader033/viewer/2022052905/55861cedd8b42a7d428b4dc3/html5/thumbnails/22.jpg)
#include<stdio.h>#include<conio.h>main(){int a[3][5];for (int i=0;i<3;i++){for (int j=0;j<5;j++)
Contoh program array dua dimensi
for (int j=0;j<5;j++){printf("%x ",&a[i][j]);}printf("\n");}getch();
}