PRAKTIKUM VI
A R R A Y
A. Tujuan Instruksional Khusus
1. Mengerti konsep data
array dalam bahasa C.
2. Mengerti cara
melakukan pemrograman sederhana dengan menggunakan array.
3. Menjelaskan tentang
array berdimensi satu
4.
Menjelaskan tentang array
berdimensi dua
5.
Menjelaskan tentang array
berdimensi banyak
6.
Menjelaskan tentang inisialisasi
array tak berukuran.
7. Menjelaskan array sebagai parameter fungsi
B. Dasar teori
Dalam
beberapa literatur, array sering disebut (diterjemahkan) sebagai larik. Array adalah kumpulan dari nilai-nilai data
bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama. Nilai-nilai data di suatu array disebut dengan elemen-elemen array. Letak urutan dari elemen-elemen array
ditunjukkan oleh suatu subscript atau indeks.
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.
1 Array
Berdimensi Satu
1.1 Mendeklarasikan Array
Suatu array berdimensi satu
dideklarasikan dalam bentuk umum berupa :
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.
1.2 Mengakses Elemen Array
Pada C, data array akan
disimpan dalam memori yang berurutan.
Elemen pertama mempunyai indeks
bernilai 0. Jika variabel nilai_tes
dideklarasikan sebagai array dengan 5 elemen, maka elemen pertama memiliki
indeks sama dengan 0, dan elemen terakhir memiliki indeks 4. Gambar 6.1 di bawah ini menjelaskan urutan komponen dalam array.
Gambar 1 Array berdimensi satu
Bentuk umum pengaksesan array adalah sbb :
berarti “alamat dari nilai_tes[2]”. Perlu diingat bahwa scanf()
memerlukan argumen berupa alamat dari variabel yang digunakan untuk menyimpan
nilai masukan.
1.3 Inisialisasi Array Berdimensi Satu
Sebuah
array dapat diinisialisasi sekaligus pada saat dideklarasikan. Untuk mendeklarasikan array, nilai-nilai yang
diinisialisasikan dituliskan di antara kurung kurawal ({}) yang dipisahkan dengan koma.
Perhatikan, pada contoh inisial.c di atas, pendeklarasian nama
variabel array tidak disertai ukuran yang mengindikasikan besarnya array. Dalam kondisi seperti ini, C akan
menginisialisasi ukuran array tersebut sejumlah elemen yang diberikan di dalam
kurung kurawal pada saat proses inisialisasi.
Sehingga array values terdiri atas 9 elemen dan array word memiliki
5 elemen.
1.4
Beberapa Variasi dalam Mendeklarasikan Array
§ int numbers[10];
§ int numbers[10] = { 34, 27, 16 };
§ int numbers[] = { 2, -3, 45, 79, -14, 5, 9, 28, -1, 0 };
§ char text[] = "Welcome to New Zealand.";
§ float radix[12] = { 134.362, 1913.248 };
§ double radians[1000];
2 Array
Berdimensi Dua
Data seperti yang disajikan pada Tabel
6-1, dapat disimpan pada sebuah array berdimensi dua. Dimensi pertama dari
array digunakan untuk menyatakan kode program kursus dan dimensi kedua untuk
menyatakan tahun kursus.
Tabel
1. Data Kelulusan Siswa Pada Sebuah Kursus Komputer
|
Tahun 1998 1999 2000
Program
|
|
1.
(INTRO) 80 540 1032
2.
(BASIC) 15 83 301
3.
(PASCAL) 8 12 15
4.
(C)
10 129 257
|
2.1
Mendeklarasikan Array Berdimensi Dua
Pendeklarasian yang diperlukan
untuk menyimpan data kelulusan siswa pada Tabel 1 adalah:
int
data_lulus[4][3];
Nilai 3 untuk
menyatakan banyaknya tahun dan 4 menyatakan banyaknya program kursus. Gambar 2
memberikan ilustrasi untuk memudahkan pemahaman tentang array berdimensi dua.
|
80
|
540
|
1032
|
|
15
|
83
|
301
|
|
8
|
12
|
15
|
|
10
|
129
|
257
|
int
data_lulus[4][3];
Gambar.2
Array berdimensi dua
Sama halnya pada array berdimensi
satu, data array aka ditempatkan pada memori yang berurutan. Perhatikan Gambar
3.
|
80
|
540
|
1032
|
15
|
83
|
301
|
80
|
Gambar .3 Model penyimpanan array dimensi
dua pada memori
2.2 Mengakses Elemen Array
Array seperti data_lulus dapat diakses dalam
bentuk
data_lulus[indeks pertama, indeks kedua]
Contoh :
(1) data_lulus[0][1] = 540;
merupakan instruksi untuk
memberikan nilai 540 ke array data_lulus
untuk indeks pertama = 0 dan indeks kedua bernilai 1.
(2) printf(“%d”,data_lulus[2][0]);
merupakan perintah untuk menampilkan
elemen yang memiliki indeks pertama = 2 dan indeks kedua = 0.
|
|
540
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data_lulus[0][1] = 540;
Gambar 4. Pemberian nilai ke array berdimensi dua
2.3 Inisialisasi Array
Berdimensi Dua
Gambar
berikut memberikan penjelasan tentang inisialisasi yang dilakukan terhadap
array berdimensi dua :
|
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
|
Gambar 5 Representasi inisialisasi array
berdimensi dua
3. Array
Berdimensi Banyak.
C
memungkinkan untuk membuat array yang dimensinya lebih dari dua. Bentuk umum
pendeklarasian array berdimensi banyak :
tipe nama_var[ukuran 1][ukuran2}…[ukuranN];
sebagai contoh :
int data_huruf[2][8][8];
merupakan
pendeklarasian array data_huruf sebagai array berdimensi tiga. Sama halnya dengan array berdimensi satu atau dua, array berdimensi
banyak juga bisa diinisialisasi.
4. Inisialisasi
Array Tak Berukuran
Inisialisasi array yang tak
berukuran dapat dilakukan untuk array berdimensi satu atau lebih. Untuk array
berrdimensi lebih dari satu, dimensi terkirilah yang boleh tak berukuran.
Dengan cara ini tabel dalam array dapat diperluas atau dikurangi tanpa mengubah
ukuran array.
5. Array Sebagai Parameter
Array
juga dapat dilewatkan sebagai parameter fungsi. Sebagai contoh ditujukan pada
program sorting.c. Program
digunakan untuk memasukkan sejumlah data, kemudian data tersebut diurutkan naik (ascending) dan dicetak ke layar.
Untuk
melakukan sorting (proses pengurutan data), cara yang dipakai yaitu metode buble
sort (suatu metode pengurutan yang paling sederhana, dan memiliki kecepatan
pengurutan yang sangat lambat). Algoritma pada metode pengurutan ini adalah sebagai berikut :
1.
Atur i bernilai 0
2. Bandingkan x[i]
dengan x[j], dengan j berjalan dari i + 1 sampai dengan n-1.
3. Pada setiap
pembandingan, jika x[i] > x[j], maka isi x[i] dan x[j] ditukarkan
4. Bila i <
(n – 1), ulangi mulai langkah 2.
Catatan: i
= indeks array
x = nama array untuk menyimpan data
n = jumlah data
§
float data[MAKS];
merupakan instruksi untuk mendeklarasikan array data dengan elemen
bertipe float dan jumlahnya sebanyak MAKS elemen.
§ pemasukan_data(data, &jum_data);
merupakan instruksi untuk
memanggil fungsi pemasukan_data ( ). Pada pemanggilan fungsi, data
merupakan array. Yang perlu diperhatikan, parameter array ditulis tanpa diawali
dengan &, sekalipun tujuan dari pemanggilan fungsi yaitu untuk mengisikan
data ke array. Sebab nama array tanpa kurung siku dalam parameter fungsi
berarti ”alamat dari array”.
Sedangkan &jum_data
berarti ”alamat dari jum_data”. Tanda
& harus disertakan sebab variabel jum_data
akan diisi oleh fungsi pemasukan_data ().
§ pengurutan_data(data, jum_data);
Merupakan instruksi untuk
menjalankan fungsi pengurutan _data (), dalam hal ini data
dilewatkan ke fungsi dengan referensi (memberikan alamat array), karena memang
hal ini merupakan cara satu-satunya untuk melewatkan array. Sedangkan jumlah
data dilewatkan ke fungsi dalam bentuk nilai (pemanggilan dengan nilai).
§ penampilan_data(data,jum_data);
Merupakan instruksi untuk
memanggil fungsi penampilan_data().
Pada fungsi untuk pemasukan data, pengurutan data
maupun penampilan data,
data[i] menyatakan elemen data ke-i.
Beberapa hal tambahan yang perlu diketahui:
§ Untuk menyatakan
alamat dari suatu elemen array, bentuk umumnya adalah
&nama_array[indeks]
Misalnya,
&data[1]
menyatakan alamt dari elemen ke-1. Adapun
&data[0]
sama saja dengan:
data
§ Suatu array
berdimensi satu dalam parameter formal dideklarasikan dengan bentuk
tipe
nama_array[]
dengan di dalam tanda kurung
siku tak disebutkan mengenai jumlah elemen. Jumlah elemen dinyatakan dalam
parameter tersendiri (atau dinyatakan dalam bentuk variabel eksternal). Untuk
array berdimensi lebih dari satu, kurung siku terkirilah yang kosong.
C. Daftar Alat dan Bahan.
1.CPU
2.Monitor
3.Keyboard
4.Mouse
5.Printer
6.Job Sheet Praktikum
D. Langkah Kerja.
1. Hidupkan Komputer sampai
menyala dan mengeluarkan layar Windows.
2. Pilih Start pada
ujung kiri bawah monitor.
3. Pilih Program.
4.
Pilih Program Turbo C atau TC for
windows.
5.
Jika Layar Turbo C sudah keluar,
Pilih File.
6.
Pilih News untuk membuka Program
baru, atau open untuk membuka file program yang sudah dibuat sebelumnya.
7.
Ketik Program sesuai dengan di
data program.
8.
Setelah selesai pengetikan, pilih
file dan save as program tersebut dengan nama file sesuai keinginan praktikan.
9.
compile program tersebut untuk
melihat kebenaran pengetikan program dan untuk mengubah file dengan extension
.cpp menjadi file .hex, .bin dan. .obj.
10. Setelah sukses
dicompile maka pilih run untuk menjalankan program tersebut.
11. Lihat hasilnya
dimonitor dan catat, kemudian analisa hasil percobaan tersebut.
12. Lakukan praktikum
untuk file program berikutnya dengan cara yang sama.
E. Data Program
/*
File program : isi.c */
#include
<stdio.h>
void
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]);
}
2.
Mencetak 15 angka pertama dalam deret Fibonacci.
/* fibonacci1.c */
#include <stdio.h>
void 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]);
}

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 */
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[0];
for(i = 1; i < jml_data; ++i )
if(nilai[i] > terbesar)
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 */
void main()
{
int
nilai[10], i, kecil;
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()
{
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;
}

F. 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 1 1 2 3 5 8 13 21 34
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).
No comments:
Post a Comment