Pages

Selasa, 10 Januari 2012

LOOPING (USING FOR) PADA C++

Statement Perulangan (Looping)

Didalam c++ Statemen perulangan ada 3
Statement FOR
  Statement pengulangan jenis ini digunakan untuk melakukan pengulangan yang telah diketahui banyaknya.
  Pengulangan dengan menggunakan statement ini, kita harus memiliki sebuah variabel sebagai indeksnya. Namun tipe data dari variabel yang akan digunakan sebagai indeks haruslah tipe data yang mempunyai urutan yang teratur,misalnya tipe data int (0, 1, 2…) atau char (‘a’, ‘b’,’c’…).


Keterangan :
Variabel sebagai indeks atau kontrol yang berfungsi sebagai Counter.
Counter adalah suatu variabel yang nilainya bertambah dengan 1 atau lebih setiap kali terjadi pengulangan proses.
Nilai awal indeks.   Kondisi adalah Nilai akhir indeks
Bentuk umum :
//Untuk pengulangan yang sifatnya menaik (increment)
for (variabel = nilai_awal; kondisi; variabel++)
{
            Statement_yang_akan_diulang;
}

//Untuk pengulangan yang sifatnya menurun (decrement)
for (variabel = nilai_awal; kondisi; variabel--)
{
            Statement_yang_akan_diulang;
}

Contoh Program Menggunakan For
#include <iostream.h>
#include <conio.h>
void main()
{
  int C;
  int j;
  clrscr();
  cout<<"PENGULANGAN MENAIK"<<endl;
  for (C=0;C<10;C++)
  {
    cout<<C+1<<endl;
  }
  cout<<endl;
  cout<<"PENGULANGAN MENURUN"<<endl;
  for (j=10;j>0;j--)
  {
    cout<<j<<endl;
  }
  getch();
}


Selamat Belajar

DECISION PADA C++


DECISION (Using IF)
Pernyataan If mempunyai pengertian “jika kondisi bernilai benar, maka perintah akan dikerjakana dan jika tidak memenuhi syarat maka akan diabaikan.
Contoh program:
Kasus : tentukan besarnya nilai bilangan , 2 dan 6 yang manakah nilainya yang lebih besar.
Dari kasus diatas maka dapat dibuatkan program sebagai berikut:

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

                void main()
                {
                   cout<<"****Program Dalam Mencari Bilangan Terbesar****"<<endl;
                   int a, b, max;
      a=2;
      b=6;
                   cout<<"Bilangan = " <<a<<" , "<<b<<endl;


                   if(a > b)
                      max = a;
                   else
                      max = b;

                   cout<<" Bilangan Terbesarnya adalah = "<<max;
                   getch();
                }

PENGENALAN REKURSIF PADA C++

REKURSIF
Rekursif merupakan alat/cara untuk memecahkan masalah dalam suatu fungsi atau procedure yang memanggil dirinya sendiri.
Contoh Program Rekursif :

#include <iostream.h>
#include <conio.h>
    void ulang (int n);
    void reulang (int n);
                void main()
                {
                   ulang(3);
      cout<<endl;
      reulang(3);
      getch();
   }
     void ulang (int n)
   {
                int i;
      for (i=1;i<=n;i++)
      {
      cout<<i<<endl;
      }
   }
                void reulang (int n)
   {
                static int i=0;
      if (n<0) return;
      i+=1;
      cout<<i<<endl;
      reulang (n-1);
   }

PENGENALAN VOID (PROCEDURE/FUNCTION)

VOID (PROCEDURE/FUNCTION)

Sebuah function berisi sejumlah pernyataan yang dikemas dalam sebuah nama.
Nama ini selanjutnya dapat dipanggil beberapa kali di beberapa tempat dalam program.
Tujuan
memudahkan dalam mengembangkan program. Program dibagi menjadi beberapa subprogram kecil, sehingga hal ini menjadi kunci dalam pembuatan program terstruktur.
menghemat ukuran program, karena beberapa perintah yang sama dan dijalankan beberapa kali dalam program dapat dijadikan satu kali saja dalam suatu function, kemudian function tersebut dapat dipanggil berulang kali.

