Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Konsep Pemrograman
Array
1
DAFTAR ISI
A. PRAKTIKUM 8.1
B. PRAKTIKUM 8.2
C. PRAKTIKUM 8.3
D. PRAKTIKUM 8.4
E. TAMBAHAN ARRAY 2
2
Praktikum 8 (1/4)
ARRAY
A. PERCOBAAN
1. Deklarasikan sebuah variabel array (misalkan nama variabelnya = letters) yang
mengalokasikan untuk 10 elemen bertipe char. Kemudian masukkan karakter ‘Z’
pada elemen yang ke-empat dari array letters.
Jawab :
a. Listing Program
#include <stdio.h>
#include <stdlib.h>
int main()
{ char letter[10];
letter[3]='Z';
printf("Tampilkan %c\n",letter[0]);
printf("Tampilkan %c\n",letter[1]);
printf("Tampilkan %c\n",letter[2]);
printf("Tampilkan %c\n",letter[3]);
printf("Tampilkan %c\n",letter[4]);
printf("Tampilkan %c\n",letter[5]);
printf("Tampilkan %c\n",letter[6]);
printf("Tampilkan %c\n",letter[7]);
printf("Tampilkan %c\n",letter[8]);
printf("Tampilkan %c\n",letter[9]);
return 0;
}
b. Output
3
2. Deklarasikan sebuah array bertipe char dengan panjang 20. Kemudian cetak ke
layar isi array tersebut dengan indeks ganjil.
Jawab:
a. Listing Program
#include <stdio.h>
#include <stdlib.h>
int main()
{
char x[20]= {'a','b','c','d','e','f','g','h','i','j','k',
'l','m','n','o','p','q','r','s','t'};
for(int i=0;i<20;i++)
{
if(i%2==1)
printf("Tampilkan ke x[%d] adalah %c\n",i,x[i]);
}
return 0;
}
b. Output
4
3. Deklarasikan sebuah array bertipe char dengan panjang 20. Kemudian inputkan
sebuah karakter dari keyboard dan cari apakah karakter tersebut ada dalam array
yang telah dideklarasikan.
Jawab:
a. Listing Program
#include <stdio.h>
#include <stdlib.h>
int main()
{char x[20]={'a','b','c','d','e','f','g','h','i',
'j','k','l','m','n','o','p','q','r','s','t'};
char kar;
int penampung=0,i;
printf("Masukan karakter:");
scanf("%c",&kar);
for(i=0;i<20;i++)
{
if(x[i]==kar)
{
penampung=1;
if(penampung==1)
{
printf("%c ada dalam array",kar);
}
else
{
printf("%c tidak ada dalam array",kar);
}
}
5
b. Output
6
4. Buat program untuk mencari nilai rata-rata seorang mahasiswa.
Input : Nama : Ani
Jumlah nilai :3
Nilai-1 60
Nilai-2 70
Nilai-3 80
Output : Ani, nilai rata-rata adalah 70.
Jawab:
a. Listing Program
#include <stdio.h>
#include <stdlib.h>
int main()
{int jn;
int i;
int sum;
int x;
float rata;
char nama[25];
puts("Program mencari rata-rata nilai");
printf("Nama:");
gets(nama);
printf("Jumlah nilai:");
scanf("%d",&jn);
i=1;
sum=0;
while(i<=jn)
{
printf("Nilai ke-%d:",i);
scanf("%d",&x);
i++;
sum+=x;
rata=sum/jn;
}
printf("rata =%g",rata);
return 0;
}
7
b. Output
8
5. Buat program untuk mencocokan apakah sebuah karakter yang diinputkan dari
keyboard ada dalam array yang telah dideklarasikan.
Jawab:
a. Listing Program
#include <stdio.h>
#include <stdlib.h>
int main()
{char x[5]={'a','b','c','d','e'}, kar;
int penampung=0,i;
printf("Masukan karakter:");
scanf("%c",&kar);
for(i=0;i<5;i++)
{
if(x[i]==kar)
{
penampung=1;
if(penampung==1)
{
printf("%c ada dalam array",kar);
}
else
{
printf("%c tidak ada dalam array",kar);
}
}
b. Output
9
B. LAPORAN RESMI
1. Tulis listing program dari percobaan-percobaan diatas. Kemudian tulis
outputnya.
10
Praktikum 8 (2/4)
ARRAY
A. PERCOBAAN
1. Deklarasikan sebuah variabel array (misalkan nama variabelnya = letters[3][3])
yang mengalokasikan untuk 9 elemen bertipe char. Kemudian masukkan
karakter ‘Z’ pada elemen yang nilai baris= kolom dari array letters.
Jawab:
a. Listing Program
#include <stdlib.h>
int main()
{ char letter[3][3];
letter[0][0]='Z';
puts("");
letter[1][1]='Z';
letter[2][2]='Z';
puts("");
return 0;
b. Output
11
2. Ulangi soal no 1 dengan menggunakan loop for dan if statement.
Jawab:
a. Listing Program
#include <stdio.h>
#include <stdlib.h>
int main()
{
char letter[3][3];
int baris;
int kolom;
for(baris=0;baris<3;baris++)
{
for(kolom=0;kolom<3;kolom++)
{
if(baris==kolom)
{
letter[baris][kolom]='Z';
}
else
{
letter[baris][kolom]='-';
}
printf("letter[%d][%d]=%c\n",baris,kolom,letter[baris][kolom]);
}
b. Output
12
3. Buat penjumlahan dua matrik A[2][2]dengan B[2][2]. . Hasil penjumlahan
tersebut disimpan dalam matrik C.
Jawab:
a. Listing Program
#include <stdio.h>
#include <stdlib.h>
int main()
{ int A[2][2];
int B[2][2];
int baris;
int kolom;
for(baris=0;baris<=1;baris++)
{
for(kolom=0;kolom<=1;kolom++)
{
printf("A[%d][%d]:",baris,kolom);
scanf("%d",&A[baris][kolom]);
}
}
puts("");
for(baris=0;baris<=1;baris++)
{
for(kolom=0;kolom<=1;kolom++)
{
printf("B[%d][%d]:",baris,kolom);
scanf("%d",&B[baris][kolom]);
}
}
printf("Hasil penjumlahan A dan B\n");
for(baris=0;baris<=1;baris++)
{
for(kolom=0;kolom<=1;kolom++)
{
printf("C[%d][%d]=%d\n",baris,kolom,A[baris][kolom]+B[baris][kol
om]);
}
}
}
13
b. Output
14
4. Buat program untuk mencocokan apakah karakter sebuah karakter yang
diinputkan dari keyboard ada dalam array yang telah dideklarasikan dan
hitung berapa banyak karakter tersebut.
Jawab:
a. Listing Program
#include <stdio.h>
#include <stdlib.h>
int main()
char
kar[26]={'a','b','b','c','d','d','d','d','e','e','e','f','g','h'
,'i'};
char huruf;
int i,jumkar=0,penampung;
scanf("%c",&huruf);
for(i=0;i<26;i++)
if(kar[i]==huruf)
penampung=1;
jumkar++;
if(penampung==1)
15
}
else
b. Output
16
B. LAPORAN RESMI
1. Tulis listing program dari percobaan-percobaan diatas. Kemudian tulis
outputnya.
Cara penulisan array berdimensi dua pun juga sam dengan dimensi 1
Contohnya:
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
};
17
Praktikum 8 (3/4)
ARRAY
A. PERCOBAAN
int main()
{
int anak;
int jn;
int i;
int sum;
int x;
float rata;
char nama[25];
printf("Jumlah mahasiswa:");
18
scanf("%d",&anak);
for(int a=1; a<=anak;a++)
{
printf("Nama ke-%d:",a);
scanf("%s",&nama);
printf("Jumlah nilai:");
scanf("%d",&jn);
i=1;
sum=0;
while(i<=jn)
{
printf("Nilai ke-%d:",i);
scanf("%d",&x);
i++;
sum+=x;
rata=sum/jn;
}
printf("rata-rata %s =%g",nama,rata);
puts("");
b. Output
19
2. Buat program untuk menampilkan angka 1 sampai dengan 9 dalam array tiga
dimensi.
Contoh : Input : 1
Output : 0 0 0 1 0 0 0
0001000
0001000
0001000
0001000
0001000
0001000
Jawab:
a. Listing
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x[9][7][7]={
0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 1, 0, 0,
0, 0, 1, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0,
0, 1, 0, 1, 0, 0, 0,
0, 1, 0, 1, 0, 0, 0,
0, 1, 0, 1, 0, 0, 0,
0, 1, 0, 1, 0, 0, 0,
20
0, 1, 0, 1, 0, 0, 0,
0, 1, 0, 1, 0, 0, 0,
0, 1, 0, 1, 0, 0, 0,
1, 0, 0, 1, 0, 0, 0,
1, 0, 0, 1, 0, 0, 0,
1, 0, 0, 1, 0, 0, 0,
1, 0, 0, 1, 0, 0, 0,
1, 0, 0, 1, 0, 0, 0,
1, 0, 0, 1, 0, 0, 0,
1, 0, 0, 1, 0, 0, 0,
0, 0, 1, 1, 0, 0, 0,
0, 0, 1, 1, 0, 0, 0,
0, 0, 1, 1, 0, 0, 0,
0, 0, 1, 1, 0, 0, 0,
0, 0, 1, 1, 0, 0, 0,
0, 0, 1, 1, 0, 0, 0,
0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 0, 0, 1,
0, 0, 0, 1, 0, 0, 1,
0, 0, 0, 1, 0, 0, 1,
0, 0, 0, 1, 0, 0, 1,
0, 0, 0, 1, 0, 0, 1,
0, 0, 0, 1, 0, 0, 1,
0, 0, 0, 1, 0, 0, 1
};
int input;
printf("input:");
scanf("%d",&input);
if(input==1)
{
for(int i=0;i<1;i++)
{
for(int k=0;k<7;k++)
{
for(int d=0;d<7;d++)
{
{
printf("%d",x[i][k][d]);
}
}
puts("");
}
puts("");
}
}
else if(input==2)
{
for(int i=0;i<2;i++)
{
for(int k=0;k<7;k++)
{
for(int d=0;d<7;d++)
{
{
printf("%d",x[i][k][d]);
}
}
puts("");
}
puts("");
21
}
}
else if(input==3)
{
for(int i=0;i<3;i++)
{
for(int k=0;k<7;k++)
{
for(int d=0;d<7;d++)
{
{
printf("%d",x[i][k][d]);
}
}
puts("");
}
puts("");
}
}
else if(input==4)
{
for(int i=0;i<4;i++)
{
for(int k=0;k<7;k++)
{
for(int d=0;d<7;d++)
{
{
printf("%d",x[i][k][d]);
}
}
puts("");
}
puts("");
}
}
else if(input==5)
{
for(int i=0;i<5;i++)
{
for(int k=0;k<7;k++)
{
for(int d=0;d<7;d++)
{
{
printf("%d",x[i][k][d]);
}
}
puts("");
}
puts("");
}
22
}
else if(input==6)
{
for(int i=0;i<6;i++)
{
for(int k=0;k<7;k++)
{
for(int d=0;d<7;d++)
{
{
printf("%d",x[i][k][d]);
}
}
puts("");
}
puts("");
}
}
else if(input==7)
{
for(int i=0;i<7;i++)
{
for(int k=0;k<7;k++)
{
for(int d=0;d<7;d++)
{
{
printf("%d",x[i][k][d]);
}
}
puts("");
}
puts("");
}
}
else if(input==8)
{
for(int i=0;i<8;i++)
{
for(int k=0;k<7;k++)
{
for(int d=0;d<7;d++)
{
{
printf("%d",x[i][k][d]);
}
}
puts("");
}
puts("");
}
23
}
else if(input==9)
{
for(int i=0;i<9;i++)
{
for(int k=0;k<7;k++)
{
for(int d=0;d<7;d++)
{
{
printf("%d",x[i][k][d]);
}
}
puts("");
}
puts("");
}
}
else
{
puts("error input");
}
return 0;
}
b. Output
24
25
B. LAPORAN RESMI
1. Tulis listing program dari percobaan-percobaan diatas. Kemudian tulis outputnya.
Kesimpulan:
Dari praktikum diatas yang telah dikerjakan, saya dapat memahami cara
pendeklarasian array berdimensi 3 dan juga penerapannya dalam soal. Pada C
memungkinkan untuk membuat array yang dimensinya menjadi 3. Bentuk umum
pendeklarasian array berdimensi 3.
Bentuk pendeklarasiannya adalah: tipe nama_var[ukuran 1][ukuran2][ukuran3];
Contoh pendeklarasian array berdimensi 3:
int letter[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 }
} };
90
Praktikum 8 (4/4)
ARRAY
A. PERCOBAAN
1. Buat program untuk menginputkan 10 bilangan dari keyboard. Kemudian urutkan
bilangan tersebut mulai dari yang paling kecil.
Jawab:
a. Listing Program
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, bil[10];
int penampung=0,b;
for(i=0;i<10;i++)
{
printf("bil ke-%d:",i+1);
scanf("%d",&bil[i]);
}
for(i=0;i<10;i++)
{
for(b=0;b<10;b++)
{
if(bil[i]>=bil[b])
{
penampung=bil[b];
bil[b]=bil[i];
bil[i]=penampung;
}
}
for(i=0;i<10;i++)
{
printf("%d ",bil[i]);
91
b. Output
92
2. Buat program untuk menampilkan tabel berikut ini dengan menggunakan array
berdimensi dua dan looping for.
x Sinus(x) Cosinus(y)
000
030
060
090
120
150
180
210
240
270
300
330
360
Jawab :
a. Listing Program 1
#include <stdio.h>
#include <math.h>
#define PHI 3.14f;
float radian(float);
void isiX(float[]);
void isi(float[]);
main()
{
float x[12];
isiX(x);
isi(x);
}
void isiX(float sudut[])
{
int i = 0;
float derajat=0;
for(i=0;derajat<=360;i++)
{
sudut[i] = derajat;
derajat+=30;
}
}
void isi(float sudut[])
{
int i;
printf("------------------------------\n");
printf("| %6s | %7s | %7s |\n","x","sin(x)","Cos(x)");
printf("-------------------------------\n");
for(i=0;i<=12;i++)
printf("| %6.0f | %7.2f | %7.2f
93
|\n",sudut[i],sin(radian(sudut[i])),cos(radian(sudut[i])));
printf("------------------------------\n");
}
float radian(float derajat)
{
return (derajat / 180.0f) * PHI;
}
b. Ouput 1
94
{
printf("x=%g maka sin(%g)= %0.2f
\n",sudut[i],sudut[i],sin(radian(sudut[i])));
}
puts("");
for(i=0;i<=12;i++)
{
95
3. Lanjutkan program no.2 dengan mencari nilai rata-rata dari array tersebut.
Jawab:
a. Listing Program
#include <stdio.h>
#include <math.h>
#define PHI 3.14f;
float radian(float);
void isiX(float[]);
void isi(float[]);
main()
{
float x[12];
isiX(x);
isi(x);
}
void isiX(float sudut[])
{
int i = 0;
float derajat=0;
for(i=0;derajat<=360;i++)
{
sudut[i] = derajat;
derajat+=30;
}
}
void isi(float sudut[])
{
int i;
float sum=0,rata;
float hsl=0,avg;
printf("------------------------------\n");
printf("| %6s | %7s | %7s |\n","x","sin(x)","cos(x)");
printf("-------------------------------\n");
for(i=0;i<12;i++)
printf("| %6.0f | %7.2f | %7.2f
|\n",sudut[i],sin(radian(sudut[i])),cos(radian(sudut[i])));
printf("------------------------------\n");
for(i=0;i<12;i++)
{
sum=sum+sin(radian(sudut[i]));
rata=sum/13;
hsl=hsl+cos(radian(sudut[i]));
avg=hsl/13;
}
printf("Jumlah keseluruhan sin adalah %g\n",sum);
printf("Rata keseluruhan sin adalah %g",rata);
puts("");
puts("");
printf("Jumlah keseluruhan cos adalah %g\n",hsl);
printf("Rata-rata keseluruhan cos adalah %g",avg);
puts("");
}
float radian(float derajat)
{
return (derajat / 180.0f) * PHI;
}
96
b. Output
97
D. LAPORAN RESMI
1. Tulis listing program dari percobaan-percobaan diatas. Kemudian tulis outputnya.
Kesimpulan:
Dari praktikum diatas saya dapat mengetahui bahwasaya array juga dapat dijadikan
sebagai parameter suatu fungsi. Array juga dapat dilewatkan sebagai parameter
fungsi. Sebagai contoh ditujukanpada program sorting.c. Program digunakan untuk
memasukkan sejumlah data,kemudian data tersebut diurutkan naik (ascending) dan
dicetak ke layar. Contohnya pada soal no 2 pada praktikum tersebut pada fungsi void
isi parameternya berupa array. Setalah saya amati dan juga coba, semua konsep dasar
konsep pemrograman berhubungan sepsrti matematika dimana di bab Array ini kita
bisa menggunakan fungsi yang banyak.
98
ARRAY 2
main()
{
int jumlah;
input(jumlah);
99
b. Ouput
10
0
2. Diketahui daftar nilai siswa sebagai berikut:
for(j=0;j<3;j++)
{
total = data[i][1]+data[i][2]+data[i][3];
10
1
}
for(j=0;j<3;j++)
{
total = data[i][1]+data[i][2]+data[i][3];
}
for(j=0;j<3;j++)
{
total = data[i][1]+data[i][2]+data[i][3];
}
for(j=0;j<3;j++)
{
total = data[i][1]+data[i][2]+data[i][3];
}
b. Output
10
2
3. Buat program untuk menampilkan tabel berikut ini dengan menggunakan looping for() dan 2
buah array :
x[] sbg array berdimensi satu yang diinisialisasi dgn sudut 0 s/d 360
data[] sbg array berdimensi dua. data adalah array yg berisi nilai sin, cos dan tan dari masing•
masing nilai sudut yang ada dalam array x.
Petunjuk :
gunakan fungsi radian() untuk mengkonversi nilai derajat menjadi radian.
rad = drjt / 180.0 * PI. PI = 3.14159
Jawab:
a. Listing Program
#include <stdio.h>
#include <math.h>
#define PHI 3.14f;
float radian(float);
void isiX(float[]);
void isi(float[]);
main()
{
float x[12];
isiX(x);
isi(x);
}
void isiX(float sudut[])
{
int i = 0;
float derajat=0;
for(i=0;derajat<=360;i++)
{
sudut[i] = derajat;
derajat+=30;
}
}
void isi(float sudut[])
{
int i;
printf("----------------------------------------\n");
printf("| %6s | %7s | %7s | %7s |\n","x","sin(x)","cos(x)","tan(x)");
printf("----------------------------------------\n");
for(i=0;i<12;i++)
printf("| %6.0f | %7.2f | %7.2f | %7.2f
|\n",sudut[i],sin(radian(sudut[i])),cos(radian(sudut[i])),tan(radian(sudut
[i])));
printf("----------------------------------------\n");
}
float radian(float derajat)
{
return (derajat / 180.0f) * PHI;
}
10
3
b. Output
Kesimpulan:
Dari praktikum arrray 2 saya dapat mengetahu beberapa hal diantaranya:
1.Sebuah array juga dapat jadikan sebagai parameter fungsi.
2.Karena yangdikirimkan adalah alamatnya, maka di dalam fungsi, tanpa return value pun
nilai array akan berubah sesuai proses yang dijalankan.
3. Dalam parameter aktual, array yang dijadikan sebagai parameter tidak perlu ditambahkan
karakter “[]”karena array tanpa tanda tersebut sudah menyatakan alamat indeks ke 0dari array
tersebut.
10
4