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

USWAH HASANAH

...
.

لَّقَدْ كَانَ لَكُمْ فِى رَسُولِ ٱللَّهِ أُسْوَةٌ حَسَنَةٌۭ لِّمَن كَانَ يَرْجُوا۟ ٱللَّهَ وَٱلْيَوْمَ ٱلْءَاخِرَ وَذَكَرَ ٱللَّهَ كَثِيرًۭا


Sesungguhnya telah ada pada (diri) Rasulullah itu suri teladan yang baik bagimu (yaitu) bagi orang yang mengharap (rahmat) Allah dan (kedatangan) hari kiamat dan dia banyak menyebut Allah.(QS. Al-Ahzab [33]:21)


Ya Allah jadikan kami umat Rasul-Mu Muhammad SAW yang senantiasa meneladani beliau. Meneladani jalan kehidupan, jalan dakwah, dan jalan perjuangan Rasulullah SAW.
Dan jadikan apa-apa yang hamba dan keluarga hamba tinggalkan hanyalah kebaikan dan menjadi uswah kebaikan bagi yang akan datang.
..

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…

i-Zakat Privacy Policy

Privacy Policy built the i-Zakat app as a Free app. This SERVICE is provided by at no cost and is intended for use as is. This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service. If you choose to use my Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that I collect is used for providing and improving the Service. I will not use or share your information with anyone except as described in this Privacy Policy. The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which is accessible at i-Zakat unless otherwise defined in this Privacy Policy. Information Collection and Use For a better experience, while using our Service, I may require you to provide us with certain personally identifiable information. The information that I request will be retained on your device and is not col…