Contoh 1
#include <conio.h>
#include <iostream.h>
void garis(); // prototype function Atau Mendeklarasi
void main() // main function
{
clrscr();
garis(); // panggil function
cout << “NIM NAMA MAHASISWA” << endl;
garis(); // panggil function
cout << “M0197001 AMIR HAMZAH “ << endl;
cout << “M0197002 PAIMAN” << endl;
garis(); // panggil function
getch();
}
void garis() // detail function Atau mendefinisikan
{
int i;
for(i=0;i<=40;i++)
{
cout << “-”;
}
cout << endl;
}

Contoh 2
#include<iostream.h>
#include<conio.h>
void CETAK();
void main()
{
CETAK();
getch();
}
void CETAK()
{
cout<<“JAKARTA”;
}

Prosedur/Function dapat ditulis sebelum atau sesudah fungsi utama(main)
Bila ditulis sesudah fungsi main, maka perlu membuat suatu prototype(Deklarasi) dari function tersebut. Prototype function memiliki sintaks sbb:
returned_value_data_type   nama_function(argumen);
Bila ditulis sebelum fungsi main, maka tidak perlu membuat suatu prototype(Deklarasi) dari function tersebut.
Suatu function dapat mengembalikan (return) suatu nilai (value) yang tergantung tipe datanya. Tipe data value yang dikembalikan inilah yang dimaksud dengan returned_value_data_type.
Sedangkan argumen merupakan parameter-parameter yang akan diolah dalam function tersebut
Argumen boleh ada boleh tidak, sesuai kebutuhan. Apabila parameter argumennya lebih dari satu, cara penulisannya sbb:
tipe_data param1, tipe_data param2, ...

Contoh penulisan prototype function:
double kuadrat(int x);
float luas_segitiga(float alas, float tinggi);
int jumlah_bil(int x, int y, int z);

Apabila suatu function tidak mengembalikan nilai, maka returned_value_data_type nya diisi void atau sering disebut procedure
Fungsi tanpa nilai balik tidak memerlukan pernyataan return pada definisinya.

Anda dapat mencoba program berikut :
#include <conio.h>
#include <iostream.h>
int mins(int a, int b, int c);
void main()
{
int a, b, c, minim;
cout<<"Masukkan A : ";
cin>>a;
cout<<"Masukkan B : ";
cin>>b;
cout<<"Masukkan C : ";
cin>>c;
minim = mins(a, b, c);
cout<<"Bilangan terkecil = "<<minim;
getch();
}
int mins(int a, int b, int c)
{
int kecil;
if (a<b)
kecil = a;
else
kecil = b;
if (c<kecil)
kecil = c;
return(kecil);
}

Fungsi tanpa nilai balik
#include <conio.h>
#include <iostream.h>
void mins(int a, int b, int c);
void main()
{
int a, b, c, minim;
cout<<"Masukkan A : ";
cin>>a;
cout<<"Masukkan B : ";
cin>>b;
cout<<"Masukkan C : ";
cin>>c;
mins(a, b, c);
getch();
}
void mins(int a, int b, int c)
{
int kecil;
if (a<b)
kecil = a;
else
kecil = b;
if (c<kecil)
kecil = c;
cout<<"Bilangan terkecil = "<<kecil;
}

Ruang Lingkup Variabel
Berdasarkan penyimpanan terkait dengan ruang lingkup variabel, terdapat 2 jenis variabel yaitu :
Variabel otomatis(Lokal)
Variabel eksternal(Global)

Variabel Otomatis(Lokal)
Variabel yang didefinisikan didalam suatu fungsi berlaku sebagai variabel lokal pada fungsi.
Artinya variabel tersebut hanya dikenal pada fungsi dimana variabel tersebut di definisikan.
Begitu juga variabel pada fungsi main()
Variabel ini disebut variabel otomatis.

Variabel Otomatis
#include <iostream.h>
#include <conio.h>
void alpha();
void main()
{
int x = 10;
int y = 20;
cout<<"Fungsi main()"<<endl;
cout<<"x = "<<x<<endl;
cout<<"y = "<<y<<endl;
alpha();
cout<<"Fungsi main()"<<endl;
cout<<"x = "<<x<<endl;
cout<<"y = "<<y<<endl;
getch();
}
void alpha()
{
int x = 50;
int y = 100;
cout<<"Fungsi alpha()"<<endl;
cout<<"x = "<<x<<endl;
cout<<"y = "<<y<<endl;
}

