0% menganggap dokumen ini bermanfaat (0 suara)
92 tayangan29 halaman

Array Dan Record

Dokumen tersebut membahas mengenai struktur data array dan record. Array dibahas meliputi array satu dimensi, multidimensi, dan array segitiga. Sedangkan record dibahas sebagai kumpulan beberapa variabel yang dapat memiliki tipe data yang berbeda untuk memudahkan pendeklarasian variabel pada program berkapasitas besar.

Diunggah oleh

Adi Parmawan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
92 tayangan29 halaman

Array Dan Record

Dokumen tersebut membahas mengenai struktur data array dan record. Array dibahas meliputi array satu dimensi, multidimensi, dan array segitiga. Sedangkan record dibahas sebagai kumpulan beberapa variabel yang dapat memiliki tipe data yang berbeda untuk memudahkan pendeklarasian variabel pada program berkapasitas besar.

Diunggah oleh

Adi Parmawan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 29

Array dan Record

array satu dimensi, array multidimensi,


Struktur Data record, tringular array (array segitiga)
I Gede Surya Rahayuda,S.Kom.,M.Kom
[email protected] | [email protected]
Record | Struct
• Record | Struct atau dapat juga disebut dengan struktur, merupakan kumpulan dari beberapa variable dan
variable tersebut dapat memiliki tipe data yang berbeda
• Dengan menggunakan struct kita dapat mengelompokkan beberapa variable sesuai dengan fungsinya
masing – masing
• Untuk program dengan kapasitas yang besar, struct dapat memudahkan kita dalam mendeklarasikan
variable
Struct C++
1. #include <iostream> 19. cin >> mahasiswa.nama;
20. cout << endl ;
2. using namespace std; 21.
22. cout << mahasiswa.nama;
3. struct{ 23. cout << endl ;
4. char hari[20]; 24. cout << tanggal.hari << " " << tanggal.bulan << endl;
5. char bulan[20]; 25. }
6. int tahun;
7. } tanggal;

8. struct{
9. char nim[10];
10. char nama[20];
11. } mahasiswa;

12. int main()


13. {
14. cout << "Hari : " ;
15. cin >> tanggal.hari;
16. cout << "Bulan : " ;
17. cin >> tanggal.bulan;
18. cout << "Nama : " ;
Array
• Array adalah tipe terstruktur yang terdiri dari sejumlah komponen yang mempunyai tipe data yang sama.
• Suatu array mempunyai jumlah komponen yang banyaknya tetap.
• Banyaknya komponen dalam suatu larik ditunjukan oleh suatu indek untuk membedakan variabel yang
satu dengan variabel yang lainnya.

array dimensi satu array dimensi dua array dimensi tiga array segitiga

sama seperti array 2


int nama_array [4]; int nama_array [4] [5]; int nama_array [4] [5] [6]; dimensi namum berbentuk
segita tiga
Array Berdimensi Satu
Deklarasi:

float struktur_data [3];

tipe data nama array jumlah elemen

float struktur_data 3

Ilustrasi array:
Elemen 1 Elemen 2 Elemen 3
Index 0 Index 1 index 2
Array Berdimensi Satu C++
1. #include <iostream>
2. #include <iomanip>

3. using namespace std;

4. int main()
5. {
6. int nilai[5] = {56, 67, 57, 76, 72};
7. int i;

8. for(i=0; i<5; i++)


9. {
10. cout << "Nilai Array Index ke - " << i <<" = ";
11. cout << nilai[i]<<endl;
12. }
13. }
Array Berdimensi Satu - Input Nilai C++
1. #include <iostream>

2. using namespace std;

3. int main()
4. {
5. int I; int L[4];

6. for( i=0; I < 4; i++)


7. {
8. cout << “ Input Array ke “ << I << “ = “;
9. cin >> L[i];
10. }

11. cout << “ Elemen Array L[4]: “ << endl;

12. for( i=0 ; i < 4; i++)


13. {
14. cout << L[i] << " ";
15. }
16. }
Array Berdimensi Dua - Multidimensi
Deklarasi:

int struktur_data [3][3];

tipe data nama array jumlah baris jumlah kolom

float struktur_data 3 3

Ilustrasi array:

Elemen 1 Elemen 2 Elemen 3


Index 0,0 Index 0,1 index 0,2

Elemen 4 Elemen 5 Elemen 6


index 1,0 index 1,1 index 1,2

Elemen 7 Elemen 8 Elemen 9


index 2,0 index 2,1 index 2,2
Array Dimensi Dua C++
1. #include <iostream>

2. using namespace std;

3. int main()
4. {
5. int i, j;
6. int data[2][5] = {{2, 3, 4, 5, 2},{4, 2, 6, 2, 7}};

7. for(i=0; i<2; i++)


8. {
9. for(j=0; j<5; j++)
10. {
11. cout<<data[i][j];
12. cout<<" ";
13. }
14. cout<<endl;
15. }
16. }
Array Dimensi Dua - Input Nilai C++
1. #include <iostream> 16. {
17. cout<<data[i][j] << “ ”;
2. using namespace std; 18. }
19. cout<<endl;
3. int main() 20. }
4. { 21. cout<<endl;
5. int i, j; 22. }
6. int data[2][5];

7. for(i=0; i<2; i++)


8. {
9. for(j=0; j<5; j++)
10. {
11. cout<<"Input Array ke "<<i<<","<<j<<" = ";
12. cin>>data[i][j];
13. }
14. cout<<endl;
15. }

16. for(i=0; i<2; i++)


17. {
18. for(j=0; j<5; j++)
Array Berdimensi Tiga - Multidimensi
Deklarasi:

int struktur_data [2][3][3];

tipe data nama array jumlah baris jumlah isi baris Jumlah kolom

float struktur_data 2 3 3

Ilustrasi array:
Elemen 1 Elemen 2 Elemen 3
Index 0,0,0 Index 0,0,1 index 0,0,2

Elemen 4 Elemen 5 Elemen 6


index 0,1,0 index 0,1,1 index 0,1,2

Elemen 7 Elemen 8 Elemen 9


index 0,2,0 index 0,2,1 index 0,2,2

Elemen 10 Elemen 12 Elemen 13


Index 1,0,0 Index 1,0,1 index 1,0,2

Elemen 14 Elemen 15 Elemen 16


index 1,1,0 index 1,1,1 index 1,1,2

Elemen 17 Elemen 18 Elemen 19


index 1,2,0 index 1,2,1 index 1,2,2
Array Berdimensi Tiga – Multidimensi C++
1. #include <iostream> 19. cout << setw(9) << j+1;
2. #include <iomanip> 20. for(k=0;k<3;k++)
21. {
3. using namespace std; 22. cout << setw(5);
23. cout << data[i][j][k];
4. int main() 24. cout << " ";
5. { 25. }
6. int i, j, k; 26. cout << endl;
7. float data [2][4][3] = 27. }
8. { 28. cout << endl;
9. {{100,200,300},{150,240,360}, 29. }
10. {250,340,460},{250,340,460}}, 30. }
11. {{160,250,365},{175,275,375},
12. {275,375,575},{380,480,580}}
13. };

