Skripsi Membantu Saya Menjadi Developer yang Lebih Baik, Ini Rahasianya!

Pengalaman menerapkan konsep pengerjaan skripsi ke dalam pekerjaan sehari-hari. Seperti apa? Yuk simak cerita saya.

Ta’zirah Marwan
codexstories | CODEX Telkom
4 min readJan 7, 2022

--

Sebelum menceritakan pelajaran yang saya dapat, saya akan bercerita dahulu mengenai skripsi saya.

Topik skripsi saya adalah pembuatan permainan edukasi, tepatnya sebuah permainan puzzle untuk materi SMK Electrical Wiring Diagram. Cara kerja permainan ini dengan menghubungkan komponen-komponen yang terdapat dalam level sesuai dengan urutannya. Kurang lebih hampir sama dengan permainan Flow.

Demo aplikasi di depan siswa SMK

Topiknya bisa dikatakan tidak umum sehingga saya agak sulit mencari referensi permainan yang mirip dengan permainan yang saya buat. Akibatnya, referensi logic untuk permainan ini minim dan sebagian besar harus saya kira-kira sendiri.

Saat itu, target skripsi saya adalah anak SMK, tepatnya anak SMK jurusan Kelistrikan Mobil. Saya meminta bantuan kepada paman saya untuk menjadikan siswanya sebagai sumber data saya.

Kebetulan tahun 2018, bulan Ramadan jatuh lebih cepat (bulan Mei) sehingga waktu UAS SMK semakin cepat. Akibatnya, saya harus menyelesaikan aplikasi tersebut sebelum mereka UAS, maksimal 1 minggu sebelumnya agar saya dapat melakukan pengujian ke mereka. Jadi Deadline untuk saya mengerjakan ini bulan April pertengahan, jauh lebih cepat daripada deadline pengumpulan skripsi di awal Juli.

Saya mulai membuat permainan tersebut sejak Maret awal, tetapi hingga April awal permainan tersebut belum terbentuk, bahkan level satu pun belum jadi. Padahal rancangan permainannya mau seperti apa saya sudah hafal di luar kepala, tetapi ketika mengembangkannya bingung harus mulai dari mana.

Akhirnya saya pasrah. “Ya sudah, mulai aja dulu” pikir saya.

Kemudian saya langsung mulai membuat to-do list yang harus diselesaikan untuk mencapai MVP (Minimum Viable Product). Setelah list selesai dibuat, saya mulai develop permainannya, mulai dari mengerjakan to-do terkecil dan terpenting hingga yang sulit.

Selang empat hari, MVP permainan tersebut selesai. Masih ada sedikit bug, tetapi sudah dapat dimainkan dan fiturnya sudah berjalan dengan benar. Padahal selama satu bulan saya berusaha agar permainannya bisa selesai dengan tujuan lain agar tidak mendadak mengerjakannya, tapi belum berhasil menyelesaikan. Namun, dalam empat hari ternyata permainan saya bisa selesai.

Saya pun tidak perlu bergadang untuk mengerjakan skripsi. Umumnya saya mulai mengerjakan jam 8 atau 9 pagi hingga jam 4 atau 5 sore.

Lesson Learned

Pertanyaannya, apa yang membuat development permainan saya menjadi secepat itu? Kata-kata “mulai aja dulu” kah?

Jelas bukan, karena selama bulan Maret juga saya sudah mulai mengerjakan tetapi tidak selesai-selesai. Menurut saya, yang mempengaruhi adalah to-do list yang saya buat dengan detail.

Selama mengerjakan permainan tersebut, fokus saya hanya satu yaitu menyelesaikan to-do yang sudah dibuat dan tetap berpatok pada list tersebut. Saya tidak perlu memikirkan hal lain lagi, karena percaya dengan tingkat detail to-do yang saya buat.

Dalam satu hari, saya dapat merencanakan target yang dapat diselesaikan. Seandainya ada hal lain yang ingin ditambahkan, saya tambah ke list tetapi tidak saya tambahkan ke pekerjaan saya di hari tersebut, kecuali memang urgent. Tujuannya agar saya tetap fokus pada rencana awal.

Seandainya saya tidak membuat outline, pekerjaan yang saya hasilkan tidak begitu maksimal. Walaupun saya mulai mengerjakannya tanpa membuat target, di tengah jalan saya bisa kehilangan arah dan kualitas permainan yang saya buat menjadi lebih rendah dengan waktu pengerjaan yang lebih lama.

Implementasi di Development

Penerapan membuat to-do list tersebut kemudian saya terapkan di keseharian. Umumnya saya membuat list yang lebih detail dari backlog yang sedang saya kerjakan.

Sebuah Text Editor Sederhana

Sebagai contoh, saya mempunyai backlog “Membuat Komponen Text Editor”. Backlog tersebut saya pecah komponen Text Editor menjadi bagian-bagian kecil. Pembagian yang lebih kecil kurang lebih menjadi seperti ini:

  • Mempelajari tools Draft.js (library Text Editor untuk React.js),
  • Membuat tombol Formatting (Bold, Italic, Underline),
  • Menambahkan Counter (sisa karakter),
  • Membuat error handler,
  • Menambahkan label dan placeholder,
  • Styling komponen.

Dari list tersebut, saya kerjakan satu per satu hingga selesai. Setelah selesai, saya melakukan tes terhadap komponen tersebut. Jika tidak ada bug atau error saat dites, saya anggap backlog tersebut sudah selesai dan pindah ke backlog lain.

Namun jika di tengah jalan saya menemukan bug, ada dua kemungkinan yang saya lakukan. Pertama, untuk bug yang fatal atau berkaitan dengan backlog yang sedang dikerjakan, saya tambahkan di list target yang sedang dikerjakan. Kedua, untuk bug yang tidak urgent atau dapat ditunda, saya tampung dulu di nota untuk kemudian saya kerjakan setelah list target saya selesai.

Dengan cara seperti ini, saya lebih mudah mengetahui apa saja yang sedang saya kerjakan dan bisa merencanakan pekerjaan dengan lebih detail.

Di sisi lain, secara tidak sadar saya menjadi lebih memahami kode yang saya buat sehingga ketika ada bug atau penambahan feature, saya bisa menanggapi dengan cepat.

Pada akhirnya, untuk menggunakan metode to-do list harus patuh dengan target yang sudah dibuat, walau mungkin tidak selamanya rencana yang kita buat dapat berjalan dengan mulus. Kunci utamanya selain patuh adalah fleksibel. Fleksibel di sini yaitu dapat beradaptasi dengan keadaan sehingga to-do list yang dibuat tidak terlalu kaku dan akhirnya memberatkan diri sendiri.

Itulah pengalaman berharga saya yang menjadi batu loncatan performansi karier saya. Saya juga penasaran, ada kah pengalaman berharga yang menjadi batu loncatan performansi atau karir kalian? Share di comment ya kalau ada.

Terima kasih.

Tazirahmb

--

--