Perbedaan P.BO(berorienatsi Objek) Dan Pemrograman Terstruktur
PERBEDAAN PEMROGRAMAN BERORIENTASI OBJEK DAN PEMROGRAMAN
TERSTRUKTUR
Pengertian
Pemrograman Berorientasi Objek
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.
Bahasa pemrograman yang mendukung OOP antara lain:
- Visual Foxpro
- Java
- C++
- Pascal (bahasa pemrograman)
- Visual Basic.NET
- SIMULA
- Smalltalk
- Ruby
- Python
- PHP
- C#
- Delphi
- Eiffel
- Perl
- Adobe Flash AS 3.0
Pengertian
Pemrograman Terstruktur
Pemrograman
Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk
menyelesaikan suatu masalah dalam bentuk program.
Selain pengertian diatas Pemrograman Terstruktur adalah suatu aktifitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis , dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.
Selain pengertian diatas Pemrograman Terstruktur adalah suatu aktifitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis , dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.
Prinsip
dari pemrograman terstruktur adalah Jika suatu proses telah sampai pada suatu
titik / langkah tertentu , maka proses selanjutnya tidak boleh mengeksekusi
langkah sebelumnya / kembali lagi ke baris sebelumnya, kecuali pada langkah –
langkah untuk proses berulang (Loop).
Bahasa
pemrograman yang mendukung pemrograman terstruktur:
- Cobol Turbo Prolog
- C
- Pascal
- Delphi
- Borland Delphi
Setelah
mengetahu pengertiannya?
dilihat dari pengertian di atas,
pemrograman terstruktur memilki beberapa sifat – sifat seperti :
a. Memuat teknik pemecahan masalah yang logis dan sistematis
b. Memuat algoritma yang efisien, efektif dan sederhana
c. Program disusun dengan logika yang mudah dipahami
d. Tidak menggunakan perintah GOTO
e. Biaya pengujian program relatif rendah
f. Memiliki dokumentasi yang baik
g. Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah
a. Memuat teknik pemecahan masalah yang logis dan sistematis
b. Memuat algoritma yang efisien, efektif dan sederhana
c. Program disusun dengan logika yang mudah dipahami
d. Tidak menggunakan perintah GOTO
e. Biaya pengujian program relatif rendah
f. Memiliki dokumentasi yang baik
g. Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah
berdasarkan
penjelasan diatas, sangat jelas sekali bahwa pemrograman tersktruktur unggul
dalam melakukan pemrograman sederhana karena lebih efisien dan lebih murah
dalam hal perawatannya tetapi permodelan ini lebih susah untuk dipahami oleh
orang – orang selain pembuat program itu sendiri (contohnya ketika dlakukan
tracing program ).
Sementara
itu pemrograman berorientasi objek memliki beberapa keuntungan seperti :
1.maintenance; program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.
1.maintenance; program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.
2.pengubahan
program (berupa penambahan atau penghapusan fitur tertentu); perubahan yang
dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu
database program misalnya.
3.dapat
digunakannya obyek-obyek sesering yang diinginkan, kita dapat menyimpan
obyek-obyek yang yang dirancang dengan baik ke dalam sebuah tolkit rutin yang
bermanfaat yang dapat disisipkan kedalam kode yang baru dengan sedikit
perubahan atau tanpa perubahan pada kode tersebut.
jadi,
sangat jelas sekal bahwa pemrograman berorientasi objek sangat cocok sekali
digunakan dalam kasus pembuatan software yang rumit dan kompleks karena
memberikan berbagai kemudahan kepada pemrogram seperti yang telah disebutkan
diatas.
permodelan
yang mana yang lebh bagus? itu tergantung dari kebutuhan dan dari sudut pandang
mana anda melihatnya. Yang perlu anda ingat adalah tujuan dari pemodelan itu
sendiri, yang mana agar pada akhir proyek sistem dapat diperoleh sistem
informasi yang memenuhi kebutuhan pemakai, tepat waktu dan sesuai anggaran,
serta mudah digunakan, dimengerti dan dipelihara
Perbedaan
mendasar antara OOP dan pemrograman terstruktur adalah:
Dengan
menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat
bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi
objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sedangkan
untuk pemrograman terstruktur, menggunakan prosedur/tata cara yang
teratur untuk mengoperasikan data struktur
Untuk
tata nama, keduanya pun memiliki tatanan yang sama walaupun memiliki pengertian
tersendiri:
object
oriented menggunakan “method” sedangkan terstruktur menggunakan “function”.
Bila di OOP sering didengar mengenai “objects” maka di terstruktur kita
mengenalnya dengan ” modules”. Begitu pula halnya dengan “message” pada
OO dan “argument” pada terstruktur. “attribute” pada OO juga memiliki tatanan
nama yang sepadan dengan “variabel” pada pemrograman terstruktur.
Persamaan
kedua pemrogaman
adalah
keduanya termasuk ke dalam pemodelan pemrograman yang digunakan dewasa ini.
Mana
yang lebih baik
tidak
ada yang dapat dikatakan lebih baik karena keduanya memiliki spesifikasi
tersendiri dalam pemrogramannya. Hal ini juga tergantung pada bagaimana pribadi
si pemrogram ingin menyusun program yang akan dibuatnya. Apakah lebih suka
menggunakan yang berorientasikan pada objek maupun pemrograman yang
terstruktur.
Kapan
sama2 baik
Pemrograman
prosedural akan dikatakan lebih baik apabila dalam segala situasi melibatkan
kompleksitas moderat atau yang memerlukan signifikan kemudahan maintainability.
Manfaat yang dirasakan dalam penggunaan pemrograman prosedural adalah kemampuan
kembali menggunakan kode yang sama tanpa menggunakan kode yang berbeda ataupun
mengkopinya kembali. Dengan menggunakan “goto”, memudahkan programmer melacak
kumpulan data sehingga menghindarkan pemrograman terstruktur menjadi seperti
spagethii code.
Pemrograman berorientasikan objek dikatakan
lebih baik apabila 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.
Prosedural
vs OOP
Dalam
dunia pemrograman, biasanya kita dihadapkan pada dua jenis metode pemrograman,
yaitu pemrograman prosedural (procedural) dan pemrograman
berorientasi objek (object oriented). Apa perbedaan kedua metode tersebut?
Bagaimana pemrograman berorientasi objek itu dilakukan? Apa saja konsep-konsep
OOP yang harus dikuasai? Tulisan ini akan menjelaskan pertanyaan-pertanyaan
tersebut.
Pemrograman
prosedural merupakan suatu metode menulis program yang didasarkan pada
“serangkaian tugas yang diselesaikan dalam bentuk fungsi atau prosedur”.
Cara pandang pemrograman prosedural yaitu sebuah program adalah suatu urutan
instruksi. Programmer harus mem-break down suatu problem/masalah menjadi sub
problem yang lebih sederhana. Fokus utama metode prosedural ini adalah fungsi
dan prosedur, dimana keduanya digunakan untuk memanipulasi data. Dalam hal ini
data bersifat pasif.
Lain
halnya dengan pemrograman berorientasi objek (OOP), fungsi dan data bukan
menjadi dua hal yang terpisah. Fungsi dan data menjadi satu kesatuan yang
disebut sebagai objek aktif. Cara pandang OOP ini yaitu sebuah program
merupakan serangkaian objek yang bekerjasama untuk menyelesaikan suatu
problem.
Dengan
kata lain, metode prosedural berfokus pada cara komputer menangani tugas,
sedangkan metode OOP berfokus pada tugas yang kita kembangkan untuk dieksekusi
komputer. Kedua jenis metode pemrograman tersebut dapat digunakan untuk
menangani masalah yang sama, asalkan bahasa pemrograman yang digunakan
mendukung metode-metode tersebut. Contoh bahasa pemrograman yang mendukung OOP
diantaranya : Java, C++, Pascal, Visual Basic .NET, Ruby, Python, PHP, C#,
Delphi, Perl, dsb. Selain itu masih banyak bahasa lain yang termasuk ke dalam
bahasa prosedural, atau bahkan bisa mendukung kedua metode pemrograman
tersebut. Untuk lebih lengkapnya, dapat dilihat daftar bahasa pemrograman
berdasarkan tipenya di sini.
Istilah-Istilah
OOP
1.
Objek
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 penggambara pada dunia nyata seperti
contoh di atas. Dalam OOP, state disimpan pada variabel dan tingkah laku
disimpan pada method.
Dalam
bahasa teoretis OOP, 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
Definisi
class yaitu template untuk membuat objek. Class merupakan prototipe atau blue
prints yang mendefinisikan variabel-variabel dan method-method secara umum.
Objek merupakan hasil instansiasi dari suatu class. Proses pembentukan objek
dari suatu kelas disebut sebagai instantiation. Objek disebut juga sebagai
instances.
Dalam
bahasa teoretis OOP, class merupakan 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.
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 OOP). 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.
Attributes
Atribut
adalah data yang membedakan antara objek satu dengan yang lainnya.
Contoh
Objek : VolcanoRobot ( a volcanic exploration vehicle), mempunyai atribut
sebagai berikut:
- Status ~> exploring, moving, returning home
- Speed ~> in miles per hour
- Temperature ~> in Fahrenheit degrees
Dalam
class, atribut sering disebut sebagai variabel. Atribut dibedakan menjadi dua
jenis yaitu Instance Variable dan Class Variable.
Instance
variable adalah atribut untuk tiap objek dari kelas yang sama. Tiap objek
mempunyai dan menyimpan nilai atributnya sendiri. Jadi, tiap objek dari class
yang sama bokeh mempunyai nilai yang sama atau berbeda.
Class
Variable adalah atribut untuk semua objek yang dibuat dari class yang sama.
Semua objek mempunyai nilai atribut yang sama. Jadi semua objek dari class yang
sama mempunyai hanya satu nilai yang value nya sama.
4.
Behavior
Behavior/tingkah
laku adalah hal-hal yang bisa dilakukan oleh objek dari suatu class. Behavior
dapat digunakan untuk mengubah nilai atribut suatu objek, menerima informasi
dari objek lain, dan mengirim informasi ke objek lain untuk melakukan suatu
tugas (task).
Contoh
behavior untuk objek VolcanoRobot:
- check current temperature
- begin a survey
- report its current position
Dalam
class, behavior disebut juga sebagai methods. Methods sendiri adalah
serangkaian statements dalam suatu class yang menghandle suatu task tertentu.
Cara objek berkomunikasi dengan objek yang lain adalah dengan menggunakan
method.
Contoh
class, object, attributes, dan behavior:
5.
Abstraksi
Abstraksi
adalah kemampuan sebuah program untuk melewati aspek informasi yang diproses
olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem
melayani sebagai model dari “pelaku” abstrak yang dapat melakukan kerja,
laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam
sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi
atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk
mengembangkan sebuah pengabstrakan.
Konsep
Konsep OOP
1.
Enkapsulasi (Encapsulation)
Definisi
enkapsulasi: Pembungkusan variabel dan method dalam sebuah obyek yang
terlindungi serta menyediakan interface untuk mengakses variabel tersebut.
Variabel dan method yang dimiliki oleh suatu objek, bisa ditentukan hak
aksesnya. Dalam OOP, konsep enkapsulasi sebenarnya merupakan perluasan dari
struktur dalam bahasa C.
Contoh:
jam tangan. Dalam hal ini, penting sekali untuk mengetahui waktu, sedangkan
cara jam mencatat waktu dengan baik antara jam bertenaga baterai atau bertenaga
gerak tidaklah penting kita ketahui.
Dengan
kata lain enkapsulasi berfungsi untuk memastikan pengguna sebuah objek tidak
dapat mengganti keadaan dalam/dari sebuah objek dengan cara yang tidak layak;
hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya.
Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat
berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung
kepada representasi dalam objek tersebut.
2.
Pewarisan (Inheritance)
Pewarisan
merupakan pewarisan atribut dan method dari sebuah class ke class lainnya.
Class yang mewarisi disebut superclass dan Class yang diwarisi disebut
subclass. Subclass bisa berlaku sebagai superclass bagi class lainya, disebut
sebagai multilevel inheritance.
Contoh
: terdapat class sepeda dan sepeda gunung. Sepeda termasuk superclass.
Sepeda gunung termasuk subclass. Hal ini dikarenakan sepeda gunung memiliki
variabel dan method yang dimiliki oleh sepeda.
Prinsip
dasar inheritance yaitu persamaan-persamaan yang dimiliki oleh beberapa kelas
dapat digabungkan dalam sebuah class induk sehingga setiap kelas yang
diturunkannya memuat hal-hal yang spesifik untuk kelas yang bersangkutan.
Keuntungan
Pewarisan
- Subclass menyediakan state/behaviour yang spesifik yang membedakan dengan superclass, sehingga memungkinkan programmer untuk menggunakan ulang source code dari superclass yang telah ada.
- Programmer dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class (abstraksi), untuk mendefinisikan class dengan tingkah laku dan state secara umum.
Single
& Multiple Inheritance
Bahasa
C adalah contoh multiple inheritance. Suatu class diperbolehkan untuk mempunyai
lebih dari satu superclass. Variabel dan method yang diwariskan merupakan
kombinasi dari superclass-nya. Java adalah contoh single inheritance. Suatu
class hanya boleh mempunyai satu superclass.
Multilevel
Inheritance
Suatu
subclass bisa menjadi superclass bagi class yang lain.
3.
Polimorfisme
Polimorfisme
adalah kemampuan suatu obyek untuk mempunyai lebih dari satu bentuk.
Polimorfisme tidak bergantung kepada pemanggilan subrutin. Metode tertentu yang
berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di
mana pesan tersebut dikirim. Contohnya, bila sebuah burung menerima pesan
“gerak cepat”, dia akan menggerakan sayapnya dan terbang. Bila seekor singa
menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya
menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan
tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program
dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan
teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang
berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa
fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
Kesimpulan
:
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bagian administrasi, maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bagian administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah, dapat dilakukan dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bagian administrasi, maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bagian administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah, dapat dilakukan dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.
Resources:
- Wikipedia
- Slide Presentasi Konsep Pemrograman Berorientasi Objek (lecturer.eepis-its.edu/~riyanto/oop1.pdf)
MENGENAL
TIPE DATA DAN VARIABEL DALAM PEMROGRAMAN
Salah
satu komponen utama program adalah variabel. Variabel adalah objek di mana
informasi dinamis disimpan. Ketika Anda menuliskan nama Anda saat hendak
membuat account baru atau proses login ke website, nama yang Anda masukkan akan
disimpan dalam variabel sebelum diproses lebih lanjut.
Tidak
semua variabel memiliki karakteristik yang sama. Informasi yang dapat disimpan
oleh variabel ditentukan berdasarkan jenis atau tipe data variabel terebut.
Terdapat berbagai jenis tipe data dalam setiap bahasa pemrograman. Namun, kali
ini kita akan melihat beberapa jenis tipe data yang umumnya ada pada hampir
seluruh bahasa pemrograman. Tipe-tipe data tersebut antara lain sebagai berikut
:
Tipe
data Karakter (character/char)
Jenis
tipe data ini hanya memungkinkan sebuah variabel menyimpan informasi sebuah
single karakter, seperti huruf “P”,, “c”, “7″, atau “@”.
Tipe
data String
Tipe
data string ini memungkinkan variabel menyimpan informasi untaian karakter,
seperti kata atau kalimat. Dalam contoh sebelumnya, nama yang Anda gunakan pada
web form, informasi tersebut akan disimpan dalam variabel bertipe data string.
Tipe
data Integer (int)
Jenis
tipe data integer digunakan jika ingin menyimpan informasi angka (bilangan
bulat) dalam variabel, tetapi bukan bilangan pecahan. Hal ini berarti nilai “7″
akan menjadi nilai integer yang valid.
Tipe
data Floating Point Number (float)
Jika
Anda bermaksud menyimpan informasi angka dengan format pecahan atau angka
desimal, floating point adalah jenis tipe data yang sesuai. Angka “65,00″
secara teknis merupakan nilai bertipe floating point meskipun nilai tersebut
juga dapat direpresentasikan sebagai nilai “65″. Jenis tipe data ini
membutuhkan ukuran memory yang lebih besar dibandingkan jenis tipe data angka
integer.
Tipe
data Boolean (bool)
Jenis
tipe data ini biasanya digunakan hanya untuk merepresentasikan dua kondisi,
yakni nilai TRUE dan FALSE atau daatberarti bernilai 1 dan 0 atau kondisi ON
dan OFF. Jenis tipe data ini merupakan jenis yang paling sederhana, teapi cukup
sering digunakan dalam setiap pemrograman.
Tipe
data Array
Jenis
tipe data aray sering disebut juga sebagai tipe data larik. Tipe data ini pada
dasarnya merupakan kumpulan sejumlah variabel bertipe data sama dengan ukuran
tertentu, yang tersusun secara runtun. Ada beragam variasi dari tipe data
array, bergantung pada bahasa pemrograman yang digunakan. Sebagai contoh, nilai
“1″, “2″, “3″, “4″, dan “5″ dapat Anda simpan ke dalam variabel bertipe data
array dengan ukuran aray “5″ (5 buah nilai, mulai dari 1 sampai dengan 5) yang
memiliki kumpulan nilai bertipe integer atau secar sederhana dapat dikatakan
array of integer values.
Setiap variabel yang terdapat dalam array dapat
diakses dengan menggunakan komponen indeks dari tiap-tiap variabel trseut.
Namun, perlu Anda ketahui bahwa variabel pertama yang ada dalam array bukan
memiliki indeks 1, melainkan indeks 0. Menyimpan nilai-nilai tersebut ke dalam
variabel bertipe data array akan memudahkan kit untuk melakukan manipulasi
terhadap setiap data yang ada dalam array tersebut. perlu diketahui bahwa jenis
tipe data string sebenarnya merupakan kumpulan variabel bertipe karakter atau
bisa dikatakan array of characters.
Komentar
Posting Komentar