Hustler or Hipster or Hacker
2 minggu terakhir ini, peserta kuliah PPL disibukkan oleh kegiatan Sprint 1. Hal-hal yang perlu dilakukan adalah mulai mengerjakan Product Backlog atau PBI dan Set Up environment untuk deployment product.
Kelompok kami memilih untuk hanya mengambil 1 PBI saja, dikarenakan kondisi kami yang masih belum familiar dengan framework yang digunakan, maupun penyetelan docker image yang menemui masalah. PBI yang kami pilih adalah fitur Login dan Logout.
Creating The Design
Sebelum memulai pembuatan aplikasi, kami harus membuat sebuah desain yang akan dijadikan acuan saat membuat front end dari aplikasi kami. Desain tersebut kami realisasikan dalam bentuk clickable mockup yang sudah kami selesaikan sebelum sprint 1 di mulai.
Sayangnya desain pertama kami dinilai terlalu simpel sehingga product owner meminta kami untuk memperbarui desain yang telah kami buat, berikut perbandingan desain pertama dan kedua yang kami kerjakan hingga pukul 3 pagi hari.
Kami memilih untuk tetap menggunakan tampilan yang simple tapi menerapkan kesan yang futuristik pada desain kedua kami. Alasan kami memilih tampilan desain yang terlihat simple adalah karena persona yang kami dapatkan berupa pejabat yang menyukai kemudahan akses dan sekretaris yang sedikit gaptek dan tidak menyukai ketidakteraturan.
Working Flow Of The Project
Starting And Cloning The Project
Setelah selesai membuat desain, kini saatnya kami memulai project untuk product kami. Framework yang digunakan merupakan Laravel dengan bahasa pemrograman PHP. Project dimulai pada branch Staging dan kemudian di buat branch baru bernama User Story Login Logout. Setelah project selesai diinisiasikan pada branch User Story, anggota kelompok lain hanya perlu untuk melakukan “git clone” dan “git checkout” pada branch User Story agar dapat memulai pengerjaan.
- git clone berguna untuk menyalin remote repository ke local device/local repository. Hasil clone merupakan suatu git repository yang bisa menjalankan perintah git lainnya.
- git checkout berguna untuk berpindah dari suatu branch ke branch lain.
Working On Given Task
Setelah berhasil melakukan cloning dan checkout pada branch user story, anggota kelompok sudah mulai boleh mengerjakan task yang diberikan kepada mereka. Dalam pengerjaan task anggota kelompok diharapkan menggunakan metode Test Driven Development (TDD). Kemudian untuk menyimpan hasil pekerjaan pada git version control dapat menggunakan command berikut.
- git add berguna untuk menambahkan file yang sudah di edit agar dapat di-track oleh git dan diberi commit.
- git commit berguna untuk mencatat perubahan yang terjadi pada file ke dalam repository
Unite The Task
Diakhir hari, tentu saja kita perlu menyatukan hasil task yang sudah kita kerjakan dengan task yang dikerjakan oleh anggota kelompok kita. Hasil pekerjaan kita akan disatukan pada branch User Story di remote repository. Agar dapat mencegah terjadinya conflict, maka kita perlu melakukan pulling dari remote repository alih-alih anggota kelompok lain sudah menyelesaikan task mereka terlebih dahulu. berikut prosedur dalam menyimpan hasil pekerjaan kita pada remote repository.
- git pull berguna untuk “menarik” file dari remote repository ke local repository, jika tidak ada perbedaan maka file pada local repository tidak akan berubah.
- git push berguna untuk mengunggah hasil perkerjaan kita yang sudah di commit pada local repository ke dalam remote repository.
Jika terjadi conflict maka kita harus resolve dulu conflict tersebut, dan lakukan add dan commit kembali sebelum dapat melakukan push ke remote repository.
Test Driven Development (TDD)
- Making Test
Pada Sprint kali ini, saya mendapatkan bagian membuat fitur logout, sehingga saya harus membuat sebuah unit test yang mengecek apakah user bisa logout.
kemudian saya commit dan push ke dalam remote repository
2. Making Function
Agar dapat passed dari test yang sudah dibuat, saya perlu membuat sebuah fungsi logout yang dapat digunakan oleh user yang sudah di authenticated. Tetapi pada Framework Laravel hal ini sudah disediakan melalui library Auth, yang dapat dijalankan menggunakan kode
php artisan make:auth
library tersebut mencakup fungsi login dan logout yang langsung dapat digunakan, dengan syarat model database yang sudah lengkap. command “make:auth” sendiri sudah dijalankan oleh anggota kelompok saya, sehingga saya hanya tinggal menyesuaikan user factory-nya saja
Manfaat TDD
Alasan kenapa metode TDD digunakan adalah membuat programmer berpikir lebih kritis karena harus mendesain test terlebih dahulu dan bagaimana cara implementasi fungsi agar dapat lulus dari test tersebut.
Kemudian penulisan test terlebih dahulu dapat mencakup kemungkinan error yang lebih banyak daripada menulis implementasi fungsi terlebih dahulu. Karena jika kita menulis implementasi terlebih dahulu, maka test yang kita buat akan merujuk kepada implementasi yang kita buat, tanpa mencari kesalahannya lainnya.
Penggunaan TDD juga akan menjamin product yang di deploy sudah berjalan secara sempurna selama source code product tersebut lulus semua unit test yang ada.
Sekian laporan pengembangan tahap pertama dari produk kami. Masih banyak sekali tugas yang harus kami selesaikan, jadi kami mohon dukungannya agar kami dapat menyelesaikan project ini. Sampai ketemu lagi pada laporan berikutnya.