Jumat, 09 Desember 2011

Object Oriented Programming dan prosedural program

1. Object Oriented Programming (OOP)
1.1 Sejarah Object Oriented Programming OOP
Konsep OOP dimulai pertengahan 1960-an dengan sebuah bahasa program SIMULASMALLTALK. Meskipun developer software tidak secara intensif mengembangkan OOP, tetapi metodologi object-oriented tetap digunakan sampai sekarang. Kemudian dilanjutkan di era 70-an dengan Pada pertengahan 80-an, bahasa OOP seperti C++ dan Eifle menjadi popular diantara programmer komputer. Popularitas OOP berlanjut pada tahun 90-an, banyak pengembang perangkat lunak menggunakan konsep OOP seperti yang dilakukan pada Java dan kemudian PHP yang menjadi popular sekarang. Di tahun 2002, versi terakhir dari Visual Studio, Microsoft-pun ikut memperkenalkan bahasa OOP baru yaitu C# (dibaca C-sharp) serta penyempurnaan Visual Basic 6.0 yang tidak mendukung OOP menjadi VB.NET sebagai bahasa pemrograman berorientasi objek.

1.2 Pengertian Object Oriented Programming (OOP)
Pemrograman berorientasi Objek yang dalam istilah Inggris disebut sebagai Object Oriented Programming (disingkat OOP) adalah salah satu pendekatan pemrograman atau paradigma untuk pengembangan / development suatu perangkat lunak komputer dimana dalam struktur perangkat lunak tersebut didasarkan kepada interaksi objek dalam penyelesaian suatu proses / tugas. Jika kita mencoba melihat bagaimana tugas disekitar kita diselesaikan, kita akan mengetahui bahwa kita berinteraksi dalam sebuah object-oriented world. Jika akan bepergian kita pasti berinteraksi dengan objek mobil. Sebagai sebuah objek, mobil berisi objek-objek lain yang berinteraksi untuk melakukan tugasnya membawa kita.

Pemrograman ini mempertinggi kualitas dan produktifitas pengembangan software. Program pengembangannya dilakukan dengan pendekatan building block. Setiap block, disebut object, bersifat independen dan mampu berjalan sendiri atau saling kunci dengan object lain dengan mudah dan otomatis. Object-object berinteraksi dengan saling memberikan informasi satu terhadap yang lainnya. Masing-masing object harus berisikan informasi mengenai dirinya sendiri (encapsulation) dan object yang dapat dikaitkan (inheritan).
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.

1.3 Mengapa menggunakan OOP?
Mengapa OOP dibangun dalam sebuah paradigma yang luas untuk menyelesaikan masalah bisnis? Bahasa prosedural mengatur program dalam mode barisan linier yang bekerja dari atas ke bawah. Dengan kata lain, program adalah kumpulan dari tahapan yang dijalankan setelah yang lain berjalan. Programming tipe ini bekerja dengan baik untuk program kecil yang berisi code relative sedikit, tetapi pada saat program menjadi besar, mereka cenderung susah untuk di-manage dan di-debug. Dalam usaha untuk me-manage program, struktur programming diperkenalkan cara untuk mem-break down code-code tersebut melalui functions dan procedures.
Ini adalah sebuah langkah perbaikan, namun pada saat program dijalankan dalam sebuah fungsi bisnis yang kompleks dan berinteraksi dengan sistem lain, maka kelemahan dari struktur metodologi programming muncul kepermukaan meliputi:
1. Programs menjadi lebih susah untuk dimaintain.
2. Fungsi yang tersedia, susah untuk diubah tanpa harus mempengaruhi fungsi sistem secara keseluruhan.
3. Programming tidak baik untuk team development. Programmers harus mengetahui setiap aspek bagaimana program itu bekerja dan tidak menyebabkan terisolasi usaha mereka atas aspek yang lain dari sistem.
4. Butuh usaha yang keras untuk menterjemahkan Business Models dalam programming models. Dll

1.4 Karakteristik OOP
Konsep dasar dari Pemrograman Berorientasi Objek 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. 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.
• Objek - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
• Abstraksi - 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.
• 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 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.
• Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa 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.
• 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 bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag 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 dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.

