Minggu, 18 Oktober 2009

Pendahuluan

SEJARAH OOP

Konsep OOP dimulai pertengahan 1960-an dengan sebuah bahasa program SIMULA kemudian dilanjutkan di era 70-an dengan SMALLTALK. Meskipun developer software tidak secara intensif mengembangkan OOP, tetapi metodologi object-oriented tetap digunakan sampai sekarang.

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.


OBJECT ORIENTED PROGRAMMING

Pemrograman berorientasi Objek yang dalam istilah Inggris disebut sebagai Object Oriented Programming (disingkat OOP) adalah salah satu pendekatan pemrograman atau paradigma[1] 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.

Sebuah program yang berorientasi objek terdiri dari objek-objek yang berinteraksi satu sama lainnya untuk menyelesaikan sebuah tugas. Seperti dunia nyata, pengguna dari suatu perangkat lunak dilibatkan dari logika proses untuk menyelesaikan tugas. Contoh, ketika kita mencetak sebuah halaman di word processor, kita berarti melakukan inisialisasi tindakan dengan meng-klik tombol printer. Kemudian kita hanya menunggu respon dari komputer apakah perintah yang kita berikan tersebut sukses dieksekusi atau gagal, sedangkan proses yang terjadi sesungguhnya didalam internal komputer tidak kita ketahui. Tentunya setelah kita menekan tombol printer, maka secara simultan objek tombol tersebut berinteraksi dengan objek printer untuk menyelesaikan job tersebut.

2.2 MENGAPA MENGGUNAKAN OOP?

Mengapa OOP dibangun dalam sebuah paradigma yang luas untuk menyelesaikan masalah pekerjaan? 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 pekerjaan yang kompleks dan berinteraksi dengan sistem lain, maka kelemahan dari struktur metodologi programming muncul kepermukaan meliputi:

· Program menjadi lebih susah untuk di maintain.

· Fungsi yang tersedia, susah untuk diubah tanpa harus mempengaruhi fungsi sistem secara keseluruhan.

· Programming tidak baik untuk team development. Programmer harus mengetahui setiap aspek bagaimana program itu bekerja dan tidak menyebabkan terisolasi usaha mereka atas aspek yang lain dari sistem.

· Butuh usaha yang keras untuk menterjemahkan Business Models dalam programming models.

· Mungkin dapat bekerja dengan baik pada saat terisolasi tapi tidak pada saat terintegrasi dengan sistem lain.

Sebagai hasilnya, banyak developer software beralih ke objek-oriented methodologies dan programming languages untuk memecahkan masalah ini. Keuntungan dari objek-oriented methodologies adalah sebagai berikut:

· Langkah ini merupakan sebuah transisi intuitive dari business analysis models menuju software implementation models.

· Kemampuan untuk memaintain dan menerapkan perubahan dalam program ini lebih efisien dan dengan cepat.

· Kemampuan untuk lebih efektif menciptakan sistem software dengan menggunakan sebuah team proses, yang mengijinkan seorang spesialis untuk bekerja hanya pada bagiannya saja.

· Kemampuan untuk menggunakan kembali komponen kode dalam suatu program dan membeli komponen dari developer lain untuk meningkatkan fungsi program mereka dengan usaha minimal.

· Integration lebih baik dengan pasangan bebas dalam distributed computing systems.

· Meningkatkan integration dengan modern operating systems.

· Kemampuan untuk menciptakan GUI yang lebih intuitive bagi users.

Tidak ada komentar:

Posting Komentar