E-Book Gratis: Webpack 4 untuk Pemula

Pernah dengar Webpack tapi bingung cara pakenya? Atau mungkin malah belum pernah dengar sama sekali. Dalam buku tipis ini dibahas apa itu Webpack, instalasi, dan konfigurasinya.

Webpack adalah salah satu bundler yang populer. Tapi buat pemula yang belum pernah pake Webpack, instalasi dan konfigurasinya relatif bikin bingung. Ada banyak variasi contoh konfigurasi yang bisa dicari di Google atau Stack Overflow, yang mungkin malah bikin bingung.

Continue reading →

React: Context

Sebelum React 16.3, satu-satunya cara untuk ngirim state dari komponen parent ke komponen child adalah pake props. Jadi nggak jarang kita bikin komponen yang punya prop xyz tapi nggak memproses nilai prop itu, dia punya prop itu cuma biar bisa ngirim lagi ke komponen child di bawahnya lagi. Istilahnya props chain.

Jadi bisa dibilang komponen Child A sia-sia punya prop xyz karena dia sebenernya nggak butuh. Tapi karena Child B perlu prop itu, mau nggak mau Child A harus punya prop xyz. Mungkin kalo strukturnya nggak panjang, cuma ada 2 komponen child, masih okelah. Tapi kalo strukturnya panjang, jadi jelek & ribet sekali. Kita harus nambahin kode yang nggak perlu di banyak komponen sekedar biar bisa transfer prop xyz ke bawah. Alternatifnya, ya pake state-manager seperti Redux. Tapi pake Redux juga jadi beban tersendiri terutama kalo proyeknya nggak terlalu rumit. Bisa-bisa malah over-engineering.

Continue reading →

Membuat Tooltip dengan CSS

Dalam artikel ini saya bahas cara cepat bikin tooltip dengan CSS (SCSS), tanpa JavaScript. Di sini saya bikin tooltip yang tampil di atas dan di samping elemen parent-nya. Saya mulai dari struktur HTML & CSS dasarnya dulu:

Jadi kelas utamanya .tooltip & untuk ngatur posisinya ada kelas .top untuk tampilan tooltip di atas & kelas .right untuk tampilan di samping kanan.

Bukan tooltip namanya kalo nggak ada pointer segitiganya. Caranya saya kopas aja dari sini: CSS Triangle.

Yang pertama, saya bikin tooltip tanpa border. Ini gampang sekali. Tinggal nempelin segitiga di bawah atau di samping. Untuk nampilin segitiga, saya pake pseudo-element :after.

Continue reading →

JS : Pemrograman Asinkron

Mayoritas kode JavaScript yang pernah kita tulis bersifat synchronous, artinya setiap baris kode dieksekusi secara berurutan setelah baris sebelumnya selesai. Tapi nggak jarang juga kita nulis kode yang bersifat asynchronous, yaitu function yang nggak langsung selesai & selama function ini belum selesai, JavaScript engine bisa jalanin kode kita yang lain. Salah satu contoh kode asinkron yang paling sering kita tulis adalah network request, baik pake XMLHTTPRequest atau, kalo pake JQuery, ya $.ajax().

Contoh paling sederhananya begini,

console.log(1);
console.log(2);
console.log(3);
console.log(4);
console.log(5);

Kode di atas semuanya bersifat sinkron, satu baris dijalanin sesudah baris sebelumnya selesai. Outputnya begini,

1
2
3
4
5

Kode yang asinkron contohnya seperti di bawah ini,

console.log(1);
console.log(2);

setTimeout(()=>{
  console.log(3, 'asinkron'); // asinkron
},500);

console.log(4);
console.log(5);

Outputnya begini, keliatan bedanya kan? Kode yang asinkron baru selesai setelah baris terakhir dijalanin.

1
2
4
5
3 'asinkron'

Continue reading →

End-to-end Testing dengan The Intern

Apa itu end-to-end testing ?

Sebagai programer, tentu kita semua udah kenal yang namanya testing. Ada macam-macam test yang bisa kita pake untuk meningkatkan kualitas kode dan/atau aplikasi yang kita buat. Yang paling umum dan wajib adalah unit-test untuk memvalidasi alur/logika program dalam unit yang paling kecil yaitu function.

End-to-end testing, sering disingkat E2E, adalah untuk memvalidasi cara kerja aplikasi atau website dari sudut pandang seorang user. Jadi dalam E2E testing kita tulis skrip untuk mensimulasikan behavior atau tindakan-tindakan seorang user — mirip bikin bot.

Dalam artikel ini, saya akan bahas tentang E2E testing pake sebuah framework yang bernama The Intern. Ada beberapa framework yang bisa kita pake selain The Intern, antara lain: Cypress, Nightwatch, TestCafe, dan yang paling tua, Selenium. Berdasarkan pengalaman saya, The Intern adalah yang paling seimbang antara fitur & tingkat kerumitannya.

Continue reading →