0% menganggap dokumen ini bermanfaat (0 suara)
560 tayangan44 halaman

Tugas 6 - 1711

Laporan praktikum ini membahas tentang array berdimensi satu, dua, dan banyak dalam bahasa pemrograman. Topik utama meliputi penjelasan tentang pendeklarasian, akses elemen, dan inisialisasi array satu dan dua dimensi beserta contoh kodenya.

Diunggah oleh

Liana
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
560 tayangan44 halaman

Tugas 6 - 1711

Laporan praktikum ini membahas tentang array berdimensi satu, dua, dan banyak dalam bahasa pemrograman. Topik utama meliputi penjelasan tentang pendeklarasian, akses elemen, dan inisialisasi array satu dan dua dimensi beserta contoh kodenya.

Diunggah oleh

Liana
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 44

LAPORAN PRAKTIKUM BAHASA PEMOGRAMAN

ARRAY

DOSEN PEMBIMBING
NISHBAH FADHELINA, S.Pd.I, M.pd

D
I
S
U
S
U
N
OLEH:

LIANA (190406005)

PROGRAM STUDI PENDIDIKAN MATEMATIKA


FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN
UNIVERSITAS SAMUDRA
2020/2021
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

1.1 Defenisi Array


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 table. Array berdimensi tiga
(three-dimensional array) mewakili bentuk suatu ruang.

1.2 Array Berdimensi Satu

1.3.1 Mendeklarasikan Array Berdimensi Satu

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_tes[5];
menyatakan bahwa array nilai_tes mengandung 5 elemen bertipe float.

1.3.2 Mengakses Elemen Array Berdimensi Satu

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 7.1 di bawah ini menjelaskan urutan komponen dalam array.

Gambar 7.1 Array berdimensi satu

Bentuk umum pengaksesan array adalah sbb :

nama_var[indeks]

sehingga, untuk array nilai_tes, maka :


