Selasa, 11 April 2017

Array Dalam Fungsi Modul 4

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


1 komentar: