Perbedaan mendasar antara OOP dan pemrograman terstruktur
Sistem pemrograman berorientasi objek, bentuk pemodelan programnya diorientasikan dalam bentuk objek – objek, sedangkan Sistem pemrograman terstruktur pemodelan programnya diuraikan dan diorganisasikan secara lebih detail.
Konsep dasar pemrograman berorientasi objek dikelompokkan kedalam kelas, objek, abstraksi, enkapulasi dan Polimorfisme melalui pengiriman pesan, sedangkan konsep dasar pemrograman terstruktur harus mengandung teknik pemecahan masalah yang tepat dan benar, memiliki algoritma pemecahan masalah yang sederhana, standar dan efektif, penulisan program memiliki struktur logika yang benar dan mudah dipahami, program hanya memiliki 3 struktur dasar, yaitu : Struktur berurutan, struktur seleksi, dan struktur pengulangan, Menghindari penggunaan pernyataan GOTO, Memiliki dokumentasi yang baik.
UML adalah contoh salah satu bahasa pemrograman yang berkonsepkan OOP, sedangkan DFD dan ERD adalah contoh bahasa pemrograman yang berkonsepkan pemrograman secara terstruktur.
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.
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.
Kelebihan dan Kekurangan Pemograman Berorientasi Objek dengan Pemograman Terstruktur
METODE TERSTRUKTUR
Perancangan Terstruktur (Structured Analisys and Design / SSAD)
Metode ini diperkenalkan pada tahun 1970, yang merupakan hasil turunan dari pemrograman terstruktur. Metode pengembangan dengan metode terstruktur ini terus diperbaiki sampai akhirnya dapat digunakan dalam dunia nyata. Perancangan ini bertujuan untuk membuat model SOLUSI terhadap PROBLEM yang sudah dimodelkan secara lengkap pada tahap analisis terstruktur.
Kelebihan
- Milestone diperlihatkan dengan jelas yang memudahkan dalam manajemen proyek
- SSAD merupakan pendekatan visual, ini membuat metode ini mudah dimengerti oleh pengguna atau programmer.
- Penggunaan analisis grafis dan tool seperti DFD menjadikan SSAD menjadikan bagus untuk digunakan.
- SSAD merupakan metode yang diketahui secara umum pada berbagai industry.
- SSAD sudah diterapkan begitu lama sehingga metode ini sudah matang dan layak untuk digunakan.
- SSAD memungkinkan untuk melakukan validasi antara berbagai kebutuhan
- SSAD relatif simpel dan mudah dimengerti.
Kekurangan
- SSAD berorientasi utama pada proses, sehingga mengabaikan kebutuhan non-fungsional.
- Sedikit sekali manajemen langsung terkait dengan SSAD
- Prinsip dasar SSAD merupakan pengembangan non-iterative (waterfall), akan tetapi kebutuhan akan berubah pada setiap proses.
- Interaksi antara analisis atau pengguna tidak komprehensif, karena sistem telah didefinisikan dari awal, sehingga tidak adaptif terhadap perubahan (kebutuhan-kebutuhan baru).
- Selain dengan menggunakan desain logic dan DFD, tidak cukup tool yang digunakan untuk mengkomunikasikan dengan pengguna, sehingga sangat sliit bagi pengguna untuk melakukan evaluasi.
- Pada SAAD sliit sekali untuk memutuskan ketika ingin menghentikan dekomposisi dan mliai membuat sistem.
- SSAD tidak selalu memenuhi kebutuhan pengguna.
- SSAD tidak dapat memenuhi kebutuhan terkait bahasa pemrograman berorientasi obyek, karena metode ini memang didesain untuk mendukung bahasa pemrograman terstruktur, tidak berorientasi pada obyek (Jadalowen, 2002).
METODE BERORIENTASI OBYEK
Perancangan Berbasis Objek (Object-oriented Analysis and Design / OOAD)
Metode OOAD melakukan pendekatan terhadap masalah dari perspektif obyek, tidak pada perspektif fungsional seperti pada pemrograman terstruktur. Akhir-akhir ini penggunakan OOAD meningkat dibandingkan dengan pengunaan metode pengembangan software dengan metode tradisional. Sebagai metode baru dan sophisticated bahasa pemrograman berorientasi obyek diciptakan, hal tersebut untuk memenuhi peningkatan kebutuhan akan pendekatan berorientasi obyek pada aplikasi bisnis
Kelebihan
- Dibandingkan dengan metode SSAD, OOAD lebih mudah digunakan dalam pembangunan sistem
- Dibandingkan dengan SSAD, waktu pengembangan, level organisasi, ketangguhan,dan penggunaan kembali (reuse) kode program lebih tinggi dibandingkan dengan metode OOAD (Sommerville, 2000).
- Tidak ada pemisahan antara fase desain dan analisis, sehingga meningkatkan komunikasi antara user dan developer dari awal hingga akhir pembangunan sistem.
- Analis dan programmer tidak dibatasi dengan batasan implementasi sistem, jadi desain dapat diformliasikan yang dapat dikonfirmasi dengan berbagai lingkungan eksekusi.
- Relasi obyek dengan entitas (thing) umumnya dapat di mapping dengan baik seperti kondisi pada dunia nyata dan keterkaitan dalam sistem. Hal ini memudahkan dalam mehami desain (Sommerville, 2000).
- Memungkinkan adanya perubahan dan kepercayaan diri yang tinggi terhadap kebernaran software yang membantu untuk mengurangi resiko pada pembangunan sistem yang kompleks (Booch, 2007).
- Encapsliation data dan method, memungkinkan penggunaan kembali pada proyek lain, hal ini akan memperingan proses desain, pemrograman dan reduksi harga.
- OOAD memungkinkan adanya standarisasi obyek yang akan memudahkan memahami desain dan mengurangi resiko pelaksanaan proyek.
- Dekomposisi obyek, memungkinkan seorang analis untuk memcah masalah menjadi pecahan-pecahan masalah dan bagian-bagian yang dimanage secara terpisah. Kode program dapat dikerjakan bersama-sama. Metode ini memungkinkan pembangunan software dengan cepat, sehingga dapat segera masuk ke pasaran dan kompetitif. Sistem yang dihasilkan sangat fleksibel dan mudah dalam memelihara.
Kekurangan
- Pada awal desain OOAD, sistem mungkin akan sangat simple.
- Pada OOAD lebih fockus pada coding dibandingkan dengan SSAD.
- Pada OOAD tidak menekankan pada kinerja team seperti pada SSAD.
- Pada OOAD tidak mudah untuk mendefinisikan class dan obyek yang dibutuhkan sistem.
- Sering kali pemrogramam berorientasi obyek digunakan untuk melakukan anlisisis terhadap fungsional siste, sementara metode OOAD tidak berbasis pada fungsional sistem.
- OOAD merupakan jenis manajemen proyek yang tergolong baru, yang berbeda dengan metode analisis dengan metode terstruktur. Konsekuensinya adalah, team developer butuh waktu yang lebih lama untuk berpindah ke OOAD, karena mereka sudah menggunakan SSAD dalam waktu yang lama ( Hantos, 2005).
- Metodologi pengembangan sistem dengan OOAD menggunakan konsep reuse. Reuse merupakan salah satu keuntungan utama yang menjadi alasan digunakannya OOAD. Namun demikian, tanpa prosedur yang emplisit terhadap reuse, akan sangat sliit untuk menerapkan konsep ini pada skala besar (Hantos, 2005).
Perbedaan mendasar antara OOP dan pemrograman terstruktur
Istilah-Istilah OOP
a. 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.
b. Class
Definisi class yaitu template untuk membuat objek. Class merupakan
prototipe atau blue prints yang mendefinisikan variabel-variabel dan methodmethod 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 fungsifungsi 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 nonprogrammer 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.
c. 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 boleh
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.
d. 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:
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:
e. 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
a. 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.
b. 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.
c. 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.
Istilah OOP dan konsep OOP
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:
1. Visual Foxpro
2. Java
3. C++
4. Pascal (bahasa pemrograman)
3
5. Visual Basic.NET
6. SIMULA
7. Smalltalk
8. Ruby
9. Python
10. PHP
11. C#
12. Delphi
13. Eiffel
14. Perl
15. Adobe Flash AS 3.0
Ciri – Ciri Pemrograman Berorientasi Obyek :
1. Fungsi dan data bukan menjadi dua hal yang terpisah.
2. Fungsi dan data menjadi satu kesatuan yang disebut sebagai obyekaktif.
3. Cara pandang -> program adalah serangkaian obyek yang bekerjasama
untuk menyelesaikan suatu problem
Pengertian Pemrograman Berorientasi Objek (OOP)
Pengertian Program Terstruktur
Istilah Pemrograman Terstruktur (Structured Programming) mengacu dari suatu
kumpulan tehnik yang dikemukan oleh Edsger Dijkstra. Dengan tehnik ini akan
meningkatkan produktifitas programmer, dengan mengurangi waktu yang
dibutuhkan dalam penulisan (write), pengujian (test), penelusuran kesalahan
(debug) dan pemeliharan(maintain) suatu program. Pada pembahasan berikut ini
kita akan melihat bagaimana tehnik ini yang pendekatan yang dilakukan secara
modular, dapat membantu kita dalam membangun suatu program.
Bahasa pemrograman yang mendukung pemrograman terstruktur :
1. Cobol Turbo Prolog
2. C
3. Pascal
4. Delphi
5. Borland Delphi
Sifat-sifat pemrograman terstruktur
- Memuat teknik pemecahan masalah yang logis dan sistematis
- Memuat algoritma yang efisien, efektif dan sederhana
- Program disusun dengan logika yang mudah dipahami
- Tidak menggunakan perintah GOTO
- Biaya pengujian program relatif rendah
- Memiliki dokumentasi yang baik
- Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah
Pengertian Program Terstruktur
DHCP
DHCP (Dynamic Configuration Protocol) adalah layanan yang secara otomatis memberikan nomor IP kepada komputer yang memintanya. Komputer yang memberikan nomor IP disebut sebagai DHCP server, sedangkan komputer yang meminta nomor IP disebut sebagai DHCP Client. Dengan demikian administrator tidak perlu lagi harus memberikan nomor IP secara manual pada saat konfigurasi TCP/IP, tapi cukup dengan memberikan referensi kepada DHCP Server.
Pada saat kedua DHCP client dihidupkan , maka komputer tersebut melakukan request ke DHCP-Server untuk mendapatkan nomor IP. DHCP menjawab dengan memberikan nomor IP yang ada di database DHCP. DHCP Server setelah memberikan nomor IP, maka server meminjamkan (lease) nomor IP yang ada ke DHCP-Client dan mencoret nomor IP tersebut dari daftar pool. Nomor IP diberikan bersama dengan subnet mask dan default gateway. Jika tidak ada lagi nomor IP yang dapat diberikan, maka client tidak dapat menginisialisasi TCP/IP, dengan sendirinya tidak dapat tersambung pada jaringan tersebut.
Setelah periode waktu tertentu, maka pemakaian DHC
P Client tersebut dinyatakan selesaidan client tidak memperbaharui permintaan kembali, maka nomor IP tersebut dikembalikan kepada DHCP Server, dan server dapat memberikan nomor IP tersebut kepada Client yang membutuhkan. Lama periode ini dapat ditentukan dalam menit, jam, bulan atau selamanya. Jangka waktu disebut leased period.
DNS
DNS dapat disamakan fungsinya dengan buku telepon. Dimana setiap
komputer di jaringan Internet memiliki host name (nama komputer) dan
Internet Protocol (IP) address. Secara umum, setiap client yang akan
mengkoneksikan komputer yang satu ke komputer yang lain, akan
menggunakan host name.
Lalu komputer anda akan menghubungi DNS server untuk mencek host name
yang anda minta tersebut berapa IP address-nya. IP address ini yang
digunakan untuk mengkoneksikan komputer anda dengan komputer lainnya
WEB SERVER
adalah suatu server yang memberikan service (layanan) kepada klien yang meminta informasi berkaitan dengan web. Web server sendiri terdiri dari dua komponen. yang pertama adalah komputer itu sendiri dan software web server yang dipakainya. jadi dapat diambil kesimpulan mesin(komputer) apapun bisa saja menjadi web server asalkan software web server tersedia di mesin(komputer) itu. salah satu software web server yang tersedia adalah Apache, tapi selain itu masih banyak lagi web server lainnya seperti ISS, Xitami, dll
PERBEDAAN WEB SERVER DAN DNS SERVER
web server itu adalah untuk memberikan layanan kepada klien yang berkaitan dengan website, sedangkan dns server itu adalah penamaan sebuah ip pada web ,jadi apabila sebuah web tidak menggunakan dns, maka user harus menggunakan alamat ip untuk mengunjungi web tersebut dan itu akan mempersulit user mengunjungi suatu web
DHCP,DNS,dan WEB SERVER
kesimpuan dari video di atas. ternyata pada saat mengambil file video berukuran kira kira 800mb,untuk yang menggunakan netsh lebih cepat pengirimannya di bandingkan dengan menggunakan ad hoc. netsh mengirim dengan kecepatan rata rata 6MB/second dan ad hoc mengirim dengan kecepatan 3-4MB/second
perbandingan kecepatan saat mengambil file menggunakan ad hoc dan netsh
Langganan:
Postingan
(
Atom
)