nilai_tes[0] → elemen pertama dari nilai_tes
nilai_tes[4] → elemen ke-5 dari nilai_tes
Contoh :
nilai_tes[0] = 70; /* contoh 1 */
scanf(“%f”, &nilai_tes[2]); /* contoh 2 */
Contoh pertama merupakan pemberian nilai 70 ke nilai_tes[0]. Sedangkan contoh 2
merupakan perintah untuk membaca data bilangan dari keyboard dan diberikan ke
nilai_tes[2]. Pada contoh 2 ini
&nilai_tes[2]
berarti “alamat dari nilai_tes[2]”. Perlu diingat bahwa scanf() memerlukan argumen berupa
alamat dari variabel yang digunakan untuk menyimpan nilai masukan. Selengkapnya
perhatikan contoh program di bawah ini
/* File program : nilai_tes.c
Pemakaian array utk menyimpan sejumlah nilai tes */
#include <stdio.h>
#define MAKS 5
main()
{
int i;
float total = 0, rata;
float nilai_tes[MAKS]; /* deklarasi array */
for(i=0; i < MAKS; i++) /* pemasukan data nilai_tes */
{
printf("Nilai tes ke-%d : ", i+1);
scanf("%f", &nilai_tes[i]);
/* menghitung jumlah seluruh nilai */
total = total + nilai_tes[i];
}
rata = total / MAKS; /* hitung nilai rata-rata */
/* cetak nilai rata-rata */
printf("\nNilai rata-rata = %g\n", rata);
}
Contoh eksekusi :
Nilai tes ke-1 : 56.5
Nilai tes ke-2 : 67.75
Nilai tes ke-3 : 80
Nilai tes ke-4 : 77
Nilai tes ke-5 : 78.5
Nilai rata-rata = 71.95
1.3.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.
/* File program : jhari.c */
#include <stdio.h>
main()
{
int bulan, tahun, 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", &bulan);
printf("Masukkan tahunnya : ");
scanf("%d", &tahun);
if(bulan == 2)
if(tahun % 4 == 0)
jhari = 29;
else
jhari = 28;
else
jhari = jum_hari[bulan-1];
printf("\nJumlah hari dalam bulan %d tahun %d adalah %d
hari\n", bulan, tahun, jhari);
}
Contoh eksekusi :
MEMPEROLEH JUMLAH HARI
PADA SUATU BULAN DAN SUATU TAHUN
--------------------------------
Masukkan bulan (1..12) : 2
Masukkan tahunnya : 1988
Jumlah hari dalam bulan 2 tahun 1988 adalah 29 hari
Pada program jhari.c
int jum_hari[12] =
{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
merupakan instruksi untuk mendeklarasikan array jum_hari yang memiliki 12 elemen yang
bersifat statis dan sekaligus melakukan inisialisasi terhadap masing-masing elemen array.
/* File program : inisial.c */
#include <stdio.h>
main()
{
int i;
int values[] = {1,2,3,4,5,6,7,8,9};
char word[] = {'H','e','l','l','o'};
for(i = 0; i < 9; ++i )
printf("values[%d] is %d\n", i, values[i]);
printf("\n");
for(i = 0; i < 6; ++i )
printf("word[%d] is %c\n", i, word[i]);
}
Contoh eksekusi :
values[0] is 1
values[1] is 2
values[2] is 3
values[3] is 4
values[4] is 5
values[5] is 6
values[6] is 7
values[7] is 8
values[8] is 9

word[0] is H
word[1] is e
word[2] is l
word[3] is l
word[4] is o
Perhatikan, pada contoh inisial.c, 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.3.4 Beberapa 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, 9, 28, -1, 0 };
▪ char text[]= "Welcome to New Zealand.";
▪ float radix[12] = { 134.362, 1913.248 };
▪ double radians[1000];

1.3 Array Berdimensi Dua

Data seperti yang disajikan pada Tabel 7.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 7.1. Data Kelulusan Siswa Pada Sebuah Kursus Komputer
Tahun Program 1998 1999 2000
1. (INTRO) 80 540 1032
2. (BASIC) 15 83 301
3. (PASCAL) 8 12 15
4. (C) 10 129 257

1.4.1 Mendeklarasikan Array Berdimensi Dua

Pendeklarasian yang diperlukan untuk menyimpan data kelulusan siswa pada Tabel
6.1 adalah:
int data_lulus[4][3];
Nilai 3 untuk menyatakan banyaknya tahun dan 4 menyatakan banyaknya program kursus.
Gambar 7.2 memberikan ilustrasi untuk memudahkan pemahaman tentang array berdimensi
dua.

Gambar 7.2 Array berdimensi dua

Sama halnya pada array berdimensi satu, data array aka ditempatkan pada memori
yang berurutan. Perhatikan Gambar 6.3.

Gambar 6.3 Model penyimpanan array dimensi dua pada memori

1.4.2 Mengakses Elemen Array Berdimensi Dua

Array seperti data_lulus dapat diakses dalam bentuk


data_lulus[indeks pertama, indeks kedua]
Contoh :

Gambar 7.4. Pemberian nilai ke array berdimensi dua

(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.
Perhatikan contoh program berikut ini.
/* File program : lulus.c
Contoh pemakaian array berdimensi dua */
#include <stdio.h>
main( )
{
int tahun, kode_program;
int data_lulus[4][3] ;

/* Memberikan data ke array */


data_lulus[0][0] = 80;
data_lulus[0][1] = 540;
data_lulus[0][2] = 1032;
data_lulus[1][0] = 15;
data_lulus[1][1] = 83;
data_lulus[1][2] = 301;
data_lulus[2][0] = 8;
data_lulus[2][1] = 12;
data_lulus[2][2] = 15;
data_lulus[3][0] = 10;
data_lulus[3][1] = 129;
data_lulus[3][2] = 257;
/* proses utk memperoleh informasi jml siswa yg lulus */
printf("Masukkan tahun dr data yg ingin anda ketahui ");
printf("(1998..2000) : ");
scanf("%d", &tahun);
printf("Masukkan kode program kursus yang ingin anda
ketahui");
printf("(1 = INTRO, 2 = BASIC, 3 = PASCAL, 4 = C) : ");
scanf("%d", &kode_program);
printf("\nTotal kelulusan program tsb = %d\n",
data_lulus[kode_program - 1][tahun - 1998] );
}
Contoh eksekusi :
Masukkan tahun dr data yg ingin anda ketahui (1998…2000) : 2000
Masukkan kode program kursus dari data yang ingin anda ketahui (1 = INTRO, 2 = BASIC,
3 = PASCAL, 4 = C) : 3
Total kelulusan program tsb = 15

1.4.3 Inisialisasi Array Berdimensi Dua

Gambar berikut memberikan penjelasan tentang inisialisasi yang dilakukan terhadap


array berdimensi dua :

Gambar 7.5 Representasi inisialisasi array berdimensi dua


Untuk itu, deklarasi dan inisialisasi yang dilakukan berupa :
int huruf_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 } ,
{ 1, 1, 0, 0, 0, 0, 1, 0 } ,
{ 0, 0, 0, 0, 0, 0, 0, 0 }
};
atau bisa juga ditulis sebagai berikut :
int huruf_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,
1, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0
};
Contoh program berikut memenfaatkan data yang ada pada array huruf_A untuk
membentuk karakter A dengan ukuran besar. Setiap nilai satu pada array akan diganti dengan
karakter ber-ASCII 219 (DBh) dan nilai 0 akan diganti dengan karakter spasi.
/* File program : hurufA.c
Contoh inisialisasi array dimensi dua */
#include <stdio.h>
main()
{
int i,j;
int huruf_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 } ,
{ 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(huruf_A[i][j] !=0 )
putchar('\xDB\n');
else
putchar (' '); /* spasi */
putchar('\n');
}
}
Contoh eksekusi :
1.4 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. Contoh inisialisasi array berdimensi tiga :
Program berikut merupakan pengembangan dari Program 8 – 4, digunakan untuk
menampilkan dua buah huruf dengan ukuran besar.
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 }
} };
atau bisa juga ditulis menjadi
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
};
Program berikut merupakan pengembangan dari Program 8.4, digunakan untuk
menampilkan dua buah huruf dengan ukuran besar.
/* File program: data_huruf.c
Contoh inisialisasi array dimensi tiga */
# include <stdio.h>
main()
{
int i, j, k;
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 }
}
};
for(i = 0; i < 2; i++) /* Tampilkan huruf */
{
for(j = 0; j < 8; j++)
{
for(k = 0; k < 8; k++)
if(data_huruf[i][j][k] != 0)
putchar('\xDB');
else
putchar(' '); /* spasi */
printf("\n"); /* pindah baris */
}
printf("\n"); /* pindah baris */
}
}

