Gak Cukup Cuma Bisa Bikin Aplikasi

Yoshua Joo Bin
5 min readJan 9, 2019

--

https://img.okezone.com/content/2018/01/19/207/1847273/5-aplikasi-smartphone-berbahaya-apa-saja-Y3uvdfULxH.jpg

Saya ingat sekitar mungkin 10 tahun yang lalu ketika banyak orang masih menulis tutorial tentang Visual Basic 6, saat itu saya yang masih anak sekolahan juga ikutan tertarik dengan dunia per-aplikasi-an (baca: pemrograman). Saya bukan lantas menjadi seorang prodigy, ya sama dengan kebanyakan pemula rata-rata. Saya ingat sekali waktu itu saya baca banyak sekali buku-buku mengenai pemrograman, saat itu hanya ada dua yang saya agak paham: Visual Basic 6 dan Pascal. Semuanya bertemakan “cara membuat aplikasi dalam X jam” (X nya itu biasa 6, 10, 30, dan bilangan fantastis lainnya). Bagi saya yang pada saat itu sangat pemula ketika membaca judul buku seperti itu seperti melihat timbunan emas di tengah toko buku. Saya kumpulkan uang jajan dan tanpa pikir panjang langsung saya lahap buku-buku tersebut. Internet masih belum seperti sekarang, dalam artian, Internet masih sebatas di warnet dan belum masuk ke rumah-rumah secara masif seperti sekarang, gawai yang saya gunakan saja masih sebatas kirim pesan singkat saja.

Kilas Balik

Singkat cerita saya mulai mempelajari satu persatu bagian, sampai akhirnya saya berhasil membuat aplikasi Sistem Periodik Unsur, saat itu belum menggunakan database, maklum saya belum mengerti apa itu SQL dan database, jadi hanya menggunakan if-else biasa saja. Memang saat itu saya sangat suka menggunakan Visual Basic 6 (VB6) karena ada fitur dimana kita bisa langsung melakukan konversi aplikasi kita ke dalam bentuk executable (.exe). Saya ingat sensasinya ketika pertama kali bisa membuat aplikasi dan memiliki bentuk executable-nya, rasanya seperti ingin langsung show off. Seiring berkembangnya wawasan, saya mencoba cari tahu tentang Java, PHP, dan ActionScript (Macromedia Flash 8). Tapi di dunia yang semakin dinamis dan kompetitif tidaklah sesederhana membuat aplikasi.

Dinamis

Dunia semakin kompetitif, pola pengembangan suatu aplikasi pun sudah semakin rumit. Sebenarnya semakin saya mendalami bidang ini saya merasa bahwa tidak cukup hanya membuat aplikasi, tidak sesederhana membuat executable apps lalu dikirimkan ke klien, atau sekedar hosting website yang sudah dibuat ke server. Secara naïf, saya kadang menemukan beberapa pertanyaan yang cukup unik di mailbox saya, pesan tersebut berasal dari salah satu web penghubung antara pekerja lepas (freelance) dan pencari pekerja a.k.a klien. Subjek emailnya adalah — “Dicari programmer untuk aplikasi mirip Gojek” atau “Dicari programmer web untuk aplikasi web mirip Tokopedia”, pertama saya lihat pesan tersebut saya langsung membuka karena ingin tahu spesifikasinya, dan mengejutkannya hanya satu orang programmer yang dibutuhkan, lalu saat saya lihat harganya juga cukup miris. Bukan masalah harga yang saya mau sorot, melainkan ada asumsi klien bahwa untuk membuat suatu aplikasi adalah hal yang mudah, dan cukup satu atau dua orang saja. Tidak sepenuhnya salah! Sebagai orang awam mungkin saya dulu juga berpikir seperti itu.

Realita

