2026.06.06 (Sab)

โœจ Ringkasan GPT-5.5 ใ€€

Catatan tentang memasang Cloudflare Worker dan D1 dalam batas gratis pada blog statis GitHub Pages, sambil mempertahankan nilai kumulatif GA yang sudah ada dan menampilkan kunjungan hari ini serta jumlah tampilan per tulisan.

Aku jadi ingin menambahkan penghitung pengunjung ke blog.

Bukan karena fiturnya sendiri luar biasa. Justru sebaliknya. Ini terasa seperti fitur yang terlalu wajar, tetapi di blog statis yang dibuat dengan GitHub Pages, fitur itu tidak tersedia secara alami.

Google Analytics sudah terpasang. Sebagai pengelola, aku bisa masuk ke GA dan melihat jumlah pengunjung serta tampilan halaman. Namun angka-angka itu tidak terlihat di dalam blog. Pengunjung tidak bisa tahu apakah blog ini masih dibaca hari ini, atau sejauh apa tulisan-tulisan terbaru sudah dibaca.

Aku menginginkan nuansa kecil seperti indikator di Naver Blog: Hari ini, Kumulatif, dan jumlah tampilan per tulisan yang muncul secara sederhana. Ini bukan soal angka untuk pamer, melainkan lebih dekat ke sinyal bahwa blog ini bukan halaman statis yang mati, tetapi masih terus dibaca.

Jadi masalahnya sederhana.

Bisakah aku mempertahankan kelebihan blog statis gratis, sambil menambahkan bagian dinamis yang sangat kecil hanya untuk statistik kunjungan?

Aku mulai dari menetapkan syarat

Aku tidak ingin strukturnya membesar hanya demi memasang satu penghitung pengunjung.

Sejak awal, aku menetapkan beberapa syarat.

  • Alur menulis dengan GitHub Pages dan Jekyll tetap dipertahankan.
  • Tidak memakai server berbayar.
  • Selesaikan di dalam batas gratis, baik dengan Cloudflare maupun Firebase.
  • Pasang kecil di dekat profil.
  • Pastikan tidak menjadi aneh panjang di seluler.
  • Tampilkan bukan hanya statistik seluruh blog, tetapi juga jumlah tampilan per tulisan.
  • Jangan membuang nilai kumulatif GA yang sudah ada.

Syarat terakhir terutama penting.

Kalau aku menambahkan penghitung baru dan jumlah tampilannya mulai dari 0, itu akan terlihat aneh. Blog ini sudah berjalan, dan GA sudah punya tampilan yang terkumpul sejak sebelumnya. Tetapi terus membaca hanya dari GA juga jauh dari nuansa penghitung yang kuinginkan.

Aku kira membaca GA saja sudah cukup

Awalnya, aku berpikir membaca Google Analytics API akan menyelesaikan semuanya.

Karena GA sudah memiliki datanya, sepertinya cukup jika satu Cloudflare Worker memanggil GA API lalu mengembalikan angka. Dalam praktiknya, aku membuat akun layanan, memberi izin pada properti GA, dan berhasil melakukan panggilan API.

Namun setelah benar-benar dipasang, hasilnya berbeda dari yang kuinginkan.

GA adalah alat analitik. Bagus untuk pengelola melihat alur belakangan, tetapi terasa kurang pas sebagai penghitung pengunjung yang langsung bereaksi di layar blog. Angka Hari ini terutama bermasalah. Kalau aku baru saja masuk ke blog tetapi nilai hari ini masih terlihat 0, dari sudut pandang pengunjung itu hanya tampak seperti rusak.

Nama metriknya juga membingungkan. Pengguna aktif dan tampilan halaman adalah nilai yang berbeda. Kalau jumlah pengunjung didefinisikan secara ketat, angkanya terlihat terlalu konservatif. Kalau memakai tampilan halaman, rasanya lebih alami, tetapi labelnya perlu hati-hati.

Akhirnya penilaiannya sederhana.

Gunakan GA sebagai nilai dasar historis, lalu hitung sendiri kenaikan mulai sekarang.

Aku memisahkan nilai dasar dan kenaikan

Struktur akhirnya seperti ini.

Jumlah tampilan publik = nilai dasar GA + kenaikan Cloudflare D1

Nilai dasar GA adalah angka yang sudah terkumpul. Aku menentukan tanggal acuan, lalu menyimpan jumlah tampilan seluruh situs dan jumlah tampilan per tulisan sampai titik itu.

Mulai setelah itu, Cloudflare Worker menghitung langsung. Ketika pengunjung masuk ke blog, JavaScript memanggil Worker, dan Worker mencatat kenaikan hari ini/bulan ini/total/berdasarkan jalur halaman ke D1.

Jika diringkas, jadinya seperti ini.

