Praktikum 6
ARRAY
A. TUJUAN
1. Menjelaskan tentang array berdimensi satu
2. Menjelaskan tentang array berdimensi dua
3. Menjelaskan tentang array berdimensi banyak
4. Menjelaskan tentang inisialisasi array tak berukuran.
5. Menjelaskan array sebagai parameter fungsi
B. PERCOBAAN
1. Mengisi dan menampilkan beberapa variabel array
/* File program : isi.c */
#include <stdio.h>
main()
{
int nilai[10];
int indeks;
/* menginisialisasi array supaya berisi 0 */
for(indeks=0; indeks<10; indeks++)
nilai[indeks] = 0;
nilai[0] = 197;
nilai[2] = -100;
nilai[5] = 350;
nilai[3] = nilai[0] + nilai[5];
nilai[9] = nilai[5] / 10;
--nilai[2];
for(indeks = 0; indeks < 10; indeks++)
printf("nilai[%d] = %d\n", indeks, nilai[indeks]);
}
1. Mengisi dan menampilkan sekumpulan nilai secara terbalik
/* File program : balik.c */
#include <stdio.h>
30
main()
{
int x[5], count, idx;
printf("Masukkan 5 data int, pisahkan dg enter\n");
for(count = 0; count < 5; count++)
scanf("%d", &x[count]);
printf("\nData tersebut setelah dibalik menjadi :\n");
for(idx = 4; idx >= 0; idx--)
printf("%d\n",x[idx]);
}
2. Mencetak 15 angka pertama dalam deret Fibonacci.
/* fibonacci1.c */
#include <stdio.h>
main()
{
int fibo[15], i;
fibo[0] = 0;
fibo[1] = 1;
for(i = 2; i < 15; i++)
{
fibo[i] = fibo [i-1] + fibo[i-2];
printf("%5d", fibo[i]);
}
printf("\n\n");
}
3. Menginisialisasi elemen array bertipe integer
/* File program : inisial1.c */
#include <stdio.h>
main()
{
int i;
static int nilai[10] = {0, 1, 4, 9, 16};
/* dgn sendirinya nilai lainnya diset nol */
for(i=5; i<10; i++)
nilai[i] = i * i;
for(i=0; i<10; i++)
printf("nilai[%d] = %d\n", i, nilai[i]);
}
31
4. Menginisialisasi elemen array bertipe karakter.
/* File program : inisial2.c */
#include <stdio.h>
main()
{
int i;
static char word[] = {'H', 'e', 'l', 'l', 'o', '!'};
for(i=0; i<6; i++)
printf("%c", word[i]);
printf("\n");
}
5. Menentukan nilai maksimum dari sederetan nilai yang sudah diinisialisasi dan
disimpan dalam array; mengirim array sebagai parameter sebuah fungsi.
/* File program : maksimum.c */
#include <stdio.h>
int findmax(int [], int);
//prototype fungsi dlm ANSI
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[0];
for(i = 1; i < jml_data; ++i )
if(nilai[i] > terbesar)
32
terbesar = nilai[i];
return terbesar;
}
6. Menentukan nilai minimum dari sederetan nilai masukan yang disimpan dalam
array; mengirim array sebagai parameter sebuah fungsi.
/* File program : minimum.c */
#include <stdio.h>
int minimum(int []);
//prototype fungsi dlm ANSI
main()
{
int nilai[10], i, kecil;
printf("Masukkan 10 bil integer dipisahkan spasi : \n");
for (i=0; i<10; i++)
scanf("%d", &nilai[i]);
kecil = minimum(nilai);
printf("\nBilangan terkecil adalah %d\n", kecil);
}
int minimum(int nilai[10])
{
int min, j;
min = nilai[0];
for (j=1; j < 10; j++)
if (nilai[j] < min)
min = nilai[j];
return(min);
}
7. Menjumlahkan dua buah array yang mengirim array sebagai parameter sebuah
fungsi.
/* File program : jml2array.c */
#include <stdio.h>
int jml2array(int [][5], int);
/* prototype fungsi */
main()
33
{
int jml;
int bil[][5] = {
{1, 2, 35, 7, 10},
{6, 7, 4, 1, 0}
};
jml = jml2array(bil, 2);
printf("Hasil penjumlahan 2 array tsb adalah = %d\n",
jml);
}
int jml2array(int data[][5], int jmlbrs)
{
int total = 0, kolom, baris;
for(baris = 0; baris < jmlbrs; baris++ )
for(kolom = 0; kolom < 5; kolom++ )
total += data[baris][kolom];
return total;
}
7. Array dua dimensi sebagai parameter fungsi untuk membentuk transpose matrik.
/* File program : transpose.c */
#include <stdio.h>
void transpose(float [2][2]);
main()
{
float X[2][2];
printf("Masukkan elemen matriks X\n");
printf("X[0][0] : X[0][1] = ");
scanf("%f:%f",&X[0][0], &X[0][1]);
printf("X[1][0] : X[1][1] = ");
scanf("%f:%f",&X[1][0], &X[1][1]);
transpose(X);
printf("\nTranspose dari matriks X adalah:\n");
printf("%g : %g\n%g : %g\n",
X[0][0], X[0][1], X[1][0], X[1][1]);
}
34
void transpose(float A[2][2])
{
float swap;
swap = A[0][1];
A[0][1] = A[1][0];
A[1][0] = swap;
}
C. SOAL
1. Buat program untuk menghitung nilai rata-rata sbb :
Input
: jumlah data (n), data ke-1 s/d data ke-n
Output : nilai maks, nilai min, nilai rata-rata
2. Ubahlah program di atas sehingga mendapatkan tampilan seperti di bawah ini:
No. Nilai
Total
Rata-rata
1.
85
85
85.00
2.
95
180
90.00
3.
60
240
80.00
4.
80
320
80.00
5.
50
370
74.00
6.
100
470
78.33
Nilai maks
= 100
Nilai min
= 50
Nilai rata-rata = 78.33
Nilai terbaik adalah nilai ke = 6
3. Buat program untuk menampilkan deret Fibonacci sbb :
Input
: jumlah deret
Output
: deret[i] = deret[i-1] + deret[i-2]
Contoh : jumlah deret = 10
0
13
21
34
35
4. Buat program untuk mengurutkan data masukan dengan urutan naik (ascending)
Input : jumlah data (n), data ke-1 s/d data ke-n
Output : Tampilan data dalam keadaan terurut
Contoh :
Jumlah data = 3
Data ke-1 = 50
Data ke-2 = 43
Data ke-3 = 45
Data terurut naik:
Data ke-1 = 43
Data ke-2 = 45
Data ke-3 = 50
5. Data nilai mahasiswa :
No.
Nama Mhs
PROG-1
MAT-1
BIG1
1.
Ahmad
81
90
62
2.
Adang
50
83
87
3.
Dani
89
55
65
4.
Edi
77
70
92
Dapatkan output dengan tampilan sbb :
No. Mhs
Rata-rata
-------------------------1
77.67
2
73.33
3
69.67
4
79.67
--------------------------Petunjuk :
Asumsikan Ahmad mengikuti kelas Prog1, Mat1, dan BIG1.
Nilai pada masing-masing kelas dijumlahkan dan dihitung rata-ratanya (gunakan array 2
dimensi).
36