Konsep Pemrograman
9. Array
Umi Sa’adah
Entin Martiana Kusumaningtyas
Tri Hadiah Muliawati
2020
Overview
•Pendahuluan
•Array Berdimensi Satu
•Mendeklarasikan Array
•Mengakses Elemen Array
•Menginisialisasi Array
•Variasi dalam Mendeklarasikan Array
•Array Berdimensi Dua
•Mendeklarasikan Array
•Mengakses Elemen Array
•Array Berdimensi Banyak
•Inisialisasi Array Tak Berukuran
•Array Sebagai Parameter Fungsi
2
Pendahuluan
•Array adalah :
•Sekumpulan data
•Semua tipe datanya HARUS sama
•Menggunakan nama variabel yang sama
•Dibedakan menurut indeksnya, by default dimulai dari 0 s/d (n-1) ,
dengan n adalah jumlah elemen dalam array
•Array bisa berupa array berdimensi satu, dua, tiga atau lebih.
•Array berdimensi satu (one-dimensional array) mewakili
bentuk suatu vektor.
•Array berdimensi dua (two-dimensional array) mewakili bentuk
dari suatu matriks atau tabel
•Array berdimensi tiga (three-dimensional array) mewakili
bentuk suatu ruang.
3
Mendeklarasikan Array
• Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa :
tipe_data nama_var[ukuran];
• dengan :
• tipe_data : untuk menyatakan tipe dari elemen array, misalnya int, char,
float.
• nama_var : nama variabel array
• ukuran : untuk menyatakan jumlah maksimal elemen array.
• Contoh pendeklarasian array :
float nilai[5];
menyatakan bahwa variabel nilai bertipe array of float dan memiliki 5
elemen bertipe float.
4
Mengakses Elemen Array
•Pada C, data array akan disimpan dalam
memori yang berurutan
•Elemen pertama mempunyai indeks bernilai 0.
•Jika nilai dideklarasikan sebagai array of
float dengan 5 elemen, maka elemen pertama
memiliki indeks sama dengan 0, dan elemen
terakhir memiliki indeks 4.
5
Mengakses Elemen Array
6
Mengakses Elemen Array
#include <stdio.h>
#define MAKS 5
void main(){
int i, n;
float total=0, rata, nilai[MAKS];
printf("Berapa jumlah data? ");
scanf("%d", &n);
for(i=0; i<n; i++) {
fflush(stdin);
printf("Nilai ke-%d : ", i+1);
scanf("%f", &nilai[i]);
total = total + nilai[i];
}
rata = total / n;
printf("\nNilai rata-rata = %g\n", rata);
return 0;
}
7
Inisialiasasi Array
•Sebuah array dapat diinisialisasi sekaligus pada
saat dideklarasikan.
•Untuk mendeklarasikan array, nilai-nilai yang
diinisialisasikan dituliskan di antara kurung
kurawal ({}) yang dipisahkan dengan koma
8
Inisialiasasi Array
#include <stdio.h>
void main() {
int bln, thn, jhari;
int jum_hari[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
puts("MEMPEROLEH JUMLAH HARI");
puts("PADA SUATU BULAN DAN SUATU TAHUN");
puts("--------------------------------");
printf("Masukkan bulan (1..12) : ");
scanf("%d", &bln);
printf("Masukkan tahunnya : ");
scanf("%d", &thn);
if(bln == 2)
if(thn % 4 == 0) //thn kabisat
jhari = 29;
else
jhari = 28;
else
jhari = jum_hari[bln-1];
printf("\nJumlah hari dalam bulan %d tahun %d adalah %d hari\n",bln,thn,jhari);
}
9
Variasi dalam Mendeklarasikan Array
• Ada beberapa variasi cara mendeklarasikan sebuah array (dalam hal ini
yang berdimensi satu), di antaranya adalah sebagai berikut :
• int numbers[10];
• int numbers[10] = {34, 27, 16 };
• int numbers[] = {2, -3, 45, 79, -14, 5, 0, 28, -1, 0 };
• char text[] = "Welcome to New Zealand.";
• float radix[12] = {134.362f, 1913.248f};
• double radians[1000];
• Pendeklarasian nama variabel array diperbolehkan tidak disertai ukuran
yang mengindikasikan besarnya array asalkan langsung diinisialisasi.
• Dalam kondisi seperti ini, C akan menginisialisasi ukuran array tersebut
sejumlah elemen yang diberikan di dalam kurung kurawal pada saat
proses inisialisasi.
10
Array Berdimensi Dua
•Data seperti yang disajikan pada tabel di atas, dapat disimpan pada
sebuah array berdimensi dua.
•dimensi pertama dari array digunakan untuk menyatakan NRP
•dimensi kedua untuk menyatakan Matakuliah
11
Mendeklarasikan Array (dimensi 2)
•Pendeklarasian yang diperlukan untuk menyimpan nilai mahasiswa
pada tabel tsb adalah:
int nilai[5][2];
5 menyatakan banyaknya mahasiswa dan 2 menyatakan banyaknya
matakuliah
12
Mengakses Elemen Array (dimensi 2)
•Array nilai dapat diakses dalam bentuk
nilai[indeks pertama][indeks kedua]
•Contoh :
•nilai[0][1] = 87;
• merupakan instruksi untuk memberikan nilai 87 ke array nilai untuk indeks pertama = 0
dan indeks kedua bernilai 1.
•printf(“%d”,nilai[2][0]);
• merupakan perintah untuk menampilkan elemen yang memiliki indeks pertama = 2 dan
indeks kedua = 0.
13
Array Berdimensi Banyak
•C memungkinkan untuk membuat array yang
dimensinya lebih dari dua. Bentuk umum
pendeklarasian array berdimensi banyak :
tipe nama_var[ukuran1][ukuran2}…[ukuranN];
•sebagai contoh :
int data_ruang[2][8][8];
merupakan pendeklarasian array data_ruang sebagai
array berdimensi tiga.
14
Inisialiasasi Array tak berukuran
• Inisialisasi array yang tak berukuran dapat dilakukan untuk array berdimensi satu atau lebih.
• Untuk array berdimensi lebih dari satu, dimensi terkirilah yang boleh tak berukuran.
• Dengan cara ini tabel dalam array dapat diperluas atau dikurangi tanpa mengubah ukuran
array.
• Sebagai contoh :
merupakan pendeklarasian array berdimensi satu yang tak berukuran. Secara otomatis
skala[ 0 ] bernilai 1
skala[ 1 ] bernilai 2
skala[ 2 ] bernilai 4
skala[ 3 ] bernilai 6
skala[ 4 ] bernilai 8
15
Array sebagai Parameter Fungsi
Ketika diinginkan hasil proses di dalam fungsi terbaca di tempat fungsi
tsb dipanggil , maka gunakan salah satu mekanisme sbb :
1. return value 🡪 maks nilai yang dilaporkan = SATU
2. pass by reference 🡪 nilai yg dilaporkan lebih dari 1, bisa berbeda
tipe datanya
3. menjadikan array sbg parameter 🡪 jika hasil prosesnya banyak
dan semua tipenya sama.
• jadikan array sebagai parameter aktual (tanpa kurung siku) & array
sebagai parameter formalnya (tanpa size)
• antara parameter aktual dengan parameter formal sebenarnya merupakan
variabel yang berada pada lokasi/address yang SAMA, namun berbeda
namanya (ALIAS)
• SO, perubahan apapun pada parameter formal PASTI akan berpengaruh
pada parameter aktual!!!
16
Array sebagai Parameter Fungsi
#define MAKS 20
void pemasukan_data(float []);
void pengurutan_data(float []);
void pemasukan_data(float x[]){
void penampilan_data(float []); int i;
int jml;
printf("Jumlah data = ");
void main(){
scanf("%d", &jml);
float data[MAKS];
for(i=0; i<jml; i++) {
pemasukan_data(data);
printf("Data ke-%d : ", i+1);
pengurutan_data(data); scanf("%f", &x[i]);
penampilan_data(data); }
return 0; }
}
17
Array sebagai Parameter Fungsi
void pengurutan_data(float x[]) {
int i, j;
float smtr;
for(i=0; i<jml-1; i++)
for(j=i+1; j<jml; j++)
if(x[i] > x[j]) {
smtr = x[i];
x[i] = x[j];
x[j] = smtr;
}
}
void penampilan_data(float x[]) {
int i;
printf("\nData setelah diurutkan :\n\n");
for (i=0; i<jml; i++)
printf("Data ke-%d : %g\n", i+1, x[i]);
}
18
Latihan
1. Deklarasikan sebuah variabel array of int, selanjutnya isi array tsb kemudian
tampilkan isi variabel tersebut menggunakan statement for(). Ingat
apabila jumlah deklarasi index adalah n maka nilai index-nya adalah dimulai
dari 0 sampai dengan n-1.
2. Deret fibonanci adalah deret yang dimulai dengan dua angka yang bernilai 0
dan 1, kemudian deret ketiga ditentukan dari penjumlahan kedua angka
tersebut, sedangkan deret keempat ditentukan dari dua angka sebelumnya
begitu seterusnya. Sehingga didapatkan deret fibonanci sebagai berikut: 0 1
1 2 3 5 8 13 21 …
Buatlah program untuk meminta input dari user berupa sebuah bilangan,
kemudian tampilkan deret fibonacci mulai dari 1 sampai dengan bilangan tsb.
19
Latihan
3. Buat penjumlahan dua matriks A[2][2]dengan B[2][2]. Hasil penjumlahan
tersebut disimpan dalam matrik C. Tampilkan di layar masing-masing isi dari
matriks A, B dan C
4. Buatlah sebuah variabel array of int yang memiliki ukuran MAKS. Dengan
menggunakan looping for(), masukkan sebanyak n data ke dalam array tsb
kemudian carilah nilai terbesar yang ada dalam array tsb.
20
Latihan
5. Buatlah program yang terdiri atas :
- fungsi input() yang bertugas menanyakan jumlah data sekaligus
memasukkan data bilangan sebanyak yang diminta ke dalam array nilai[]
- fungsi findmax()yang bertugas mencari nilai terbesar yang ada pada
array nilai[] tsb
- fungsi main() yang memanggil fungsi input() dan fungsi
findmax() , selanjutnya menampilkan nilai terbesar yang ada pada array
nilai[]
Petunjuk : jadikan array sebagai parameter fungsi
21
Latihan
6. Diketahui daftar nilai siswa sebagai berikut:
Buatlah program untuk menampilkan laporan sebagai berikut:
Petunjuk: Gunakan variable array dua dimensi untuk menyimpan data.
22
Latihan
7. Buat program untuk menampilkan tabel berikut ini
dengan menggunakan looping for dan 2 buah
array :
- x sbg array berdimensi satu yang diinisialisasi
dgn sudut 0 s/d 360
- data sbg array berdimensi dua. data adalah
array yg berisi nilai sin, cos dan tan dari
masing-masing nilai sudut yang ada dalam array
x.
Petunjuk :
- gunakan fungsi radian() untuk mengkonversi nilai
derajat menjadi radian.
rad = drjt / 180.0 * PI.
PI = 3.14159
23
Referensi
1. Brian W. Kerninghan, Dennis M. Ritchie (2012): The C Programming
Language : Ansi C Version 2 Edition, PHI Learning
2. Byron Gottfried (2010) : Programming with C, Tata McGraw - Hill
Education
3. Kochan Stephen (20040 : Programming in C, 3rd Edition, Sams
4. K. N. King (2008) : C Programming: A Modern Approach, 2nd Edition, W.
W. Norton & Company
5. Abdul Kadir (2012) : Algoritma & Pemrograman Menggunakan C & C++,
Andi Publisher, Yogyakarta
6. [Link]
7. [Link]
8. [Link]
24