Daftar Isi
Sobat, saat kita mengembangkan aplikasi Android yang memanfaatkan WebView (komponen internal untuk menampilkan halaman web di dalam aplikasi), kenyamanan pengguna atau User Experience / UX (tingkat kepuasan pengguna saat menggunakan aplikasi) adalah hal yang sangat penting. Pernah nggak nemuin aplikasi yang waktu membuka halaman web berasa seperti macet atau freeze? Padahal, aplikasi tersebut cuma sedang memproses data di latar belakang, tapi karena nggak ada indikator status apa pun, pengguna jadi bingung dan mengira websitenya *error*.
Untuk mengatasi kendala tampilan seperti ini, trik sederhana namun efektif yang biasa saya terapkan adalah memanfaatkan WebChromeClient (komponen pendukung untuk mengontrol elemen antarmuka dan indikator proses pada WebView). Melalui fungsi onProgressChanged (metode otomatis untuk memantau persentase pemuatan halaman), kita bisa mengubah judul aplikasi secara dinamis—menampilkan teks “Loading…” selama halaman diproses, lalu mengembalikannya ke nama aplikasi saat pemuatan data sudah genap 100%.
Nah, berikut adalah potongan kode Java praktis yang biasa saya sematkan di dalam projek aplikasi Android agar alur pemuatan halaman terasa lebih hidup, responsif, dan memberikan kepastian kepada pengguna:
myWebView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
// Menampilkan title "Loading..." sebelum webview load 100% halaman web
setTitle("Loading...");
setProgress(progress * 100);
// Menampilkan title utama setelah loading web selesai
if(progress == 100)
setTitle(R.string.rahmatriyanto);
}
}); Update 20 Juli, 2026: Pendekatan Modern dengan Kotlin & ProgressBar
Sobat, untuk membawa potongan kode Java klasik di atas ke standar pengembangan Android modern saat ini, kita bisa beralih menggunakan bahasa Kotlin (bahasa pemrograman utama resmi untuk Android) serta mengombinasikannya dengan komponen ProgressBar (garis visual penanda status pemuatan) secara horizontal di bagian atas layar.
Pendekatan modern yang paling nyaman bagi pengguna adalah menampilkan garis indikator bergerak saat halaman sedang memproses data, lalu menyembunyikannya secara otomatis begitu pemuatan genap 100%. Tampilan aplikasi pun jadi terasa jauh lebih bersih, responsif, dan elegan.
Kode Kotlin Modern: WebView dengan ProgressBar
Berikut adalah penulisan kode modern menggunakan Kotlin yang jauh lebih ringkas, aman dari kebocoran memori, dan sesuai dengan standar Android SDK saat ini:
// Inisialisasi komponen WebView dan ProgressBar
val webView: WebView = findViewById(R.id.webView)
val progressBar: ProgressBar = findViewById(R.id.progressBar)
// Mengaktifkan JavaScript jika diperlukan oleh website
webView.settings.javaScriptEnabled = true
// Menyetel WebChromeClient untuk memantau proses muat halaman
webView.webChromeClient = object : WebChromeClient() {
override fun onProgressChanged(view: WebView?, newProgress: Int) {
if (newProgress == 100) {
// Sembunyikan ProgressBar saat pemuatan selesai 100%
progressBar.visibility = View.GONE
} else {
// Tampilkan ProgressBar dan perbarui nilainya secara dinamis
progressBar.visibility = View.VISIBLE
progressBar.progress = newProgress
}
}
}
// Memuat alamat website tujuan
webView.loadUrl("https://rahmatriyanto.com") Peningkatan Utama pada Versi Modern
Penerapan standar baru ini memberikan beberapa pembaruan signifikan dibanding cara lama:
- Sintaksis Kotlin yang Ringkas: Menggunakan object expression (cara penulisan objek langsung di Kotlin) yang meminimalisir baris kode dan mencegah potensi kendala null pointer (error akibat variabel kosong).
- Menggunakan Indikator Visual Riil: Memanfaatkan properti
View.GONEdanView.VISIBLE(status sembunyi/tampil elemen antarmuka) padaProgressBar, bukan lagi mengubah judul aplikasi secara kaku. - Bebas dari Fungsi Usang (Deprecated): Tidak lagi memanggil metode
setProgress()lama dari Activity yang sudah dihentikan dukungannya oleh Google sejak era Android Lollipop.
Dengan menerapkan standar penulisan modern ini, aplikasi Android yang Sobat bangun bakal terasa jauh lebih responsif dan profesional, memberikan kepastian kepada pengguna tanpa perlu membuat struktur kodingan jadi rumit.