Contoh Eksekusi :

1.5 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. Sebagai contoh :
tak berukuran

int skala[] =
{ 1, 2, 4, 6, 8 };
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
Contoh lain :
char konversi[][2] =
{ ’A’, ’T’,
’E’, ’M’,
’I’, ’V’,
’O’, ’S’,
’U’, ’J’,
};
Pada contoh ini,
konversi[0][0] bernilai ’A’
konversi[0][1] bernilai ’T’
konversi[1][0] bernilai ’E’
konversi[1][1] bernilai ’M’
……..
Contoh berikut akan menyandikan suatu kalimat yang dimasukkan melalui keyboard dengan
menggunakan data yang ada pada tabel konversi. Misal, huruf A akan diganti menjadi T,
huruf T akan diganti menjadi A.
/* File program : sandi.c
contoh inisialisasi array tak berukuran */
#include <stdio.h>
#include <stdlib.h>
#define JUM_KOLOM 2
#define MAX_KAR 256
main()
{
char konversi[][JUM_KOLOM] = {
'A', 'T',
'a', 't',
'E', 'M',
'e', 'm',
'I', 'V',
'i', 'v',
'O', 'S',
'o', 's',
'U', 'J',
'u', 'j'
};
char kalimat[MAX_KAR], karakter;
int i = 0, j, jum_kar, jum_penyandi;
printf("Masukkan sebuah kalimat dan akhiri dengan
ENTER\n");
printf("Kemudian kalimat tsb akan saya sandikan\n");
printf("Kalimat: ");

/* Memasukkan data karakter ke array kalimat */


while((kalimat[i] = getchar()) != '\n')
i++;
jum_kar = i ;

/* sandikan dan menampilkan ke layar */


printf("\nHasil setelah disandikan: ");
jum_penyandi = sizeof(konversi) / JUM_KOLOM;
for(i = 0; i < jum_kar; i++)
{
karakter = kalimat [i];
for(j = 0; j < jum_penyandi; j++)
{
if(karakter == konversi[j][0])
{
karakter = konversi[j][1];
break; /* keluar dari for terdalam */
}
if(karakter == konversi[j][1])
{
karakter = konversi[j][0];
break; /* keluar dari for terdalam */
}
}
putchar (karakter);
}
printf("\n\n");
}
Contoh Eksekusi :
Masukkan sebuah kalimat dan akhiri dengan ENTER
Kemudian kalimat tsb akan saya sandikan
Kalimat : Saya belajar
Hasil setelah disandikan: Otyt bmltutr
Pada program tersebut ,
sizeof(konversi)/JUM_KOLOM)
merupakan ungkapan untuk memperoleh banyaknya baris (ukuran dari dimensi pertama)
dalam array konversi. Dengan cara ini tabel konversi dapat diperluas tanpa perlu
memberitahu banyaknya jumlah dimensi pertama secara ekplisit.

