Hustler or Hipster or Hacker

Adib yusril Wafi
sinadin
Published in
5 min readFeb 27, 2019

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.

Desain Awal Dashboard
Desain Kedua Dashboard

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.

Persona Pejabat
Persona Sekretaris

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 Command untuk Cloning dan Check Out
  • 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 Command untuk Version Control
  • 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 Command untuk Pulling dari Remote Repository
Git Command untuk Push ke 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)

  1. 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.

Unit Test Logout

kemudian saya commit dan push ke dalam remote repository

Commit Membuat Test

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.

--

--