1.5 Bahasa pemrograman yang mendukung OOP
1. Java
OOP (Object Oriented Programming – Pemrogram Berorientasi Objek) yang artinya semua aspek yang terdapat di Java adalah Objek. Java merupakan salah satu bahasa pemrograman berbasis oebjek secara murni. Semua tipe data diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa pemograman termudah, bahkan untuk fungsi fungsi yang advance seperti komunikasi antara komputer sekalipun.

2. Pascal (bahasa pemrograman)
Pascal adalah bahasa pemrograman yang pertama kali di buat oleh Profesor Niklaus Wirth, seorang anggota International Federation of Information Processing (IFIP) pada tahun 1971. Dengan mengambil nama dari matematikawan Perancis, Blaise Pascal, yang pertama kali menciptakan mesin penghitung, Profesor Niklaus Wirth membuat bahasa Pascal ini sebagai alat bantu untuk mengajarkan konsep pemrograman komputer kepada mahasiswanya. Selain itu, Profesor Niklaus Wirth membuat Pascal juga untuk melengkapi kekurangan-kekurangan bahasa pemrograman yang ada pada saat itu.



3. C++
C++ adalah salah satu bahasa pemrograman komputer. Dibuat pada tahun 1980-an oleh Bell Labs (Bjarne Stroustrup) sebagai pengembangan dari Bahasa pemrograman C. Salah satu perbedaan yang paling mendasar dengan bahasa C adalah dukungan terhadap konsep pemrograman berorientasi objek (Object Oriented Programming).

