際際滷

際際滷Share a Scribd company logo
ARRAY
Satu Dimensi dan Multi Dimensi
Array satu Dimensi (Vector)
Overview
Mahasiswa diharapkan mengerti dan dapat mengimplementasikan type
data array di setiap kasus algoritma
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
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]
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 %dn",a[i]);
}
}
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 %16lun",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
Lesson : Array 1 Dimensi
Contoh
I = 0;
While ( I <=5 )
{
A[I] = 17;
I++
}
N = 0;
For (I=0; I<=5; I++)
{
A[I] = N;
N++
}
int X,I
for (I=0; I<=5; I++)
{
scanf (%i, &X);
A[I] = X
}
N = 5; x = 3
for (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;}
}
1
2
3
5
4
6
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
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;
}
}
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);
}
Array Dua Dimensi
Overview
Mahasiswa diharapkan mengerti dan dapat
mengimplementasikan type data array 2 dimensi di setiap
kasus algoritma
Lesson : Array 2 Dimensi
Array 2 Dimensi
Dapat dipandang sebagai gabungan array satu dimensi
Contoh 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
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
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;
atau
atau
Contoh 1
17 17 17 17 17
For (j=0;j<=4;j++)
{
A[0][j] = 17;
}
j=0;
While (j<=4)
{ A[0][j] = 17;
j++
}


Jawab:
Lesson : Array 2 Dimensi
Contoh 2
0
1
2
Contoh 3
0 1 2 3 4
0 1 2 3 4
0 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;
}
}
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 dimensi
For (i=0;i<=2;i++)
{
for (j=0; j<=4; j++)
{ printf (%3c, A[i][j]); // angka 3 = 3 char per kolom
}
}
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];
}
}
?
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++;
}
}
?
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);
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
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 :
-
-
-
-
-
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

More Related Content

Pertemuan 6 Struktur Data, Algoritma dan Pemrograman

  • 1. ARRAY Satu Dimensi dan Multi Dimensi
  • 3. Overview Mahasiswa diharapkan mengerti dan dapat mengimplementasikan type data array di setiap kasus algoritma
  • 4. 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
  • 5. 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]
  • 6. 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 %dn",a[i]); } }
  • 7. 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 %16lun",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
  • 8. Lesson : Array 1 Dimensi Contoh I = 0; While ( I <=5 ) { A[I] = 17; I++ } N = 0; For (I=0; I<=5; I++) { A[I] = N; N++ } int X,I for (I=0; I<=5; I++) { scanf (%i, &X); A[I] = X } N = 5; x = 3 for (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;} } 1 2 3 5 4 6
  • 9. 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
  • 10. 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; } }
  • 11. 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); }
  • 13. Overview Mahasiswa diharapkan mengerti dan dapat mengimplementasikan type data array 2 dimensi di setiap kasus algoritma
  • 14. Lesson : Array 2 Dimensi Array 2 Dimensi Dapat dipandang sebagai gabungan array satu dimensi Contoh 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
  • 15. 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
  • 16. 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; atau atau Contoh 1 17 17 17 17 17 For (j=0;j<=4;j++) { A[0][j] = 17; } j=0; While (j<=4) { A[0][j] = 17; j++ } Jawab:
  • 17. Lesson : Array 2 Dimensi Contoh 2 0 1 2 Contoh 3 0 1 2 3 4 0 1 2 3 4 0 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; } }
  • 18. 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 dimensi For (i=0;i<=2;i++) { for (j=0; j<=4; j++) { printf (%3c, A[i][j]); // angka 3 = 3 char per kolom } }
  • 19. 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]; } } ?
  • 20. 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++; } } ?
  • 21. 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);
  • 22. 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
  • 23. 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 : - - - - -
  • 24. 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

Editor's Notes

  1. 2
  2. 12