Senin, 02 Juni 2014

Makalah Pemrograman Beriorentasi Objek (OOP)

TUGAS MANDIRI
Pemrograman Beriorentasi Objek
MATA KULIAH : Pemrograman Beriorentasi Objek



NAMA                                       : KURNIAWAN
NPM                                           : 120210098
PROGRAM STUDI                  : TEKNIK INFORMATIKA
KODE KELAS                         : 131-IS04T-M5
DOSEN                                      : HOTMA PANGARIBUAN S,kom.M.si.

UNIVERSITAS PUTERA BATAM
2013/2014

KATA PENGANTAR

         Puji dan syukur atas kehadiran tuhan yang Maha Esa atas berkat rahmat-Nya sehingga saya dapat menyelesaikan tugas mata kuliah Pemrograman Beriorentasi Objek ini dengan judul “Pemrograman Beriorentasi Objek “ dan saya bersyukur telah diberikan kesehatan dan akal pikiran yang baik sehingga saya dapat menyelesaikan tugas makalah ini dengan baik, namun saya menyadari tugas makalah yang saya buat ini jauh dari kesempuraan. Oleh karena itu, saya bersedia menerima kritik dan saran demi kesempurnaan hasil makalah atau jurnal yang saya buat ini.
         Pada kesempatan kali ini tidak lupa saya menyampaikan terima kasih setulus hati dan hormat saya kepada ”Bapak HOTMA PANGARIBUAN.S.kom.M,si” selaku dosen pada mata kuliah “Pemrograman Beriorentasi Objek”  di UNIVERSITAS PUTERA BATAM.
         Akhir kata izinkan saya mengucapkan terima kasih, semoga hasil makalah saya ini bermanfaat untuk menuju kearah studi yang lebih baik.





Batam,20  Desember 2013
                         
                                                                                                                                                                                                                                    Kurniawan
Npm : 120210098
DAFTAR ISI

KATA PENGANTAR.......................................................................................... i
DAFTAR ISI........................................................................................................ ii
BAB I  PENDAHULUAN.................................................................................... 1
     1.1     Latar Belakang .......................................................................................1
     1.2.    Rumusan makalah..................................................................................  2
     1.3.    Tujuan .................... .............................................................................. 2
BAB II  PEMBAHASAN....................................................................................  3
     2.1.    Pengenalan Dasar OOP.......................................................................... 3
     2.2.    Komentar, Identifier dan Tipe Data........................................................  5
     2.3.    Fungsi Siap Pakai.................................................................................... 10
     2.4.    Percabangan / Seleksi.............................................................................  12
     2.5.    Perulangan..............................................................................................  15
     2.6.    Pointer Dan Array...................................................................................  20
     2.7.    Fungsi.....................................................................................................  23
     2.8.    Input-Output dan Konsep Dasar OOP....................................................  25
`    2.9.    Kelas Dan Objek.................................................................................... 26
     2.10.  Fungsi Virtual dan Polimorfisme............................................................     27
     2.11.  Preprocessor Directive...........................................................................   28
BAB  III PENUTUP...........................................................................................     30
     3.1.    Latar Belakang.......................................................................................   30
     3.2.    Saran......................................................................................................  31
DAFTAR PUSTAKA



BAB  I
PENDAHULUAN
1.1              Latar Belakang
Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.
Pemrograman orientasi-objek menekankan konsep berikut:
Ø    Kelas — kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing.
Ø    Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti.
Ø    Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya.
Ø    Polimorfisme melalui pengiriman pesan.
Ø    Inheritas- Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada


1.2.      Rumusan masalah
Ø  Pengertian OOP (Object Oriented Programming)?
Ø  Apa saja konsep dasar dari pemrograman berorientasi objek (OOP)?
Ø  Bahasa yang mendukung OOP meliputi apa saja?
Ø  Bagaimanakah desain pola dalam OOP?
Ø  Bagaimanakah kritik para ahli mengenai OOP?
1.3.      Tujuan
Ø  Dapat mengetahui pengertian OOP (Object Oriented Programming) secara umum.
Ø  Dapat mengetahui konsep dasar dari pemrograman berorientasi objek (OOP).
Ø  Dapat mengetahui bahasa yang mendukung OOP.
Ø  Dapat mengetahui desain pola apa saja dalam OOP.
Ø  Dapat mengetahui beberapa kritik para ahli mengenai OOP.

















BAB  II
PEMBAHASAN

2.1.      Pengenalan Dasar OOP
Apa itu Pemrograman Berorientasi Objek. Pemrograman berorientasi objek atau lebih dikenal dengan oop merupakan suatu pendekatan pemrograman yang menekankan pada pembentukan objek yang bisa digunakan ulang, diwariskan dan dikelola degan baik.
Secara garis besar, suatu bahasa pemrograman dapat dikatakan sebagai  OOP apabila ia mendukung konsep abstraksi, enkapsulasi, polimorfisme ,dan pewarisan. Selain konsep-konsep ini, ada beberapa konsep fundamental lainnya, seperti kelas, objek, dan message
Apa Kelebihan oop?
Ø  Reusable, kode yang diimplementasikan didalam class dapat digunakan kembali di aplikasi atau program lainnya.
Ø  Extensible, kode yang sudah dibuat dapat kita rubah lagi implementasi fungsi-fungsinya sesuai dengan yang kita inginkan.
Ø  Manageable, kode yang sudah dibuat lebih mudah untuk di maintain/manage. Misalnya kalau ada perubahan-perubahan business process maka yang perlu kita lakukan hanyalah merubah kode yang terdapat didalam class tersebut saja, tanpa harus membongkar semua kode aplikasi yang sudah dibuat dibuat
Bahasa C++ adalah bahasa tingkat menengah yang bisa mengakses perangkat keras dan memiliki user interface yang baik. Bahasa C++ banyak diadopsi oleh bahasa pemrograman lain seperti php dan java sehingga jika anda menguasai C++ anda akan sangat mudah memahami bahasa pemrograman yang lain. C++ dapat ditulis menggunakan editor teks ataupun editor bawaan dari kompiler. Untuk prktikum ini menggunakan editor Microsoft Visual C++ 6.0
Kompiler adalah proses perubahan syntax program menjadi program yang bisa dieksekusi. Untuk membuat suatu program yang bisa di eksekusi diperlukan beberpa file pendukung yang dijelaskan dalam type file berikut:

Type file C++
Ø  cpp – kepanjangan dari c plus plus yang digunakan untuk menyimpan syntax program
Ø  .h – kepanjangan dari header yang terdiri dari kode program terpisah yang berisi fungsi – fungsi tertentu
Ø  obj – kepanjangan dari objek yang berupa file dalam format biner lib – kepanjangan dari library atau daftar pustaka system.
 Proses pembentukan file yang bisa di eksekusi Source code (*.cpp) bersama dengan File header dikompilasi oleh compiler Hasil dari kompiler adalah file Objek (*.obj) yang kemudian bersama file library digabungkan oleh Linker membentuk File yang bisa di eksekusi (*.exe) Yang perlu diperhatikan didalam penulisan kode C++ bersifat case sensitive yang artinya huruf besar dan huruf kecil memiliki arti yang berbeda.

Langkah-langkah Membuat Program
Ø  Buat sebuah project baru dengan Visual Studio C++.
Ø  Klik pada menu -File - New Project.Pada field name tuliskan program1
Ø  Selanjutnya akan ditampilkan  jendela Win32 Application Wizard sbb :
Ø  Klik Next untuk menampilkan jendela Application Setting sbb:
Ø  Pada Additional Options pilih Precompiled header.
Ø  kemudian pilih Finish
Ø  Akan muncul Empty Project pada Visual Studio C++
Ø  Kemudian ketikkan script berikut ini :
Ø  Tekan F5 untuk menjalankan program, dan berikut ini output dari program tersebut
Contoh Program Sederhana C++
1.         #include <iostream.h>
int main(){
            cout <<"selamat belajar c++"
                        <<endl
                        <<"semoga berhasil"
                        <<endl;
            return 0; }





2.2.      Komentar, Identifier dan Tipe Data
v   Identifier/variabel adalah suatu pengenal atau pengidentifikasi yang kita deklarasikan agar kompiler dapat mengenalinya.
Dalam menentukan indentifier kita harus memperhatikan hal-hal berikut:
Ø   Case sensitive : Penggunaan huruf kecil dan huruf besar dibedakan
Ø   Indentifier tidak boleh angka atau diawali dengan karakter yang berupa angka
Ø   Identifier tidak boleh menggunakan karakter simbol
Ø   Identifier tidak boleh menggunakan kata kunci(key word. konstanta
Jenis identifier yhang bersifat konstan atau tetap artinya nilai dari program tidak dapat diubah. Dalam c++ kita harus menggunakan preprosesor dengan kata kunci #define.
Contoh Program identifier
#include <iostream.h>
int main()
{          cout <<"1 + 2 * 3 = "
            <<  1 + 2 * 3
            <<endl;
            cout <<"13 % 5 = "
                        <<  13 % 5
                        <<endl;
            cout <<"13 / 5 = "
                        <<  13 / 5
                        <<endl;
            cout <<"13 / 5.0 = "
                        <<  13 / 5.0
                        <<endl;
            return 0;
}

v    Komentar
Komentar pada c++ dapat dilakukan dengan 2 cara,yaitu pertama,dengan Tanda // dan diletakan sebelum komentar dan kedua dengan tanda /* yang ditutup dengan  */ .cara pertama digunakan jika komentar hanya terdiri dari satu baris,sedangkan cara kedua jika komentar lebih dari satu baris.
Contoh Program Komentar Pada C++
#include <iostream.h>
int main()
{    char karakter = 'A'; //mendeklarasikan sebuah karakter
      char* kata = "putera batam";//mendeklarasikan suatyu kata
      char teks[10] = "mahasiswa"; //mendeklarasiakn beberapa
      cout << karakter << endl;
      cout << kata << endl;
      cout << teks << endl;
      return 0; }
}
v   
v   
v   
v   
v   
v   

v    Tipe data
            Tipe data berfungsi untuk mengartikan jenis dari sebuah nilai yang terdapat dalam sebuah program.
Tipe data dasar
Ø  Tipe bilangan bulat (int, unsigned int, signed int, short int, unsigned short int,long int)
Ø  Tipe bilangan rill/koma/pecahan (float,double,long double)
Ø  Tipe logika (1 dan 0 )
Ø  Tipe karakter/string.
            Ttipe ini mengartikan data-data yang berupa karakter dinyatakan char. sedangkan untuk string dinyatakan char* Mendeklarasikan tipe data character . Banyak cara  dalam mendeklarasikan dan menginisialisasi variable character Untuk lebih jelasnya perhatikan pendeklarasian tipe variable character berikut ini :
Buat sebuah project baru  dengan Visual studio C++
Ø   Klik  pada menu  File
Ø  Pilih New
Ø  Kemudian pilih Project
Ø  Pada field nama ketikkan nama file
Ø  Kemudian klik Ok
Ø  Pada application type pastikan pada additional options pilih Precompiled header
Ø  Pada jendela editor listing ketikkan script berikut
            Penjelasan program Input bertipe car digunakan untuk menghentikan pointer program agar program tidak langsung diterminasi.
Contoh Program Tipe data  pada C++
#include <iostream.h>
int main()
{          char nama [18];
            char jenis [25];
            double harga;
            double lama;
            double diskon;
            double total;
double pajak;
double totbayar;
double jmluang;
            double kembalian;      
            cout << "------------------------" << '\n';
            cout << "PROGRAM RENTAL MOBIL YODI KEREN" << '\n';
            cout << "------------------------" << '\n';
            cout << "Masukkan nama penyewa    : ";
            cin >> nama;
            cout << "Masukkan jenis mobil          : ";
            cin >> jenis;
            cout << "masukkan harga sewa          : ";
            cin >> harga ;
            cout << "masukkan lama sewa            : ";
            cin >> lama;
            cout << "------------------------" << '\n';
            cout << '\n';
            total = (harga*lama);
            cout << "Total = " << total <<'\n';
            diskon = (total * 5/100);
            cout << "Discount  = " << diskon << '\n';
            pajak = ((total* 5/100) * 0.02) ;
            cout << "Pajak = " << pajak << '\n';
            totbayar = (total  - pajak);
            cout << "total bayar = " << totbayar << '\n';
            cout << "--------------------" << '\n';
            cout << "jumlah Uang : " ; cin >> jmluang;
            kembalian = (jmluang - totbayar);
            cout << "Kembalian = " << kembalian << '\n';
            cout << "----------------------------" << '\n';
            return 0; }






2.3.      Fungsi Siap Pakai
Didalam C++ terdapat beberapa fungsi yang siap pakai yang berguna untuk menyelesaikan masalah-masalah yang berkaitan dengan string. Untuk menggunakan fungsi-fungsi tersebut kita harus mendaftarkan file header string.h
Berikut jenis-jenis fungsi yang siap pakai :
Ø  Fungsi strcpy  : berrguna untuk melakukan penyalinan (copy ) string dari var S1 ke var S2.
Ø  Fungsi strlen :Berfungsi untuk mengembalikan panjang string dari s
Ø  Fungsi strchr : Fungsi ini mencari lokasi dari suatu string . Jika karakter ditemukan, maka fungsi ini akan mengembalikan pointer dari string yang dimulai dari karakter tersebut, tetapi jika tidak maka fungsi akan mengembalikan nilai 0.
Ø  Fungsi strlwr : Fungsi ini akan mengubah string yang tersimpan divariabel  s menjadi huruf kecil.
Ø  Fungsi strlen : Berfungsi ini berguna untuk membandingkan string yang tedapat pada variabel s1 dan s2. nilai  yang dikembalikan yaitu :
Ø  0 (nol) : hal ini terjadi jika s1 sama dengan s2
Ø  Kurang dari 0:hal ini terjadi jika s1 lebih kecil dari s2
Ø  Lebih dari 0 : hal ini terjadi jika s1 lebih besar dari s2
Ø  Fungsi strchr :Fungsi ini mencari lokasi dari suatu string . Jika karakter ditemukan, maka fungsi ini akan mengembalikan pointer dari string yang dimulai dari karakter tersebut, tetapi jika tidak maka fungsi akan mengembalikan nilai 0.
Ø  Fungsi strstr : Fungsi akan mencari lokasi substring dari suatu string. Jika substring ditemukan maka fungsi ini akan mengembalikan pointer dari string yang dimulai dari sub string tersebut, tetapi jika tidak maka fungsi akan mengembalikan nilai 0.
Jenis-jenis operator
1.       Operator assignment : Operator yang berfungsi untuk memasukkan (assign) nilai kedalam suatu variabel ataupun konstanta. Operator ini dilambangkan dengan sama dengan / =
2.       Operator unary 
+   : membuat nilai positif
-              : membuat nilai negatif
++ : increment 
--   : decrement
3.       Operator Increment : Suatu penambahan nilai yang terjadi pada sebuah variebel. Ada dua jenis increment : pre-increment dan post–increment.
ü  Pre-increment : melakukan penambahan nilai sebelum suatu variabel itu diproses.
ü  Post-increment : kebalikan pre-increment, melakukan proses terlebih dahulu sebelum dilakukan penambahan nilai.
4. Operator Decrement: Merupakan kebalikan dari proses increment yaitu menurunkan (mengurangi ) nilai dari suatu variabel,  sama juga seperti pada increment dibagi kedalam dua jenis yaitu : pre-decrement dan post-decrement.
5. Operator binary & bitwise Adalah operator yang digunakan dalam operasi yang melibatkan dua operand.  Dalam c++ operator binary ini dikelompokkan kedalam 4 jenis , operator aritmatika, operator logika, operator logika , operator relasional, dan operator bitwise.
Operator bitwise berguna untuk melakukan operasi-operasi yang berhubungan dengan pemanipulasi bit.
Sebagai catatan operatot bitwise ini hanya dapat dilakukan pada operand yang bertipe char dan int, karen berkoresponden dengan type byte dan word.
2.4.      Percabangan / Seleksi
Suatu permasalahan yang pasti ditemukan dalam pembuatan program adalah suatu percabangan/seleksi.  Percabangan  yang dimaksud pemilihan statement yang akan dieksekusi dimana seleksi tersebut didasarkan pada kondisi tertentu. Di dalam C++ terdapat dua buah jenis struktur yang digunakan dalam percabangan :
ü  If
ü  -switch
Struktur if satu kondisi
If (kondisi)
{
Statemen1;
Statemen2;
}
//jika hanya terdapat satu statement, dapat ditulis seperti dibawah : If kondisi (statemen); Sebagai contoh menentukan bilangan positif sebuah bilangan yang diinput :
//Cara I
cout<<"bilangan a: " ;
cin>>a;
if (a > 0)
{    cout<<"bilangan positif"<<endl;
}
//cara II
cout<<"bilangan a: " ;
cin>>a;
if (a > 0)
cout<<"bilangan positif"<<endl;

Struktur dua kondisi
Struktur percabangan jenis ini sedikit lebih  kompleks bila dibandingkan dengan struktur yang hanya memiliki satu buah kondisi sebenarnya.
If (kondisi1) {  Statemen1_jika kondisi terpenuhi;
}
Else if (kondisi2)
{  Statemen2_jika kondisi terpenuhi;
}
Contoh program Seleksi Pada C++
#include <iostream.h>
int main(){
char nama[15];
double jum_bar;
double har_bar,tot_har;
double jum_uang,uang_kembalian;
double diskon,har_diskon,tot_har_diskon;
            cout<<"         program kasir kita-kita\n";
            cout<<"         =======================\n";
            cout<<"input nama barang    : ";
            cin>>nama;
            cout<<"input harga barang   : ";
            cin>>har_bar;
            cout<<"input jumlah barang  : ";
            cin>>jum_bar;
            tot_har= har_bar * jum_bar;
            cout<<" total harga barang  : " <<tot_har<<"\n";
            cout<<"input jumlah diskon (%) :  " ;
            cin>>diskon;
            har_diskon= diskon/100 * tot_har;
            cout<<"harga diskon  : " <<har_diskon<<"\n";
            tot_har_diskon= tot_har - har_diskon;
            cout<<" total harga setelah diskon  : " <<      tot_har_diskon<<"\n";
            cout<<"input jumlah uang    : ";
            cin>>jum_uang;
            uang_kembalian= jum_uang -             tot_har_diskon;
            cout<<" uang kembalian anda : " <<uang_kembalian<<"\n";
            cout<<"\n";
            cout<<"makasih kapan-kapan kesini lagi ya...\n";
            cout<<"=====================================\n";
            return 0 ;
}






2.5.      Perulangan
Pengulangan adalah suatu proses yang melakukan statemen-statemen dalam sebuah program secara terus-menerus sampai terdapat kondisi untuk menghentikannya. Struktur pengulangan akan sangat membantu dalam efisiensi program.   Jenis-jenis perulangan :
Ø  Struktur for
Struktur pengulangan for digunakan untuk melakukan pengulangan yang telah diketahui banyaknya perulangan.  Perlu untuk diperhatikan bahwa tipe data yang mempunyai urutan yang teratur misalnya tipe data int atau char. Bentuk umum :
//untuk perulangan yang sifatnya menaik
For (variabel = nilai_awal;kondisi;variabel++)
{ Statement yang akan diulang;
}
//untuk perulangan yang sifatnya menurun
For (variabel=nilai_awal;kondisi; variabel--)
{   Statement yang akan diulang;
}


Contoh program  for Pada C++
#include <iostream.h>
#include <math.h>
#include <conio.h>
void main()
{          int n, i;
            float jumlah, rerata, pemb, stdrdev, a[15];
    cout<"\nBanyaknya nilai = ";
    cin>>n;
    jumlah=0;
    for(int i=0; i<n;i++)
    {      cout<<"Nilai ke-"<<(i+1)<" = ";
            cin>>a[i];
            jumlah +=a[i];
    }      rerata=jumlah/n;
            pemb=0;
            for( i=0;i<=n; i++)
    {      pemb =(a[i]-rerata)*(a[i]-rerata);
    }
    stdrdev = sqrt(pemb/n-1);

    cout<<"Rerata = "<<rerata;
    cout<<"\nStandar deviasi = "<<stdrdev<<endl;
   getche();
   }
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjg4EKuten_JZZLTBug350mmxlk-IqvroRjL-DNu388slpjwnb-ITwkv1gHhe1m7h32q2XPbAzkSomrM3-maHUJPgAw7EpDyJ8i0QSMtAPeBLVK9qHjpE_rMk4Fhyphenhyphena3E93vCRT2NDvp5bt/s1600/Untitled-1.jpg

Ø  Struktur while
Struktur pengulangan jenis ini adalah pengulangan yang melakukan pengecekan kondisi awal blok struktur.  Pada struktur while perulangan akan dilakukan  jika kondisi yang didefinisikan didalamnya terpenuhi (bernilai benar), jika kondisi yang didefinisikan tidak terpenuhi (bernilai salah) maka statemen-statemen yang terdapat dalam blok pengulangan tidak  pernah dieksekusi program atau program akan berhenti untuk mengeksekusi perulangan. Bentuk umum struktur while :
While (kondisi)
{ Statemen_statemen yang akan diulang; increment
}
Contoh program while Pada C++
#include<iostream.h>
#include<conio.h>
int main()
{          int jumlah
cout<<"Jumlah Bintang : "cin>>jumlah;
cout<<"\n";
int i=0;
int j;
do
    {      j=jumlah;
        do
    {              cout<<"* ";
            j--;
        }
        while (j>i);
        cout<<endl;
        i++;
} while (i<jumlah);
getch();
return 0;
}         
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiyFcu6HladzynT_RMD5xwmhiMSV-hJxHU62lgY0GhDfDdH-euFU_Yr69mGmAY8CyH7Utw57o524WoFvFn-jSgIaHBx4s9-etION4GXwUbhh8vzvWWDwVvqKXeVKxg7igFjI_6AUP8MWM1/s1600/Untitled-1.jpg
Ø  Struktur do-while
Berbeda dengan struktur while yang melakukan pengecekan kondisi di awal blok perulangan, pada struktur do-while kondisi justru ditempatkan dibagian akhir, hal ini menyebabkan struktur perulangan minimal akan melakukan satu kali proses perulangan walaupun kondisi tidak terpenuhi (bernilai salah). Bentuk umum do-while :
Do
{  Statemen yang akan diulang; increment
}
While (kondisi);
}
Contoh program do while pada C++
#include<iostream.h>
#include<conio.h>
using namespace std;
void main()
{
 int bil1=0,bil2=0,bil3=0;
 cout<<"              Latihan Perulangan C++ dengan Do-While          "<<endl; cout<<"=============================================================="<<endl;
 cout<<"1.Menampilkan deret angka 1 sampai 10                      :  ";
 do
 {cout<<bil1;
   bil1++;
 }while(bil1<=10);
 cout<<endl;
 cout<<"2.Menampilkan deret bilangan genap dari angka 1 sampai 10  :  ";
 do
 {
   bil2=bil2+2;
   cout<<bil2;
   bil1++;
 }while(bil2<10);
 cout<<endl;
 cout<<"3.Menampilkan deret bilangan ganjil dari angka 1 sampai 10 :  ";
 do
 {
   bil3=bil3+1;
   cout<<bil3;
   bil3++;
 }while(bil3<10);
 getch();
 system("pause");
 return 0;
 }


2.6.      Pointer, dan Array
Jika kita menggunakan struktur pengulangan, sering kali kita dituntut untuk melakukan peloncatan peloncatan statement. Kata peloncatan disini artinya kita memaksa agar pengeksekusian statemen berjalan sesuai urutan yang kita inginkan. Didalam bahasa c++ ada 4 jenis fungsi untuk melakukan peloncatan :
Ø  continue
Ø  goto
Ø  exit()
Ø  break
Ø  Pointer
Secara definisi pointer dapat dikatakan sebagai suatu variabel yang menyimpan alamat dimemori.  Jika kita mempunyai variabel dengan tipe data tertentu maka untuk mendapatkan alamat dari variabel tersebut kita harus menggunakan operator  &. Alamat inilah yang kemudian akan disimpan kedalam variabel pointer. Sedangkan untuk mendeklarasikan variabel sebagai pointer kita cukup menambahkan tanda asterisk ( * ) didepan nama variabel.
Bentuk umum variabel yang bertipe pointer :
Tipe_data  *nama_pointer;
Dapat juga diganti dengan :
Tipe _data*  nama_pointer atau tipe_data * nama_pointer
            Pada gambar diatas alamat 1 dari memori ditempati oleh variabel x yang bertipe long. Adapun nilai dari variabel x tersebut adalah 10. diatas kita mempunyai pointer P yang menunjuk kealamat x, maka untuk mendapatkan nilai x kita dapat menggunakan dereference pointer, yaitu dengan *p. Dengan demikina dapat disimpulkan
P= &x;  // keduanya meyimpan alamat.
*p=x;    //keduanya menyimpan nilai.
Untuk membuktikan hal diatas, disini kita akan mengimplementasikan kedalam sebuah program  sederhana. Memasukkan nilai pada pointer Memasukkan nilai pada pointer yang dimaksud bukan nilai yang selama ini kita bayangkan yaitu nilai data ,akan tetapi berupa alamat.
Pointer tanpa tipe
Supaya pointer bisa dibaca oleh variabel atau lebih tepatnya menunjuk kesumua tipe data, yaitu dengan cara mendeklarasikan pointer tersebut sebagai pointer tanpa tipe.  Penulisannya void pointer
Bentuk umum :
void  *nama_pointer;
Berikut program contoh program pointer tanpa tipe (void pointer)
int main()
{
void *p;
int x;
p= &x; //memerintahkan p untuk untuk menuju ke alamat dari var x
x=10;
cout<<"nilai X  : "<<x<<endl;
cout<<"nilai &X : "<<&x<<endl;
Ø  Array
Array adalah sebuah variabel yang menyimpan sekumpulan data yang memilili tipe data sama. Setiap data tersebut menempati lokasi atau alamat memory yang berbeda beda dan selanjutnya disebut dengan element array.  Untuk mendeklarasikan sebuah array dalam C++, kita harus menggunakan tanda [  ] (bracket). Adapun bentuk umum dari array :
Tipe_data nama_array[jumlah_elemen];
Contoh dalam bentuk program :
Int larik[9];
Melakukan inisialisasi array: Pada saat kita mendeklarasikan array kita dapat langsung melakukan inisialisasi nilai terhadap elemen-elemen array didalamnya. Hal ini dimaksudkan untuk mengisikan nilai default pada elemen array. //mendeklarasikan array dengan langsung menginisialisasi nilainya
            int a[5]={10,20,30,40,50};
            //menampilkan nilai yang terdapat pada elemen array
cout<<"menampilkan nilai yg sudah dilakukan inisialisasi"<<endl;
            cout<<"a[0]= "<<a[0]<<endl;
            cout<<"a[1]= "<<a[1]<<endl;
            cout<<"a[2]= "<<a[2]<<endl;
            cout<<"a[3]= "<<a[3]<<endl;
            cout<<"a[4]= "<<a[4]<<endl;  
Ingat indeks array selalu dimulai dari 0, sehingga untuk mengakses elemen ke-10, maka indeks yang kita buthkan 10-1, yaitu 9. Menampilkan nilai yang terdapat pada array setelah memahami cara mengisikan nilai kedalam array sekarang kita akan membahas bagaimana cara untuk mengakses atau menampilkan nilai-nilai yang sudah kita input.
Melakukan pencarian pada elemen array Salah satu permasalahan yang sering muncul pada saat kita menggunakan array adalah tuntutan untuk melakukan pencarian elemen array. Mengurutkan elemen array Metode untuk mengurutkan elemen array dapat dilakukan dengan metode gelembung (buble sort). Maksimum –minimum.
Contoh Program Array Pada C++
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
main()
{
    float suhu[5];
   float total=0;
    clrscr();
   cout<<"Masukan Data Suhu "<<endl<<endl;
   for (int i=0;i<5;i++)
       {
          cout<<"Suhu Ke : "<<(i+1)<<" = ";
         cin>>suhu[i];
         total+=suhu[i];
      }
      cout<<endl;
      cout<<"Suhu rata-rata "<<total/5<<endl;
      getch();
}

2.7.      Fungsi
            Fungsi merupakan subprogram dan berguna untuk menjadikan program dapat lebih bersifat modular sehingga akan mudah dipahami dan dapat digunakan kembali, baik untuk program itu sendiri maupun untuk program lain yang memiliki proses yang sama.
v  Fungsi tanpa nilai balik: Sebagai suatu proses yang tidak mengembalikan nilai. Maka untuk melakukan ini kita harus menggunakan suatu fungsi dengan tipe void, yang berarti tidak memiliki tidak memiliki nilai balik (return value).  Bentuk Umum
Void nama_fungsi (paramater11, parameter2.....)
{
Statemen yang akan diulang;
}
v  Fungsi dengan nilai balik : Berbeda dengan fungsi yang bertipe void. Fungsi ini berguna untuk melakukan proses yang dapat mengembalikan sebuah nilai. Dalam membentuk fungsi ini kita harus mendefinisikan tipe data dari nilai yang akan dikembalikan. Bentuk umum : Tipe_data nama_fungsi (parameter1, parameter2,...)
{          Statement yang akan dilakukan;
            Return nilai_yang akan dikembalikan;
}
v  Fungsi yang mengembalikan tipe string
#include <iostream.h>
char* testfungsistring()
{          return "ini adalah nilai dari fungsi";
} int main()
{ cout<<testfungsistring()<<endl;
            return 0;
}
v  Fungsi yang mengembalikan tipe bilangan
#include <iostream.h>
double testfungsibilangan()
{          return (3.14*2);
}int main()
{  cout<<"nilai yg terdapat dalam fungsi = " <<testfungsibilangan<<endl;
return 0;
}
v  Fungsi dengan parameter: Secara teori parameter yang terdapat pada pendefinisian sebuah fungsi disebut dengan paramater formal, sedangkan paramater yang terdapat pada pemanggilan fungsi disebut dengan parameter aktual. Jumlah serta tipe data parameter formal dan aktual haruslah sesuai.
Ø  Parameter masukan Sesuai dengan namanya parameter ini akan digunakan sebagai nilai masukan dalam sebuah fungsi.  Kemudian akan diproses oleh fungsi untuk menghasilkan nilai kembalian (return value).
Ø  Parameter keluaran adalah parameter yang berfungsi  untuk menampung nilai yang akan dikembalikan. Dengan kata lain parameter tersebut berguna sebagai nilai keluaran dan sebuah fungsi.
Ø  Parameter masukan/keluaran Jenis parameter ini adalah parameter yang digunakan sebagai masukan dan juga keluaran. Melewatkan parameter berdasarkan nilai (pass by value) Sesuai dengan namanya fungsi ini akan melewatkan nilai parameter kedalam sebuah fungsi untuk digunakan sesuai proses yang terdapat didalam fungsi tersebut.
2.8.      Input-Output dan Konsep Dasar OOP
             Stream adalah logical device yang berguna untuk mendapatkan atau memberikan informasi. Menurut sumber  yang ada  program yang ditulisa dalam bahasa C++ rata-rata berisi 25000 – 100000 baris kode.  Hal ini sangat tentu akan menyebabkan program menjadi kompleks dan susah untuk dipahami alurnya.
v  Ciri-ciri dasar OOP
1.      Abstraksi (abstraction) proses penyembunyian detail program yang sangat rumit.
2.      Pembungkusan (encapsulation)npenggabungan antara da-data dan fungsi yang berkaitan kedalam sebuah objek.
3.      Pewarisan (inheritance) menciptakan objek baru yang diturunkan dari objek lain.
4.      Polimorfisme (polymorphism) Mengimpementasikan sesuatu hal yang berbeda melalui sat hal cara yang berbeda.

Contoh program input Output pada c++
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <cstdlib>
main (){           char kode;
system("cls");
cout<<"masukan kode barang [A..C] :";cin>>kode;
switch(kode) {
case 'A':
            cout<<" Alat Olah Raga";
            break;
case 'B':
cout<<" Alat Elektronik";
            break;
case 'C': Cout<<" Alat masak";
            break;
default :
            cout<<"Anda salah kode!";
            break; }
getch();
return 0;
}



2.9.      Kelas dan Objek
Seperti yang telah disinggung di pertemuan-9 bahwa kelas adalah bentuk penyederhanaan dari suatu permasalahan yang berkaitan dengan objek. Maka dari itu kelas dapat didefinisikan sebagai sesuatu yang mempunyai data (sifat) dan fungsi (kelakuan).
Class nama_kelas
{          public:
            daftar fungsi yang diturunkan;
            daftar variabel;
Untuk mendefinisikan atau membuat implementasi fungsi-fungsi yang terdapat dalam sebuah kelas,  kita menggunakan operator :  :  (tanda scope).
Berikut ini bentuk umum dari pendefinisian fungsi tersebut :
 nama_kelas:: nama_fungsi(daftar_parameter)
{          Statemen_yang_akan_dilakukan;
}
Sedangkan untuk mengakses data atau fungsi yang terdapat didalam kelas tersebut, kita menggunakan tanda titik, berikut ini bentuk umum dari proses pengaksesan data atau fungsi dari sebuah kelas.
Nama_instance.nama_fungsi
Atau
Nama_instance.nama_fungsi(daftar_parameter)
v  Construktor adalah sebuah fungsi yang otomatis akan dipanggil setiap kali melakukan instansiasi terhadap suatu kelas. Construktor digunakan untuk melakukan inisialisasi nilai dari data-data yang terdapat didalam kelas bersangkutan.
v  Sedangkan destructor adalah fungsi yang merupakan kebalikan dari constructor, yaitu berguna untuk menghancurkan atau membuang sebuah objek (kelas) dari memori. Adapaun nama dari destructor sama dengan constructor hanya didepannya ditambahkan tanda tilde (‘~’).

2.10.    Fungsi Virtual dan Polimorfisme
v Fungsi virtual adalah fungsi yang mendukung adanya polymorpic function artinya fungsi tersebut dapat didefinisikan ulang pada kelas-kelas turunannya. Fungsi virtual ini biasanya terdapat pada kelas kelas dasar.  Walaupun demikian kita juga dapat mendeklarasikan fungsi virtual pada kelas-kelas turunan yang akan dijadikan sebagai kelas dasar bagi kelas-kelas lainnya. Untuk mendefinisikan fungsi sebagai fungsi virtual adalah dengan menggunakan kata kunci virtual, yaitu dengan menempatkannya didepan pendeklarasian fungsi tersebut.



v  Polimorfisme
Sesuai dengan asal kata pembentuknya, poliforfiseme merupakan berarti mempunya banyak bentuk, atau bisa juga disebut sebagai kemampuan mengungkap suatu hal yang berbeda melalui satu cara yang sama. Misalnya bila seorang penyanyi disuruh menyanyi maka dia akan bernyanyi dan melakukan gerakan sesuai dengan lagu yang dibawakan. Jika pemain sepakbola kita suruh bermain sepakbola maka dia akan berlari, mengoper bola dan menendang bola dan sebagainya.  Dua-duannya menerima pesan yang sama dan melakukan sesuai dengan kemampuan masing-masing.

2.11.    Preprocessor Directive
Dalam C++ kita dapat memasukkan berbagai macam perintah kekompiler melalui preprocessor directive, yaitu perintah yang diawali dengan tanda pound (#). Meskipun perintah ini biasanya terdapat diawal program akan tetapi kita juga bisa memasukkan dimanapun didalam kode program sesuai dengan kebutuhan dari program yang dibuat. Perlu diperhatikan bahwa sebuah perintah yang menggunakan preprocessor directive harus diletakkan dalam satu baris tersendiri.
Beberapa directive yang terdapat pada  C++ adalah sebagai berikut :
#include ,  #define,  #pragma,  #error, #if,  #elif,  #else,  #endif,  #ifdef,  #undef,  #line. #include digunakan untuk memasukkan file header kedalam kode program yang kita tuliskan.nMisalnya kita memasukkan file header iostream dan stdlib maka kita akan menuliskannya seperti berikut :
#include <iostream.h>
#include <stdlib.h>
Fungsi directive #define
Fungsi dari directive #define adalah menggantikan identifier tersebut dengan sebuah nilai yang didefinisikan dibelakangnya.  Sebagai contoh : Kita ingin mendefinisikan sebuah identifier dengan nama test yang diikuti dengan nilai =10, maka kita akan menuliskannya seperti berikut:
#define test 10
Perintah tersebut menyebabkan setiap terdapat string test dikode program akan digantika dengan nilai 10

v  Directive #if Bertujuan untuk melakukan suatu pemilihan, setiap pemilihan dengan #if selalu diakhiri dengan #endif Bentuk umum penggunaannya :
#If kondisi
Statemen-statemen yang dilakukan
#endif
v  Directive #ifdef Berfungsi untuk melakukan pengecekan sebuah identifier , apakah identifier tersebut sudah didefinisikan atau belum.
v  Directive #ifndef Merupakan kebalikan dari dari #ifdef,  yaitu bertujua untuk melakukan pengecekan.
v  Directive #undef Berguna untuk menghapus makro/nilai identifier yang telah didefinisikan sebelumnya. Ini berguna jika kita melakukan perubahan nilai dari makro tersebut. Directive ini merupakan kebaliakan dari directive #define.
v  Directive #error Digunakan untuk menghentikan proses kompilasi dan selanjutnya menampilkan pesan kesalahan. Biasanya  penggunaan directive ini berhubungan dengan directive #if.  Adapun bentuk umum : 3error pesan_kesalahan
Perlu diperhatikan bahwa pesan kesalahan diatas tidak diapit oleh tanda kutip ( “  “ )








BAB  III
PENUTUP
3.1.      Kesimpulan
            Dari makalah di atas penyusun dapat mengambil kesimpulan : Pemrograman Berorientasi Objek (Object Oriented Programming atau OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. OOP adalah paradigma pemrograman yang cukup dominan saat ini, karena mampu memberikan solusi kaidah pemrograman modern. Pemrograman Orientasi Objek (Object Oriented Programming) menekankan beberapa konsep, yaitu kelas, objek, abstraksi, enkapsulasi, polimorfisme, dan inheritas. Python, Ruby dan Groovy adalah bahasa dinamis dibangun di atas prinsip-prinsip OOP, sedangkan Perl dan PHP telah menambahkan fitur berorientasi objek sejak Perl 5 dan PHP 4, dan ColdFusion sejak versi 6. Desain pola OOP antara lain :
1) Warisan dan Perilaku Subtyping,
2) Pola Desain Gang Empat,
3)  Obyek Orientasi dan Database,
4) Pemodelan Dunia Nyata dan Hubungan,
5) Desain OOP dan Flow Control,
6) Desain Tanggung Jawab dan Driven Desain Data.
            Beberapa ahli juga mengkritik OOP, antara lain : Richard Stallman, Potok et al., Christopher J. Tanggal, Alexander Stepanov, Paul Graham, Joe Armstrong, Richard Mansfield, Rich Hickey, dan Carnegie-Mellon University Profesor Robert Harper.



3.2       Saran
            Setelah mengetahui pengertian dan seluk beluk semua tentang OOP, kita dapat mengambil segi positif dari penggunaan OOP dalam pemrograman, walaupun masih terdapat kelemahan-kelemahan OOP dalam pemrograman.
Dalam pembahasan ini, Saya mengakui masih banyak terdapat kekurangan, baik dari segi penulisan kata maupun penjelasannya yang kurang tepat. Oleh karena itu Saya mohon kritikan dan saran dari pembaca demi kesempurnaan makalah ini di masa yang akan datang.
















DAFTAR PUSTAKA

Ø  http://id.wikipedia.org/wiki/Pemrograman_berorientasi_objek.
Ø  en.wikipedia.org/wiki/Object-oriented_programming.
Ø  http://elearning.upbatam.ac.id/n/mod/resource/view.php?id=2209

Tidak ada komentar:

Posting Komentar

Jika mengunjungi blogs ini harap komentar ya..