Contoh Lain
#include <iostream.h>
#include <conio.h>
void cetak();
void main()
{
int a;
a = 10;
cout << “Nilai a = “ << a << endl;
cetak();
getch();
}
void cetak()
{
a++;
cout << “Nilai a = “ << a << endl;
}
FUNCTION
Ketika program di atas dicompile, akan terdapat error yaitu variabel a dalam function cetak() undefined. Artinya bahwa variabel a tidak dikenal dalam cetak().
Variabel a hanya dikenal dalam program utama/ function main() saja. Maka dalam hal ini variabel a disebut variabel lokal (hanya dikenal dalam function yang di dalamnya didefinisikan a tersebut).

Variabel Eksternal(Global)
Variabel eksternal merupakan kebalikan variabel otomatis.
Variabel ini didefinisikan di luar fungsi manapun.
Variabel ini juga dikenal dengan variabel global.

Variabel Eksternal
#include <iostream.h>
#include <conio.h>
int bilangan = 100; //variabel eksternal
void tambah();          //prototipe fungsi
void main()
{
clrscr();
cout<<bilangan<<endl;
tambah();
cout<<bilangan<<endl;
tambah();
cout<<bilangan<<endl;
getch();
}
//definisi fungsi
void tambah()
{
bilangan++;
}
Guna memperjelas bahwa suatu variabel di dalam fungsi merupakan variabel eksternal, di dalam fungsi yang menggunakannya dapat dideklarasikan dengan menambahkan kata kunci extern.
//definisi fungsi
void tambah()
{
extern bilangan;
bilangan++;
}






Pengenalan Array pada C++

Array
Selama ini kita menggunakan satu variabel untuk menyimpan 1 buah nilai dengan tipe data tertentu.
     Misalnya :
       int a1, a2, a3, a4, a5;
     Deklarasi variabel diatas digunakan untuk menyimpan 5 data integer dimana masing-masing variabel diberi nama a1, a2, a3, a4, dan a5
Jika kita memiliki 10 data, 100 data integer bahkan mungkin data yang ingin kita proses tidak kita ketahui atau bersifat dinamis? Kita tidak mungkin menggunakan variabel seperti diatas.
Di dalam C ++ dan pemrograman yang lain, terdapat suatu fasilitas untuk menyimpan data-data yang bertipe data sama dengan suatu nama tertentu yaitu array

Definisi Array
Array adalah suatu tipe data terstuktur yang berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu.
Elemen-elemen array tersusun secara sekuensial di dalam memori sehingga memiliki alamat yang berdekatan.
Array dapat berupa array 1 dimensi, 2 dimensi, bahkan n-dimensi.
Elemen-elemen array bertipe data sama tapi bisa bernilai sama atau berbeda-beda.



Macam – Macam Array
Array dapat dibedakan menjadi :
     Array berdimensi satu
     Array berdimensi dua
     Array berdimensi banyak

Array berdimensi Satu
Mendefinisikan array meliputi :
     Tipe data elemen array
     Nama array
     Jumlah elemen array
                      tipe_data nama_var_array[ukuran];
Misal :
char huruf[9];
Int umur[10];
Int kondisi[2]={0,1};
Int arr_dinamis[]={1,2,3};

Subscript array (index array) dimulai dari nol.

Keterangan :
char huruf[9]: berarti akan memesan tempat di memori komputer sebanyak 9 tempat dengan indeks dari 0-8, dimana semua elemennya bertipe data karakter semuanya. Kalau satu karakter berukuran 1 byte, berarti membutuhkan memori sebesar 9 byte.
int umur[10]: berarti akan memesan tempat di memori komputer sebanyak 10 tempat dengan indeks dari 0-9, dimana semua elemennya bertipe data integer semuanya. Kalau satu integer berukuran 4 bytes, berarti membutuhkan memori sebesar 4 x 10 = 20 bytes.
int kondisi[2]: berarti akan memesan tempat di memori komputer sebanyak 2 tempat dengan indeks 0-1, dimana semua elemennya bertipe data integer semuanya. Dan pada contoh di atas isi elemen-elemennya yang sebanyak 2 buah diisi sekaligus (diinisialisasi) yaitu pada elemen kondisi[0] bernilai 0, dan elemen kondisi[1] bernilai 1.
int arr_dinamis[]:berarti mendeklarasikan array dengan ukuran maksimum array tidak diketahui, namun ukuran tersebut diketahui berdasarkan inisialisasi yaitu sebanyak 3 elemen, yang isinya 1,2, dan 3. Kita tidak dapat mendeklarasikan array dinamis tanpa inisialisasi.
Tanda [] disebut juga “elemen yang ke- „. Misalnya kondisi[0] berarti elemen yang ke nol.
Array yang sudah dipesan, misalnya 10 tempat tidak harus diisi semuanya, bisa saja hanya diisi 5 elemen saja, baik secara berurutan maupun tidak. Namun pada kondisi yang tidak sepenuhnya terisi tersebut, tempat pemesanan di memori tetap sebanyak 10 tempat, jadi tempat yang tidak terisi tetap akan terpesan dan dibiarkan kosong.
Mengakses Elemen Array
Contoh :
cin>>suhu[i];
cout<<suhu[3];


Memberikan Nilai Awal pada Array
Contoh :
int jum_hari[12] =
{
            31,28,31,30,31,30,31,31,30,31,30,31
};
Atau
int jum_hari[] =
{
            31,28,31,30,31,30,31,31,30,31,30,31
};

Untuk memberikan nilai awal yang sama pada array :
int tmp[5] = { 0 };

Contoh 1
Misalkan kita ingin membuat program untuk mencari nilai rata-rata dari 5 buah data nilai yang diinputkan oleh user.
Tanpa menggunakan array, maka programnya adalah sebagai berikut :

Array Berdimensi Satu
#include <iostream.h>
#include <conio.h>
void main()
{
   float nilai1, nilai2, nilai3, nilai4, nilai5;
   float jumlah, rata2;
   cout<<"Program Menghitung Nilai Rata-rata"<<endl;
   cout<<"Masukkan nilai ke 1 : ";
   cin>>nilai1;
   cout<<"Masukkan nilai ke 2 : ";
   cin>>nilai2;
   cout<<"Masukkan nilai ke 3 : ";
   cin>>nilai3;
   cout<<"Masukkan nilai ke 4 : ";
   cin>>nilai4;
   cout<<"Masukkan nilai ke 5 : ";
   cin>>nilai5;
   jumlah = nilai1 + nilai2 + nilai3 + nilai4 + nilai5;
   rata2 = jumlah / 5;
   cout<<"Nilai rata-rata adalah "<<rata2<<endl;
   getch();
}

Array Berdimensi satu
Pada program di depan kita memerlukan 5 buah variabel yang berbeda-beda untuk menyimpan 5 buah nilai.
Bisa dibayangkan kesulitan yang dihadapi jika kita harus memproses data yang lebih banyak.
Dengan menggunakan array, program menjadi lebih baik.

Contoh Program
#include <iostream.h>
#include <conio.h>
void main()
{
   float nilai[5];
   float jumlah, rata2;
   cout<<"Program Menghitung Nilai Rata-rata"<<endl;
   for(int i=0; i<5; i++)
   {
            cout<<"Masukkan nilai ke "<<(i+1)<<" : ";
            cin>>nilai[i];
   }
   jumlah = 0;
   for(int i=0; i<5; i++)
   {
            jumlah = jumlah + nilai[i];
   }
   rata2 = jumlah / 5;
   cout<<"Nilai rata-rata adalah "<<rata2<<endl;
   getch();
}

Contoh ke 2 :
#include<iostream.h>
int main(){
// mendeklarasikan sebuah array dengan nama A
int A[5];
//memasukkan nilai ke dalam elemen array
for (int C=0;C<5;C++){
    cout<<"A["<<C<<"]="; cin>>A[C]; }
return 0; }