1.6 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
Algoritma berlaku untuk pengurutan menaik (ascending). Untuk pengurutan
menurun (descending), penukaran dilakukan jika x[i] < x[j].
Penjelasan proses pengurutan terhadap 5 buah data ditunjukkan pada Gambar 7.6.
Data semula (sebelum pengurutan) adalah
50,5 30,3 20,2 25,2 31,3
Setelah pengurutan menaik (secara ascending), hasil yang diharapkan berupa
20,2 25,2 30,3 31,3 50,5
Gambar 7.6 Proses pengurutan data secara ascending dengan metode Buble Sort
/* File program : sorting.c */
#include <stdio.h>

#define MAKS 20
void pemasukan_data(float [], int *);
void pengurutan_data(float [], int);
void penampilan_data(float [], int);
main()
{
float data[MAKS];
int jum_data;
pemasukan_data(data, &jum_data);
pengurutan_data(data, jum_data);
penampilan_data(data, jum_data);
}

void pemasukan_data(float x[], int *pjumlah)


{
int jum, i;
printf("Jumlah data = ");
scanf("%d", &jum);
for(i=0; i<jum; i++)
{
printf("Data ke-%d : ", i+1);
scanf("%f", &x[i]);
}
*pjumlah = jum;
}

void pengurutan_data(float x[], int jumlah)


{
int i, j;
float smtr;
for(i=0; i<jumlah-1; i++)
for(j=i+1; j<jumlah; j++)
if(x[i] > x[j]) /* penukaran data */
{
smtr = x[i];
x[i] = x[j];
x[j] = smtr;
}
}

void penampilan_data(float x[], int jumlah)


{
int i;
printf("\nData setelah diurutkan :\n\n");
for (i=0; i<jumlah; i++)
printf("Data ke-%d : %g\n", i+1, x[i]);
}
Contoh Eksekusi :
Jumlah data = 5
Data ke-1 : 50.5
Data ke-2 : 30.3
Data ke-3 : 20.2
Data ke-4 : 25.2
Data ke-5 : 31.3
Data setelah diurutkan
Data ke-1 : 20.2
Data ke-2 : 25.2
Data ke-3 : 30.3
Data ke-4 : 31.3
Data ke-5 : 50.5
Pada fungsi main();
▪ 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 elemen indeks ke-0 dari array tersebut”.
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.
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]);
}

