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

ANUGERAH KEBAIKAN (HARTA) UNTUK KEBAIKAN

Allah ﷻ telah menawarkan kepada kita untuk memberikan "pinjaman yang baik". Allah ﷻ telah memberikan jalan beramal lewat harta dengan kepastian balasan yang berlipat. “Siapakah yang mau meminjamkan kepada Allah pinjaman yang baik, maka Allah akan melipat-gandakan (balasan) pinjaman itu untuknya, dan dia akan memperoleh pahala yang banyak.”[Q.S. Al-Hadiid (57):11] Allah ﷻ memperkenalkan anugerah-Nya yang berupa harta dengan istilah khayr, yang dimaknai baik atau kebaikan. Ada tujuh ayat yang menggunakan kata khayr tersebut untuk makna harta (QS 2:180,215,272,273; QS 38:32; QS 70:21; QS 100:8). Amalan harta termasuk ibadah yang bersifat langgeng secara nilai dan pahala, dengan jaminan tidak terputus meskipun pemilik harta itu sudah meninggal dunia. Rasulullah ﷺ‎ menetapkan shadaqah jariyah di urutan pertama dalam haditsnya tentang ibadah yang tidak akan terputus pahalanya. Amalan harta dalam syariat Islam ada bermacam-macam, ada yang wajib ada yang sunat. Ada yang telah ditetap

WHAT'S LEFT BEHIND?

bi-smi llāhi r-raḥmāni r-raḥīm Dan ingatlah hamba-hamba Kami: Ibrahim, Ishaq dan Ya'qub yang mempunyai perbuatan-perbuatan yang besar dan ilmu-ilmu yang tinggi. Sesungguhnya Kami telah mensucikan mereka dengan (menganugerahkan kepada mereka) akhlak yang tinggi yaitu selalu mengingatkan (manusia) kepada negeri akhirat. Dan sesungguhnya mereka pada sisi Kami benar-benar termasuk orang-orang pilihan yang paling baik. Dan ingatlah akan Ismail, Ilyasa' dan Zulkifli. Semuanya termasuk orang-orang yang paling baik . [QS. Ṣād 38:45-48] Ayat 45 surat Shaad di atas mengingatkan bahwa rasul-rasul tersebut, yang salah satunya adalah nabi Ibrahim as, mempunyai perbuatan-perbuatan yang besar dan ilmu-ilmu yang tinggi. Dalam tafsir Ibnu Katsir disebutkan bahwa maksud dari "mempunyai perbuatan-perbuatan yang besar" adalah yang "mempunyai kekuatan hingga mampu mengerjakan perbuatan-perbuatan yang besar". Sederhananya, nabi Ibrahim as "memiliki kemampuan dan menghasilkan

mailinabox: Membangun Email Server dengan Mudah dan Murah

Bagi Anda yang membutuhkan layanan email ada banyak pilihan untuk mendapatkannya. Mulai dari yang gratis sampai berbayar, mulai dari yang dikelola sendiri sampai dikelola oleh pihak lain. Misalnya pakai penyedia layanan email dari Google, Yahoo, Microsoft atau yang lainnya. Layanan yang diberikan oleh para penyedia layanan tersebut ada yang gratis dengan memiliki beberapa keterbatasan, salah satunya adalah tidak bisa menggunakan alamat email dengan  domain  kita sendiri. Kebutuhan akan alamat email sesuai dengan nama  domain  yang Anda miliki biasanya bertujuan agar membangun citra diri atau bisnis Anda. Alamat email yang spesifik menunjukkan keseriusan dan kepercayaan ( bonafide ) dari diri atau perusahaan Anda. Jika ingin menggunakan  domain  kita sendiri, penyedia layanan email menyediakan fasilitas berbayar yang biasanya dihitung per pengguna, dan ini kalau dihitung mungkin tidak murah bagi sebagian orang khususnya yang baru membangun bisnisnya. Alternatifnya adalah membangun