Array
Array
VARIABEL ARRAY
7.1. Tujuan
Mempelajari penggunaan variabel array satu dimensi, dua dimensi, berdimensi banyak, array
tak berukuran dan parameter array.
7.2. Teori
Suatu array adalah kumpulan dari beberapa nilai yang mempunyai tipe sama, misalkan integer
semua, float semua, dan sebagainya.Untuk membedakan antara nilai satu dengan
lainnyadigunakan suatu subscript, yang sering di sebut index. Suatu variabel array dapat
digunakan untuk menyimpan beberapa nilai dengan tipe sama, contohnya variabel bilangan[n],
maka dapat menyimpan beberapa nilai dengan index mulai 0 sampai n-1 yaitu bilangan[0],
bilangan[1],...,bilangan[n-1]. Nilai subscript dapat berupa konstanta, variabel dan ekspresi
integer.
7.3. Program Percobaan
7.3.1. Mencoba mendeklarasikan suatu variabel array dan mengisinya kemudian
menampilkan isi variabel tersebut menggunakan statement for(). Ingat apabila
jumlah deklarasi index adalah n, maka nilai indexnya adalah dimulai dari 0 sampai n-
1.
/* Nama File : LARIK1.C*/
#include <stdio.h>
#include <conio.h>
void main()
{
int nilai[10];
int indeks;
clrscr();
nilai[0]=197;
nilai[2]=-100;
nilai[5]=350;
nilai[3]= nilai[0]+ nilai[5];
nilai[]= nilai[5]/10;
--nilai[2];
for(indeks=0; indeks<10; ++indeks)
printf(“nilai[%d] = %d\n”, indeks, nilai[indeks]);
getch();
}
7.3.2. Deret fibonacci adalah deret yang dimulai dengan dua angka dan 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 fibonacci sebagai berikut: 0 1 1 2 3 5 8 13 21...
/* Nama File : LARIK2.C */
#include <stdio.h>
void main()
{
int fibo[100], i, jumlah;
fibo[0] = 0;
fibo[1] = 1;
printf(“Masukkan jumlah deret fibonaci = ”);
scanf(“%d”, &jumlah);
for(i=2; i<jumlah; i++){
fibo[i] = fibo[i-1] + fibo[i-2];
printf(“%5d”, fibo[i]);
}
printf(“\n\n”);
}
7.3.3. Bila sudah ditentukan suatu variabel array dengan sejumlah index, kemudian hanya
beberapa index saja yang akan diisi dengan data, maka index yang lain tidak dapat
begitu saja diabaikan. Untuk itu dapat digunakan statement static untuk mengisi
suatu variabel array dengan nol bila tidak ditentukan nilainya.
/* Nama File : LARIK3.C */
#include <stdio.h>
void main()
{
static int nilai_nilai[10] = {0, 1, 4, 9, 16};
/* nilai biasanya diisi dengan nol dengan sendirinya */
int i;
for(i=0; i<10; i++){
printf(“nilai_nilai[%d] = %d\n”, i, nilai_nilai[i]);
getch();
}
7.3.4. Mnentukan nilai maksimum dari sederetan nilai yang sudah diinisialisasi dan disimpan
dalam array, mengirim array sebagai parameter sebuah fungsi.
/* Nama File : LARIK4.C */
int findmax(int[], int);
void main()
{
Static int data1[] = {5, 34, 56, -12, 3, 19};
Static int data2[] = {1, -2, 34, 207, 93, -12};
Printf(“nilai maksimum dari data1[] adalah %d\n”,
findmax(data1,6));
Printf(“nilai maksimum dari data2[] adalah %d\n”,
findmax(data2,6));
}
int findmax(int nilai[], int jml_data)
{
int terbesar, i;
terbesar = nilai[10];
for(i=1;i<jml_data;++1)
if(nilai[i]>terbesar)
terbesar = nilai[i];
return terbesar;
}
7.3.5. Array dua dimensi, di bawah ini menyimpan informasi huruf ‘A’. Nilai 1 mewakili
karakter ASCII ‘\xDB’ atau 219, yaitu karakter kotak.
/* Nama File : LARIK5.C */
void main()
{
int i,j
static int A[8][8] = {
(0,1,1,1,1,1,0,0),
(0,1,0,0,0,1,0,0),
(0,1,0,0,0,1,0,0),
(1,1,1,1,1,1,1,0),
(1,1,0,0,0,0,1,0),
(1,1,0,0,0,0,1,0),
(0,0,0,0,0,0,0,0));
for(i=0;i<8;i++){
for(j=0;j<8;j++)
if(A[i][j]) putchar(‘\xDB ’);
puts(“ ”)
}
getch();
}
7.3.6. Program id bawah ini menggunakan variabel array berdimensi tiga, untuk
menyimpan informasi huruf A dan huruf B. Angka 1 mewakili kotak penuh dan 0
mewakili spasi. Jadi bila ditemukan angka 1 pada variabel data_huruf maka dicetak
kotak penuh, sedangkan sebaliknya dicetak spasi (kosong). Sehingga terbentuk huruf
A dan B dengan ukuran besar (8 kali huruf normal pada mode teks).
/* Nama File : LARIK6.C */
Void main()
{
int, i, j, k;
static int data_huruf[2][8][8] = {
{{0,1,1,1,1,1,0,0},
{0,1,0,0,0,1,0,0},
{0,1,0,0,0,1,0,0},
{1,1,1,1,1,1,1,0},
{1,1,0,0,0,0,1,0},
{1,1,0,0,0,0,1,0},
{1,1,0,0,0,0,1,0},
{0,0,0,0,0,0,0,0}
},
{{1,1,1,1,1,1,0,0},
{1,0,0,0,0,1,0,0},
{1,0,0,0,0,1,0,0},
{1,1,1,1,1,1,1,0},
{1,1,0,0,0,0,1,0},
{1,1,0,0,0,0,1,0},
{1,1,1,1,1,1,1,0},
{0,0,0,0,0,0,0,0}
};
/* Tampilkan huruf */
for(i=0;i<2;i++){
for(j=0;j<2;j++){
for(k=0;k<2;k++)
if(data_huruf[i][j][k])
putchar(‘\xDB‘);
else
putchar(‘ ‘);
puts(“”);
}
puts(“”);
}
getch();
}
7.3.7. Dasar bilangan yang digunakan sehari-hari adalah dasar bilangan 10, sedangkan
dasar bilangan yang lain misalkan 2, 8, dan 16 digunakan oleh komputer. Untuk
mengkonversi bilangan maka diperlukan perhitungan matematika sederhana,
sehingga dapat dibuat program konversi dari semua dasar bilangan.
/* Nama File : LARIK7.C */
void main()
{
static char digit_dasar[16] = {
‘0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F
’);
int konversi[64];
long int bilangan;
int digit_ke, dasar, indeks=0;
printf(“Bilangan yang dikonversikan : ”);
scanf(“%ld”, &bilangan);
printf(“Dasar bilangan : ”);
scanf(“%d”, &dasar);
do{
konversi[indeks] = bilangan%dasar;
++indeks;
bilangan/=dasar;
}while(bilangan!=0);
printf(“Angkakonversi : ”);
for(--indeks;indeks>=0;--indeks){
digit_ke=konversi[indeks];
printf(“%c”,digit_dasar[digit_ke]);
}
getch();
}