a.Hasil Percobaan
• Program C

• Hasil Pemograman C
b.Pembahasan

pada fungsi Array() digunakan untuk proses looping mulai dari indeks[0] dan memasukkan
data mula dari [0], karena data ke [0] sehingga yang tampil hanya bilangan nlai ke[0] sampai
ke bilangan nilai ke[9].

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");
}
a.Hasil Percobaan
• Program C
• Hasil Program C

b.Pembahasan

program tersebut menampilkan deret fibonacci pada fungsi array.

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]);
}
a.Hasil Percobaan
• Program C
• Hasil Program C

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");
}

a.Hasil Percobaan
• Program C
• Hasil Program C

b.pembahasan
program tersebut menampilkan kata yang diperintah yaitu Hello! Pada fungsi array.

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)
terbesar = nilai[i];

return terbesar;
}

a.Hasil Percobaan
• Program C

• Hasil Program C

b.pembahasan
program tersebut untuk menampilkan nila maksimum dari data 1 dan 2 dengan
menggunakan rumus array
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 dgn 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);
}
a.Hasil Percobaan
• Program C
• Hasil Program C

b.pembahasan
program tersebut menampilkan deretan yang paling terkecil/minimum pada fungsi array .

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;
}

a.Hasil Percobaan
• Program C

• Hasil Program C

B.pembahasan
Program tersebut menampilkan hasil penjumlahan 2 array pada fungsi array.
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

Jawaban:
/*nilai1.c*/
#include<stdio.h>

#define MAKS 100


main()
{
int n, i;
float nilai[MAKS],maks,min,rata, total=0;

printf("Banyaknya data:");
scanf("%d", &n);
printf("\n");
for(i=1;i<=n;i++)
{
printf("Masukkan nilai ke-%d:", i);
scanf("%f", &nilai[i]);

total=total+nilai[i];
if(i==1)
{
maks=nilai[i];
min=nilai[i];
}
else
{
if(nilai[i]>maks)
maks=nilai[i];

if(nilai[i]<min)
min = nilai[i];
}
}
rata=total/n;

printf("\nNilai maks =%g\n", maks);


printf("Nilai min =%g\n", min);
printf("Nilai rata =%g\n", rata);
}
a.Hasil Percobaan
• Program C

• Hasil Program C

b.Pembahasan
program tersebut bertujuan untuk menentukan nilai minimal,maksimal dan nilai
rata-rata pada jumlah data yang sudah tertera.
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

Jawaban:

