Anda di halaman 1dari 14

Array (Single Dimension)

Dr. Taufik Fuadi Abidin, M.Tech


Irvanizam Zamanhuri, M.Sc

Program Studi Informatika


http://www.informatika.unsyiah.ac.id

Email:
irvanizam.zamanhuri@informatika.unsyiah.ac.id
tfa@informatika.unsyiah.ac.id
Pengantar tentang Array

 Definisi: Array adalah struktur data yang memiliki data


dengan tipe yang sama.
 Array dialokasikan dalam memori dalam ukuran
tertentu dan dialokasikan secara berderetan
dan tidak terpisah-pisah.
 Alamat dari sebuah array dalam memori setelah
dideklarasi tidak dapat diubah (fixed).
Pendeklarasian Array
 Bentuk umum pendeklarasian array adalah:
type_data nama_array[size];
 Dimana:
- type_array adalah tipe data dari
nilai yang akan disimpan dalam array.
- nama_array adalah nama dari array.
- size adalah ukuran dari array.
 Contoh: int nilai[60];
float ipk[60];
Inisialisasi Data dalam Array
Contoh:
int a[6] = {8, 4, 6, 3, 4, 10};

8 4 6 3 4 10
a

char
c[]={’i’,’n’,’f’,’o’,’r’,’m’,’a’,’t’,‘i’,‘c’,‘s’};
‘i’ ‘n’ ‘f’ ‘o’ ‘r’ ‘m’ ‘a’ ‘t’ ‘i’ ‘c’ ‘s’
c
Visualisasi Alamat Array(1/2)
 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:

2310 2318 2326


8 4 6 3 4 10

a 2314 2322 2330


alamat
Visualisasi Alamat Array(2/2)

 Untuk array satu dimensi perhitungan jumlah


memori yang dibutuhkan adalah:

Total Memori(dalam satuan bytes)= sizeof(tipeData)*ukuran_array;


Indeks (subscript) dari Array
 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:
Alokasi Memory Array (1/2)
 Array dapat dideklarasikan secara global (dideklarasi
diluar fungsi main).
 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.
 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.
Alokasi Memory Array (2/2)
 Oleh karena itu, untuk array dengan ukuran besar
dianjurkan untuk dideklarasikan secara global, atau
menggunakan pernyataan static (contoh:
static float mydata[5000];
 Global array selalu bersifat static, sementara Local
arrays selalu bersifat dynamic.
 Untuk membuat local array yang bersifat static,
pendeklarasian secara eksplisit menggunakan kata kunci
static dapat dilakukan, contoh: static short x[200];
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;
}
int main(void) {
int
charmain(void)
str[256]; {
char
int i; str[256];
int i;
printf("Ketikkan kalimat <maks.256 karakter>:"); gets(str);
printf("Ketikkan
for kalimat <maks.256 karakter>:");
(i=0; i<sizeof(str)/sizeof(char); i++){ gets(str);
for (i=0; i<sizeof(str)/sizeof(char); i++){
if (str[i]!='\0'){
if
if (str[i]!='\0'){
(str[i]==' ')
if (str[i]==' ')
++blank_cnt;
else++blank_cnt;
if (str[i]>='0' && str[i]<='9')
else if (str[i]>='0' && str[i]<='9')
++digit_cnt;
else++digit_cnt;
if ((str[i]>='a' && str[i]<='z') ||
else if (str[i]>='A'
((str[i]>='a'&&&&str[i]<='Z'))
str[i]<='z') ||
(str[i]>='A' && str[i]<='Z'))
++letter_cnt;
else++letter_cnt;
else
++other_cnt;
}else ++other_cnt;
}else
break;
} break;
}
return EXIT_SUCCESS;
} return EXIT_SUCCESS;
}
#include <stdio.h>
#include<stdlib.h>
#include <stdio.h>
#include
#define <stdlib.h>
N 10
#define N 10
int main(void) {
int
intmain(void)
x[N]; {
inti;x[N];
int
int i;
float fx;
float fx;
for(i=0; i<N;i++)
for(i=0;
x[i]=i; i<N;i++)
x[i]=i;
for(j=N-1; j >= 0; --j){
for(j=N-1; j >= 0; --j){
fx = 2 * sqrt(x[j]) + 6 * x[j] + 3;
fx = 2 * sqrt(x[j])
printf("f(x[%d]) + 6 *j,x[j]
= %f\n", fx);+ 3;
} printf("f(x[%d]) = %f\n", j, fx);
}
return EXIT_SUCCESS;
} return EXIT_SUCCESS;
}
Latihan dan Diskusi
 Buat program yang menerima input berupa n (n < 10).
Kemudian, sebanyak n buah bilangan bulat diinputkan
dan ditampung dalam sebuah array.
 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
References
 http://www.mycplus.com/tutorials/c-programming-
tutorials/loops/
 http://www.tenouk.com/Module6a.html
 http://www.tenouk.com/clabworksheet/labworksheet7.html
 http://bytes.com/serversidescripting/c++/tutorials/c++conditi
onalstatements/index.html
 www.informatika.unsyiah.ac.id/tfa

Anda mungkin juga menyukai