Saya mulai belajar dari beberapa pengalaman, sebagai pegawai kantoran biasa, saya pasti menemukan tuntutan agar suatu aplikasi bisa terintegrasi, fast-deployment, scalable, dan maintainable. Maaf kalau pakai istilah-istilah asing, saya bingung bagaimana harus mentranslasikannya. Tapi memang pada kenyataannya untuk membuat aplikasi di dunia kompetitif pasti ada tuntutan supaya aplikasi itu bisa digunakan oleh khalayak ramai, tapi data-data yang dihasilkan oleh aplikasi (seperti data pengguna, dan data lainnya) harus terintegrasi jadi satu di satu server. Maksudnya terintegrasi di sini adalah, data semua terpusat dan bisa terhubung dengan data lainnya, walaupun berbeda-beda pengguna yang meng-input datanya dalam waktu bersamaan. Di bagian ini mulailah saya belajar tentang client-server apps. Bagaimana data yang dihasilkan oleh aplikasi yang digunakan oleh banyak orang dapat ditransmisikan ke satu pusat, dan bisa terintegrasi dengan data sebelumnya, serta bisa diakses oleh pengguna lainnya. Tentunya kemudian menghadirkan beberapa kelompok tugas (yang biasa dibuatkan tim terpisah), yakni kelompok belakang yang mengurus bagaimana data bisa diterima dari aplikasi klien dan kelompok depan yang mengatur agar tampilan dan fungsionalitas setiap antarmuka memudahkan pengguna, bahkan ada kelompok khusus server yang memonitor kesehatan server.

Bukan Cuma Sekedar Tulis Kode Program

Sesuai judulnya bukan sekedar tulis kode lalu selesai. Saya mulai belajar bagaimana bekerja di dalam tim, saya dan teman saya menulis kode untuk proyek yang sama, dan tentunya tidak boleh sampai ada kode yang tertimpa. Jadi saya mulai merasakan bagaimana tantangannya bisa menulis kode bersamaan dengan orang lain, ya tentunya saya pakai collaborative-tools. Tidak hanya itu, kalau dulu ketika saya pertama kali belajar menulis kode program, saya menulis nama variable sesukanya, indentasi yang berantakan, definisi fungsi yang tidak jelas, alhasil ketika saya ingin mengembangkannya akan sangat sulit membacanya kembali, namun berbeda kali ini, saya belajar bagaimana mendeskripsikan sebuah fungsi atau kueri dengan comment agar mudah dibaca oleh rekan satu tim. Kemudian saya belajar untuk melakukan testing untuk bagian yang saya kerjakan sebelum diintegrasikan dengan bagian utama.

Fast Deployment

Bayangkan suatu saat aplikasi kita semakin besar dan semakin besar. Penambahan server adalah suatu hal yang wajar dalam operasional sehari-hari. Begitu juga penambahan fitur dan perbaikan bug adalah suatu yang sangat biasa terjadi, namun tidak semudah itu, semua dituntut untuk diselesaikan dalam waktu yang sesingkat mungkin. Tentunya dalam mengerjakan proyek bersama tim akan memperbanyak proses dalam membuat aplikasi, maka dari itu jika ada perubahan fitur atau bug fixing pasti membutuhkan serangkaian proses yang panjang. Maka dari itu muncul lah bagian yang khusus menangani proses deployment. Biasanya mereka bertanggung jawab atas mengawasi jika ada error, proses deployment dari tahap pengembangan ke tahap produksi, dan lain sebagainya. Mereka akan menggunakan beberapa tools untuk memudahkan mereka, mulai dari logging aplikasi untuk tau status terakhir aplikasi apakah masih berjalan baik atau menggantung atau hanging, kalau aplikasi perlu di-compile mereka juga biasanya menggunakan tools yang bisa memudahkan mereka dalam melakukan otomatisasi kompilasi program, dan masih banyak lainnya.

Kesimpulan

Saya mencoba untuk memberikan gambaran bahwa di dunia yang dinamis di mana aplikasi bukan lagi aplikasi biasa melainkan sudah bertransformasi menjadi produk, sehingga bisa memberikan gambaran tentang bagaimana rumitnya sebuah aplikasi bisa dibuat. Semoga tulisan ini bisa menjadi gambaran bagi mereka yang ingin mempekerjakan programmer untuk membuat produk berupa aplikasi sehingga bisa memperkirakan cakupan produk, biaya produksi, dan tingkat kesulitan, dan juga bagi rekan-rekan programmer yang baru ingin mencicipi dunia luar, semoga ada gambaran akan apa yang mungkin dihadapi di depan, teruslah belajar, untuk bisa membuat suatu produk yang bagus tidak cukup hanya sekedar menulis kode. Saya akan coba bahas soal scalable apps dan maintainable apps di kesempatan lain.

Salam

--

--

Yoshua Joo Bin

I’m a Christian — Psalmist — Data Scientist — Programmer