Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat...
Transcript of Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat...
![Page 1: Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat Array(1/2) ! Bila diasumsikan bahwa alamat dari array a atau slot pertama dari array](https://reader033.fdocuments.net/reader033/viewer/2022041418/5e1d0412d24df648aa4fd6a4/html5/thumbnails/1.jpg)
Array (Single Dimension)
Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc Program Studi Informatika http://www.informatika.unsyiah.ac.id Email: [email protected] [email protected]
![Page 2: Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat Array(1/2) ! Bila diasumsikan bahwa alamat dari array a atau slot pertama dari array](https://reader033.fdocuments.net/reader033/viewer/2022041418/5e1d0412d24df648aa4fd6a4/html5/thumbnails/2.jpg)
Pengantar tentang Array
q Definisi: Array adalah struktur data yang memiliki data dengan tipe yang sama. q Array dialokasikan dalam memori dalam ukuran tertentu dan dialokasikan secara berderetan dan tidak terpisah-pisah. q Alamat dari sebuah array dalam memori setelah dideklarasi tidak dapat diubah (fixed).
![Page 3: Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat Array(1/2) ! Bila diasumsikan bahwa alamat dari array a atau slot pertama dari array](https://reader033.fdocuments.net/reader033/viewer/2022041418/5e1d0412d24df648aa4fd6a4/html5/thumbnails/3.jpg)
Pendeklarasian Array q Bentuk umum pendeklarasian array adalah:
type_data nama_array[size];
q Dimana: - type_array adalah tipe data dari nilai yang akan disimpan dalam array. - nama_array adalah nama dari array.
- size adalah ukuran dari array. q Contoh: int nilai[60]; float ipk[60];
![Page 4: Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat Array(1/2) ! Bila diasumsikan bahwa alamat dari array a atau slot pertama dari array](https://reader033.fdocuments.net/reader033/viewer/2022041418/5e1d0412d24df648aa4fd6a4/html5/thumbnails/4.jpg)
Inisialisasi Data dalam Array Contoh: int a[6] = {8, 4, 6, 3, 4, 10};
char
c[]={’i’,’n’,’f’,’o’,’r’,’m’,’a’,’t’,‘i’,‘c’,‘s’};
8 4 6 3 4 10 a
‘i’ ‘n’ ‘f’ ‘o’ ‘r’ ‘m’ ‘a’ ‘t’ ‘i’ ‘c’ ‘s’ c
![Page 5: Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat Array(1/2) ! Bila diasumsikan bahwa alamat dari array a atau slot pertama dari array](https://reader033.fdocuments.net/reader033/viewer/2022041418/5e1d0412d24df648aa4fd6a4/html5/thumbnails/5.jpg)
Visualisasi Alamat Array(1/2) q Bila diasumsikan bahwa alamat dari array a
atau slot pertama dari array a adalah 231016 dan bila diasumsikan pula bahwa ukuran dari tipe data int adalah 4 bytes maka gambar dari array a di atas secara lengkap dengan alamat dari setiap slot adalah:
alamat 2330 2322 2314
8 4 6 3 4 10
a
2310 2318 2326
![Page 6: Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat Array(1/2) ! Bila diasumsikan bahwa alamat dari array a atau slot pertama dari array](https://reader033.fdocuments.net/reader033/viewer/2022041418/5e1d0412d24df648aa4fd6a4/html5/thumbnails/6.jpg)
Visualisasi Alamat Array(2/2)
q Untuk array satu dimensi perhitungan jumlah memori yang dibutuhkan adalah:
Total Memori(dalam satuan bytes)= sizeof(tipeData)*ukuran_array;
![Page 7: Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat Array(1/2) ! Bila diasumsikan bahwa alamat dari array a atau slot pertama dari array](https://reader033.fdocuments.net/reader033/viewer/2022041418/5e1d0412d24df648aa4fd6a4/html5/thumbnails/7.jpg)
Indeks (subscript) dari Array
q Indeks atau subscript dari array dalam ANSI/C selalu dimulai dari 0 sd ukuran array dikurang 1.
Contoh: float farr[10]; Visualisasi indeks dari array farr di atas adalah:
![Page 8: Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat Array(1/2) ! Bila diasumsikan bahwa alamat dari array a atau slot pertama dari array](https://reader033.fdocuments.net/reader033/viewer/2022041418/5e1d0412d24df648aa4fd6a4/html5/thumbnails/8.jpg)
Alokasi Memory Array (1/2) q Array dapat dideklarasikan secara global (dideklarasi
diluar fungsi main). q Perlu diperhatikan bahwa jika array atau variabel
dideklarasikan dalam sebuah fungsi maka array atau variabel tersebut akan bersifat lokal dan tidak dikenal diluar fungsi tersebut. Array atau variabel tersebut akan secara otomatis dihapus ketika fungsi selesai dieksekusi.
q Bagi variabel biasa yang mengkonsumsi memori kecil hal tersebut tidak menjadi masalah, tetapi bagi Array, yang umumnya dialokasikan menggunakan memory yang besar (array 'float mydata[50000]' akan membutuhkan memory 200000 bytes) menjadi tidak efisien.
![Page 9: Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat Array(1/2) ! Bila diasumsikan bahwa alamat dari array a atau slot pertama dari array](https://reader033.fdocuments.net/reader033/viewer/2022041418/5e1d0412d24df648aa4fd6a4/html5/thumbnails/9.jpg)
Alokasi Memory Array (2/2) q Oleh karena itu, untuk array dengan ukuran besar
dianjurkan untuk dideklarasikan secara global, atau menggunakan pernyataan static (contoh: static float mydata[5000];
q Global array selalu bersifat static, sementara Local arrays selalu bersifat dynamic.
q Untuk membuat local array yang bersifat static, pendeklarasian secara eksplisit menggunakan kata kunci static dapat dilakukan, contoh: static short x[200];
![Page 10: Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat Array(1/2) ! Bila diasumsikan bahwa alamat dari array a atau slot pertama dari array](https://reader033.fdocuments.net/reader033/viewer/2022041418/5e1d0412d24df648aa4fd6a4/html5/thumbnails/10.jpg)
Contoh Array Dimensi Satu #include <stdio.h> #include <stdlib.h> #define N 6 int main(void) {
int i, a[N]; for(i=0; i<N; i++) { a[i] = i * 2; } for(i=0; i<N; i++) { printf("%d\n", a[i]);
} return EXIT_SUCCESS;
}
![Page 11: Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat Array(1/2) ! Bila diasumsikan bahwa alamat dari array a atau slot pertama dari array](https://reader033.fdocuments.net/reader033/viewer/2022041418/5e1d0412d24df648aa4fd6a4/html5/thumbnails/11.jpg)
int main(void) { char str[256]; int i; printf("Ketikkan kalimat <maks.256 karakter>:"); gets(str); for (i=0; i<sizeof(str)/sizeof(char); i++){ if (str[i]!='\0'){ if (str[i]==' ') ++blank_cnt; else if (str[i]>='0' && str[i]<='9') ++digit_cnt; else if ((str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z'))
++letter_cnt; else ++other_cnt;
}else break; } return EXIT_SUCCESS; }
![Page 12: Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat Array(1/2) ! Bila diasumsikan bahwa alamat dari array a atau slot pertama dari array](https://reader033.fdocuments.net/reader033/viewer/2022041418/5e1d0412d24df648aa4fd6a4/html5/thumbnails/12.jpg)
#include <stdio.h> #include <stdlib.h> #define N 10 int main(void) { int x[N]; int i; float fx; for(i=0; i<N;i++) x[i]=i; for(j=N-1; j >= 0; --j){ fx = 2 * sqrt(x[j]) + 6 * x[j] + 3; printf("f(x[%d]) = %f\n", j, fx); } return EXIT_SUCCESS; }
![Page 13: Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat Array(1/2) ! Bila diasumsikan bahwa alamat dari array a atau slot pertama dari array](https://reader033.fdocuments.net/reader033/viewer/2022041418/5e1d0412d24df648aa4fd6a4/html5/thumbnails/13.jpg)
Latihan dan Diskusi q Buat program yang menerima input berupa n (n < 10).
Kemudian, sebanyak n buah bilangan bulat diinputkan dan ditampung dalam sebuah array.
q Setelah itu, jumlahkan semua bilangan yang diinputkan pada urutan ganjil dan tampilkan hasil perjumlahan tersebut. Contoh: n = 5
bil 1 = 2
bil 2 = 4
bil 3 = 1
bil 4 = 7
bil 5 = 6
Hasil penjumlahan data yang diinputkan pada urutan ganjil adalah = 9
![Page 14: Array (Single Dimension)cs.unsyiah.ac.id/~irvanizam/programming/DIK008-Week07.pdfVisualisasi Alamat Array(1/2) ! Bila diasumsikan bahwa alamat dari array a atau slot pertama dari array](https://reader033.fdocuments.net/reader033/viewer/2022041418/5e1d0412d24df648aa4fd6a4/html5/thumbnails/14.jpg)
References o http://www.mycplus.com/tutorials/c-programming-tutorials/
loops/ o http://www.tenouk.com/Module6a.html o http://www.tenouk.com/clabworksheet/labworksheet7.html o http://bytes.com/serversidescripting/c++/tutorials/c+
+conditionalstatements/index.html o www.informatika.unsyiah.ac.id/tfa