Contoh ke 3 :
#include<iostream.h>
#include<conio.h>
int main(){
int A[5]; // mendeklarasikan sebuah array dengan nama A
// memasukkan nilai ke dalam elemen array
for (int C=0;C<5;C++){
    cout <<"A["<<C<<"] = "; cin>>A[C];}
cout<<"menampilkan nilai dalam elemen array"<<endl;
for (int j=0;j<5;j++){
    cout<<"Nilai elemen array ke -"<<j+1<<" adalah "<< A[j]<<endl; }
getch();
return 0; }
Contoh ke 4 :
#include <iostream.h>
#include <conio.h>
int main(){
int bil[7] = {2,5};
for(int i=0;i<7;i++){
            cout<<"Elemen ke-"<<i<<“=“<<bil[i];
}
getch();
return 0;                     
}
Contoh ke 5 :
#include <iostream.h>
#include <conio.h>
void main()
{
   int jum_hari[12] =
            {
                        31,29,31,30,31,30,31,31,30,31,30,31
            };
   int tgl, bln, jumlah;
   cout<<"Program Mencari Hari Di Tahun 2008"<<endl;
   cout<<"Masukkan Tanggal : ";
   cin>>tgl;
   cout<<"Masukkan Bulan : ";
   cin>>bln;
   jumlah = 0;
   for(int i=0; i<(bln-1); i++)
   {
            jumlah = jumlah + jum_hari[i];
   }
   jumlah = jumlah + tgl;
   cout<<"Jumlah Hari = "<<jumlah<<endl;
int sisa;
   sisa = jumlah % 7;
   cout<<"Tanggal "<<tgl<<" Bulan "<<bln<<" adalah Hari = ";
   if (sisa==0)
            cout<<"Senin"<endl;
   else if (sisa==1)
            cout<<"Selasa"<endl;
   else if (sisa==2)
            cout<<"Rabu"<endl;
   else if (sisa==3)
            cout<<"Kamis"<endl;
   else if (sisa==4)
            cout<<"Jumat"<endl;
   else if (sisa==5)
            cout<<"Sabtu"<endl;
   else if (sisa==6)
            cout<<"Minggu"<endl;
   getch();
}


Array Berdimensi dua
Sering kali digambarkan/dianalogikan sebagai sebuah matriks.
Jika array berdimensi satu hanya terdiri dari 1 baris dan banyak kolom, array berdimensi dua terdiri dari banyak baris dan banyak kolom yang bertipe sama
Gambar array berdimensi (baris x kolom = 3 x 4)
Jurusan
1992
1993
1994
1995
Teknik Informatika
35
45
80
120
Manajemen Informatika
100
110
70
101
Teknik Komputer
10
15
20
17

Bentuk tabel diatas dapat dituangkan dalam bentuk array berdimensi dua dengan pendefinisian sebagai berikut :
int data_lulus[3][4];
Pada pendefinisian diatas :
ü  3 menyatakan jumlah baris (mewakili jurusan)
ü  4 menyatakan jumlah kolom (mewakili tahun kelulusan)
Larik Dimensi Dua dapat mewakili bentuk suatu matriks, contoh:
    Suatu matriks
       x =                       
    selanjutnya dapat dideklarasikan sebagai berikut:
       int x[2][4];
    atau diklarasikan dengan memberikan nilai elemennya sbb:
       int x[2][4]= {{8, 5, 9, 8},{8, 2, 1, 0}}

Masing-masing elemen dalam array berdimensi dua dapat diakses dengan bentuk :
nama_array[subscript_baris][subscript_kolom];

Contoh pengaksesan :
data_lulus[1][2] = 5;
   Artinya, memberikan nilai 5 ke baris 1 kolom 2 (baris dan kolom dimulai dari 0).
cout<<data_lulus[1][2];
Artinya, menampilkan elemen data_lulus dengan subscript pertama (baris) berupa 1 dan subscript kedua (kolom) berupa 2.

