Get me outta here!

Jumat, 28 April 2017

LAPORAN PRAKTIKUM STRUKTUR DATA MODUL 4

LAPORAN PRAKTIKUM
STRUKTUR DATA
MODUL 4
ARRAY DALAM FUNGSI

Diajukan Untuk Memenuhi Salah Satu Tugas
Metode Pembelajaran Praktikum Stuktur Data

Dosen: EndraSuseno, M.Kom


Di Susun Oleh :
Dera Dwi Bernika
20160920120
SI A 2016

FAKULTAS ILMU KOMPUTER
UNIVERSITAS KUNINGAN
Jalan Cut NyakDien No 36 A, Kel.Cijoho, Kuningan, Jawa Barat, Indonesia
2017



DASAR TEORI :

Dalam function dengan array adalah penggunaan variabel array pada saat pendeklarasian fungsi, hal ini dinilai lebih efisien dalam menyelesaikan kasus-kasus matriks yang berukuran cukup besa, dengan menggunakan suatu fungsi maka suatu proses pengulangan sintaks tidak perlu dilakukan cukup hanya menjalankan fungsi yang bervariabel array contoh:

Void isi_larik (int a[10][10])

Pendeklarasian sebuah array dalam sebuah sub program atau fungsi
Fungsi Nama Fungsi (Parameter Tipe Data Array)

Keunggulan Array :  
  •    Array sangat cocok pengaksesan acak, sembarang elemen pada array dapat diakses secaraa langsung tanpa melalui elemen-elemen lain.
  •    Jika berada dilokasi suatu elemen, maka sangat mudah untuk menelusuri ke elemen sekitarnya baik baik elemen sebelumnya maupun setelahnya.
  •       Jika elemen-elemen array adalah nilai independen dan seluruhnya harus terjaga, dengan penyimpanan dengan array akan sangat efisien.

Kelemahan Array:
  •    Array harus bertipe homogen, kita tidak dapat memiliki elemen array yang berlainan.
  •      Kebanyakan bahasa pemrograman mengimplementasikan array statik yang sulit diubah ukurannya diwaktu eksekusi. Bila penambahan dan pengurangan terjadi terus menerus, maka representasi statis menjadi tidak mungkin hal ini berakibat pada
Ø  Penggunaan memory menjadi tidak efisien
Ø  Membuang banyak waktu dalam komputasi
Ø  Pada suatu aplikasi, representasi statis tidak mungkin.






PRAKTIKUM 4.1

STUDI KASUS 4.1 :

Dalam sebuah deret bilangan yang dikumpulkan dalam variabel array yang terdiri dari 10 elemen, dari setiap bilangan tersebut memiliki alamat indeksnya, dengan memasukkan sebuah bilangan yang terdapat di variabel array kita dapat mengetahui alamat indeks dari bilangan tersebut pada nomor indeks berapa bilangan indeks itu tersimpan.


SYNTAX :

#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(int c = 0; c < 10; c++)
  {

     if(A[c] == bil)
     {
      cout<<"Bilangan Yang Dicari Berada Di Indeks Ke-"<<c;
      break;
      }
      }
      if(bil!=A[c])
       cout<<"\nBilangan Yang Anda Cari Tidak Terdaftar";
      getch();
  return 0;
}

HASIL RUNNING :


PEMBAHASAN:

Dalam program tersebut digunakan untuk mencari nilai pada indeks, kita masukan nilai yang akan dicari indeksnya sesuai pada pilihan tersebut. Program ini menggunakan variabel array yang berguna untuk menampung nilai dalam 1 variabel, dalam variabel 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 dimana kegunaannya yaitu 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.



PRAKTIKUM 4.2

STUDI KASUS 4.2 :

Mobil 13 adalah perusahaan yang menjual mobil bekas, berdagang mobil bekas selama bertahun-tahun ternyata hanya ada tida merek 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 semakin banyaknya konsumen yang percaya dengan kualitas mobil bekas yang dijual oleh mobil 13 perusahaan membutuhkan program yang dapat mencatat semua penjualan mobil bekas perbulan disetiap cabangnya, selama ini masih diperhitungan yang masih bersifat manual dalam bentuk bagan diatas kertas.

SYNTAX :

#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(long 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-4d",jual[3][i_b][i_k]);
fflush(stdin);
getch();
}
}

void total_jual(long 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("%l",jual[i_m][i_b][3]);
}
}


int main()
{
long jual[4][13][4];
//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.


PRAKTIKUM 4.3
STUDI KASUS 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.

SYNTAX :

#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:

Dalam program tersebut  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, 


LATIHAN 4.1

Terdapat beberapa nilai masukan yang akan diolah semua nilai bertipe data integer dari semua nilai yang dimasukan terdapat nilai terbesar dan nilai terkecil, setiap data yang diinput disimpan dalam variabel array, perbaikilah program dibawah ini agar dapat menyelesaikan kasus diatas

SYNTAX :

#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:

Dalam program tersebut  adalah sebuah program mencari nilai terbesar dan terkecil dalam sebuah bilangan yang di tampung dalam variable array, pertama kita 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 sesuai kondisi if, jadi jika nilai pertama itu lebih kecil maka akan masuk ke else if min > A[i], tapi belum sampai disitu saja, lanjut ke nilai ke 2 apakan lebih 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.




1 komentar: