BAB I
PENDAHULUAN
1.1 Latar Belakang
Pada saat ini perkembangan dan kemajuaan teknologi informasi dan komunikasi telah berkembang dengan sangat pesat. Berbagai kemudahan memperoleh informasi dari berbagai penjuru dunia dapat kita nikmati dalam hitungan detik.
Diantara teknologi informasi yang hampir disetiap tempat kita temukan adalah komputer. Sekarang komputer sangat berkembang pesat hampir setiap tahun komputer selalu mengalami perkembangan. Sedangkan model dan design dari komputer itu sendiri juga mengalami perkembangan.
Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan kerangka pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam kerangka 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.

1.2 Rumusan Masalah
Dalam menyusun makalah ini , ada beberapa masalah yang berkaitan dengan :
1. Sejarah perkembangan PBO.
2. Definisi dan pengertian PBO.
3. Program – program pendukung PBO.

1.3 Tujuan
Berdasarkan dengan latar belakang diatas, maka dalam makalah ini bertujuan :
1. Mengetahui sejarah dan perkembangan dari Pemrograman Berorientasi Objek.
2. Mengetahui lebih banyak tentang PBO.
BAB II
PEMBAHASAN
2.1 Sejarah PBO
Dasar untuk OOP dimulai pada awal tahun 1960-an. Sebuah terobosan melibatkan contoh dan objek telah dicapai di MIT dengan PDP-1, dan pertama untuk menggunakan bahasa pemrograman objek adalah Simula 67. Ia dirancang untuk tujuan membuat simulasi, dan dikembangkan oleh Kristen Nygaard dan Ole-Johan Dahl di Norwegia.
Mereka bekerja pada simulasi yang berurusan dengan exploding kapal, dan mereka dapat diwujudkan grup yang berbeda kapal ke kategori. Setiap jenis kapal akan memiliki class, dan class akan menghasilkan perilaku yang unik dan data. Simula tidak hanya bertanggung jawab untuk memperkenalkan konsep class, tetapi juga memperkenalkan instance dari class.
Istilah “object oriented programming (OOP) / pemrogramman berbasis object (PBO)” pertama kali dipakai oleh Xerox PARC. Istilah ini digunakan untuk merujuk kepada proses menggunakan objek sebagai dasar untuk penghitungan. Suatu objek akan dapat dibentuk, diubah dan di hapus. Sistem yang menggunakan pemrograman berorientasi objek pertama kali adalah Simula 67 yang telah memberikan masukan terhadap berbagai bahasa pemrograman lain, termasuk Pascal dan Lips. Tahun 1980, C++ mendominasi pemrograman dengan kategori berorientasi objek. Tidak puas dengan bentuk tampilan yang ada maka pengembang pemrograman berorientasi objek berusaha memikirkan graphics user interface. Grafics user interface yang dinamis pertama kali di kembangkan oleh Cocoa. Grafics user interface ini juga telah memainkan peranan penting dalam pengembangan event-driven programming. Bahasa pemrograman yang menggunakan teknik pemrograman berorientasi objek diantanya Fortran (bahasa pemrograman untuk pengolahan rumus), BASIC dan pascal. Bahasa pemrograman ini murni karena tidak memiliki fungsi yang diperlukan oleh programmer, hal ini akan memberikan kebuntuan bagi para programmer. Untuk memecahkan kebuntuan tersebut maka ditemukan Java, Java menjadi populer karena menggunakan virtual machine yang mirip dengan C++, sehingga memungkinkan Java bisa berjalan pada berbagai platform. Kepopuleran pemrograman berorientasi objek telah menyebabkan pengembangan dalam bahasa modeling, design patern, dan lain sebagainya. Sehingga akan memberi harapan pengembangan bahasa pemrograman akan selalu ada dimasa mendatang.

