Langsung ke konten utama

Paradigma OO

Kata paradigma yang dimaksud dalam topik ini memiliki arti metodologi pengembangan perangkat lunak. Paradigma OO berarti metodologi pengembangan perangkat lunak dengan OO.


Sebelum lebih jauh membahas OO, akan dikupas sedikit tentang paradigma. Kenapa perlu paradigma atau metodologi untuk membuat perangkat lunak? Apa sih sebenarnya paradigm?

Saya akan mencoba menjelaskan bukan dengan definisi-definisi tetapi dengan sebuah ilustrasi. Perangkat lunak adalah suatu benda tak berwujud (intangible) yang berpasangan dengan perangkat keras yang dibuat untuk memenuhi suatu maksud atau tujuan tertentu. Tujuan atau maksud ini bisa jadi bagian dari sebuah sistem atau bahkan sistem itu sendiri. Manusia berperan dalam membangun atau membuat kedua perangkat tersebut, dan berperan untuk menggunakan atau menerima hasilnya. Misalnya perangkat lunak personalia, perangkat lunak tersebut dijalankan pada suatu komputer (perangkat keras) untuk menangani masalah-masalah yang terkait dengan pengelolaan sumber daya manusia sebuah perusahaan. Ada orang-orang yang terlibat dalam mengembangkan perangkat lunak dan ada orang-orang yang menjalankan atau memakainya.


Dari penjelasan di atas dapat dilihat ada beberapa hal atau elemen yang terlibat, yaitu perangkat lunak, perangkat keras, pembuat perangkat lunak, pemakai perangkat lunak dan masalah. Gambar 1 mengilustrasikan hubungan antara elemen tersebut.




Perangkat lunak merupakan perwujudan dari masalah dunia nyata. Perangkat lunak merupakan masalah dalam bentuk yang lain, dalam bentuk yang tak terlihat berupa kumpulan perintah yang dijalankan oleh perangkat keras. Pengubahan bentuk atau wujud ini dilakukan oleh manusia, yang kita kenal dengan istilah pengembangan perangkat lunak (software development) dan orangnya disebut juga pengembang (developer). Perangkat keras (komputer) adalah seonggok mesin yang pasif yang tak berguna tanpa adanya perangkat lunak. Demikian pula perangkat lunak tidak akan memenuhi tujuannya tanpa keberadaan perangkat keras. Sedangkan pemakai adalah manusia yang menerima manfaat dari perangkat lunak. Sebuah perangkat lunak seharusnya memberikan manfaat atau nilai tambah kepada pemakai, bukan sebaliknya.
Ada ungkapan seseorang mengenai perbedaan antara manusia dan komputer: Manusia adalah pintar, lambat dan khilaf, sedangkan komputer adalah bodoh, cepat dan akurat. Jadi komputer digunakan sebagai alat bantu untuk menutupi kekurangan manusia dan bukan menjadi tujuan.
Pengubahan masalah menjadi perangkat lunak saya istilahkan mapping (pemetaan). Pemetaan membuat representasi masalah dalam dunia nyata menjadi bentuk yang dapat ‘dipahami’ oleh mesin (komputer). Pemetaan ini merupakan proses-proses yang ada dalam pengembangan perangkat lunak. Setiap manusia memiliki pemikiran dan pemahaman yang berbeda, sehingga mempunyai ide yang berbeda pula dalam hal memandang sesuatu. Demikian pula ketika melihat masalah dan bagaimana cara pemetaan, setiap pengembang memiliki cara pandang yang berbeda. Hal inilah memunculkan keilmuan dalam bidang pengembangan perangkat lunak atau yang kita kenal dengan ilmu rekayasa perangkat lunak (software engineering).


Mainstream dari cara pandang tersebut saat ini ada beberapa, dua yang telah banyak dikenal adalah functional decomposition (penguraian fungsional) dan OO (object oriented). Kalau saya gambarkan, cara pandang penguraian fungsional melihat masalah dunia nyata sebagai serentetan fungsi-fungsi yang saling terkait. Jika sebuah fungsi masih dianggap besar atau kompleks maka fungsi tersebut dapat diuraikan (decompose) untuk menjadi beberapa fungsi yang lebih rinci atau kecil. Sebagai contoh dalam sebuah pengelolaan sumber daya manusia terdapat masalah mencetak slip gaji karyawan. Masalah tersebut dapat dipecahkan dengan langkah-langkah berikut:
  1. mencari data karyawan
  2. mencari data kehadiran
  3. menghitung gaji
  4. mencetak ke printer
Pada langkah ke-3, kita dapat menguraikan lebih rinci menjadi:
    3.a. mencari nilai gaji pokok
    3.b. menghitung upah lembur
    3.d. menjumlahkan nilai gaji pokok dan upah lembur
Cara pandang masalah seperti di ataslah yang dimaksud dengan penguraian fungsional.
Pada OO, masalah dipandang sebagai kumpulan objek-objek yang saling berinteraksi dan masing-masing memiliki tanggung jawab. Objek, ada yang mengatakan adalah sebuah entitas yang memiliki atribut atau kelakukan, atau sesuatu yang memiliki data dan method. Saya, mengilustrasikan objek sebagai sesuatu yang nyata (tangible) ataupun tidak (intangible) yang memiliki tanggung jawab (responsibility). Sebagai contoh, dalam sebuah pengelolaan sumber daya manusia dapat ditemukan obje-objek, antara lain:
  1. karyawan
  2. daftar hadir
  3. slip gaji
