24
ARRAY Satu Dimensi dan Multi Dimensi

Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Embed Size (px)

Citation preview

Page 1: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

ARRAY

Satu Dimensi dan Multi Dimensi

Page 2: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Array satu Dimensi (Vector)

Page 3: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Overview

Mahasiswa diharapkan mengerti dan dapat mengimplementasikan type data array di setiap kasus algoritma

Page 4: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Definisi Array Array atau dalam beberapa literatur disebut sebagai larik,

adalah suatu tipe variabel yang berisi kumpulan data dengan setiap elemen datanya bertipe sama. (a finite ordered set of homogeneous elements) / Aaron M. Tenenbaum; Data Structures Using C and C++ ‘ Prentice Hall International Edition ; 1996

Setiap komponen atau elemen array dapat diakses dan dibedakan melalui indeks yang spesifik dimana jumlahnya sebanyak ukuran array tersebut dikurangi satu (karena perhitungan indeks dimulai dari nol).Jumlah elemen terbatas, dan semua elemen mempunyai tipe yang sama

Lesson : Array 1 Dimensi

Page 5: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Lesson : Array 1 Dimensi

Fungsi Array Sebagai langkah efisiensi penggunan memori komputer,sebab data elemen

array dialokasikan pada suatu deretan sel memori tertentu. Hal ini jauh lebih efisien dibandingkan dengan jika kita mendefinisikan masing – masing data pada suatu variabel tersendiri yang pastinya akan banyak menyita memori.

Agar memudahkan programmer dalam menyusun aplikasi yang berhubungan dengan banyak data terutama dalam masalah pencarian dan pengurutan data secara cepat.

x[0] x[1] x[2] x[3]

Page 6: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Lesson : Array 1 Dimensi

Here you cannot define 50 variables and add their grades. This is not practical. Using an array, you can store grades of 50 students in one entity, say grades, and you can access each entity by using subscript as grades[1], grades[2]. Thus you have to define the array of grades of the float data type and a size of 50. An array is a composite data structure; that means it had to be constructed from basic data types such as array integers. #include <stdio.h> main() { int a[5]; // definisi array

for(int i = 0;i<5;i++) {

a[i]=i;// isi array} printarr(a);

} void printarr(int a[ ]) { for(int i = 0;i<5;i++)

{ printf("value in array %d\n",a[i]);

} }

Page 7: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Lesson : Array 1 Dimensi

Mecetak alamat array Tanda & artinya alamat. &A[0] maksudnya adalah alamat elemen A[0}. Sedangkan

yang dimaksud dengan alamat adalah nomor byte pertama (diilustrasikan byte yang paling kiri) dari suatu elemen array

void printdetail(int a[]){ for(int i = 0;i<5;i++) { printf("value in array %d and address is %16lu\n",a[i],&a[i]);// A } char key; scanf("break",&key);}

Type : Int, Panjang 2 byte

Kolom pertama sebagai alamat

Contoh alamat type int:

21E6

21E8

21EA

Page 8: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Lesson : Array 1 Dimensi

ContohI = 0;While ( I <=5 ){

A[I] = 17;I++

}

N = 0;For (I=0; I<=5; I++){

A[I] = N;N++

}

int X,Ifor (I=0; I<=5; I++){ scanf (“%i”, &X); A[I] = X}

N = 5; x = 3for (i=0; i<=5; i++){ A[i] = N; N = N + X; X = X + 2;}

T = 0;For (i=0; i<=5; i++){ T = T + A[i];}Printf (“\n%i”, T);

char A[17]={"ABCDEFGHIJKLMNO"};N = 0;For(i=0; i<=14; i++){ printf (%2c”, A[i]); n = n+1; if (n==5) { printf (“\n”); n = 0;}}

12

3

5

4

6

Page 9: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

LAB A : Lesson Array 1 Dimensi

Exercise 1 : Telah ada array vector yang dibuat dengan char A[15] berisi huruf abjad A-O, susunlah program untuk mencetak isi array tersebut sehungga tercetak dengan urutan sebagai berikut :

12 17 10 5 15 25 11 7 25 16 19

Exercise 2 : Susunlah program untuk menyalin isi Array A ke Array B, sehingga isi array B sama dengan isi Array A, tetapi dengan urutan terbalik, seperti gambar

19 16 25 7 11 25 15 5 10 17 12

Array A

Array B

Page 10: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

LAB B : Lesson Array 1 Dimensi

Exercise 3 : Apa output potongan kode program dibawah ini (misalkan array tersimpan di memori berturut-turut mulai dari alamat alamat 65486)

main() {int arr[] = {12,14,15,23,45};printf("%u %u",arr, &arr);

}

Exercise 4 : Teliti potongan kode program dalam bahasa C berikut. Perhatikan logikanya dan tentukan outputnya. Bila ada kesalahan pada kode tersebut, lakukan perbaikan (20 poin)main() {

int i = 1;for(;; ) {

printf("%d",i++); if(i >10) break; }

}

Page 11: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Apa output potongan kode program dibawah ini (misalkan array tersimpan di memori berturut-turut mulai dari alamat alamat 65486) (10 poin)

main(){

int arr[] = {12,14,15,23,45};printf("%u %u",arr, &arr);

}

Page 12: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Array Dua Dimensi

Page 13: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Overview

Mahasiswa diharapkan mengerti dan dapat mengimplementasikan type data array 2 dimensi di setiap kasus algoritma

Page 14: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Lesson : Array 2 Dimensi

Array 2 DimensiDapat dipandang sebagai gabungan array satu dimensiContoh dibawah adalah array 2 dimensi dengan ilustrasi array

A [ 3 ][ 5 ] , [baris][kolom]

0 1 2 3 4

0

1

2

A[1][2]Ada 3 baris (row)

Array dua dimensi ini, misalnya mengilustrasikan sebuah bangunan yang terdiri dari 3 lantai, dan masing-masing lantai terdiri dari 5 ruangan.

Disebut dua dimensi, karena untuk menunjukkan sebuah ruangan , diperlukan dua penunjuk yaitu nomor lantai dan nomor ruangan

Page 15: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Lesson : Array 2 Dimensi

Menyiapkan Array dua dimensi

Menyiapkan Array Numerik dua dimensi lengkap dengan isinya

bila disiapkan 3x5 = 15 kolom, tapi diisi kurang dari 15 nilai, maka sisanya akan diisi dengan NULL, bila dicetak dengan format numeric (%i) akan tercetak (0), dan bila dicetak denan format character (%c) akan tercetak kosong atau spasi

#include <stdio.h>void main(){ int A[3][5]

Akan menyiapkan array dua dimensi bertipe integer, terdiri dari 3 baris (dengan nomor: 0,1,2) dan 5 kolom (dengan no: 0,1,2,3,4)

#include <stdio.h>void main(){ int A[3][5] = {5,12,17,10,7,

15,6,25,2,19,

4,9,20,22,11};--}

