Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Array Pertemuan ke 11.
2
Array Untuk membuat sebuah program yang bisa menerima input 100 buah angka integer, programmer yang belum mengenal array akan melakukan pendefinisian variable integer sebanyak 100 buah seperti dibawah ini int main() { int angka1,angka2,…,angka100; scanf(“%d”,&angka1); scanf(“%d”,&angka2); … scanf(“%d”,&angka100); getch(); return 1; } Bagaimana jika data 1000 buah ? Program akan makin panjang Bagaimana jika selain memasukkan 1000 data, program akan mencetak 1000 data yang dimasukkan ? Program akan makin panjang lagi Problem diatas bisa diatasi dengan ARRAY
3
Array Array digunakan untuk mengatasi masalah ini, dimana kita bisa mendefinisikan satu identifier yang memiliki data type yang sama sebanyak yang kita mau (dibatasi oleh ketersediaan memory saja). int main() { int i, angka[100]; for(i=0;i<100;i++) scanf(“%d”,&angka[i]); printf(“%d\n”,angka[i]); getch(); return 1; }
4
Array definition Definisi:
penampung data sejenis yang menggunakan satu identifier. Elemen array diakses dengan menggunakan indeks(subscript). Akses ke elemen array tidak perlu secara urut (sequential), tetapi bisa acak(random). Bisa langsung mengakses elemen ke-3 tanpa melalui akses elemen ke-1 dan ke-2.
5
Array notation Notasi : data_type array_name[size];
data_type : tipe data array yang kita definisikan. array_name: nama array sesuai aturan penulisan identifier. size: jumlah elemen array. Contoh deklarasi array: int angka[3]; Artinya : array angka terdiri dari 3 elemen, yaitu angka[0],angka[1],angka[2]. int angka[3] = {7,5,12}; Artinya : array angka terdiri dari 3 elemen, yaitu angka[0]=7,angka[1]=5,angka[2]=12.
6
Array Allocation angka[0] 839 Pengalokasian array di dalam Memory.
Address Content Variable FF10 839 angka[0] FF11 FF12 FF13 FF14 432 angka[1] FF15 FF16 FF17 … FF20 8130 angka[4] FF21 FF22 FF23 FF24 chr[0] FF25 chr[1] FF26 chr[2] Pengalokasian array di dalam Memory. Array yang tidak diinisialisasi, berisi garbage lebih baik jika selalu melakukan inisialisasi. Tanpa inisialisasi bisa terjadi kesalahan, jika isi array langsung dipakai. Misalnya, untuk proses : angka[1]=angka[1]+5; Tabel dikanan adalah alokasi array di memory jika tidak dilakukan inisialisasi. Misalkan deklarasi array sebagai berikut : int angka[5]; char chr[3]; Ingat Hexadec !
7
FF18,FF19,FF1A,FF1B, FF1C, FF1D, FF1E, FF1F, FF20
Array Allocation Address Content Variable FF10 angka[0] FF11 FF12 FF13 FF14 angka[1] FF15 FF16 FF17 … FF20 angka[4] FF21 FF22 FF23 FF24 a chr[0] FF25 b chr[1] FF26 c chr[2] Pengalokasian array di dalam Memory. Tabel dikanan adalah alokasi array di memory jika dilakukan inisialisasi. Misalkan deklarasi array sebagai berikut : int angka[5]={0,0,0,0,0}; char chr[3]={‘a’,’b’,’c’}; Ingat Hexadec ! FF18,FF19,FF1A,FF1B, FF1C, FF1D, FF1E, FF1F, FF20
8
Array Access Untuk mengakses elemen array, tuliskan nama array beserta indexnya. Dalam bahasa C, index array dimulai dari 0 (nol). Jadi untuk definisi array yang memiliki 3 elemen, index adalah 0,1 dan 2. int main() { int angka[3] = {5,7,1}; printf(“Isi element array yang ke 1 : %d “,angka[0]); // mengakses elemen array yg pertama OUT: 5 angka[0] = angka[1] + angka[2]; // mengakses elemen array yg pertama OUT: 8 getch(); return 1; }
9
Array: Passing array parameter
Passing array sebagai parameter kedalam function SELALU menggunakan alamat dari array (call by refference). Contoh: void fungsi(int xx[]) { //atau int *xx … } int main() { int iarray[200] fungsi(iarray); // bisa juga dituliskan fungsi(&iarray[0]); getch(); return 0; Nama array (tanpa index) = alamat pertama dari array tersebut, maka iarray == &iarray[0]. Pengiriman parameter array bisa menggunakan dua notasi diatas yaitu dengan nama_array ATAU &nama_array[0].
10
Array: sample program array with function
// program menghitung luas segitiga dengan menggunakan array #include <stdio.h> #include <conio2.h> void hitungluas(float sgt[]){ sgt[2] = sgt[0] * 0.5 * sgt[1]; } int main() { float segitiga[3]; // segitiga[0]=alas ; segitiga[1]=tinggi ; segitiga[2] = luas printf("Alas : ");scanf("%f",&segitiga[0]); printf("Tinggi : ");scanf("%f",&segitiga[1]); hitungluas(segitiga); // ATAU hitungluas(&segitiga[0]); printf(“Luas : %f",segitiga[2]); getch(); return 0;
11
Array: 1 dimension and pointer
Array berhubungan erat dengan pointer dan adakalanya saling dipertukarkan. Secara internal Array diterjemahkan dalam bentuk pointer. Array adalah pointer constant ke elemen pertama array sehingga manipulasi elemen array dapat dilakukan dengan pointer. Hal ini dimungkinkan karena secara fisik elemen-elemen array disimpan secara berurutan didalam memory *(array_name + expression) Akses Array dengan pointer: int arr[10]; int *ptr_arr; ptr_arr = arr; Atau ptr_arr = &arr[0]; //arr ==&arr[0] Untuk mengakses elemen ke-i dapat dilakukan dgn berbagai cara sbb: ptr_arr[i]; arr[i]; *(ptr_arr + i); *(arr + i); ptr_arr = ptr_arr + i ; *ptr_arr;
12
Array: n dimension Array n dimensi (multi dimensi)
Notasi : data_type array_name[size1][size2]…[sizen]; size1 : jumlah elemen dari array pertama size2 : jumlah elemen dari array kedua sizen : jumlah elemen dari array ke n
13
Array: 2 dimension Array 2 dimensi bisa dianalogikan seperti tabel
Jika dideklarasikan seperti dibawah ini : int arr2d[2][5]; Bisa digambarkan berupa tabel “2 baris, 5 kolom”. Kolom-0 Kolom-1 Kolom-2 Kolom-3 Kolom-4 Baris-0 arr2d[0][0] arr2d[0][1] arr2d[0][2] arr2d[0][3] arr2d[0][4] Baris-1 arr2d[1][0] arr2d[1][1] arr2d[1][2] arr2d[1][3] arr2d[1][4]
14
Array: definition of 2 dimensional array
Definisi array 2 dimensi pada function parameter void isimatriks(int a[5][5], int b, int k); atau void isimatriks(int a[][5], int b, int k); Tapi tidak bisa: void isimatriks(int a[5][], int b, int k); void isimatriks(int a[][], int b, int k);
15
Array: sample program 2 dimension array
#include <stdio.h> #include <conio2.h> void jumlahmatrix(int c[3][2],int a[3][2],int b[3][2]) { int j,k; for(j=0;j<3;j++) for(k=0;k<2;k++) c[j][k] = a[j][k] + b[j][k]; } int main(){ int a[3][2],b[3][2],c[3][2]; // Mengisi elemen matrix A printf("Elemen Matrix A:\n"); for(k=0;k<2;k++) { printf("A[%d][%d] = ",j,k); scanf("%d",&a[j][k]); // mengisi eleman matrix b printf(“Elemen Matrix B:\n"); for(j=0;j<3;j++) for(k=0;k<2;k++){ printf("B[%d][%d] = ",j,k); scanf("%d",&b[j][k]); } // jumlahkan A dan B ditampung ke C jumlahmatrix(c,a,b); // Menampilkan hasil penjumlahan A dan B printf("\nHasil A + B =\n"); for(k=0;k<2;k++) printf("\nC[%d][%d]=%d",j,k,c[j][k]); getch(); return 0;
16
Array of char (string) String adalah kumpulan karakter ASCII.
Ada dua cara mendefinisikan String Dengan menggunakan Array : char string_id[constant]; Dengan menggunakan Pointer : char *string_id; Contoh deklarasi string dan initialisasinya Layout penyimpanan di memory char *s1 = “array”; char s2[10] = “NUSA”; char s3[10] = {‘P’,’R’,’O’,’G’,’R’,’A’,’M’}; char s4[] = “jakarta”; a r y \0 s[0] s[1] s[2] s[3] s[4] s[5] N U S A \0 s2[0] s2[1] s2[2] s2[3] s2[4] s2[5] s2[6] s2[7] s2[8] s2[9] P R O G A M \0 s3[0] s31] s3[2] s3[3] s3[4] s3[5] s3[6] s3[7] s3[8] s3[9] j a k r t \0 s3[0] s3[1] s3[2] s3[3] s3[4] s3[5] s3[6] s3[7]
17
Array : built in string functions
keterangan char strcpy(char *dest,const char *src); Fungsi ini menyalin string dari src ke dest. src bisa berupa variabel atau string constant. size_t strlen( const char *s); Mengembalikan angka yang menyatakan panjang string s TANPA menghitung null character di ujung string. int strcmp( const char *s1, const char *s2); Fungsi ini membandingkan string s1 dan s2. Jika s1 = s2, function mengembalikan 0. Jika s1 < s2, function mengembalikan angka negatif. Jika s1 > s2, function mengembalikan angka positif. int strcmpi( const char *s1, const char *s2); Function ini membandingkan string s1 dan s2 TANPA membedakan huruf besar dan kecil. char *strcat( char *dest, const char *src); Function ini menambahkan string src ke string dest.
18
Array : sample program with array of characters
#include <stdio.h> #include <conio2.h> int main() { char klm[3][10]; int i; clrscr(); for(i=0;i<3;i++) { printf("Kata ke-%d ? ",i+1); scanf("%s",klm[i]); } printf("\n"); for(i=2;i>=0;i--) printf("%s ",klm[i]); getch(); return 1; Output : Kata ke-1 ? satu Kata ke-2 ? dua Kata ke-3 ? tiga tiga dua satu
19
Array : sample program with pointer to character
#include <stdio.h> #include <conio2.h> #include <string.h> int main() { char arr[11], *bpointer; clrscr(); strcpy(arr,“Multimedia"); bpointer = arr ; // similar to bpointer = &arr[0] printf("1 = %s \n",arr); printf("2 = %s \n",bpointer); printf("3 = %c \n\n",*bpointer); strcpy(arr,“Nusantara"); printf("4 = %s \n",arr); printf("5 = %s \n\n",bpointer); bpointer = “Tangerang"; printf("6 = %s \n",arr); printf("7 = %s \n\n",bpointer); getch();return 1; } Output : 1 = Multimedia 2 = Multimedia 3 = M 4 = Nusantara 5 = Nusantara 6 = Nusantara 7 = Tangerang
20
References : Thompson SN, 2009, Algoritma dan Struktur Data dengan C.
Deitel, PJ, HM.Deitel, 2007, C How to Program, 5th Edition.
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.