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.
Ø 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();
}
#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();
}
Ø 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;
}
#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;
}
Ø 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..