PEMROGRAMAN JAVA - Paradigma Pemrograman
A. Paradigma Pemrograman
Paradigma
dapat diartikan sebagai suatu sudut pandang dalam suatu persoalan, realitas dan
lain sebagainya. Demikian juga dengan dunia pemrograman, adanya
pendekatan-pendekatan untuk menyelesaikan suatu persoalan yang disebut dengan
paradigma pemrograman. Jenis paradigman pemrograman antara lain : paradigma pemrograman
fungsional, paradigma pemrograman prosedural atau iterative, paradigma
pemrograman berorientasi objek dan paradigma pemrograman deklaratif, predikatif
atau lojik.
Pemrograman
berorientasi objek memiliki paradigma yang berbeda dengan paradigma pemrograman
prosedural, dan sebagai perbandingan penulis akan mengulasnya secara singkat
sebagai berikut :
1.
Pemrograman Prosedural
Pemrograman
dalam paradigma prosedural dilakukan dengan memberikan serangkaian perintah
yang berurutan. Hal-hal yang menjadi dasar dalam pemrograman prosedural,
meliputi definisi algoritma dan konstruktor pemrograman prosedural, serta
konsep Input, Proses, dan Output yang
sangat lazim dalam dunia pemrograman prosedural.
Pada
pemrograman prosedural, program dibedakan antara bagian data dengan bagian
instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan satu per satu secara
berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya
pencabangan kondisional. Data yang disimpan di dalam memori dimanipulasi oleh
instruksi secara beruntun atau prosedural. Paradigma pemrograman seperti ini
dinamakan pemrograman prosedural. Bahasa-bahasa tingkat tinggi seperti Cobol, Basic, Pascal,
Fortran, dan C/C++ mendukung kegiatan pemrograman
prosedural, karena itu mereka dinamakan juga bahasa prosedural.
Definisi
prosedural adalah :
a.
Tahap-tahap
kegiatan untuk menyelesaikan suatu aktivitas,
b.
Metode
langkah demi langkah secara eksak dalam memecahkan suatu masalah.
Manfaat
pemrograman prosedural :
Relatif
mudah menulis, karena masalah pemrograman yang rumit dapat dipecahkan menjadi
sejumlah tugas-tugas kecil dan sederhana, yang dikerjakan oleh fungsi atau
prosedur. Relatif mudah untuk men-debug
program prosedural. Jika program yang dibuat mempunyai bug, perancangan terstruktur menyebabkan kemudahan untuk
mengisolasi sesuatu (fungsi) yang menyebabkan bug tersebut.
2.
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. Sedangkan pada logika
pemrograman
terstruktur
atau prosedural. 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
dibandingkan dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah
dikembangkan dan dirawat.
Paradigma pemrograman berorientasi objek
Pemrograman
Berorientasi Objek dimulai pertama kali dengan bahasa Simula yang dikembangkan di Scandinavia di pertengahan tahun 60-an.
Simula utamanya digunakan untuk
pemrograman simulasi, dimana adalah alamiah untuk memodelkan suatu entitas
eksternal / diluar sistem perangkat lunak dan untuk memilih istilah-istilah
untuk entitas-entitas tersebut dan tingkah lakunya. Simula memiliki sintak yang mirip dengan Pascal, tetapi programmer berfikir sedikit lebih berbeda ketika
merancang suatu program yang akan dibuat dengan Simula. Sebuah ide dasar yang diperkenalkan dalam Simula adalah inheritance (pewarisan). Dalam Simula
juga sudah dikenal objek (entitas) yang ada dalam sistem yang dimodelkan. Ada
beberapa objek yang dikumpulkan kemudian disebut ”Class”, dan tugas utama dari seorang perancang program dengan Simula adalah menentukan behaviour dari class tersebut.
B. Konsep Pemrograman Berorientasi Objek
Konsep dasar yang menjadi ciri khas Pemrograman Berorientasi Objek antara lain :
1.
Kelas atau class adalah kumpulan atas definisi data
dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of bird' adalah suatu unit yang
terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada
berbagai macam perilaku/turunan dari burung. 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.
2.
Objek atau object adalah kemasan atau pembungkus
data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program
komputer berorientasi objek.
3.
Identifier merupakan nama yang
digunakan untuk menamai class, interface, variable dan method. Programmer dapat
menentukan sendiri identifier yang akan digunakan. Hanya yang perlu
diperhatikan adalah : tidak ada batasan panjang, jadi identifier dapat dibuat
dengan panjang karakter yang tidak terbatas. Identifier harus diawali dengan
huruf, underscore / garis bawah ( _ ) atau lambang dollar ($). Untuk selebihnya
dapat digunakan karakter apapun. Bukan merupakan keyword yang telah dikenal
oleh bahasa pemrograman tertentu.
4.
Abstraksi atau abstract
merupakan 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.
5.
Enkapsulasi atau encapsulation - 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.
6.
Inheritance / Pewarisan pada pemrograman
berorientasi objek merupakan suatu hubungan dua buah kelas atau lebih. Dalam
hal ini ada kelas yang memiliki atribut dan metode yang sama dengan kelas
lainnya beserta atribut dan metode tambahan yang merupakan sifat khusus kelas
yang menjadi turunannya. Keuntungan dari pewarisan adalah tidak perlu mengutak
atik kode kelas yang membutuhkan tambahan atribut atau metode saja, karena
tinggal membuat kelas turunannya tanpa harus mengubah kode kelas dasarnya.
Kelas dasar akan mewariskan semua atribut dan kodenya kecuali konstruktor dan
destruktor yang memiliki izin akses publicdan protectedke kelas turunannya
dengan izin akses yang sama dengan pada kelas dasar. Ketika sebuah kelas
turunan dibuat objeknya saat eksekusi, maka secara implisit konstruktor kelas
dasar dipanggil terlebih dahulu baru kemudian konstruktor kelas turunan
dijalankan. Begitu juga saat objek dimusnahkan maka secara destruktor kelas
turunan akan dijalankan baru kemudian destruktor kelas dasar dijalankan.
7.
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.
8.
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 administrasi. Jadi untuk menyelesaikan suatu masalah dengan
kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi
tugasnya sendiri.
(1) Visual Foxpro; (2) Java; (3) C++; (4) Pascal (bahasa pemrograman); (5) SIMULA; (6) Smalltalk; (7) Ruby; (8) Python; (9) PHP; (10) C#; (11) Delphi; (12) Eiffel; (13) Perl; (14) Adobe Flash AS 3.0.(di adaptasi dari berbagai sumber)
Comments