Assalamu’alaikum
Wr, Wb, oke pada kesempatan kali ini saya akan membahas sebuah program array
dalam fungsi di mana terdapat contoh study kasus , script hasil running dan
pembahasan, oke langsung saja tanpa berlama – lama kita masuk kecontoh study
kasus pertama.
Study Kasus
Praktikum 4.1
Dalam
sebuah deret bilangan yang dikumpulkan dalm variable array yang terdiri dari 10
element, dari setiap bilangan tersebut memiliki indeksnya, dengan memasukan
sebuah bilangan yang terdapat di variable array kita dapat mengetahui alamat
indeks dari bilangan tersebut pada nomor indeks berapa bilangan itu tersimpan
Script Study Kasus
Praktikum 4.1
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
int main()
{
int A [10] ={12,24,13,25,10,11,21,20,15,18};
int bil,c;
for(int i=0; i<10; i++)
{
cout<<"indeks-["<<i<<"]"<<" "<<A[i]<<endl;
}
cout<<endl;
cout<<"masukan bilangan yang akan dicari:";
cin>>bil;
for( c =0; c<10 ;c++)
{
if(A[c]==bil)
{
cout<<"bilangan yang anda cari berada di indeks ke-"<<c;
break;
}
}
if(bil!=A[c])
cout<<"\n Bilangan yang anda cari tidak terdaftar";
getch();
return 0;
}
#include<stdio.h>
#include<conio.h>
int main()
{
int A [10] ={12,24,13,25,10,11,21,20,15,18};
int bil,c;
for(int i=0; i<10; i++)
{
cout<<"indeks-["<<i<<"]"<<" "<<A[i]<<endl;
}
cout<<endl;
cout<<"masukan bilangan yang akan dicari:";
cin>>bil;
for( c =0; c<10 ;c++)
{
if(A[c]==bil)
{
cout<<"bilangan yang anda cari berada di indeks ke-"<<c;
break;
}
}
if(bil!=A[c])
cout<<"\n Bilangan yang anda cari tidak terdaftar";
getch();
return 0;
}
Hasil Running :
Pembahasan
Dalam
program tersebut berguna untuk mencari nilai pada indek jadi , pertama –
masukan nilai yang akan dicari indeksnya, program tersebut menggunakan variable
array yang berguna menampung nilai dalam 1 variable, dalam variable array sudah
terdapat nilainya yaitu ={12,24,13,25,10,11,21,20,15,18}. Untuk mencari indeks
atau urutan nilai dalam array tersebut harus menggunakan intruksi for gunanya
untuk mengulang apakah nilai tersebut terdapat di dalam variabel array
tersebut, dan dalam intruksi for juga terdapat if yang gunanya untuk
mengidentifikasi apakan jika dalam for nilai yg
di masukan benar adanya maka if ini akan di jalankan dan menampilkan
indeknya, untuk if nya mempunyai kondisi yaitu bil == A[c]. Jadi bil ini nilai
yang di input dan untuk A[c] itu adalah variable array dimana c nya adalah variable dari pengulangan.
Study Kasus
Praktikum 4.2
Mobil
13 dalah perusahaan yang menjual mobil bekas, berdagang mobil bekas selama
bertahun – tahun ternyata hanya ada tiga meek mobil yang selalu dicari oleh
konsumen yaitu Toyota, Honda dan Suzuki. Mobil 13 saat ini sudah memiliki
cabang di 3 Kota Besar yaitu Jakarta, Surabaya dan Medan dengan demikian
banyaknya konsumen yang percaya dengan kualitas mobil bekas yang dijual oleh
mobil 13 perusaaan membutuhkan program yang dapat mencatat semua penjualan
mobil bekas perbulan disetiap cabangnya, selama ini perhitungan masih bersifat
manual dalam bentuk bagan diatas kertas.
Script Study Kasus
Praktikum 4.2
#include<stdio.h>
#include<conio.h>
void judul(char kota[11])
{
char merek[3][7] ={"Toyota","Honda","Suzuki"};
char bulan [13][4]={"Jan","Feb","Mar","Apr","Mei","Jun","jul","Ags","Sep","Okt",
"Nop","Des","JML"};
int i;
clrscr();
printf("PENJUALAN MOBIL BEKAS\n\n");
printf("Kota :%s\n\n\t",kota);
for(i=0; i<13; i++)
printf("%s ",bulan[i]);
for(i =0; i<3; i++)
printf("\n %s",merek[i]);
}
void isi_data(int jual[4][13][4])
{
char kota [4][11] = {"Jakarta","Surabaya", "Medan", "Semua Kota"};
int i_k, i_m, i_b;
//indeks kota,merek,bulan//
for(i_k =0; i_k<3;i_k++)//kota
{
judul(kota[i_k]);
for(i_m=0; i_m<3; i_m++)//merek
{
for(i_b =0; i_b<12; i_b++)//bulan
{
gotoxy(10 + i_b *4, i_m +6);
scanf("%d",&jual[i_m][i_b] [i_k]);
jual[i_m][12][i_k] += jual[i_m] [i_b] [i_k];
//isi ke samping
jual[3][i_b][i_k] += jual [i_m] [i_b] [i_k];
//isi kebawah
jual[3][12][i_k] += jual[i_m][i_b][i_k];
//isi ke total
jual[i_m][i_b][3] +=jual[i_m][i_b][i_k];
//isi ke lapis ke-4
}
gotoxy(59,i_m+6);
printf("%d",jual[i_m][12][i_k]);
}
gotoxy(11,10);
for(i_b =0; i_b<13;i_b++)
printf("%d",jual[3][i_b][i_k]);
fflush(stdin);
getch();
}
}
void total_jual(int jual[4][13][4])
{
int i_m, i_b;
for(i_m =0; i_m<3; i_m++)
for(i_b =0; i_b<12; i_b++)
{
jual[i_m][12][3] += jual[i_m][i_b][3];
//tambah ke samping
jual[3][i_b][3] +=jual[i_m][i_b][3];
//tambah ke bawah
jual[3][12][3] +=jual[i_m][i_b][3];
//tambah ke grand total
}
judul("semua");
for(i_m =0; i_m<4; i_m++)
{
i_m == 3?gotoxy (11,i_m +7):gotoxy(11,i_m +6);
for(i_b=0; i_b<13; i_b++)
printf("%-4d",jual[i_m][i_b][3]);
}
}
int main()
{
int jual[4][13][4] ={0};
//merek,bulan,kota
isi_data(jual);
total_jual(jual);
return 0;
}
#include<conio.h>
void judul(char kota[11])
{
char merek[3][7] ={"Toyota","Honda","Suzuki"};
char bulan [13][4]={"Jan","Feb","Mar","Apr","Mei","Jun","jul","Ags","Sep","Okt",
"Nop","Des","JML"};
int i;
clrscr();
printf("PENJUALAN MOBIL BEKAS\n\n");
printf("Kota :%s\n\n\t",kota);
for(i=0; i<13; i++)
printf("%s ",bulan[i]);
for(i =0; i<3; i++)
printf("\n %s",merek[i]);
}
void isi_data(int jual[4][13][4])
{
char kota [4][11] = {"Jakarta","Surabaya", "Medan", "Semua Kota"};
int i_k, i_m, i_b;
//indeks kota,merek,bulan//
for(i_k =0; i_k<3;i_k++)//kota
{
judul(kota[i_k]);
for(i_m=0; i_m<3; i_m++)//merek
{
for(i_b =0; i_b<12; i_b++)//bulan
{
gotoxy(10 + i_b *4, i_m +6);
scanf("%d",&jual[i_m][i_b] [i_k]);
jual[i_m][12][i_k] += jual[i_m] [i_b] [i_k];
//isi ke samping
jual[3][i_b][i_k] += jual [i_m] [i_b] [i_k];
//isi kebawah
jual[3][12][i_k] += jual[i_m][i_b][i_k];
//isi ke total
jual[i_m][i_b][3] +=jual[i_m][i_b][i_k];
//isi ke lapis ke-4
}
gotoxy(59,i_m+6);
printf("%d",jual[i_m][12][i_k]);
}
gotoxy(11,10);
for(i_b =0; i_b<13;i_b++)
printf("%d",jual[3][i_b][i_k]);
fflush(stdin);
getch();
}
}
void total_jual(int jual[4][13][4])
{
int i_m, i_b;
for(i_m =0; i_m<3; i_m++)
for(i_b =0; i_b<12; i_b++)
{
jual[i_m][12][3] += jual[i_m][i_b][3];
//tambah ke samping
jual[3][i_b][3] +=jual[i_m][i_b][3];
//tambah ke bawah
jual[3][12][3] +=jual[i_m][i_b][3];
//tambah ke grand total
}
judul("semua");
for(i_m =0; i_m<4; i_m++)
{
i_m == 3?gotoxy (11,i_m +7):gotoxy(11,i_m +6);
for(i_b=0; i_b<13; i_b++)
printf("%-4d",jual[i_m][i_b][3]);
}
}
int main()
{
int jual[4][13][4] ={0};
//merek,bulan,kota
isi_data(jual);
total_jual(jual);
return 0;
}
Hasil Running
Pembahasan
Dalam
program tersebut merupakan sebuah program input data penjualan mobil bekas
dimasing – masing cabang atau kota dalam 12 bulan, pertama – tama masukan
penjualan barang pada merek mobil perbulan, setelah itu hitung jumlah
keseluruhan dengan syntax
jual[i_m][12][3] += jual[i_m][i_b][3];
//tambah ke samping
jual[3][i_b][3] +=jual[i_m][i_b][3];
//tambah ke bawah
jual[3][12][3] +=jual[i_m][i_b][3];
//tambah ke grand total
Syntax diatas adalah sebuah variable array yang di
inputkan, jadi variabel pertama kan menjumlahkan dari bulan 1 ke 12, variable
ke 2 menjumlah per bulan , variable 3 menjumlah keseluruhan.
Study Kasus
Praktikum 4.3
Dalam
suatu kumpulan angka yang tidak beraturan kita diminta untuk mengurutkan dari
mulai angka yang terkecil hingga yang terbesar, tipe data yang dapat menangani
kasus ini yang effisien adalah tipe data array.
Script Study Kasus
Praktikum 3.3
#include<stdio.h>
#include<conio.h>
void bubblesort (int data[],int n)
{
int i, j=0, temp, flag=1;
while(flag)
{
flag =0;
for(i=0; i<n; i++)
{
if(data[i]>data[i+1])
{
temp = data[i];
data[i] = data[i+1];
data[i+1] =temp;
flag++;
}
}
}
}
main()
{
int data[1000];
int n,i;
printf("__________.::BUBBLE
SORT:.__________\n");
printf("masukan angka (maks 1000):");
scanf("%d",&n);
printf("Data (pisahkan angka dengan
spasi):");
for(i=0; i<n; i++)
scanf("%d",&data[i]);
bubblesort(data,n);
printf("\n Output after sort :\n");
for(i=0; i<n;i++)
printf("%d",data[i]);
getch();
return 0;
}
Hasil Running :
Pembahasan
Program diatas adalah sebuah program untuk mengurutkan
angka dari kecil ke besar dengan input tak beraturan, dan untuk mendapatkan
hasil seperti itu menggunakan intruksi pengulanga yaitu while dan for
while(flag)
{
flag =0;
for(i=0; i<n; i++)
{
if(data[i]>data[i+1])
{
temp = data[i];
data[i] = data[i+1];
data[i+1] =temp;
flag++;
}
Jadi while itu mempunyai kondisi flag itu harus 1 jika
tidak 1 maka while itu tidak akan di lakukan, nah dalam while terdapat intruksi
for untuk mengulang nilai yang di masukan dan mengidentifikasi nilai mana yang
lebih kecil, hadir jika (if (data[i]>data[i+1])) maka if itu akan berjalan
dan temp mempunyai nilai yang sama dengan data[i], dan data[i] sama dengan
data[i+1]; , data[i+1] sama dengan temp, jadi itu gunanya untuk mengulang –
ulang nilai sedangkan untuk flag nilai awalnya adalah 0 dan flag ++ jadi 0 itu
akan di tambah, jika anda memasukan script printf(“%d”,flag) maka yang akan
muncul adalah 123456123451234123121, nah flag ini digunakan untuk menentukan
kondisi perulangan while itu jika sudah flagnya sudah satu maka perulangan
while tidak akan di jalan kan, jadi flag pertama 1-6 itu menunjukan data[i]
sudah menemukan nilai terkecilnya seterusnya 1-5 berarti sudah menemukan nilai terkecil
ke 2 sampai flag = 1 maka itu adalah nilai terbesar yang sudah di temukan,
setiap nilai yang sudah ketemu maka flag itu akan berkurang.
Study Kasus
Latihan 4.1
Terdapat
beberapa nilai masukan yang akan diolah semua nilai bertipa data integer dari
semua nilai yang di masukan terdapat nilai terbesar dan nilai terkecil, setiap
data yang diinput disimpan dalam variable arrar, perbaikilah program dibawah
ini agar dapat menyelesaikan kasus di.atas
Script Study Kasus
Latihan 4.1
#include<iostream.h>
#include<conio.h>
int main()
{
int max, i, n, min;
float A[100];
cout<<" Masukan Jumlah Data : ";
cin>>n;
for(i=1; i<=n; i++)
{
cout<<" Masukan Bilangan Ke
["<<i<<"] : ";
cin>>A[i];
}
for(i=1; i<=n; i++)
{
if(i==1)
{
min = A[i];
max = A[i];
}
else if (min > A[i])
{
min = A [i];
}
else if(max < A[i])
{
max = A[i];
}
}
cout<<" Nilai Terbesar Asalah :
"<<max<<endl;
cout<<" Nilai Terkecil Adalah :
"<<min<<endl;
getch();
return 0;
}
Hasil Running:
Pembahasan
Program
diatas adalah sebuah program mencari nilai terbesar dan terkecil dalam sebuah
bilangan yang di tampung dalam variable array, pertama – tama inputkan dulu
nilai yang akan di cari nilai terkecil dan terbesarnya, setelah itu masukan
scrip
for(i=1; i<=n; i++)
{
if(i==1)
{
min = A[i];
max = A[i];
}
else if (min > A[i])
{
min = A [i];
}
else if(max < A[i])
{
max = A[i];
}
}
Jadi for ini berguna untuk mengulang nilai yang di
input dan dalam intruksi for terdapa if dan else if yang gunanya untuk memilih
atau mengidentifikasi nilai yg benar sesai kondisi if, jadi jika nilai pertama
itu lebih kecil maka akan masuk ke else if min > A[i], tapi blum sampai
disitu saja, lanjut ke nilai ke 2 apakan lbih kecil dari nilai pertama jika ya
maka nilai ke 2 mengambil posisi nilai terkecil dan nilai pertama akan menjadi
nilai terbesar sementara sampai inlai yang lain ter identifikasi.
Nah
itulah sebuah program beserta pembahasan yang dapat saya, mungkin sampai disini
dulu pembahasan yang bisa saya posting, semoga postingan ini dapat bermanfaat bagi
kalian semua. Jangan lupa ya jika kalian mempunyai kritik dan
saran silahkan tambahkan pada kolom komentar. Terima kasih atas kunjungan
kalian.




Sudah Diperiksa
BalasHapus