4. Microsoft Visual Basic .NET
Microsoft Visual Basic .NET adalah sebuah alat untuk mengembangkan dan membangun aplikasi yang bergerak di atas sistem .NET Framework, dengan menggunakan bahasa BASIC. Dengan menggunakan alat ini, para programmer dapat membangun aplikasi Windows Forms, Aplikasi web berbasis ASP.NET, dan juga aplikasi command-line. Alat ini dapat diperoleh secara terpisah dari beberapa produk lainnya (seperti Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat diperoleh secara terpadu dalam Microsoft Visual Studio .NET. Bahasa Visual Basic .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat sebagai evolusi dari Microsoft Visual Basic versi sebelumnya yang diimplementasikan di atas .NET Framework. Peluncurannya mengundang kontroversi, mengingat banyak sekali perubahan yang dilakukan oleh Microsoft, dan versi baru ini tidak kompatibel dengan versi terdahulu.

5. Ruby
Ruby adalah bahasa pemrograman scripting yang berorientasi obyek. Tujuan dari ruby adalah menggabungkan kelebihan dari semua bahasa-bahasa pemrograman scripting yang ada di dunia. Ruby ditulis dengan bahasa pemrograman C dengan kemampuan dasar seperti Perl dan Python.

6. Python
Python adalah bahasa pemrograman model skrip (scripting language) yang berorientasi obyek. Python dapat digunakan untuk berbagai keperluan pengembangan perangkat lunak dan dapat berjalan di berbagai platform sistem operasi

7. PHP
PHP adalah bahasa pemrograman script yang paling banyak dipakai saat ini. PHP banyak dipakai untuk memrogram situs web dinamis, walaupun tidak tertutup kemungkinan digunakan untuk pemakaian lain

8. C#
C# adalah Java versi Microsoft, sebuah bahasa multi flatform yang didesain untuk bisa berjalan di berbagai mesin. C# adalah pemrograman berorientasi Object (OOP). C# memiliki kekuatan bahasa C++ dan portabilitas seperti Java.

9. Delphi
Delphi adalah sebuah bahasa pemrograman dan lingkungan pengembangan perangkat lunak. Produk ini dikembangkan oleh Borland (sebelumnya dikenal sebagai Inprise). Bahasa Delphi, yang sebelumnya dikenal sebagai object pascal (pascal dengan ekstensi pemrograman berorientasi objek (PBO/OOP)) pada mulanya ditujukan hanya untuk Microsoft Windows, namun saat ini telah mampu digunakan untuk mengembangkan aplikasi untuk Linux dan Microsoft .NET framework (lihat di bawah). Dengan menggunakan Free Pascal yang merupakan proyek opensource, bahasa ini dapat pula digunakan untuk membuat program yang berjalan di sistem operasi Mac OS X dan Windows CE

2. Program Terstruktur (Program Prosedural)
2.1 Sejarah pemrograman tersetruktur
Ide Pemrograman Terstruktur pertama kali diungkapkan oleh Professor Edsger Djikstra dari Universitas Eindhoven sekitar tahun 1965. Professor Djikstra dalam papernya mengusulkan bahwa pernyataan GOTO seharusnya tidak dipergunakan didalam program terstruktur. Pernyataan tersebut ditanggapi oleh HD. Millis yang menyatakan bahwa pemrograman terstruktur tidak hanya dihubungkan dengan tidak digunakannya pernyataan GOTO, tetapi oleh strukturnya. Struktur programlah yang menentukan program yang terstruktur menggunakan pernyataan GOTO atau tidak.
Sebuah pemrograman terstruktur sebelumnya diambil dari kata pemrograman. Pemrograman itu sendiri adalah kumpulan instruksi yang diberikan kepada komputer agar komputer dapat menyelesaikan tugasnya.
Sesuai dengan tingkatan bahasa yang digunakan, maka pemrograman pada komputer dapat dibedakan menjadi dua, yaitu:
• Low Level Language (Bahasa Pemrograman Tingkat Rendah), yaitu bahasa yang dekat atau lebih dimengerti oleh mesin atau komputer. Bahasa ini contohnya bahasa assembler, dan bahasa mesin lainnya.
• High Level Language (Bahasa Pemrograman Tingkat Tinggi), yaitu bahasa yang dapat dimengerti oleh manusia. Bahasa ini bayak ada, seperti pascal, basic, fortran, c++ clipper dbase dan sebagainya.
Antara High Level Language dengan mesin harus ada sesuatu yang menerjemahkannya, seperti layaknya seorang penerjemah, yang dalam istilah komputer lebih dikenal dengan Interpreter dan Compiler. Interpreter adalah penterjemah yang menerjemahkan sesuai urutan instruksi dari atas terus kebawah. Contoh dari interpreter adalah basic. Sedangkan compiler adalah penterjemah yang menerjemahkan instruksi sesuai dengan struktur programnya.
Proses pemrograman computer bukan sekedar menulis suatu urutan instruksi yang harus dikerjakan oleh komputer, tetapi bertujuan memecahkan suatu masalah dan memudahkan pekerjaan atau yang lain, sebagaimana diinginkan pemakai (user).

2.2 Pengertian pemrograman terstruktur
Pemrograman adalah proses mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan menggunakan bahasa program.
Bahasa pemrograman adalah suatu program khusus yag dibuat oleh suatu perusahaan/software (perangkat lunak) yang digunakan untuk mengembangkan suatu aplikasi.
Terstruktur adalah analisa, cara dan penulisan program.
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.


2.3 Prinsip Pemrograman Terstruktur
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).

2.4 Tujuan Pemrograman Terstruktur
Tujuan dari pemrograman terstruktur dapat diuraikan sebagai berikut:
• Untuk meningkatkan kualitas dan kehandalan program
• Untuk memudahkan pemahaman terhadap isi program
• Untuk menyederhanakan program
• Untuk maintenance (pemeliharaan) program
• Untuk meningkatkan produktifitas program

2.5 Sifat-sifat Pemrograman Terstruktur
Sifat-sifat dari pemrograman terstruktur dapat diuraikan sebagai berikut:
• 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 dbuthkan relatif rendah

