Langsung ke konten
Marketplace plugin OJS dari Publiora untuk tim jurnal Indonesia

OJS mencatat jumlah pembaca, tapi tidak menampilkannya

12 Agustus 20268 menit baca

Kalau Anda pernah bertanya kenapa OJS tidak menampilkan angka "dilihat sekian kali" di halaman artikel seperti yang umum ada di repositori atau jurnal lain, jawabannya bukan karena datanya tidak ada. OJS mencatatnya setiap hari. Yang tidak pernah ada sejak awal adalah tampilan angka itu di halaman publik.

Di versi 3.3 data ini tersimpan di tabel metrics. Di versi 3.4 dan 3.5 dipecah ke tabel metrics_submission dengan pembedaan lewat kolom assoc_type. Keduanya mencatat jumlah kunjungan halaman artikel (abstract views) dan jumlah unduhan berkas galley. Tapi dari halaman yang dilihat pembaca, angka ini tidak pernah muncul di mana pun tanpa modifikasi.

Ada banyak tutorial yang beredar tentang cara mengedit template OJS langsung supaya angka ini tampil. Aku pernah mencobanya sendiri di OJS 3.3. Memang berhasil, sampai update berikutnya menimpa perubahannya dan semuanya hilang. Itu masalah mendasar dari pendekatan edit langsung yang perlu Anda pahami sebelum memilih jalannya.

1. Memastikan pemrosesan statistik OJS berjalan

Sebelum berpikir soal tampilan, pastikan dulu datanya memang dicatat. Kalau pemrosesan statistik OJS tidak berjalan, angkanya akan nol berapapun banyak pengunjung yang datang.

OJS memproses catatan akses secara berkala lewat scheduled tasks. Kalau server Anda belum mengatur crontab untuk menjalankannya, data mentah menumpuk tanpa pernah dihitung.

Cara mengecek: buka panel admin OJS, masuk ke Statistics lalu Articles. Kalau ada angka selain nol, pemrosesan sudah berjalan. Kalau semua nol padahal jurnal sudah punya pengunjung, kemungkinan cron belum diatur.

Yang perlu ditambahkan di crontab server (sesuaikan path):

# Jalankan setiap hari, misalnya jam 3 pagi
0 3 * * * cd /path/ke/ojs && php tools/runScheduledTasks.php plugins/generic/usageStats/scheduledTasks.xml

Pada OJS 3.4 dan 3.5 yang menggunakan Laravel scheduler, cukup pastikan cron untuk artisan schedule:run sudah berjalan, karena pemrosesan statistik sudah terintegrasi di sana.

Setelah cron berjalan, tunggu satu hari lalu cek kembali. Kalau angka mulai muncul di panel admin, data Anda aman dan masalahnya tinggal soal tampilan.

2. Yang disediakan OJS secara bawaan

OJS memang punya satu tampilan statistik bawaan di halaman artikel, tapi isinya bukan yang Anda bayangkan.

Di template article_details.tpl, ada blok Usage Statistics Chart yang menampilkan grafik unduhan per bulan. Ini hanya muncul kalau tema yang Anda pakai mengaktifkan opsi displayStats, dan isinya hanya unduhan galley, bukan abstract views. Tidak ada angka total pembaca yang terlihat.

Di panel admin, angka views dan downloads memang bisa dilihat dan diekspor CSV. Tapi itu untuk keperluan internal, bukan tampilan publik.

Jadi secara bawaan: data ada, tampilan internal ada, tampilan publik yang menunjukkan angka pembaca dan unduhan per artikel tidak ada.

3. Pendekatan edit langsung: kenapa tidak bertahan

Kalau Anda mencari di forum OJS atau tutorial blog, ada banyak panduan yang mengajarkan cara menambahkan kode langsung ke file template atau membuat custom theme child. Umumnya mereka menyarankan menambah query ke tabel metrics langsung di dalam template article_details.tpl atau menambah variabel di PageHandler.

Secara teknis ini bisa berhasil. Yang tidak bertahan adalah perawatannya.