#include<stdio.h>
#define INDEKS 100
main()
{
int n,i, j, best;
float nilai[INDEKS], maks, min, rata[INDEKS],
rata_akhir;
float total{INDEKS}, total_akhir=0;
printf("Banyaknya data:");
scanf("%d", &n);
for(i=1;i<=n; i++)
{
printf("Masukkan nilai ke-%d: ", i);
scanf("%f",&nilai[i]);
total_akhir=total_akhir+nilai[i];
if(i==1)
{
maks=nilai[i];
min=nilai[i];
best = i;
total = nilai[i];
rata[i]= nilai[i];
}
else
{
total=total+nilai[i];
rata[i] = total/
if(nilai[i]>maks)
{
maks=nilai[i];
best=i;
}
if(nilai[i]<min)
min= nilai[i];
}
}
rata_akhir=total_akhir/n;
printf("\n%15s%12s%15s", "Nilai", "Total", "Rata-
rata\n");
for(j=1;j<=n;j++)
printf("%3d%12g%12g%12g\n",j,nilai[j],total ,
rata[j]);
printf("\nNilai maks = %g\n", maks);
printf("Nilai min = %g\n", min);
printf("Nilai rata-rata =%g\n", rata_akhir);
printf("Nilai terbaik adalah nilai ke: %d\n", best);
}

a.Hasil Percobaan
• Program C
• Hasil Program C

b.Pembahasan
program tersebut bertujuan untuk menentukan nilai minimal,maksimal dan nilai
rata-rata pada jumlah data yang sudah tertera.

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

Jawaban:

/*fibonacci.c*/
#include<stdio.h>
#define MAKS 100
main()
{
int awal,n,i,fibo[MAKS];
printf("Masukkan nilai awal:");
scanf("%d",&awal);
printf("Masukkan jumlah deret:");
scanf("%d", &n);
fibo[1]= awal;
fibo[2]= awal+1;
printf("\n%5d%5d", fibo[1], fibo[2]);
for(i=3;i<=n; i++)
{
fibo[i]=fibo[i-1]+fibo[i-2];
printf("%5d", fibo[i]);
}
printf("\n\n");
}
a.Hasil Percobaan
• Program C

• Hasil Program C
b.Pembahasan
Dalam program ini diminta untuk menampilkan bilangan fibonacci, mulai dari 0
sampai n, n merupakan bilangan yang diinputkan oleh user. Jika indeks [0] maka
cetak 0, jika a[i]=a[i-1]+a[i-2] kemudian dicetak.

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

#include <stdio.h>

main()
{

int a[10];
int i,j,x;

printf("Data sebelum disusun\n\n");

for(i=0;i<5;i++)
{
printf("Data integer a[%d]: ", i);
scanf("%d", &a[i]);
}
for(i=0;i<=5-2;i++)
{
for(j=i+1;j<=5-1;j++)
{
if (a[i]>=a[j])
{
x=a[i];
a[i]=a[j];
a[j]=x;
}
}
}
printf("\nData setelah disusun\n\n");
for(i=0;i<=5-1;i++)
{
printf("\nData pada a[%d]: %d", i, a[i]);
}
printf("\n\nSelesai");
}

a.Hasil Percobaan
• Program C

• Hasil Program C
b.Pembahasan

pada program tersebut bertujuan untuk menampilkan data dalam keadaan terurut.

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).
Jawaban:
#include <stdio.h>
float matakuliah[4][3] =
{{81,90,62},{50,83,87},{89,55,65},{77,70,92}};
main()
{
float ahmad,adang,dani,edi;

printf("NO. Nama Mahasiswa Bahasa Matematika


Digital\n");
printf("1. Ahmad %.0f %.0f
%.0f\n",matakuliah[0][0],matakuliah[0][1],matakuliah[0][
2]);
printf("2. Adang %.0f %.0f
%.0f\n",matakuliah[1][0],matakuliah[1][1],matakuliah[1][
2]);
printf("3. Dani %.0f %.0f
%.0f\n",matakuliah[2][0],matakuliah[2][1],matakuliah[2][
2]);
printf("4. Edi %.0f %.0f
%.0f\n",matakuliah[3][0],matakuliah[3][1],matakuliah[3][
2]);

ahmad
=(matakuliah[0][0]+matakuliah[0][1]+matakuliah[0][2])/3;
adang
=(matakuliah[1][0]+matakuliah[1][1]+matakuliah[1][2])/3;
dani =(matakuliah[2][0]+matakuliah[2][1]+matakuliah[2][2])/3;
edi =(matakuliah[3][0]+matakuliah[3][1]+matakuliah[3][2])/3;
printf("No. Rata-rata\n");
printf("1. %.2f\n",ahmad);
printf("2. %.2f\n",adang);
printf("3. %.2f\n",dani);
printf("4. %.2f\n",edi);

a.Hasil Percobaan
• Program C
• Hasil Program C

b.Pembahasan
program tersebut menampilkan data siswa dengan nilainya dengan menggunakan
array dua dimensi.

Anda mungkin juga menyukai