MODUL 4 ARRAY DALAM FUNGSI

LAPORAN PRAKTIKUM MODUL IV STRUKTUR DATA
ARRAY DALAM FUNGSI

ANDIKA PRATAMA
20160910005
SI 2016 B

UNIVERSITAS KUNINGAN

DASAR TEORI
Array dalam function adalah penggunaan variabel array pada saat pendeklarasian fungsi, hal ini dinilai lebih efisien dalam menyelesaikan kasus-kasus matrik yang berukuran cukup besar. dengan menggunakan suatu fungsi maka proses pengulangan sintaks tidak perlu dilakukan cukup hanya menjalankan fungsi yang bervariabel array conyoh :

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

pendeklarasian sebuah aray dalam sebuah sub program atau fungsi 

fungsi nama fungsi (parameter tipe data array)


Praktikum 4.1

Compiler : borland C++
  • study kasus
Dalam sebuah deret bilangan yang dikumpulkan dalam variabel array yang terdiri dari 10 elemen, dari setiap bilangan tersebut memiliki alamat indeksnya, dengan memasukan sebuah bilangan yan terdapat divariabell array kita dapat mengetahui alamat indeks dari bilangan tersebut pada nomor indeks berapa bilangan itu tersimpan.
  • syntax
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
int main()
{
int A[10]={12,24,13,25,10,11,21,20,15,18};
int bil;
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(bil==A[c])
    {
        cout<<"bilangan yang anda cari berada di indeks ke- "<<c;
      break;
if(bil!=A[c])
        cout<<"\nbilangan yang anda cari tidak terdaftar";
      }
}
getch();
return 0;
}

  • hasil run
  • analisis 
Program diatas adalah program menemukan indeks yang mempunyai sebuah nilai yang sudah disimpan pada variabel array dengan memasukan nilai bilangan tersebut secara manual. pemunculan statemant indeks-[0] - indeks-[9] menggunakan intruksi for yang mana berguna untuk membuat statemant dibawahnya melakukan looping atau pengulangan. struktur masukan disini menggunakan cout dan cin yang hanya bisa digunakan pada file header iostream ,proses yang melakukan pencarian indeks dengan memasukan nilai menggunakan struktur pemilihan if :

if(bil==A[c])
    {
        cout<<"bilangan yang anda cari berada di indeks ke- "<<c;
      break;
if(bil!=A[c])
        cout<<"\nbilangan yang anda cari tidak terdaftar";
      }


Dimna cara program menginisiasi atau melakukan pemilihannya dengan cara jika bil = A[c] maka program akan melakukan intruksi :

        cout<<"bilangan yang anda cari berada di indeks ke- "<<c;
      break;


Namun jika pemilihan pertama tidak termasuk dalam nilai yang sudah ditentukan maka program akan melakukan statemant if yang kedua : 

  cout<<"\nbilangan yang anda cari tidak terdaftar"; 
 
Praktikum 4.2

Compiler : borland C++
  • study kasus
Mobil 13 adalah perusahaan yang menjual mobil bekas,berdagang mobil bekas selama bertahun-tahun ternyata hanya ada tiga merk 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 diperhitungkan 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(int jual [4] [13] [4])
 {
  char kota [4] [11] = {"Jakarta", "Surabaya" ,"Medan", "semua kota"};
  int i_k, i_m, i_b;

  for (i_k = 0; i_k < 3; i_k++)
  {

   judul (kota[i_k]);
   for (i_m = 0; i_m < 3; i_m++)
   {
   for (i_b = 0; i_b < 12; i_b++)
   {
    gotoxy(11 + 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];
    jual [3] [i_b] [i_k] += jual [i_m] [i_b] [i_k];
    jual [3] [12] [i_k] += jual [i_m] [i_b] [i_k];
    jual [i_m] [i_b] [3] += jual [i_m] [i_b] [i_k];
    }
    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 ("%-4d", 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];
   jual [3] [i_b] [3] += jual [i_m] [i_b] [3];
   jual [3] [12] [3] += jual [i_m] [i_b] [3];
  }

  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};
  isi_data(jual);
  total_jual(jual);
  return 0;
}

  • hasil run


  • analisis 
Program diatas adalah program perhitungan penjualan sebuah mobil bekas dalam setiap bulan disuatu kota.mobil diatas mempunyai 3 jenis merk mobil yaitu suzuki,toyota,honda dan program diatas menghitung dalam 12 bulan.Program diatas dalam prosesnya menggunakan 3 intruksi function :