Ini bukan berarti pendekatannya salah. Kalau Anda punya tim teknis yang siap memelihara perubahan ini setiap kali OJS diperbarui, itu pilihan yang sah. Tapi untuk sebagian besar pengelola jurnal yang tidak punya waktu untuk itu, pendekatan ini menambah hutang teknis tanpa mereka sadari sampai update berikutnya merusaknya.

  • Update OJS menimpa berkas yang Anda ubah. Setiap rilis baru, perubahan Anda hilang dan harus dikerjakan ulang. Ini yang paling sering terjadi.
  • Perpindahan versi mayor mengubah struktur datanya. Query yang benar di 3.3 (tabel metrics dengan metric_type) tidak berlaku di 3.4 (tabel metrics_submission dengan assoc_type). Jadi bukan cuma template yang harus diubah ulang, tapi logika datanya juga.
  • Kalau ada kesalahan di query yang Anda taruh di template, efeknya langsung terlihat pengunjung. Halaman bisa error atau lambat.
  • Tidak ada jaminan tema pihak ketiga yang Anda pakai kompatibel dengan perubahan yang Anda buat di template.

4. Pendekatan plugin: kenapa lebih tahan update

Plugin OJS bekerja lewat hook, yaitu titik-titik di mana OJS mempersilakan kode luar menambahkan sesuatu tanpa mengubah berkas inti. Saat OJS diperbarui, berkas inti berubah tapi hook-nya tetap di posisi yang sama, sehingga plugin yang memanfaatkan hook tidak perlu diubah kecuali ada perubahan di API internal.

Untuk kasus menampilkan statistik, plugin membaca data dari tabel metrik yang sama, lalu menyisipkan hasilnya di halaman artikel lewat hook Templates::Article::Details dan di daftar isi lewat hook Templates::Issue::Issue::Article.

Kalau nanti OJS mengubah nama tabel atau struktur datanya di versi berikutnya, yang perlu diperbarui adalah plugin-nya, bukan puluhan berkas template di instalasi Anda. Dan pembaruan plugin bisa dilakukan dalam satu langkah tanpa menyentuh berkas OJS yang lain.

5. Apa yang sebenarnya ditampilkan

Terlepas dari pendekatan mana yang Anda pilih, yang layak ditampilkan di halaman publik adalah:

Angka nol sebaiknya disembunyikan. Artikel baru yang belum punya pengunjung tidak perlu mempermalukan diri dengan menampilkan nol di depan semua orang. Tampilkan angka hanya kalau sudah ada nilainya.

Untuk asesor akreditasi, keberadaan angka ini di halaman publik adalah bukti keterbacaan yang bisa dilihat tanpa harus masuk ke panel admin. Itu menghemat waktu mereka dan memperkuat kesan bahwa jurnal Anda dikelola dengan baik.

  • Abstract views: berapa kali halaman abstrak artikel ini dibuka. Ini ukuran keterbacaan yang paling relevan.
  • Downloads: berapa kali berkas galley (biasanya PDF) diunduh. Ini ukuran bahwa orang tidak hanya membaca abstrak tapi mengambil isinya.
  • DOI: pengenal unik artikel yang bisa diklik langsung ke resolver DOI. Ini bukan statistik, tapi kalau sudah ditampilkan bersama angka di atas, pembaca melihat artikel yang lengkap dan diperlakukan serius.

Pertanyaan yang sering muncul

Kenapa angka views di panel admin berbeda dengan yang tampil di halaman?

Panel admin menampilkan semua kunjungan termasuk bot dan akses berulang dari IP yang sama. Tampilan publik yang baik biasanya memakai angka yang sudah difilter ke metrik COUNTER, yang lebih mendekati pembaca manusia. Kalau Anda memakai query langsung ke tabel metrics tanpa filter metric_type, angkanya bisa terlihat lebih besar dari kenyataan.

Apakah menampilkan statistik memperlambat halaman?

Tergantung cara pembacaannya. Query langsung ke tabel metrics tanpa indeks pada kolom submission_id bisa lambat untuk jurnal dengan ratusan ribu baris data. Plugin yang dirancang dengan benar memakai query yang sudah mengikuti indeks yang ada di tabel OJS.

Apakah data statistik OJS bisa dimanipulasi pengunjung?

Tidak secara langsung dari halaman publik. OJS memproses catatan akses dari log server, bukan dari permintaan langsung pengunjung. Tapi kalau robot mengunjungi halaman secara massal, angkanya bisa naik tidak wajar. Di OJS 3.4 ke atas, pemrosesan statistik sudah menyertakan pembersihan dasar untuk kunjungan yang dianggap bukan manusia.

Butuh bantuan yang lebih spesifik untuk jurnal Anda? Buka tiket bantuan.