Array Berdimensi Dua
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void main()
{
   cout<<"Program Pertambahan Matrik 3x3"<<endl;
   int matrikA[3][3];
   int matrikB[3][3];
   int matrikC[3][3];
   cout<<endl<<"Masukkan data Matrik A"<<endl;
   for(int i=0; i<3; i++)
   {
      for(int j=0; j<3; j++)
      {
         cout<<"Elemen ke "<<(i+1)<<","<<(j+1)<<" : ";
         cin>>matrikA[i][j];
      }
   }
   cout<<endl<<"Masukkan data Matrik B"<<endl;
   for(int i=0; i<3; i++)
   {
      for(int j=0; j<3; j++)
      {
         cout<<"Elemen ke "<<(i+1)<<","<<(j+1)<<" : ";
         cin>>matrikB[i][j];
      }
   }
   for(int i=0; i<3; i++)
   {
      for(int j=0; j<3; j++)
      {
            matrikC[i][j] = matrikA[i][j] + matrikB[i][j];
      }
   }
   clrscr();
   cout<<"Matrik A :"<<endl<<endl;
   for(int i=0; i<3; i++)
   {
      for(int j=0; j<3; j++)
      {
            cout<<setw(4)<<matrikA[i][j]<<" ";
      }
      cout<<endl;
   }
   cout<<endl<<"Matrik B :"<<endl<<endl;
   for(int i=0; i<3; i++)
   {
      for(int j=0; j<3; j++)
      {
            cout<<setw(4)<<matrikB[i][j]<<" ";
      }
      cout<<endl;
   }
cout<<endl<<"Hasil pertambahan, Matrik C :"<<endl<<endl;
   for(int i=0; i<3; i++)
   {
      for(int j=0; j<3; j++)
      {
            cout<<setw(4)<<matrikC[i][j]<<" ";
      }
      cout<<endl;
   }
   getch();
}

Melewatkan Array Sebagai Argumen Fungsi
#include <iostream.h>
#include <conio.h>
void input_array(int data[5]);
void main()
{
   int data[5];
   input_array(data);
   for(int i=0; i<5; i++)
   {
      cout<<"Data ke "<<(i+1)<<" = "<<data[i]<<endl;
   }
   getch();
}
void input_array(int data[5])
{
   for(int i=0; i<5; i++)
   {
      cout<<"Masukkan data ke "<<(i+1)<<" : ";
      cin>>data[i];
   }
}

Beberapa Fungsi Menggunakan Array :
Operasi yang umumnya dilakukan menggunakan array adalah :
     Mencari bilangan terbesar / terkecil.
     Mencari suatu data pada array.
     Mengurutkan data.

Mencari Suatu Data Pada Arrray
#include <iostream.h>
#include <conio.h>
void main()
{
   int i, x, ketemu;
   int data[] = {5, 100, 20, 31, 77, 88, 99, 24, 55, 1};
   cout<<"Data yang anda cari : ";
   cin>>x;
   ketemu = 0;
   for(i=0; i<sizeof(data)/sizeof(int); i++)
   {
            if(data[i] == x)
      {
            ketemu = 1;
         break;
      }
   }
   if(ketemu)
      cout<<"Data tersebut ada pada posisi ke "<<(i+1)<<endl;
   else
      cout<<"Data yang anda cari tidak ditemukan"<<endl;
   getch();
}

Mengurutkan Data Pada Array
Ada berbagai teknik untuk mengurutkan data, salah satunya adalah metode bubble sort.
Pengurutan dilakukan dengan membandingkan setiap elemen array dengan seluruh elemen yang terletak sesudah posisinya.
Contoh :
#include <iostream.h>
#include <conio.h>
void main()
{
   int data[10];
   int i, j, tmp;
   cout<<"Program Mengurutkan Data"<<endl;
   cout<<"Dengan Metode Bubble Sort"<<endl;
   for(i=0; i<10; i++)
   {
            cout<<"Masukkan data ke "<<(i+1)<<" : ";
      cin>>data[i];
   }
   clrscr();
   cout<<"Data sebelum diurutkan : "<<endl;
   for(i=0; i<10; i++)
   {
            cout<<data[i]<<" ";
   }
   cout<<endl;
for(i=0; i<9; i++)
   {
            for(j=i+1; j<10; j++)
      {
            if(data[i]>data[j])
         {
            tmp = data[i];
            data[i] = data[j];
            data[j] = tmp;
         }
      }
   }
   cout<<"Data setelah diurutkan : "<<endl;
   for(i=0; i<10; i++)
   {
            cout<<data[i]<<" ";
   }
   getch();
}