Selasa, 05 Juni 2012

Pert. 7 Array

Array adalah variabel Larik atau lebih dikenal dengan ARRAY adalah adalah Tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe yang sama. Suatu Array mempunyai jumlah komponen yang banyaknya tetap. Banyaknya komponen dalam suatu larik ditunjukan oleh suatu indek untuk membedakan variabel yang satu dengan variabel yang lainnya.
Dalam bahasa C, index dari array dimulai dengan 0 (zero).

Variabel array dalam Borland C++, dapat digolongkan menjadi dua buah dimensi :
•Array Berdimensi Satu.
•Array Berdimensi Dua

 1. Array Berdimensi Satu
Sebelum digunakan, variabel array perlu dideklarasikan terlebih dahulu. Cara mendeklarasikan variabel array sama seperti deklarasi variabel yang lainnya, hanya saja diikuti oleh suatu indek yang menunjukan jumlah maksimum data yang disediakan.

Bentuk Umum pendeklarasian array :
Tipe-Data Nama_Variabel[Ukuran];
Keterangan :
•Type Data : Untuk menyatakan type data yang digunakan.
•Ukuran : Untuk menyatakan jumlah maksimum elemen array.


Suatu array dapat digambarkan sebagai kotak panjang yang berisi kotak-kotak kecil didalam kotak panjang tersebut.



 2. Array Berdimensi Dua
Array dimensi dua tersusun dalam bentuk baris dan kolom, dimana indeks pertama menunjukan baris dan indeks kedua menunjukan kolom. Array dimensi dua dapat digunakan seperti pendatan penjualan, pendataan nilai dan lain sebagainya.

Bentuk Umum pendeklarasian array :
Tipe-Data Nama_Variabel[index-1][index-2];
Keterangan :
•Type Data : Untuk menyatakan type data yang digunakan.
•Index-1 : Untuk menyatakan jumlah baris
•Index-2 : Untuk menyatakan jumlah kolom

contoh pendeklarasian array

a.  Inisialisasi Array
Inisialisasi adalah memberikan nilai awal terhadap suatu variabel. Bentuk pendefinisian suatu array dapat dilihat dari contoh berikut :

Tipe_data nama_array[jml_elemen] = { nilai array };

b. Mengakses Array
Suatu array dapat di akses dengan menggunakan subscript atau indexnya . Bentuk umum pengaksesan dengan bentuk :
 

3. Sorting Dalam C++
         3.a Selection sort
Tehnik  pengurutan  dengan  cara  pemilihan  elemen  atau  proses  kerja   dengan
memilih  elemen  data  terkecil  untuk  kemudian  dibandingkan  &  ditukarkan  dengan
elemen  pada data a wal, dst  sampai seluruh e lemen shg a kan menghasilkan pola data
yg telah disort. 
Prinsip kerja dari teknik ini adalah sbb : 
   1.  Pengecekan dimulai data ke-1 sampai dengan data ke-n
   2.  Tentuka n bilangan dengan Index terkecil dari data bilangan tersebut
   3.  Tukar bilangan de ngan Index terkecil te rsebut dengan bilangan  pertama( I = 1)dari data bilangan tersebut
4.  Lakukan langkah 2 dan 3 untuk bilangan berikutnya  ( I= I+1 ) sampai didapatkan urutan yang optimal.


contoh :
#include<stdio.h>
main()
{
int A[100],n,t,i,j;
printf("\nMasukkan jumlah list : ");
scanf("%d",&n);
printf("\nMasukkan elemen-elemen list : ");
for(i=0;i<n;i++)
scanf("%d",&A[i]);

for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++) 
{
if(A[i]>A[j])
{
t=A[i];
A[i]=A[j];
A[j]=t;
}
}
}

printf("\nList yang sudah diurutkan adalah sebagai berikut : \n");
for(i=0;i<n;i++)
printf(" %d",A[i]);
printf("\n");


Implementasi program diatas dengan C++ adalah sebagai berikut:

#include<iostream>
using namespace std;

main()
{
int A[100],n,t,i,j;
cout<<"\nMasukkan jumlah list : ";
cin>>n;
cout"\nMasukkan elemen-elemen list : ";
for(i=0;i<n;i++)
cin>>A[i];

for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(A[i]>A[j])
{
t=A[i];
A[i]=A[j];
A[j]=t;
}
}
}