2.2 Pengertian PBO / OOP
Pemrograman berorientasi objek (PBO) (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.
Konsep dari object oriented programming (OOP) adalah lebih dari sekedar sebuah konsep pemrograman, Object oriented programming adalah cara berpikir tentang aplikasi yang mempelajari untuk berpikir bahwa aplikasi bukan sekedar prosedur melainkan sebagai object. Object yang dimaksud disini memiliki pengertian suatu modul yang mengkombinasikan antara data dan kode program yang bekerja sama dalam program dengan melewatkan proses satu sama lain. Jadi object oriented programming merupakan cara yang paling efisien untuk menulis program komputer yang sangat mudah untuk di kombinasikan dan untuk dipergunakan kembali.
Object oriented programming lebih memfokuskan kepada manipulasi object. Kenapa seorang programmer harus mempelajari object oriented programming bahkan seorang programmer yang tidak pernah bekerja dengan object oriented programing pun harus mempelajarinya juga. Hal ini dikarenakan pada suatu hari nanti semua bahasa pemrograman akan menambahkan kemampuan object oriented programming pada bahasanya.

2.3 Konsep Dasar PBO
Ada banyak konsep dalam Pemrograman Berorientasi Object (PBO) antara lain Object , Class , Attribute, berukit penjelasannya :
1. Object
Untuk mempermudah pemahaman, maka disini akan dijelaskan melalui analogi. Pada dasarnya semua benda yang adadi dunia nyata dapat dianggap sebagai objek. Misalnya rumah, mobil, sepeda, motor, gelas, komputer, meja, sepatu, dll. Setiap objek memiliki atribut sebagai status (state) dan tingkah laku sebagai behavior.
Contoh objek : Motor. Maka atribute (state) nya adalah pedal, roda, jeruji, speedometer, warna, jumlah roda. Sedangkan tingkah laku (behavior) nya adalah kecepatan menaik, kecepatan menurun, dan perpindahan gigi motor.
Analogi pemrograman berorientasi objek sama dengan penggambaran pada dunia nyata seperti contoh di atas. Dalam PBO, state disimpan pada variabel dan tingkah laku disimpan pada method.
Dalam bahasa teoretis PBO, Objek berfungsi untuk membungkus data dan fungsi bersama menjadi satu unit dalam sebuah program komputer. Objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
2. Class :
Dalam bahasa teoretis PBO, class merupakan kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh class motor adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari motor. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object.
Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan PBO). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
3. Attribute
Merupakan nilai data yang terdapat pada suatu object di dalam class. Attribute mempunyai karakterisitik yang membedakan object yang satu dengan object yang lainya. Contoh : pada Class motor terdapat attribute: warna, berat, kecepatan, cc mesin.

2.4 Karakteristik PBO
           
• Pengapsulan (encapsulation)
Pengapsulan (encapsulation) adalahpengemasan data dan fungsi dalam wadah bernama objek dikenal dengan sebutan pengapsulan ataubisa juga mengkombinasikan suatu struktur dengan fungsi yang memanipulasinya untukmembentuk tipe data baru yaitu kelas (class).Kelas akan menutup rapat baik data maupun kode. Akses item didalam kelasdikendalikan. Pengendalian ini tidak hanya berupa data tapi juga kode. Saat kelas akandigunakan, kelas harus sudah dideklarasikan. Yang penting, pemakai kelas mengetahuideskripsi kelas, tetapi bukan implementasinya. Bagi pemakai, detail internal kelas tidakpenting. Konsep ini disebut penyembunyian informasi (information hiding).
• Pewarisan (inheritance)
Pewarisan (inheritance) merupakan sifatdalam bhasa pemograman berorientasi objek yang memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas lain atau bisa juga mendefinisikan suatu kelas dan kemudianmenggunakannya untuk membangun hirarki kelas turunan, yang mana masing-masingturunan mewarisi semua akses kode maupun data kelas dasarnya..data dan fungsi yang dapat diwariskanhanya yang bersifat public dan protected. Untuk data dan fungsi private tetap tidakdapat diwariskan. Hal ini disebabkan sifat protected yang hanya dapat diakses daridalam kelas saja.Sifat pewarisan ini menyebabkan kelas-kelas dalam pemograman berorientasi objekmembentuk hirarki kelas mulai dari kelas dasar, kelas turunan pertama, kelas turunankedua dan seterusnya. Sebagai gambaran misalnya ada hirarki kelas unggas.
Sebagai kelas dasar adalah Unggas. Salah satu sifat unggas adalah bertelur dan bersayap. Kelas turunan pertama adalah Ayam, Burung, Bebek. Tiga kelas turunan ini mewarisi sifat kelas dasar Unggas yaitu bertelur dan bersayap. Selain mewarisi sifat kelas dasar, masing-masing kelas turunannya mempunyai kelas khusus, Ayamberkokok, Burung terbang, dan Bebek berenang. Kelas ayam punya kelas turunan yaitu Ayam kampung dan Ayam hutan. Dua kelas ini mewarisi sifat Ayam yang berkokok.Tapi dua kelas ini juga punya sifat yang berbeda yaitu: Ayam Kampung berkokokpanjang halus sedangkan Ayam Hutan berkokok pendek dan kasar.
• Polimorfisme (polymorphim)
Merupakan suatu konsep yang menyatakan sesuatu yang sama dapat memiliki berbagai bentuk dan perilakuyang berbeda atau bisa juga memberikan satu aksi untuk satu nama yang dipakai bersama pada satu hirarki kelas, yang mana masing masing kelas hirarkimenerapkan cara yang sesuai dengan dirinya.

