Tag: JavaScript

Sebuah bahasa pemograman sederhana yang diciptakan dalam waktu 10 hari dengan tujuan melengkapi Java. Kini, JavaScript bisa bersaing dengan Java di sisi server dengan runtime seperti Node.js dan repository seperti npm. Selain mencakup bahasa JavaScript, tag ini juga meliputi Web APIs yang biasa dipergunakan bersama dengan JavaScript di sisi client seperti Service Worker API, Canvas API, dan sebagainya.

Apa Itu Protokol Session Traversal Utilities for NAT (STUN)?

Salah satu istilah yang sering saya jumpai saat membuat kode program yang berhubungan dengan WebRTC adalah STUN. Session Traversal Utilities for NAT (STUN) adalah protokol yang didefinisikan di RFC 5389. STUN membantu mempermudah komunikasi dengan perangkat yang berada dibalik NAT yang tidak dapat dihubungi secara langsung dari IP publik. Komponen STUN disebut sebagai STUN Agent yang terdiri atas STUN Client dan STUN Server.

Kategori: Network Tags: Protocol Go JavaScript

Melakukan Hashing Password Dengan Nonce di Sisi Client

Proses hashing untuk password di sisi frontend biasanya dilakukan supaya password tidak dikirimkan apa adanya (plain text) melalui jaringan. Secara umum, proses ini tidak begitu meningkatkan keamanan password karena website modern sudah menggunakan HTTPS sehingga password yang dikirim ke backend sudah ter-enkripsi. Proses hashing ini lebih berguna untuk serangan tertentu seperti MITM proxy dan mencegah password tidak sengaja tersimpan di log backend (misalnya di server NGINX yang men-log seluruh request body).

Kategori: Pemograman Tags: Go JavaScript

Memakai Import di TypeScript

Pada saat saya mempelajari bahasa pemograman baru, fokus utama saya adalah bagaimana caranya semudah mungkin menjalankan kode program dan melihat hasilnya. Saya cenderung menulis kode program dalam satu function besar. Ini bertentangan dengan fokus saya setelah mahir: bagaimana mengetahui cara kerja aplikasi tanpa membaca seluruh kode program dan bagaimana memperbaiki bagian tertentu yang bermasalah tanpa merusak yang lain. Untuk mencapai tujuan tersebut, saya perlu menerapkan konsep module. Saya bisa mengetahui cara kerja aplikasi secara garis besar dengan melihat komunikasi antar module. Untuk memperbaiki kesalahan atau mengembangkan fitur baru, saya bisa hanya fokus ke kode program di module yang bersangkutan.

Kategori: Pemograman Tags: JavaScript TypeScript

Memakai Promise.all() atau await?

Dengan TypeScript, saya tidak ragu lagi menggunakan fasilitas async/await tanpa perlu khawatir masalah kompatibilitas JavaScript. Kode program terasa lebih singkat dan lebih mudah dipahami tanpa membuat banyak Promise. Walaupun demikian, dalam kasus tertentu, saya tetap menggunakan Promise.all() yang memiliki efek samping berbeda bila digantikan dengan async/await.

Kategori: Pemograman Tags: JavaScript TypeScript

Membuat Web App Manifest

Salah satu ciri website PWA adalah sudah dilengkapi dengan web app manifest. Setelah memiliki web app manifest, pengguna bisa men-install website di Android tanpa harus melalui Google Play Store. Web site tetap bisa bekerja bila dijalankan dari shortcut hasil instalasi karena sudah menggunakan service worker. Untuk merasakan pengalaman install website, saya akan menambahkan web app manifest pada situs blog ini.

Kategori: Pemograman Tags: JavaScript PWA

Melakukan Query DNS Lewat HTTPS

Salah satu hal menarik dari DNS Resolver Cloudflare yang diluncurkan 1 April 2018 kemarin adalah ia bisa dipanggil melalui HTTPS. Ini adalah apa yang disebut sebagai DNS over HTTPS (DoH). Selain Cloudflare, DNS Resolver dari Google juga mendukung DoH. Bukan hanya itu, juga sudah tersedia website untuk pencarian hasil query DNS di https://dns.google.com.

Kategori: Network Tags: JavaScript DNS

Memakai Service Worker Agar Website Berfungsi Saat Offline

Walaupun situs ini adalah sebuah situs statis, saat mencobanya secara offline, saya menemukan sebuah masalah. Setelah cache kadaluarsa, browser berusaha menarik file dari CDN seperti Bootstrap, Highcharts dan sebagainya. Alangkah baiknya bila saya menyimpan file yang dibutuhkan secara permanen untuk dipakai secara offline. Salah satu solusinya adalah dengan menggunakan Service Worker API yang biasanya identik dengan Progressive Web Apps.

Kategori: Pemograman Tags: JavaScript PWA Jekyll

Memakai Algolia Untuk Fitur Pencarian Di Jekyll

Salah satu fitur yang tidak saya jumpai setelah beralih dari Wordpress ke Jekyll adalah pencarian. Cukup masuk akal karena Jekyll menghasilkan halaman HTML statis tanpa menggunakan fasilitas di sisi server seperti database. Oleh sebab itu, bila ingin memiliki fitur pencarian, saya perlu menggunakan search engine terpisah yang akan meng-index setiap post di blog ini. Biasanya saya akan men-install ElasticSearch yang men-ekspos fasilitas pencariannya dalam bentuk REST API ‘siap saji’ bagi klien. Sebagai latihan, kali ini saya akan menggunakan Algolia yang merupakan layanan hosted tanpa perlu instalasi. Salah satu nilai tambah Algolia adalah memiliki Search UI yang menyediakan widget siap pakai untuk ditempelkan ke website. Karena ini adalah situs pribadi yang sederhana, saya mendaftar pada plan gratis Algolia yang memiliki batas 10.000 records dan 100.000 operasi pencarian per bulan.