function pertama :

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


function kedua : 

  void isi_data(int jual [4] [13] [4])
 {
  char kota [4] [11] = {"Jakarta", "Surabaya" ,"Medan", "semua kota"};
  int i_k, i_m, i_b;

  for (i_k = 0; i_k < 3; i_k++)
  {

   judul (kota[i_k]);
   for (i_m = 0; i_m < 3; i_m++)
   {
   for (i_b = 0; i_b < 12; i_b++)
   {
    gotoxy(11 + 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];
    jual [3] [i_b] [i_k] += jual [i_m] [i_b] [i_k];
    jual [3] [12] [i_k] += jual [i_m] [i_b] [i_k];
    jual [i_m] [i_b] [3] += jual [i_m] [i_b] [i_k];
    }
    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 ("%-4d", jual [3] [i_b] [i_k]);
    fflush(stdin);
    getch ();
   }
  }


function ketiga :

  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];
   jual [3] [i_b] [3] += jual [i_m] [i_b] [3];
   jual [3] [12] [3] += jual [i_m] [i_b] [3];
  }

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


Dan pada hasil akhir menggunakan fungsi main : 

int main()
{
  int jual[4] [13] [4] = {0};
  isi_data(jual);
  total_jual(jual);
  return 0;
}
 

Praktikum 4.3

Compiler : borland C++
  • Study kasus
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 (mask 1000) : ");
 scanf ("%d", &n);
 printf ("Data angka dengan spasi : ");
 for (i = 0; i<n; i++)
 scanf ("%d", &data[i]);
 bubbleSort(data, n);
 printf ("\nOutput after sort : \n");
 for (i = 0; i < n; i++)
 printf ("%d", data[i]);
 getch ();
 return 0;
}

  • hasil run
  • analisis 
Program diatas adalah program yang mengurutkan sebuah nilai dari yang terkecil hingga terbesar dengan nilai yang kita masukan secara manual.Proses memasukan nilai secara manual program diatas menggunakan scanf dan program diatas dalam proses pengurutan nilainya menggunakan sebuah rumus  :  
    temp = data [i];
    data [i] = data [i + 1];
    data [i + 1] = temp;
    flag++;

dan dalam prosesnya tersebut program diatas menggunakan function dalam menyelesaikan pengurutan suatu nilai 

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


Dan dalam hasil akhir prorgam diatas menggunkan fungsi main :

main ()
{
 int data [1000];
 int n, i;
 printf ("______.::BUBBLE SORT ::._______\n");
 printf ("masukan angka (mask 1000) : ");
 scanf ("%d", &n);
 printf ("Data angka dengan spasi : ");
 for (i = 0; i<n; i++)
 scanf ("%d", &data[i]);
 bubbleSort(data, n);
 printf ("\nOutput after sort : \n");
 for (i = 0; i < n; i++)
 printf ("%d", data[i]);
 getch ();
 return 0;
}
 


fungsi main ini mempunyai struktur dimana tipe data yang digunakannya adalah tipe data integer dan variabel array ,penggunaan variabel tersebut agar membuat penggunaan nilai dalam sebuah program menjadi lebih efisien. 
Latihan 1

Compiler : borland C++
  • study kasus
Terdapat beberapa nilai masukan yang akan diolah semua nilai bertipe data integer dari semua nilai yang dimasukan terdapat nilai tebesar dan terkecil , setiap data yang diinput  disimpan dalam variabel array .
  • syntax
#include<iostream.h>
#include<conio.h>
int main()
{
    int max, n, i, 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 adalah : "<<max<<endl;
    cout<<"nilai terkecil adalah : "<<min<<endl;
    getch();
    return 0;
}

  • hasil run
  • analisis 
Program diatas adalah program yang mencari nilai terbesar dan terkecil dimana nilai yang kita masukan akan diolah oleh program lalu dipilih mana yang paling besar dan mana yang paling kecil.nilai diatas dimasukan secara manual menggunakan instruksi cout (untuk menampilkan statemant) cin (untuk memasukan nilai secara manual ke dalam suatu variabel).intruksi for berguna untuk membuat statemant dibawah for melakukan looping sebanyak berapa kita memasukan jumlah data yang kita masukan secara manual.proses pencarian nilai terbesar dan terkecil menggunakan struktur if dan else :

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



Comments

Post a Comment

Popular Posts