2.5 Program - Program Pendukung PBO
1. C++
Adalah bahasa pemrograman komputer yang di buat oleh (Bjarne Stroustrup) merupakan perkembangan dari bahasa C dikembangkan di Bell Labs (Dennis Ritchie) pada awal tahun 1970-an.



2. Pascal
Adalah bahasa pemrograman yang pertama kali di buat oleh Profesor Niklaus Wirth, seorang anggota International Federation of Information Processing (IFIP) pada tahun 1971.
3. Delphi
Adalah sebuah lingkungan pengembangan terpadu (IDE) untuk mengembangkan aplikasi konsol, desktop, web, ataupun perangkat mobile.
4. Perl
Adalah bahasa pemrograman untuk segala keperluan, dikembangkan pertama kali oleh Larry Wall di mesin Unix.
5. Python
Adalah bahasa pemrograman interpretatif multiguna dengan filosofi perancangan yang berfokus pada tingkat keterbacaan kode.
6. C#(See-Sharp)
Adalah bahasa pemrograman baru yang diciptakan Microsoft yang digunakan oleh banyak developer .NET untuk mengembangkan applikasi dengan platform .NET.
2.5.1 C++
C++ merupakan salah satu bahasa pemrograman berorientasi objek. C++ bisa dikatakan bahasa yang cukup fleksibel untuk requirement desain program / aplikasi. Program C++ berisi sekumpulan command atau perintah yang membuat komputer melakukan suatu proses komputasi. Kumpulan perintah ini biasanya disebut C++Source Code. Sebelum program C++ dijalankan, program harus diperiksa dulu melalui proses yang dinamakan compile. Proses ini dilakukan dengan menggunakan kakas pemrograman. Program pada C++ terdiri dari:
1.      Library
Sekumpulan resource yang siap dipakai pada program
2.      Struktur data
Penyimpanan data atau variabel dalam tipe tertentu
3.      Operasi primitif
Terdiri dari fungsi dan prosedur yang melakukan pemrosesan data.
Dalam library C++, iostream mendukung dua operasi dasar yaitu cout untuk output dan cin untuk input. Biasanya, dengan perintah cout akan menampilkan sesuatu ke layar monitor dan dengan perintah cin akan menerima masukan dari keyboard.

1. Output (cout)
Untuk cout menggunakan operator << (insertion operation)
cout<<“ Selamat Datang”; // mencetak tulisan Selamat Datang ke layar
cout<<120; // mencetak angka 120 ke layar
cout<<x; // mencetak isi nilai variabel x ke layar
Operator << dikenal dengan insertion operator yang memberikan perintah kepada cout.
-          Untuk contoh pertama, kalimat yang akan dicetak di layar di apit oleh tanda “ “
karena berupa string.
-          Sedangkan pada contoh kedua dan ketiga, tanpa tanda “ “, karena yang akan ditampilkan ke layar bukan berupa string ataupun karakter.
Insertion operator (<<) dapat digunakan lebih dari satu dalam sebuah pernyataan:
cout<<”hallo”<<”saya”<<”belajar c++;
Selanjutnya dapat juga dikombinasikan dengan variabel. Misalnya:
cout<<”hallo saya berusia”<<age<<”tahun”;
Untuk menambahkan perintah ganti baris, ada dua perintah yang dapat dipakai: “\n” dan perintah endl.
Contoh:
-          Penggunaan perintah “\n”
// program pertamaku
#include<iostream.h>
int main()
{
cout <<"selamat belajar c++ \n";
cout<<"di Lab 7";
return 0;
}
-          Penggunaan perintah endl
// program pertamaku
#include<iostream.h>
int main()
{
cout <<"selamat belajar c++"<<endl;
cout<<"di Lab 7";
return 0;
}
2. Input (cin)
Untuk menerima inputan dengan perintah cin, maka operator yang akan digunakanadalah overloaded operator (>>) dan diikuti dengan variabel tempat menyimpan inputan data.
Contoh:
int age;
cin>>age;
cin hanya dapat diproses setelah penekanan tombol ENTER. Jadi walaupun hanya satu karakter yang dimasukkan, sebelum penekanan Enter, cin tidak akan merespon apa-apa.
Contoh program:
#include<iostream.h>
void main()
{
int age;
cout<<"masukkan umur anda = ";
cin>>age;
cout <<"umur saya sekarang= "<<age<<"tahun";
}