Objek karyawan memiliki tanggung jawab untuk bekerja sesuai aturan. Objek daftar hadir bertanggung jawab mencatat kehadiran dan ketidakhadiran karyawan. Objek slip gaji bertanggung jawab menampilkan gaji karyawan.
Letak perbedaan antara keduanya adalah dalam hal menangani perubahan kebutuhan (requirement change).
Paradigma OO vs Paradigma lainnya: Apakah OO lebih unggul?
Tidak ada obat mujarab buatan manusia yang menyembuhkan segala penyakit. Demikian pula tidak ada suatu paradigma pengembangan perangkat lunak yang dapat menyelesaian semua masalah. Paradigma OO bisa saja dipakai untuk semua masalah tapi, tetapi pengembangan perangkat lunak tidak hanya terletak pada hasil tetapi juga pada prosesnya. Ada beberapa aspek yang dipertimbangkan ketika memilih paradigma pada sebuah pengembangan perangkat lunak. Pertimbangan tersebut tentu harus terukur, bukankah pengembangan perangkat lunak termasuk dalam kategori ‘engineering’? Penerapan membabi buta sebuah paradigma tanpa pertimbangan melepas makna ‘engineering’ tersebut. Sama halnya ketika kita ingin memotong benang dengan kapak, atau menumbangkan pohon dengan pisau dapur (ungkapan ini saya dapat dari dosen saya ketika kuliah).

Komentar

Postingan populer dari blog ini

2 DEKADE

sejauh jalan ini
dua dekade telah terlampaui
ujung harapan yang pasti
untuk tempat kembali nanti
selalu coba didekati

tak hanya sendiri
kita berdua
dengan diawali mītsāqan ghalīzha
bersama membangun
jalan ke ujung harapan itu
agar kelak, kita, anak, cucu, dan para penerus
dikumpulkan bersama
di taman abadi-Nya

jalan panjang yang dilewati
masih belum berujung
masih akan bertemu tantangan
entah berapa dekade lagi
namun tak usah risau
tetaplah berpegang pada ikatan-Nya
tetaplah memohon
tetaplah memantaskan diri

...orang-orang itulah yang mendapat tempat kesudahan (yang baik),
(yaitu) surga 'Adn yang mereka masuk ke dalamnya bersama-sama dengan orang-orang yang saleh dari bapak-bapaknya, isteri-isterinya dan anak cucunya… [QS. Ar-Ra’d 13:22-23]


Jakarta, 9-8-18 ~ 9-8-98

Oracle Package untuk fungsi ‘terbilang’ (repost)

Contoh penggunaan:
SELECT PKG_DIGIT_SPELLER.ENGRupiah('12345') FROM DUALSELECT PKG_DIGIT_SPELLER.ENGRupiah('12345.56') FROM DUAL Hasil:
TWELVE THOUSAND THREE HUNDRED AND FOURTY-FIVE RUPIAHSTWELVE THOUSAND THREE HUNDRED AND FOURTY-FIVE RUPIAHS FIFTY-SIXCREATE OR REPLACE PACKAGE PKG_DIGIT_SPELLER IS /******************************************************************************* Nama Package : PKG_DIGIT_SPELLER Oleh : Ibrahim F Burhan (ibrahim@burhan.biz) Deskripsi : Menghasilkan ucapan bilangan dalam bahasa Indonesia dan Inggris Hak Cipta Oleh Ibrahim F Burhan (ibrahim@burhan.biz) 2000 Siapa saja diperkenankan untuk memakai, mengubah ataupun mengembangkan source code ini, dengan syarat tetap mencantumkan keterangan ini. Reposted from my archive (Mar 16, 2001) *******************************************************************************/ TYPE typeSpellString IS VARRAY(100) OF VARCHAR2(20); arrSpellString typeSpellStrin…

Review singkat TP-Link Powerline Adapter - TL-PA4010PKit

Beberapa waktu yang lalu saya membeli powerline adapter produksi TP-Link, TL-PA4010PKit.


TP-Link memiliki banyak produk untuk powerline adapter-nya. Saya memilih TL-PA4010P dengan pertimbangan kebutuhan saat ini, yaitu colokan listriknya masih dapat digunakan dan untuk IPTV box-nya UseeTV.

Powerline adapter adalah adapter untuk komunikasi data lewat jaringan listrik, dalam penggunaan rumah tangga biasa disebut HomePlug. Keuntungannya adalah kita tidak perlu tarik kabel, bolongin dinding atau plafon untuk mengulur kabel jaringan, cukup tancapkan ke colokan listrik maka jaringan komputer bisa dibuat.

Selain jenis yang pakai kabel di atas, ada juga yang dilengkapi dengan WiFi, bisa sebagai access point atau extender saja.

Walau di spesifikasi transmisi datanya bisa mencapai 500Mbps, tetapi spesifikasi port Ethernet-nya cuma 10/100Mbps. Jadi perangkat yang terhubung di port cuma bisa mentransmisikan data maksimum 100Mbps, tetapi aktualnya bisa jadi kurang dari itu.

Untuk kebutuhan saya se…