[Little Tips] “Memecah Kebuntuan” Membuat Suatu Program

Halo semua! Kali ini tulisan akan lain daripada tulisan-tulisan sebelumnya. Sebenernya ingin menambah konten tentang bismania, tapi belum ada modal dan belum ada bahan.

Beberapa hari ini saya mendapat suatu yang berharga, sebenarnya bukan suatu pengetahuan baru atau sesuatu yang tidak saya ketahui sebelumnya. Yap, saya disadarkan kembali betapa pentingnya “berbagi ilmu”.Berbagi ilmu maknanya luas sekali, mulai dari berbagi ilmu secara sederhana (seperti yang saya lakukan ini, menulis di blog) atau dalam skala masive yang biasanya disebut Knowledge Management. Nah, ngomong-ngomong masalah knowledge management, nampaknya belum bisa saya tuliskan sekarang, hehe nunggu kalau sudah menguasai aja dah.. jadi sekarang ngomongin sesuatu yang bisa jadi ini ilmu dasar yang saya punya dalam membuat program.

Ada pun yang mau saya bagi di sini adalah cara saya berpikir dalam membuat suatu program/aplikasi. Saya menyadari pola pikir saya ini belum yang terbaik, namun setidaknya cara ini cukup manjur.

Apa yang harus dilakukan dalam membuat program:

1.   Memahami masalah yang akan diselesaikan

Suatu program pasti harus memiliki suatu manfaat. Klo tidak bermanfaat, ngapain dibuat. Nah manfaat itu berkaitan erat dengan “penyelesaian suatu masalah”. Misal: mempersingkat suatu rangkaian proses, mempercepat suatu proses, menghemat suatu proses, mengakurasikan suatu proses, dll.

pict from profalbrecht.wordpress.com

Nah proses yang ingin dioptimalkan tersebut kadang berada di bidang kerja yang bukan bidang yang kita ketahui. Misal: aplikasi tentang kependudukan (Sosial Kependudukan), aplikasi tentang statistika, aplikasi tentang bisnis proses suatu kantor (yang bukan kantor kita) dll. Kondisi yang seperti ini, maka kita harus terjun ke dalam bidang tersebut dan mempelajarinya. Meski tidak mendalam, namun “memahami” bidang yang akan kita buatkan program itu vital. Dengan pengetahuan tentang bidang, kita bisa menentukan output yang tepat.

2.   Mencari tahu apakah sudah ada solusi untuk permasalahan tersebut

Permasalahan apa pun yang menimpa kita, biasanya juga pernah terjadi pada orang atau organisasi lain. Carilah permasalahan tersebut di internet atau jurnal, periksalah apakah sudah ada yang menawarkan solusi untuk itu.

Solusi yang saya maksud di sini bermakna luas, apakah solusi berupa teori saja atau kan solusi praktis. Cobalah mencari apakah sudah ada program/aplikasi yang sudah terbukti dan sudah pernah menyelesaikan permasalahan tersebut. Jika tidak ada, maka anda punya alasan kuat untuk membuat aplikasi. Namun jika memang sudah ada, maka gunakanlah aplikasi tersebut, karena tidak ada alasan untuk membuat yang baru, k e c u a l i:

1. Aplikasi yang sudah ada, tidak dapat secara tuntas menyelesaikan permasalahan yang ada

2. Aplikasi tersebut nggak free

3. Anda ingin mencoba menyaingi aplikasi tersebut dengan cara membuat aplikasi yang lebih baik

4. Aplikasi yang ada kurang update dan tidak memungkinkan/pantas untuk dimanfaatkan pada saat ini

3.   Rancang secara detil

Merancang sebelum mengerjakan. Dengan rancangan yang baik, akan menjaga anda on the track dan tidak melebar ke mana-mana. Alat rancang suatu aplikasi ada banyak: use case, use case descripstion, dll.

pict: detik.com

Apa sekiranya yang perlu anda rancang dan perlu raba-raba terlebih dahulu:

1. Siapa user dari aplikasi anda nantinya? –> sesuaikan rancangan aplikasi dengan kemampuan pengguna nantinya

2. Apakah diperlukan admin atas aplikasi anda? –> ini termasuk anda merancang apa aplikasi perlu ada yg di-update, siapa yg meng-update, berapa jumlah interface yang perlu anda siapkan

3. Kemampuan (fungsi) apa saja yang harus ada dalam aplikasi anda? –> catat semua fungsi dan data, kemudian petakan siapa user yang menggunakan fungsi+data tersebut (apakah user, admin, super admin?)

4. Apa basis aplikasi anda? Web? desktop? Hybrid? dekstop+internet? desktop+LAN? –> sesuaikan dengan kebutuhan, apakah harus terpusat? terdistribusi? atau stand alone? termasuk juga mempertimbangkan sisi keamanan dan keaktualan database

5. Bahasa pemrograman yang paling efektif untuk pilihan basis aplikasi anda?

6. Bagaimana desain tampilan aplikasi anda? (Harus yang optimal dari segi Human-Computer Interaction)

4.    Pelajari hal-hal yang belum dimengerti

Setelah 3 proses di atas, pasti anda sudah bisa membayangkan part mana yang anda sudah yakin bisa mengerjakannya dan part mana yang masih bingung sama sekali.

Dengan mencari tahu bagian-bagian yang belum mengerti, akan mencerahkan kabut-kabut pesimisme (diksi sok yes LOL). Sebaiknya sambil belajar, rapikan juga code-nya, agar nantinya tinggal mengintegrasikan part yang anda pelajari tersebut ke code lain nantinya (berpikir semacam modul per modul).

5.   Eksekusi sesuai logika yang paling mudah anda pahami

Tidak dipungkiri bahwa seorang programmer harus mempunyai logika yang “sedikit” tangguh. Kemampuan logika ini berbeda antara satu orang dengan orang lainnya. Beberapa orang lebih bisa berpikir dari umum -> khusus, namun ada juga yang berpikir dari khusus -> umum.  Saya mengkategorikan kemampuan logika seseorang menjadi tiga:

a. Outdoor –>

Kemampuan logis yang luar biasa, bisa membayangkan alur proses dan data dengan hanya di awang-awang, bisa membagi program dalam setiap step di luar kepala. Orang yang seperti ini mau memulai pengerjaan dari sisi mana aja mah bisa.

b. Indoor –>

Kemampuan logis sebenarnya OK, namun kadang crowded dan belum bisa “hanya di awang-awang”. Orang seperti ini saya sarankan harus menuliskan setiap step nya dalam secarik kertas. Hal ini mencegah kita berpikir loncat-loncat dan tidak berurutan.

c. Door-to-Door –>

Kemampuan logika yang kurang kuat, membayangkan apa yang harus dikerjakan pertama-tama saja tidak mampu. Tipe semacam ini saya sarankan untuk sering berkunjung/berdiskusi dengan teman yang bertipe Indoor atau Outdoor. Saya sarankan juga untuk mencatat rapi apa yang sudah dikerjakan dan apa yang nantinya dikerjakan.

6.   Back-up dan Dokumentasi

Rajin-rajinlah mem-back up code anda. Jangan lupa untuk memberi tanggal pada setiap file back-up anda. Sebisa mungkin jangan hanya di back-up di komputer yg sama atau di flash drive, back-up lah di server yang terpercaya. Anda punya banyak pilihan storage online, cohtoh: dropbox.com. Hal ini untuk menghindari kejadian semacam HD rusak atau FD ilang.

Selain back-up, rajin-rajinlah mendokumentasikan setiap baris code yang dibuat, setidaknya pada setiap class yang dibuat. Tuliskan di code, sebagai komen, fungsi dari class tersebut atau fungsi dari suatu method.

———————————-

Semoga bermanfaat!

Leave a comment