Sedangkan sifat dari bahasa pemrograman antara lain :
• Ekspresivitas
Bahasa pemrograman yang baik harus mampu secara jelas menggambarkan algoritma yang dibuat oleh pemrogramnya.
• Dapat didefinisikan dengan baik
Sintak dan semantic bahasa pemrograman yang baik harus konsisten dan tidak bermakna ganda.
• Tipe data dan strukturya
Bahasa pemrograman yang baik harus mampu mendukung berbagai tipe data (integer,real,pointer,dan sebagainya)dan terstruktur dalam array,record,atau object.
• Modularitasnya
Bahasa pemrograman yang baik harus mempunyai fasilitas subprogramming sehingga suatu program yang besar dapat dikerjakan oleh sekaligus beberapa pemrogram secara bersama-sama yang nantinya dengan mudah dapat digabungkan menjadi sebuah modul saja.
• Fasilitas masukan keluaran
Bahasa pemrograman yang baik harus dapat mendukung berbagai jenis model file,seperti sequential,random access,index,multiple index,dan lain sebagainya dalam pemrosesan masukan dan keluaran.
• Portabilitas
Bahasa pemrograman yang baik harus dapat dipakai pada berbagai tipe mesin komputer.Dengan kata lain,bersifat machine independent.
• Efisiensi
Bahasa pemrograman yang baik harus dapat dipakai pada berbagai tipe mesin komputer yang berbeda-beda.jadi bersifat machine independent.
• Mudah dipelajari
Bahasa pemrograman tersebut harus mudah dipelajari dan diajarkan.
• Bersifat umum
Bahasa pemrograman tersebut harus memiliki jangkauan luas pada berbagai aplikasi pemrograman sehingga dapat disebut bahasa yang serba guna.

2.6 Pemrograman terstruktur bercirikan
• Mengandung teknik pemecahan yang tepat dan benar,
• Memiliki algoritma pemecahan masalah yang sederhana, standar dan efektif,
• Memiliki struktur logika yang benar dan mudah dipahami,
• Terdiri dari 3 struktur dasar yaitu urutan, seleksi dan perulangan,
• Menghindari penggunaan GOTO,
• Biaya pengujian rendah.
• Memiliki dokumentasi yang baik.
• Biaya perawatan dan dokumentasi yang dibutuhkan rendah.

3 Perbedaan OOP dengan Procedural Programming
Menurut Bjarne Stroustrup dalam sebuah papernya yang berjudul What is ‘‘Object Oriented Programming’’? (1991 revised version) [Stroustrup], paradigma dalam OOP adalah Tentukan kelas yang kita inginkan; Lengkapi sederetan operasi untuk setiap kelas; Tentukan struktur secara eksplisit dengan pewarisan”. Sedangkan procedural programming berparadigma “Tentukan prosedur yang kita inginkan; Gunakan algoritma terbaik yang bisa ditemukan.” Procedural programming berorientasi pada aksi, sedangkan object oriented berorientasi pada objek [Deitel].
Pemrograman terstruktur tradisional terdiri atas perancangan struktur data dan memanipulasinya dengan fungsi-fungsi dengan suatu cara tertentu yang secara teori bisa berhenti. Fungsi-fungsi ini yang biasa kita kenal dengan algoritma. Niklaus Wirth, memberikan judul bukunya Algorithms + Data Structures = Programs. Dari judulnya, secara tidak langsung beliau mengatakan bahwa algoritma dahulu, struktur data kemudian. Pada awalnya, pikirkan dahulu bagaimana memanipulasi data, baru menentukan struktur data apa yang tepat digunakan agar manipulasinya menjadi mudah. OOP membalik urutan tersebut dengan merancang struktur data di awal, baru kemudian mencari algoritma terbaik untuk memanipulasi data [Cornell].
Kata kunci procedural programming adalah dekomposisi masalah menjadi banyak fungsi. Cara ini cukup efektif untuk masalah kecil dan sederhana, namun untuk masalah yang jauh lebih besar, pendekatan dengan kelas / objek memberikan manfaat lebih. Pertama, kelas menyediakan mekanisme pengelompokkan yang memudahkan bagi kita. Sebuah program yang membutuhkan 2000 fungsi mungkin hanya membutuhkan 100 kelas dengan masing-masing kelas memiliki rata-rata 20 operasi. Kelas menyembunyikan (mengenkapsulasi) representasi data dari semua kode program kecuali operasinya saja. Jika sebuah bug program mengacaukan sebuah item data, lebih mudah mencari penyebabnya di antara 20 operasi daripada di antara 2000 fungsi [Horstmann hal. 13].

Related Posts by Categories

1 komentar :

Bagus bro lengkap bener dan enak dibaca mantapppp thanks ya

Posting Komentar

Thanks for your commentar

Domain Murah

indonetmedia