Elemen Dasar C++
1.    Tipe Data
Terdapat 5 tipe data dari bahasa C, yaitu: void, integer, float, double dan char. Tipe keterangan void diartikan sebagai tanpa tipe data dan tanpa pengembalian nilai int bilangan bulat (integer), float bilangan pecahan (floating point), double bilangan pecahan dengan jangkauan data yang lebih luas, char karakter.
Sedangkan C++ sendiri menambahkan dua buah tipe data lagi, yakni: bool dan
wchar_t.
2.    Variabel
Berbeda dengan pendeklarasian variabel di bahasa pemograman lain, dalam C++sebelum mendeklarasikan variabel, hal pertama yang harus dideklarasikan adalah tipe data yang akan digunakan untuk menampung data.
Format penulisannya adalah:
Tipe_data pengenal = nilai;
Sebagai contoh:
int a;
float nomor;
atau dapat juga pemberian nilai awal untuk variabel dilakukan pada saat deklarasi.
Contoh:
int a = 10;
char s=’a’;
contoh
#include<iostream.h>
void main()
{
//inisialisasi variabel:
int a,b;
int hasil;
//proses:
a=5;
b=2;
a=a+1;
hasil = a - b;
//cetak hasilnya:
cout<<"hasil = "<<hasil;
}
3.        Konstanta
Konstanta mirip dengan variabel, namun memiliki nilai tetap. Konstanta dapatberupa nilai interger, float, karakter, dan string.Pendeklarasian konstanta dapat dilakukan dengan dua cara:
·         Menggunakan (#define)
Deklarasi konstanta dengan cara ini, lebih mudah dilakukan karena akan menyertakan #define sebagai preprocessor directive.
Contoh penggunaan:
#define phi 2.414159265
#define Newline ‘\n’
#define lebar 100
·         Menggunakan konstanta (const)
Sedangkan dengan kata kunci const, pendeklarasian konstanta mirip dengan deklarasi variabel yang ditambah kata depan const.
Contoh:
const int lebar = 100;
const char tab = ‘t’;
const zip = 1212;
4.        Operator
Dalam C++ terdapat berbagai macam operator yang dapat dimanfaatkan dalamaplikasi.
-          Operator Assign (=)
Operator (=), akan memberikan nilai kedalam suatu variabel.
-          Operator Aritmatika (+, -, *, /, %)
Operator Keterangan
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
% Modulus / Sisa bagi
-       Operator Penaikan dan Penurunan (++ dan --)
Operator penaikan/ increment (++) akan menaikkan atau menambahkan 1 nilaivariabel. Sedangkan operator penurunan/ decrement (--) akan menurunkan atau mengurangi 1 nilai variabel.
Misalnya:
a++;
a--;
contoh :
#include <iostream.h>
void main()
{
int r=2;
int s;
s=2 + r++;
cout<<s<<endl<<r;
}
-       Operator majemuk (+=, -=, *=, /=, %=, <<=, >>=, &=, |=)
Dalam C++, operasi aritmatika dapat disederhanakan penulisannya dengan format penulisan operator majemuk.
Misalnya:
a+=5 sama artinya dengan menuliskan a= a+5
a*=5 sama artinya dengan menuliskan a=a*5
a/=5 sama artinya dengan menuliskan a =a/5
#include<conio.h>
void main()
{ int x = 2;
clrscr();
cout <<"x = "<< x <<endl;
x+=3;
cout <<"setelah x+=3, x menjadi " << x <<endl;
x*=3;
cout <<"setelah x*=3, x menjadi "<< x <<endl;
}
-       Operator Relasional (==, !=, >, <, >=, <=)
Yang dihasilkan dari operator ini bukan berupa sebuah nilai, namun berupa
bilangan bool yaitu benar dan salah
Operator Keterangan
== Sama dengan
!= Tidak sama dengan
> Lebih besar dari
< Kurang dari
>= Lebih besar dari atau sama dengan
<= Kurang dari atau sama dengan
Contoh:
(7==5) hasilnya adalah false
(5 > 4) hasilnya adalah true
-          Operator Logika ( !, &&, | | )
Operator logika juga digunakan untuk memberikan nilai atau kondisi true danfalse. Biasanya operator logika dipakai untuk membandingkan dua buah kondisi.
Misalnya:
((5==5) && (3>6) hasilnya akan bernilai false, karena (true && false)
-            Operator kondisional (?)
Format penulisan operator kondisional adalah:
kondisi ? hasil1:hasil2
Jika kondisi benar maka yang dijalankan adalah hasil1 dan jika kondisi salah maka akan dijalankan hasil2
Contoh:
7==5 ? 4 : 3 hasilnya adalah 3, karena 7 tidak sama dengan 5
5>3 ? a : b hasilnya adalah a, karena 5 lebih besar dari 3
Seleksi kondisional dan perulangan
Dalam sebuah proses program, biasanya terdapat kode penyeleksian kondisi, kode pengulangan program, atau kode untuk pengambilan keputusan. Untuk tujuan tersebut, C++ memberikan berbagai kemudahan dalam sintaksnya.
Seleksi kondisional
1. If_else
Format penulisannya:
if (kondisi) pernyataan;
Kondisi adalah ekspresi yang akan dibandingkan. Jika kondisi bernilai benar, maka pernyataan akan dijalankan. Namun, jika kondisi bernilai salah, maka pernyataan akan diabaikan.
2. Switch
Logika menggunakan switch sama dengan menggunakan perintah if yang telah dijelaskan sebelumnya.
5.        Perulangan (looping)
Sebuah atau beberapa pernyataan akan dijalankan secara berulang ulang, selama kondisi terpenuhi.
1). while
Sintaksnya : while (kondisi) pernyataan;
Pernyataan akan dijalankan selama ekspresi bernilai true.
2). do…while
Sintaksnya : do pernyataan while (kondisi);
Konsep do_while mirip dengan while. Namun pernyataan akan dijalankan terlebih dahulu sebelum pengecekan kondisi.
3). for
Sintaksnya : for (inisialisasi; kondisi; counter) pernyataan;
Pernyataan akan diulangi jika kondisi bernilai true (sama seperti while). Namun for menetapkan inisialisasi dan counter berada dalam ( ) tanda kurung .
Tambahan:
-       Perintah break
break berfungsi untuk keluar dari loop, walaupun kondisinya belum seluruhnya terpenuhi. Biasanya, perintah ini digunakan untuk memaksa program keluar dari loop.
-       Perintah continue
Perintah ini akan melewati satu iterasi yang sesuai dengan syarat tertentu, dan melanjutkan ke iterasi selanjutnya.
6.        Array
Pada program yang dibahas terdahulu, banyak menggunakan variabel tunggal, artinya sebuah variabel hanya digunakan untuk menyimpan satu nilai. Array merupakan koleksi data dimana setiap elemen memakai nama yang sama dan bertipe sama, setiap elemen diakses dengan membedakan indeks array-nya.
7.        Fungsi
Yang dimaksud dengan Function atau fungsi adalah sejumlah instruksi yang dikelompokkan menjadi satu, berdiri sendiri, yang berfungsi untuk menyelesaikan suatu pekerjaan tertentu. Bahasa C/C++ adalah suatu bahasa yang struktur penulisannya merupakan kumpulan dari fungsi-fungsi. Setiap fungsi mempunyai nama. Bahasa C/C++ minimal terdiri dari satu buah fungsi yang disebut fungsi main( ). Nama main adalah nama fungsi yang ditentukan oleh bahasa C/C++, yang tidak boleh diganti dengan nama lain. Fungsi-fungsi lain (yang dibuat sendiri bila diperlukan) namanya dapat dikarang sendiri.












BAB III
PENUTUP

3.1 Kesimpulan

Pemrograman berorientasi objek merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Pada pemrograman ini setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. Dan saat ini bahasa pemrograman yang menggunakan paradigma ini banyak menggunakan C++ karena bahasa ini fleksibel untuk desain program atau aplikasi.





















DAFTAR PUSTAKA

https://www.slideshare.net/TettyPrasetyo/pengenalan-c-dan-pemograman-berorientasi-objek
http://saidsanklaksana.blogspot.com/2013/03/sejarah-pemrograman-berorientasi-objek.html
http://objekaja.blogspot.com/2008/12/sejarah-pemrograman-berorientasi-objek.html
http://pbo-re.blogspot.com/2010/03/pengertian-class-attribute-object.html
http://hadiprojek.blogspot.com/2013/03/pemrograman-berorientasi-objek.html
Modul Praktikum Pemograman Berorientasi Objek dengan C++ karya S. Indriani Lestariningati, M.T
https://www.slideshare.net/KuliahKita/algoritma-dan-struktur-data-pengenalan-bahasa-c-40580224