cout<<"\nList yang sudah diurutkan adalah sebagai berikut : \n";
for(i=0;i<n;i++)
cout<<A[i]<<" ";
cout<<endl;
}

3.b Buble sort
Prinsip Kerja dari Bubble Sort adalah :
1.  Pengecekan mulai dari data ke-1 sampai  data ke-n
2.  Bandingkan data ke-n dengan data sebelumnya (n-1)
3.  Jika lebih kecil maka pindahkan bilangan tersebut dengan bilangan yang ada didepannya ( sebelumnya  ) satu persatu  (n-1,n-2,n-3,....dst)
4.  Jika lebih be sar maka tidak terjadi pemindahan 
5.  Ulangi langkah 2 dan 3 s/d sort optimal.  

contoh :

 #include <stdio.h>
#include <conio.h>
void main ()
{
int A[5]={3,4,1,2,8},i,j,tampung;
printf("Sebelum Sorting    :\n");
for (i=0;i<5;i++)
{
    printf("%d",A[i]);
}
for (i=1;i<5;i++)
{
        for(j=0;j<=i;j++)
    {
       if(A[j]>A[j+1])
      {
      tampung=A[j];
      A[j]=A[j+1];
      A[j+1]=tampung;
      }
   }
}
        printf("\n\nSetelah Sorting     :\n");
      for (i=0;i<5;i++)
    {
       printf("%d",A[i]);
   }
getch();
}


HASIL KELUARAN :













3.c insertion sort
Prinsip  dasar  Insertion  adalah  sec ara  berulang-ulang  menyisipkan  /  memasukan
setiap elemen. ke dlm posisinya / tempatnya yg benar.
1.  Prinsip Kerja Insertion Sort adalah 
2.  Pengecekan mulai dari data ke-1 sampai  data ke-n 
3.  Bandingkan data  ke-I ( I = data ke-2 s/d data ke-n )
4.  Bandingkan data  ke-I te rsebut dengan data sebelumnya (I-1), Jika lebih kecil
maka data tersebut dapat disisipkan ke data awal sesuai dgn posisisi yg
seharusnya 
5.  Lakukan langkah 2 dan 3 untuk bilangan berikutnya  ( I= I+1 ) sampai didapatkan urutan yg optimal. 

contoh :
#include <iostream.h>
#include <conio.h>

int data[10],data2[10];
int n;

void tukar(int a, int b)
{
 int t;
 t = data[b];
 data[b] = data[a];
 data[a] = t;
}

void insertion_sort()
{
 int temp,i,j;
 for(i=1;i<=n;i++)
 {
  temp = data[i];
  j = i -1;
  while(data[j]>temp && j>=0)
  {
   data[j+1] = data[j];
   j--;
  }
 data[j+1] = temp;
 }
}
void main()
{
 cout<<"===PROGRAM INSERTION SORT==="<<endl;

 //Input Data
 cout<<"Masukkan Jumlah Data : ";
 cin>>n;
 for(int i=1;i<=n;i++)
 {
  cout<<"Masukkan data ke "<<i<<" : ";
  cin>>data[i];
  data2[i]=data[i];
 }

 insertion_sort();

 cout<<"\n\n";
 //tampilkan data
 cout<<"Data Setelah di Sort : ";
 for(int i=1; i<=n; i++)
 {
  cout<<" "<<data[i];
 }
 cout<<"\n\nSorting Selesai";
 getch();
}


HASIL KELUARAN :
 

 LATIHAN HAL. 100


 1. Sebuah perusahaan ayam goreng dengan nama “GEROBAK FRIED
CHICKEN” yang telah lumayan banyak pelanggannya, ingin dibantu dibuatkan
program untuk membantu kelancaran usahaannya.
“GEROBAK FRIED CHICKEN” mempunyai daftar harga ayam sebagai
berikut :
Kode Jenis Harga
----------------------------------
D Dada Rp. 2500
P Paha Rp. 2000
S Sayap Rp. 1500
----------------------------------

 Buatlah programnya dengan ketentuan:
• Setiap pembeli dikenakan pajak sebesar 10% dari pembayaran.
• Banyak Jenis, Jenis Potong dan Banyak Beli diinput.
• Tampilan yang diinginkan sebagai berikut:
Layar Masukkan
GEROBAK FRIED CHICKEN
---------------------
Kode Jenis Harga
--------------------------
D Dada Rp. 2500
P Paha Rp. 2000
S Sayap Rp. 1500
--------------------------
Banyak Jenis : ... <diinput>
Jenis Ke - ... <proses counter>
Jenis Potong [D/P/S] : ... <diinput>
Banyak Potong : ... <diinput>
<<Terus berulang tergantung Banyak Jenis>>
Layar Keluaran
GEROBAK FIRED CHICHEN
-------------------------------------------------------------
No. Jenis Harga Bayak Jumlah
Potong Satuan Beli Harga
-------------------------------------------------------------
... ....... .... .... Rp ....
... ....... .... .... Rp ....
------------------------------------------------------------
Jumlah Bayar Rp ....
Pajak 10% Rp ....
Total Bayar Rp ....







JAWAB..!!

#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <iomanip.h>
#include <string.h>

main( )
{
int x ,a ,ulangi;
char jenis[6] = {'D','d','P','p','S','s'} ,*ket[6];
long bapot[6], jumhar[6] = {0}, hasat[6] = {2500 ,2000 ,1500};
long jumbar[6]= {0}, pajak[6], totba[6];
pesan:
clrscr( );
cout<<"\tGEROBAK FRIED CHICKEN\n";
cout<<"\t---------------------\n";
cout<<"\t Kode Jenis Harga\n";
cout<<"\t---------------------\n";
cout<<"\t [D] Dada  Rp. 2500\n";
cout<<"\t [P] Paha  Rp. 2000\n";
cout<<"\t [S] Sayap Rp. 1500\n\n";
cout<<"\t---------------------\n\n";
cout<<"\tBanyak Jenis : ";cin>>x;
jumbar[x] = 0;
    if (x <= 0)
   {
   cout<<"\n\t\tBanyak Jenis Tidak Boleh Null";
   goto akhir;
   }
   else
   {
        for(a = 1 ; a <= x; ++a)
       {
      cout<<"\tJenis Ke - "<<a;
        cout<<"\n\tJenis Potong [D/P/S] : ";cin>>jenis[a];
        cout<<"\tBanyak Potongan : ";cin>>bapot[a];
      cout<<"\t------------------------\n";
           if (jenis[a] == 'D' || jenis[a] == 'd')
             {
               ket[a] = "Dada ";
               hasat[a] = 2500;
            }
           else if (jenis[a] == 'P' || jenis[a] == 'p')
             {
            ket[a] = "Paha ";
               hasat[a] = 2000;
            }
           else if (jenis[a] == 'S' || jenis[a] == 's')
             {
            ket[a] = "Sayap";
               hasat[a] = 1500;
            }
           else
               {
              cout<<"\nAnda Salah Masukan Kode Jenis Potongan.";
              hasat[a] = 0;
              }
      jumhar[a] = hasat[a] * bapot[a];
      jumbar [x] = jumbar[x] + hasat[a] * bapot[a];
          if (jumbar[x] == 0)
             {
             pajak[x] = 0;
            totba[x] = 0;
            }
         else
             {
                pajak[x] = jumbar[x] * 0.1;
                totba[x] = jumbar[x] + pajak[x];
            }
      }
   }
cout<<"\n\n\tGEROBAK FRIED CHICKEN\n";
cout<<"------------------------------------------------\n";
cout<<"No.| Jenis     | Harga     | Banyak | Jumlah\n";
cout<<"   | Potong    | Satuan    | Beli   | Harga\n";
cout<<"================================================\n";
    for (a = 1; a <= x; ++a)
   {
    cout<<" "<<a<<" | "<<ket[a]<<"     | "<<hasat[a];
   cout<<"      | "<<bapot[a]<<"      | Rp. "<<jumhar[a]<<endl;
    }
cout<<"------------------------------------------------\n";
cout<<"\t\t\tJumlah Bayar  Rp. "<<jumbar[x]<<endl;
cout<<"\t\t\tPajak 10%     Rp. "<<pajak[x]<<endl;
cout<<"\t\t\tTotal Bayar   Rp. "<<totba[x];
cout<<"\n\n\tAnda Ingin Memesan Lagi? [Y/T] = ";
ulangi = getche();
    if (ulangi == 'Y' || ulangi == 'y')
       goto pesan;
   else
       cout<<"\n\n\t\tTerima Kasih";
akhir:
getch( );
}

HASIL KELUARAN :
































 












Tidak ada komentar:

Posting Komentar