5 12 17 10 7

15 6 25 2 19

4 9 20 22 11

Page 16: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Lesson : Array 2 Dimensi

Mengisi Array Numerik 2 dimensi

A[1][2] = 17;I = 1;J = 2;A[I][J] = 17;

I = 1;J = 2;X = 17;A[I][J] = X;

atauatau

Contoh 1

17 17 17 17 17For (j=0;j<=4;j++){

A[0][j] = 17;}

j=0;While (j<=4)

{ A[0][j] = 17; j++}

ü

üJawab:

Page 17: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Lesson : Array 2 Dimensi

Contoh 2

01

2

Contoh 3

0 1 2 3 40 1 2 3 40 1 2 3 4

0 1 2 3 4

Contoh 4

For (j=0;j<=4;j++){

A[0][j] = j;}

ü

For (j=0;j<=2;j++){

A[j][j] = j;}

ü

For (i=0;i<=2;i++){

for (j=0; j<=4; j++){ A[i][j] = j;}

}

ü

Page 18: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Lesson : Array 2 Dimensi

Mengisi Array 2 dimensi dengan nilai yang di input oleh Keyboard For (i=0;i<=2;i++){

for (j=0; j<=4; j++){ scanf (“%c”, A[i][j]); //menggunakan format char}

}

Mencetak isi array dua dimensiFor (i=0;i<=2;i++){

for (j=0; j<=4; j++){ printf (“%3c”, A[i][j]); // angka 3 = 3 char per kolom

}}

Page 19: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Lesson : Array 2 Dimensi

Menyalin isi array dua dimensi ke array ke dua dimensi

For (i=0;i<=2;i++){

for (j=0; j<=4; j++){ B[i][j] = A[i][j];}

}

?

For (i=0;i<=2;i++){

for (j=0; j<=4; j++){ B[j][i] = A[i][j];}

}

?

Page 20: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Lesson : Array 2 Dimensi

Menyalin isi array dua dimensi ke array ke satu dimensi

N=0;For (i=0;i<=2;i++){

for (j=0; j<=4; j++){ B[N] = A[i][j];

N++;}

}

?

N=0;For (j=0;j<=4;j++){

for (i=0; i<=2; i++){ B[N] = A[i][j];

N++;}

}

?

Page 21: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Lesson : Array 2 Dimensi

Mencari nilai Maksimum isi array 2 dimensi

15 12 5 17 20

8 25 22 14 2

11 15 16 25 22

MAX = A[0][0];For (i=0;i<=2;i++){

for (j=0; j<=4; j++){

if ( A[i][j] > max )

max = A[i][j];}

}Printf (“\n%i”,max);

Mencari nilai Total isi array 2 dimensi

Tot = 0;For (i=0;i<=2;i++){

for (j=0; j<=4; j++){ Tot = tot + A[i][j]}

}Printf (“\n%i”,Tot);

Page 22: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Lesson : Array 2 Dimensi

Menambah isi dua buah array dua dimensi

2 10 7 3 15

2 20 27 11 12

14 12 10 15 6

15 12 5 17 20

8 25 22 14 2

11 15 16 25 22+ =

For (i=0;i<=2;i++){

for (j=0; j<=4; j++){

C[i][j] = A[i][j] + B[i]+[j];}

}

17 22 12 20 35

10 45 49 25 14

25 27 26 40 26

Page 23: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

Lesson : Array 2 Dimensi

Mangalikan isi dua buah array dua dimensi

3 2 5 7 4

2 4 6 3 2

3 3 2 5 4

2 4 3

3 2 5 X =

A [ 2 x 3 ] X B [ 3 x 5 ] = C [ 2 x 5 ]

Harus sama

23 29 40 31 28

28 29 37 52 36

Syntax :-----

Page 24: Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

LAB A: Array 2 Dimensi

Exercise 1: telah ada array 1 dimensi A[15], dan telah diisi dengan ilustrasi data A-O, susunlah algoritma untuk menyalin isi array A ke array B dimana array B adalah array 2 dimensi B[3][5]

Exercise 2: Mencari nilai Maksimum isi array 2 dimensi seperti lesson diatas, + dan juga tampilkan jumlah ada berapa nilai max tersebut

Contoh : nilai Max = 25, jumlah = 2