Nilai kumulatif yang sudah ada: nilai dasar Google Analytics
Kenaikan baru: Cloudflare Worker + D1
API publik: Cloudflare Worker
Tampilan blog: Jekyll include + JavaScript

Aku menyukai cara ini karena tidak membuang salah satu sisi.

Data GA yang sudah ada tetap dipertahankan. Pada saat yang sama, hitungan ke depan langsung bereaksi di layar blog.

Mengapa Cloudflare Worker dan D1

Firebase juga sempat menjadi kandidat. Namun untuk fitur sebesar ini, sisi Cloudflare lebih sederhana.

GitHub Pages adalah situs statis, jadi tidak ada tempat untuk meletakkan kode server. Worker mengisi ruang kosong itu dengan potongan kecil. D1 berbasis SQLite, jadi cukup untuk menyimpan angka sederhana seperti penghitung pengunjung.

Syarat biaya juga cocok. Penghitung pengunjung untuk blog pribadi dapat ditangani dalam batas gratis. Jika tiba-tiba banyak orang masuk, sebagian hitungan mungkin agak goyah, tetapi tulisan itu sendiri tidak akan rusak. Sejak awal, ini bukan sistem pembayaran atau buku besar keuangan.

Yang kuinginkan bukan pembukuan yang presisi, melainkan menunjukkan alur bahwa blog ini sedang dibaca.

Aku membatasi bot dan kunjungan ganda secukupnya

Jika penghitung dipasang di halaman publik, bot juga bisa menaikkan angka.

Sulit untuk memblokirnya secara sempurna. Dan kalau terlalu ketat, malah menjauh dari nuansa penghitung yang kuinginkan. Aku lebih memilih hitungan yang agak longgar, seperti Naver Blog.

Jadi Worker hanya menangani beberapa hal.

  • Mengecualikan agen pengguna yang jelas-jelas bot.
  • Tidak menghitung lagi kombinasi pengunjung dan halaman yang sama dalam rentang waktu tertentu.
  • Menumpuk jumlah tampilan per tulisan dengan cara yang sama, berdasarkan jalur.

Dengan kata lain, aku menyesuaikannya sebagai penghitung pengunjung publik, bukan alat analitik yang ketat.

Aku memasangnya kecil di layar

Awalnya, aku mencoba menampilkan statistik dalam beberapa kotak. Namun UI di samping profil harus tetap kecil. Kalau angkanya terlalu banyak, layar pertama blog justru menjadi berantakan.

Jadi akhirnya yang tersisa adalah tiga nilai.

Hari ini / Bulan ini / Total

Hari ini memberi rasa bahwa blog sedang dibaca sekarang. Bulan ini menunjukkan skala terbaru. Total menunjukkan waktu yang sudah dikumpulkan blog.

Di daftar tulisan, aku menambahkan jumlah tampilan pada tiap tulisan.

10 tampilan

Nilai ini juga memakai struktur yang sama dengan statistik keseluruhan.

Tampilan per tulisan = nilai dasar GA per tulisan + kenaikan Cloudflare D1 per tulisan

Misalnya, jika sebuah tulisan memiliki 9 tampilan berdasarkan GA dan dibaca 1 kali lagi setelah beralih ke penghitung baru, layar akan menampilkan 10 tampilan.

Itu terasa paling alami. Tampilan masa lalu tidak dibuang, dan tampilan ke depan langsung bertambah.

Hasil

Pada akhirnya, angka seperti ini muncul di dekat profil blog.

Hari ini 1 / Bulan ini 66 / Total 4,944

Dan daftar tulisan menampilkan jumlah tampilan seperti ini.

10 tampilan

Kalau dilihat hanya dari fiturnya, ini kecil. Tetapi aku cukup menyukai pekerjaan ini.

Masalahnya jelas. Blog GitHub Pages tidak memiliki penghitung pengunjung. GA memang ada, tetapi tidak cukup sebagai penghitung di layar publik. Meski begitu, aku tidak ingin membuat server besar hanya untuk satu blog.

Jadi aku mempertahankan data GA yang sudah ada sebagai nilai dasar, lalu memasang struktur yang menghitung langsung hanya kenaikan setelahnya dengan Cloudflare Worker dan D1.

Kelebihan blog statis tetap dibiarkan apa adanya. Aku menulis dengan Markdown, menerbitkan dengan GitHub Pages, dan biaya pemeliharaan tetap nyaris 0 won. Sebagai gantinya, aku hanya menaruh potongan tanpa server kecil tepat di bagian yang kurang.

Kalau nanti aku perlu menunjukkan blog ini seperti portofolio, pekerjaan seperti ini justru mungkin enak dijelaskan. Ini bukan fitur yang megah, tetapi berangkat dari ketidaknyamanan nyata, membatasi biaya dan kompleksitas, lalu selesai sampai bentuk yang bisa dioperasikan.

Tinggalkan komentar