14. for(i=0;i<2;i++)
15. {
16. for(j=0;j<4;j++)
17. {
18. cout << setw(9) << i+1;
Array Segitiga – Tringular Array
• Tringular array dapat merupakan Upper Tringular ataupun Lower Tringular
• Upper Tringular = seluruh elemen dibawah diagonal utama = 0
• Lower Tringular = seluruh elemen diatas diagonal utama = 0

• Dalam array lower tringular dengan N baris, jumlah maksimum elemen <> 0, jumlah maksimum elemen <>
0 pada baris ke-I adalah = I, karenanya total elemen <> 0

• I = N (N + 1) / 2

x x x x x x x 0 0 0 0 0
0 x x x x x x x 0 0 0 0
0 0 x x x x x x x 0 0 0
0 0 0 x x x x x x x 0 0
0 0 0 0 x x x x x x x 0
0 0 0 0 0 x x x x x x x

Upper Tringular Array Lower Tringular Array


Array Segitiga – Tringular Array
• Suatu array upper tringular dan array lower tringular dapat disimpan sebagai suatu array dengan order
yang sama dan order yang berbeda, contohnya:

1 2 3 7 0 0
A= 0 4 B 5= 8 9 0
0 0 6 11 12 13

Dapat disimpan sebagai array berorder 3 x 4

7 1 2 3
8 9 4 5
11 12 13 6
Array Segitiga – Tringular Array
• Diketahui suatu array segitiga atas (upper tringular) memiliki 3 baris dan kolom, tentukan berapakah
jumlah elemen yang bukan nol pada array tersebut

10 20 30 5 10 15
0 40 50 0 20 25
0 0 60 0 0 30

I = N (N + 1) / 2
I = 3 (3 + 1) / 2
= 12 / 2
=6
Pemetaan (MAPPING) Array Dimensi Satu ke Storage
• @A[i] = B + (i – 1) * L

@A[i] B i L

posisi array yang posisi awal index di subkrip atau indeks ukuran atau besar
dicari memori komputer array yang dicari memori suatu tipe
data

• Suatu array A dideklarasikan sebagai berikut:


Int A[5], dengan alamat awal index berada di 0011 (H) dan ukuran memori tipe data integer = 2
Tentukan berapa alamat array A[3] ?

Diketahui Penyelesaian

@A[i] = A[3] A[3] = 0011[H] + (3 -1) * 2


B = 0011 (H) = 0011 (H) + 4 (D)
i =3 = 0011 (H) + 4 (H)
L =2 = 0015 (H)
Pemetaan (MAPPING) Array Dimensi Dua ke Storage
• Kolom : @M[i][j] = M[0][0] + {(j – 1) * K + (i – 1)} * L

@M[i][j] M[0][0] j K i L

posisi array yang posisi alamat kolom banyaknya baris ukuran memori
dicari awal index array elemen per tipe data
kolom

• Baris : @M[i][j] = M[0][0] + {(i – 1) * N + (j – 1)} * L

@M[i][j] M[0][0] j N i L

posisi array yang posisi alamat Baris banyaknya kolom ukuran memori
dicari awal index array elemen per baris tipe data

• Penggambaran secara logika:


0 1

0 • Kolom =
1
M[0,0], M[1,0], M[2,0], M[0,1], M[1,1], M[2,1]
• Baris =
2 M[0,0], M[0,1], M[1,0], M[1,1], M[2,0], M[2,1]
Pemetaan (MAPPING) Array Dimensi Dua ke Storage
• Suatu array x dideklarasikan sebagai berikut:
Float x[3][4], dengan alamat index x[0][0] berada di 0011 (H) dan ukuran tipe data float/real = 4
Tentukan berapa alamat array x[3][2] berdasarkan cara pandang baris dan kolom

Penyelesaian:

Secara baris:
@M[i][j] = M[0][0] + { (i – 1) * N + (j – 1)} * L
x[3][2] = 0011 (H) + {(3 – 1) * 3 + (2 – 1) * 4
= 0011 + 2 * 3 + 1 * 4 = 1B (27)
= 0011 + 6 + 4 = 1B = Hexa
= 17 + 6 + 4 = 27 = Decimal

Secara kolom:
@M[i][j] = M[0][0] + { (j – 1) * K + (i – 1)} * L
x[3][2] = 0011 (H) + {(2 – 1) * 4 + (3 – 1) * 4
= 0011 + 1 * 4 + 2 * 4 = 1D (29)
= 0011 + 4 + 8 = 1D (29)
Matriks
• Matriks adalah landasan dasar untuk grafis komputer dan teknik modern. Sama seperti aljabar biasa yang
berhubungan dengan bilangan real, matriks aljabar juga memberikan sarana dan cara untuk memanipulasi
vektor dan sekumpulan persamaan secara bersamaan. Matriks adalah suatu susunan bilangan, yang
tersusun dalam kolom dan baris.

• Matriks seperti halnya variabel biasa dapat dimanipulasi, Dengan representasi matriks, perhitungan dapat
dilakukan dengan lebih terstruktur, seperti:

• Dikalikan
• Dijumlah
• Dikurangkan
• Didekomposisikan atau invers
Matriks Penjumlahan
• Penjumlahan dan pengurangan matriks hanya dapat dilakukan apabila kedua matriks memiliki ukuran atau tipe yang sama.
Elemen yang dijumlahkan atau dikurangi adalah elemen yang posisi atau letaknya sama.
 
Contoh:
 
A[a][b] + B[c][d] = C[a][d]
 
Dimana:
a=c
b=d
 
a b e f a+e b+f

c+ = d g h c+g d+h

1 2 5 6 6 8
+ =
3 4 7 8 10 12
Matriks Penjumlahan C++
Matriks Penjumlahan C++
Matriks Perkalian
• Matriks dapat dikalikan, dengan cara tiap baris dikalikan dengan tiap kolom, lalu dijumlahkan pada baris yang sama.
• Matriks hanya dapat dikalikan jika jumlah kolom matriks pertama sama dengan jumlah baris matriks kedua.
• Orde hasil dari kedua perkalian matriks adalah jumlah baris matriks pertama dan jumlah kolom matriks ke dua.
 
Contoh:
 
A[a][b] * B[c][d] = C[a][d]
 
Dimana, nilai b harus sama dengan nilai c
 
a b e f (a * e) + (b * g) (a * f) + (b * h)
x =
c d g h (c * e) + (d * g) (c *e) + (d * h)

1x = 2 5 6 5 + 14 6 + 16
3 4 7 8 15 + 28 18 + 32

19 22

43 50
Matriks Perkalian C++
Matriks Invers
• Invers adalah kebalikan. Istilah invers ini biasa dipakai dalam aljabar. Invers dari 2 adalah 1/2 karena 2 (1/2) = 1 dan bilangan
1 ini merupakan identitas. 

• Secara umum, invers dari matriks persegi A atau ditulis A -1 adalah sebagai berikut:
 

• A = Adalah nilai Matriks yang akan diinvers


• A-1 = Simbol yang menandakan invers Matriks
• det = Determinan
• adj = Adjoin

• Determinan matriks merepresentasikan suatu bilangan tunggal. Determinan diperoleh dengan mengalikan dan
menjumlahkan elemen matriks dengan cara yang khusus.

• Adjoin matriks merupakan transpose dari suatu Matriks.


Matriks Invers C++
Matriks Invers C++
Latihan 1
• Buatlah sebuah array berdimensi dua dengan ordo 3 x 4, dimana nantinya array tersebut akan diinputkan.
Seperti terlihat pada ilustrasi dibawah ini:

A C D F

mei juni juli agustus

september oktober november desember


Latihan 2
• Buatlah sebuah program yang dapat menginputkan dan menampilkan tringular array. Dimana terdapat dua
buah array tringular yaitu array A dan array B. Kemudian tambahkan program agar kedua array tersebut
dapat digabungkan dan menjadi array C. Seperti pada ilustrasi dibawah ini:

• array A array B
1 2 1 2 0 0
0 4 2 1 9 0
0 0 1 2 1 1

• array C

2 1 2 1
1 9 4 2
2 1 1 1

Anda mungkin juga menyukai