Anda di halaman 1dari 21

LAPORAN RESMI ARRAY

LAPORAN RESMI ARRAY

Ke - 9

Widad Alfiyah Zayyan

1 D4 Telekomunikasi A

2220600013

Moch Zen Samsono Hadi, S.T., M.Sc, Ph.D

12 Desember 2020

Praktikum Dasar Programming 1 83


Mike Yuliana-PENS ITS
PRAKTIKUM 9
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. 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 table. Array berdimensi tiga
(three-dimensional array) mewakili bentuk suatu ruang.

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.

Praktikum Dasar Programming 1 84


Mike Yuliana-PENS ITS
Contoh pendeklarasian array :

float nilai_tes[5];

menyatakan bahwa array nilai_tes mengandung 5 elemen bertipe float.

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. 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;
scanf(“%f”, &nilai_tes[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.

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.
int jum_hari[12] =
{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

Praktikum Dasar Programming 1 85


Mike Yuliana-PENS ITS
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];

ARRAY BERDIMENSI DUA


Array berdimensi satu dapat disimpan pada sebuah array berdimensi dua.
Pendeklarasian array berdimensi dua adalah sebagai berikut :
int data_lulus[4][3];

Nilai 4 untuk menyatakan banyaknya baris dan 3 menyatakan banyaknya kolom. Gambar

10.1 memberikan ilustrasi untuk memudahkan pemahaman tentang array berdimensi dua.

0 1 2 indeks kedua
0 (kolom)
80 540 1032
1
15 83 301
2
3
8 12 15
10 129 257

indeks pertama
(baris) int data_lulus[4][3];

Gambar 10.1 Array berdimensi dua

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

80 540 1032 15 83 301 80

Gambar 10.2 Model penyimpanan array dimensi dua pada memori

Praktikum Dasar Programming 1 86


Mike Yuliana-PENS ITS
Mengakses Elemen Array Berdimensi Dua

Array seperti data_lulus dapat diakses dalam bentuk data_lulus[indeks pertama, indeks
kedua] :
(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 potongan program di bawah ini.

/* Memberikan data ke array */

data_lulus[0][0] = 80;
data_lulus[0][1] = 540;
data_lulus[0][2] = 1032;

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

Praktikum Dasar Programming 1 87


Mike Yuliana-PENS ITS
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 :

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,
Praktikum Dasar Programming 1 87
Mike Yuliana-PENS ITS
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
};

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

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], dg 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.

Praktikum Dasar Programming 1 88


Mike Yuliana-PENS ITS
Catatan: i = indeks array
x = nama array untuk menyimpan data
n = jumlah data

Algoritma diatas 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 10.3

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

i=0 j=1 j=2 j=3 j=4

0 50.5 30.3 20.2 20.2


1 30.3 50.5 50.5 50.5
2 20.2 20.2 30.3 30.3
3 25.2 25.2 25.2 25.2
4 31.3 31.3 31.3 31.3

i=1 j=2 j=3 j=4

0 20.2 20.2 20.2


1 50.5 30.3 25.2
2 30.3 50.5 50.5
3 25.2 25.2 30.3
4 31.3 31.3 31.3

Praktikum Dasar Programming 1 89


Mike Yuliana-PENS ITS
i=2 j=3 j=4

0
20.2 20.2
1
25.2 25.2
2
50.5 30.3
3
30.3 50.5
4
i = 331.3 j=4 31.3
Hasil akhir

0 20.2 20.2
1 25.2 25.2
2 30.3 30.3
3 50.5 31.3
4 31.3 50.5

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;

Praktikum Dasar Programming 1 90


Mike Yuliana-PENS ITS
C. TUGAS PENDAHULUAN
1. Buatlah program untuk mencari nilai rata-rata seorang mahasiswa
Tampilan:
Masukkan nilai matematika:60
Masukkan nilai Fisika:70
Masukkan nilai Kimia:80
Nilai rata-ratanya adalah 70

Input

Output

D. PERCOBAAN
1. Buatlah program yang membaca sebuah array karakter,’a’…’z’. Kemudian
menghitung frekuensi kemunculan tiap karakter.
Tampilan:
Masukkan jumlah karakter yang akan dihitung: 5

Praktikum Dasar Programming 1 91


Mike Yuliana-PENS ITS
Masukkan karakter ke-1:a
Masukkan karakter ke-2:b
Masukkan karakter ke-3:c
Masukkan karakter ke-3:a
Masukkan karakter ke-3:a

Frekuensi a=3
Frekuensi b=1
Frekuensi c=1

Input

Praktikum Dasar Programming 1 92


Mike Yuliana-PENS ITS
Output

Debug :
Program a b c d e Kar1 Kar2
printf 4200352 0 0 16 0 Eror Eror reading variabel
("Masukkan reading kar2
jumlah variabel
karakter yang kar1
akan dihitung :
");
scanf ("%d", 4200352 0 0 16 0 Eror Eror reading variabel
&b); reading ka
variabel
kar1
char kar1 [b]; 4200352 5 0 16 0 Eror Eror reading variabel
reading ka
variabel
kar1
char kar2 [b]; 4200352 5 0 16 0 @YPyu Eror reading variabel

2. Buat matriks 2 dimensi dengan menggunakan inisialisasi langsung, kemudian


lakukan penjumlahan .

Praktikum Dasar Programming 1 93


Mike Yuliana-PENS ITS
Input

Outpu

Debug
Program Lokal Function Keterangan
arguments
void mat_hsl (int mat1 [] [2], mat1
int mat2 [] [2]); [0]
• [0]= 1381936
• [1]=0
[1]
• [0]=16 -
• [1]=0 -
mat2
[0]
• [0]=8
• [1]=0
[1]
• [0]=56

Praktikum Dasar Programming 1 94


Mike Yuliana-PENS ITS
• [1]=0

int mat1 [2] [2] = {2,4,6,8}; mat1


[0]
• [0]= 2
• [1]=4
[1]
• [0]=6
• [1]=8

mat2
[0]
- -
• [0]= 8
• [1]=0
[1]
• [0]=56
• [1]=0

3. Buat program untuk mencari nilai rata-rata n mahasiswa.


Input : Jumlah mahasiswa :3
Nama Mahasiswa-1 : Ani
Jumlah nilai :3
Nilai-1 : 60
Nilai-2 : 70
Nilai-3 : 80
Nama Mahasiswa-2 : Amir
Jumlah nilai :3
Nilai-1 : 60
Nilai-2 : 50
Nilai-3 : 40
Praktikum Dasar Programming 1 95
Mike Yuliana-PENS ITS
Nama Mahasiswa-3 : Ali
Jumlah nilai :3
Nilai-1 : 50
Nilai-2 : 60
Nilai-3 : 70
Output :
Nilai rata-rata Ani adalah 70.
Nilai rata-rata Amir adalah 50.
Nilai rata-rata Ali adalah 50.

Input

Output

Debug
Praktikum Dasar Programming 1 96
Mike Yuliana-PENS ITS
program n t s jumlahmhs jumlah nama nilai rata_rata
{ 0 0 - - 0 - - -
printf("Jumlah mahasiswa: "); 0 0 - - 0 - - -
scanf("%d",&jumlahmhs); 0 0 - 3 0 - - -
char nama[jumlahmhs][100]; 0 0 - 3 0 [0][1][2] - -

Praktikum Dasar Programming 1 97


Mike Yuliana-PENS ITS
4. Buat program untuk menginputkan 10 bilangan dari keyboard. Kemudian urutkan
bilangan tersebut mulai dari yang paling besar.
Input

Output

Debug
Program X Y Z Bilangan

printf("\t===Program 0 16 0 [0]=0
Mengurutkan angka
[1]=0
dari yang
Terbesar===\n"); [2]=0

[3]=0

[4]=8

[5]=0

[6]=4199705

[7]=0

[8]=8

[9]=0

printf("\n"); 0 16 0 [0]=0

Praktikum Dasar Programming 1 98


Mike Yuliana-PENS ITS
[1]=0

[2]=0

[3]=0

[4]=8

[5]=0

[6]=4199705

[7]=0

[8]=8

[9]=0

for (x=0; x<10; x++) 0 16 0 [0]=0

[1]=0

[2]=0

[3]=0

[4]=8

[5]=0

[6]=4199705

[7]=0

[8]=8

[9]=0

printf("Masukkan 0 16 0 [0]=0
angka ke-%d: ", x+1);
[1]=0

[2]=0

[3]=0

[4]=8

[5]=0

[6]=4199705

[7]=0

[8]=8

[9]=0

Praktikum Dasar Programming 1 99


Mike Yuliana-PENS ITS
D. LAPORAN RESMI
1. Buatlah desain flowchart untuk setiap soal dalam percobaan
Percobaan 1
START

Int
a,b,c,d,e

Input jumlah
karakter

Char kar 1 [b]


Char kar 2 [b]

ya
a<b Input jumlah Kar 1 [c] = [d] e++ kar 2
[c]=e

tidak

Cetak hasil

End

Percobaan 2

START mat_hsl(mat1,mat2);

Void mat_hsl (int int i,j,jml[2][2];


mat 1[] [2] , int
mat 2 [] [2]);

For (i=0;i<2;i++)
Int mat1[2][2] = {2,4,6,8};
For (j=0;j<2;j++)
Int mat2[2][2] = {1,3,5,7};
Jml[i][j]=mat1[i][j]+mat2[i][j];

mat_hsl (mat1,mat2);
Jml[i][j]

END
Return

Praktikum Dasar Programming 1 100


Mike Yuliana-PENS ITS
Percobaan 3

START

Int a,b,c,d

Float total

Input jumlah
mahasiswa

char nama [c]


[100]

tidak Total = total + nilai


a<c Cetak hasil
Rata = total/c
ya
Input nama ,
END
mahasiswa dan
total nilai

tidak ya
b < total Scanf
a+1 b+1
nilai (“%d”,&nilai)

Percobaan 4

START

Int x,y,z,[10]

tidak For (x=0;x<10;x++) z=bilangan[y]


x < 10
For (y=0;y<10;y++) Bilangan[y]=bilangan[x]
ya Bilangan[x]=z

Masukkan For (x=0;x<10;x++)


bilangan ke-

Cetak hasil
a++

END

Praktikum Dasar Programming 1 101


Mike Yuliana-PENS ITS
Kesimpulan
Dari praktikum ini mahasiswa dapat mendefinisikan Array adalah sebuah kumpulan dari nilai
nilai data bertipe sama dalam urutan tertentu yang menggunakansebuah nama yang
sama.Nilai-nilai di suatu array disebut dengan elemen elemen array. Letak urutan dari
elemen-elemen array ditunjukkan dengan adanya suatu indeks atau subscript. Array bisa
berupa array berdimensi satu, dua, tiga, atau lebih

Praktikum Dasar Programming 1 102


Mike Yuliana-PENS ITS

Anda mungkin juga menyukai