Perintah journalctl: cara pakai, log per layanan, dan merapikan ukuran jurnal

Lingkungan ujiKeluarga RHELAlmaLinux 9.8systemd 252akun rootDebian 12 akun biasaDiperiksa 2026-11-05
Perintah Info Sistem · PengaturanjournalctlLokasi/usr/bin/journalctl

Perintah journalctl adalah alat untuk memilih dan membaca log yang ditinggalkan layanan dan kernel di jurnal systemd. Di Linux yang memakai systemd, systemd-journald mengumpulkan log ini ke dalam jurnal. Saat log dibaca per layanan, waktu, dan prioritas di server AlmaLinux 9 dan server Debian 12, akun biasa hanya melihat lognya sendiri, dan server yang menyimpan jurnal di memori tidak bisa memilih boot sebelumnya.

Keluaran di bawah berasal dari kedua server. Nama host, akun, ID boot, nomor proses di server AlmaLinux, dan rilis paket systemd diganti dengan nilai contoh, dan kedua server menampilkan waktu dalam UTC.

1️⃣ Cara memakai perintah journalctl dan log terbaru

Jika journalctl dijalankan tanpa opsi, jurnal terbuka di less mulai dari baris paling lama, jadi untuk melihat log terbaru tentukan jumlah baris dengan -n. Jika angka setelah -n dihilangkan, yang muncul 10 baris.

journalctl -n 3
Oct 28 07:14:06 server1 systemd[1]: session-3017.scope: Deactivated successfully.
Oct 28 07:14:06 server1 systemd[1]: session-3017.scope: Consumed 3.934s CPU time.
Oct 28 07:14:07 server1 sudo[851987]: pam_unix(sudo:session): session closed for user user

Satu baris terdiri dari waktu, nama host, program yang menulis log beserta nomor prosesnya, lalu pesan. Dengan -r urutannya terbalik sehingga baris terbaru naik ke paling atas. Di log crond server AlmaLinux, baris CMDEND yang ditulis paling akhir ada di paling atas.

journalctl -r -u crond -n 3
Oct 28 07:01:01 server1 CROND[841384]: (root) CMDEND (run-parts /etc/cron.hourly)
Oct 28 07:01:01 server1 run-parts[841394]: (/etc/cron.hourly) starting 0anacron
Oct 28 07:01:01 server1 CROND[841388]: (root) CMD (run-parts /etc/cron.hourly)

-f tidak berhenti setelah mencetak baris terakhir dan terus mencetak baris baru yang masuk. Di server Debian 12, baris terakhir logger dibiarkan di layar dengan -q dan -t myapp, lalu dua baris lagi ditulis dengan logger. Dua baris itu langsung muncul di bawahnya.

journalctl -q -f -n 1 -t myapp
Oct 28 07:12:46 server2 myapp[347704]: journalctl error test
Oct 28 07:14:35 server2 myapp[347881]: follow line 1
Oct 28 07:14:36 server2 myapp[347877]: follow line 2

-f tidak berhenti sampai Anda menekan Ctrl+C, jadi gunakan untuk memantau log saat layanan dimulai ulang.

Di layar less, baris yang lebih lebar dari layar terpotong di kanan, dan bagian yang terpotong dilihat dengan tombol panah. Keluaran yang dikirim ke pipa atau file tidak melewati less. Untuk langsung menampilkannya di terminal tanpa less, tambahkan --no-pager.

2️⃣ Log journalctl per layanan

Baris terbaru mencampur log dari banyak layanan, jadi untuk melihat log satu layanan, tentukan nama unit dengan -u. Akhiran .service pada nama unit boleh dihilangkan.

journalctl -u crond -n 4
Oct 28 06:01:01 server1 CROND[802926]: (root) CMDEND (run-parts /etc/cron.hourly)
Oct 28 07:01:01 server1 CROND[841388]: (root) CMD (run-parts /etc/cron.hourly)
Oct 28 07:01:01 server1 run-parts[841394]: (/etc/cron.hourly) starting 0anacron
Oct 28 07:01:01 server1 CROND[841384]: (root) CMDEND (run-parts /etc/cron.hourly)

Jika -u ditulis dua kali, log kedua layanan keluar bercampur sesuai urutan waktu. Saat crond dan nginx dipilih bersama untuk 18 Oktober pukul 08:00 sampai 08:15 di server AlmaLinux, empat baris crond pukul 08:01 disusul dua baris nginx reload pukul 08:12.

journalctl -u nginx -u crond --since '2026-10-18 08:00' --until '2026-10-18 08:15'
Oct 18 08:01:01 server1 CROND[381522]: (root) CMD (run-parts /etc/cron.hourly)
Oct 18 08:01:01 server1 run-parts[381528]: (/etc/cron.hourly) starting 0anacron
Oct 18 08:01:01 server1 run-parts[381534]: (/etc/cron.hourly) finished 0anacron
Oct 18 08:01:01 server1 CROND[381518]: (root) CMDEND (run-parts /etc/cron.hourly)
Oct 18 08:12:30 server1 systemd[1]: Reloading nginx - high performance web server...
Oct 18 08:12:30 server1 systemd[1]: Reloaded nginx - high performance web server.

systemctl status hanya menampilkan 10 baris log terakhir di bawah status layanan, jadi log yang lebih lama diperiksa dengan journalctl -u. Tepat setelah menjalankan systemctl restart pada sebuah layanan, jalankan journalctl -u untuk memeriksa log startup.

Log yang ditulis skrip atau tugas cron dengan logger dicari lewat tagnya (pengenal), bukan lewat unit. Setelah -t, tulis nama yang sama dengan yang diberikan ke -t pada logger.

logger -t myapp 'journalctl test message'

Di server Debian 12, logger tidak menampilkan apa pun di layar, dan baris yang ditulis ditemukan dengan -t myapp.

journalctl -q -t myapp
Oct 28 07:12:44 server2 myapp[347693]: journalctl test message

-g hanya menyisakan baris yang pesannya berisi teks tertentu. Jika teks yang dicari ditulis seluruhnya dengan huruf kecil, huruf besar dan kecil tidak dibedakan.

journalctl -u crond -g anacron -n 2
Oct 28 07:01:01 server1 run-parts[841394]: (/etc/cron.hourly) starting 0anacron

-n menghitung baris sebelum -g menyaringnya, jadi dari dua baris terakhir crond hanya satu baris yang berisi anacron yang tersisa.

3️⃣ Log per rentang waktu dan per boot

--since dan --until menentukan awal dan akhir rentang waktu yang ditampilkan. Jika ada spasi di antara tanggal dan jam, apit nilainya dengan tanda kutip tunggal.

Nilai --sinceArti dan kapan dipakai
'2026-10-28 06:00'Mulai 06:00:00 hari itu (tanpa detik dianggap 00), saat Anda tahu jam masalah mulai terjadi
todayMulai 00:00:00 hari ini, untuk melihat log hari ini saja
yesterdayMulai kemarin 00:00:00 sampai sekarang; untuk kemarin saja, tambahkan --until today
'-2h'Mulai 2 jam lalu, untuk melihat yang baru saja terjadi (diukur di bawah)
'1 hour ago'Mulai 1 jam lalu, sama artinya dengan -1h

Di server AlmaLinux, 2 jam terakhir dimulai dari baris crond yang ditulis pukul 06:01; di bawah ini empat baris pertamanya.

journalctl -u crond --since '-2h' | head -4
Oct 28 06:01:01 server1 CROND[802930]: (root) CMD (run-parts /etc/cron.hourly)
Oct 28 06:01:01 server1 run-parts[802936]: (/etc/cron.hourly) starting 0anacron
Oct 28 06:01:01 server1 CROND[802926]: (root) CMDEND (run-parts /etc/cron.hourly)
Oct 28 07:01:01 server1 CROND[841388]: (root) CMD (run-parts /etc/cron.hourly)

-b hanya menyisakan log sejak boot saat ini. Saat mencari penyebab server dimulai ulang, periksa dulu daftar boot apakah log boot sebelumnya masih ada.

journalctl -b -u crond -n 2
Oct 28 07:01:01 server1 run-parts[841394]: (/etc/cron.hourly) starting 0anacron
Oct 28 07:01:01 server1 CROND[841384]: (root) CMDEND (run-parts /etc/cron.hourly)

--list-boots menampilkan, untuk setiap boot yang tersimpan di jurnal, nomornya, ID boot, serta waktu baris pertama dan terakhir.

journalctl --list-boots
IDX BOOT ID                          FIRST ENTRY                 LAST ENTRY
  0 4f1c2a9be0d34c7a8e6b5d20c1f3a7e9 Sat 2026-10-17 08:29:26 UTC Wed 2026-10-28 07:16:10 UTC

Server AlmaLinux tidak menyimpan jurnal di disk, jadi hanya punya satu catatan boot. Karena itu -b -1 untuk boot sebelumnya hanya meninggalkan pemberitahuan lalu selesai.

journalctl -b -1
Specifying boot ID or boot offset has no effect, no persistent journal was found.

Log boot sebelumnya hanya bisa dibaca dengan -b -1 di server yang menyimpan jurnal di disk (/var/log/journal).

4️⃣ Log error dan log kernel dengan journalctl

-p memilih baris berdasarkan tingkat prioritas log. Jika satu tingkat ditulis, tingkat itu dan semua tingkat yang lebih penting akan muncul, dan tingkatnya boleh ditulis dengan nama atau angka.

TingkatNumerikArti
emerg0Sistem tidak bisa dipakai
alert1Perlu tindakan segera
crit2Error kritis
err3Error
warning4Peringatan
notice5Normal tetapi perlu diperhatikan; tingkat baris yang ditulis logger tanpa -p
info6Info
debug7Pesan debug

Setelah satu baris tingkat err ditulis dengan logger lalu dipilih dengan -p err, baris tingkat notice dengan tag yang sama (journalctl test message) hilang dan hanya baris err yang tersisa.

logger -t myapp -p user.err 'journalctl error test'; journalctl -q -t myapp -p err
Oct 28 07:12:46 server2 myapp[347704]: journalctl error test

Jika dua tingkat dihubungkan dengan dua titik, hanya rentang itu yang ditampilkan. Dengan warning..err, hanya tingkat peringatan dan error yang tersisa.

journalctl -q -t myapp -p warning..err
Oct 28 07:12:46 server2 myapp[347704]: journalctl error test

-k hanya menyisakan pesan kernel dan hanya menampilkan baris sejak boot saat ini.

journalctl -k -n 3
Oct 26 10:14:25 server1 systemd-rc-local-generator[96245]: /etc/rc.d/rc.local is not marked executable, skipping.
Oct 27 10:47:57 server1 systemd-rc-local-generator[512078]: /etc/rc.d/rc.local is not marked executable, skipping.
Oct 27 11:01:10 server1 systemd-rc-local-generator[520023]: /etc/rc.d/rc.local is not marked executable, skipping.

Tiga baris terakhir -k di server AlmaLinux semuanya baris systemd-rc-local-generator. Baris ini adalah pesan yang ditulis ke buffer log kernel, jadi disimpan dengan nilai _TRANSPORT kernel dan ikut muncul di -k.

5️⃣ Format keluaran journalctl

-o mengubah format setiap baris. Nilai bawaan short hampir sama dengan file syslog, sedangkan short-iso mengubah waktu ke format ISO 8601 lengkap dengan zona waktu. Saat diganti ke short-iso di server AlmaLinux, +0000 ditambahkan di akhir waktu.

journalctl -u crond -n 2 -o short-iso
2026-10-28T07:01:01+0000 server1 run-parts[841394]: (/etc/cron.hourly) starting 0anacron
2026-10-28T07:01:01+0000 server1 CROND[841384]: (root) CMDEND (run-parts /etc/cron.hourly)

cat menghapus waktu dan nama host lalu hanya menampilkan pesan, jadi gunakan saat meneruskan pesan ke grep atau program lain.

journalctl -u crond -n 2 -o cat
(/etc/cron.hourly) starting 0anacron
(root) CMDEND (run-parts /etc/cron.hourly)

json dan json-pretty menampilkan field yang tersimpan di jurnal sebagai nama dan nilai. Saat field dipilih dengan --output-fields, field kursor, waktu, dan ID boot selalu ikut. Bahkan saat hanya empat field dipilih di server Debian 12, __CURSOR, _BOOT_ID, dan dua field waktu ikut muncul.

journalctl -q -t myapp -n 1 -o json-pretty --output-fields=MESSAGE,PRIORITY,SYSLOG_IDENTIFIER,_PID
{
	"__REALTIME_TIMESTAMP" : "1793171676664200",
	"_PID" : "347877",
	"SYSLOG_IDENTIFIER" : "myapp",
	"MESSAGE" : "follow line 2",
	"__CURSOR" : "s=2a6f0c1d9e8b47a3b5c4d3e2f1a0b9c8;i=1a2b3;b=b7e3d1a04c9f4e2a8d6c5b1f0e2a9c47;m=17cf8fe36f5;t=65ee150cf1188;x=1f2e3d4c5b6a7980",
	"_BOOT_ID" : "b7e3d1a04c9f4e2a8d6c5b1f0e2a9c47",
	"PRIORITY" : "5",
	"__MONOTONIC_TIMESTAMP" : "1636264982261"
}

6️⃣ Lokasi penyimpanan jurnal dan merapikan ukurannya

Apakah jurnal ada di memori atau di disk ditentukan oleh nilai Storage= di journald.conf. Nilai bawaan auto menyimpan ke disk jika folder /var/log/journal ada, dan ke memori (/run/log/journal) jika tidak ada.

🖥️ Pihak yang menulis logLayanan, kernel, logger
systemd-journaldMenyimpan log yang diterima ke file jurnal
/run/log/journalStorage=auto (tanpa folder), memori, kosong setelah reboot
/var/log/journalStorage=persistent atau auto (folder ada), disk, tetap ada setelah reboot
🖥️ journalctlMembaca dan menampilkan file jurnal di kedua folder

Server AlmaLinux tidak punya folder /var/log/journal, jadi jurnalnya hanya ada di /run/log/journal.

ls -ld /var/log/journal /run/log/journal
ls: cannot access '/var/log/journal': No such file or directory
drwxr-sr-x+ 4 root systemd-journal 80 Oct 17 08:30 /run/log/journal

Server Debian 12 punya kedua folder, dan jurnalnya terus menumpuk di disk.

ls -ld /var/log/journal /run/log/journal
drwxr-sr-x+ 2 root systemd-journal   40 Oct  9 08:43 /run/log/journal
drwxr-sr-x+ 4 root systemd-journal 4096 Sep 24 12:52 /var/log/journal

Agar log tetap ada setelah reboot, ubah Storage= di journald.conf menjadi persistent lalu mulai ulang systemd-journald. Menurut manual resmi, folder /var/log/journal dibuat otomatis jika diperlukan. Pengaturan tidak diubah untuk artikel ini.

Jurnal yang tersimpan di disk itu seperti kotak hitam pesawat yang diambil dan dibaca setelah insiden.

--disk-usage menampilkan ukuran gabungan file jurnal yang diarsipkan dan file yang sedang dipakai. Pada akun biasa di server Debian 12, dengan pemberitahuan [Hint] di atas disembunyikan lewat -q, hasilnya satu baris: 6.6M.

journalctl -q --disk-usage
Archived and active journals take up 6.6M in the file system.

Ukuran maksimal jurnal yang disimpan di disk ditentukan dengan SystemMaxUse=. Jika nilainya tidak ditulis, batasnya 10 persen dari ukuran sistem file (paling besar 4G), dan journald.conf di server Debian 12 berisi 50M.

grep -v '^#' /etc/systemd/journald.conf | grep -v '^$'
[Journal]
SystemMaxUse=50M

Untuk segera mengecilkan jurnal lama, tentukan ukuran yang disimpan dengan --vacuum-size atau jangka waktu yang disimpan dengan --vacuum-time. Kedua perintah menghapus file jurnal, jadi tidak dijalankan untuk artikel ini.

journalctl --vacuum-size=200M

--vacuum-size=200M menghapus file jurnal yang diarsipkan mulai dari yang paling lama sampai ukuran totalnya di bawah 200M.

journalctl --vacuum-time=2weeks

--vacuum-time=2weeks menghapus file arsip yang hanya berisi baris lebih lama dari 2 minggu.

vacuum hanya menghapus file yang diarsipkan dan membiarkan file yang sedang dipakai, jadi setelah dijalankan pun angka --disk-usage bisa tidak turun sampai ukuran yang ditentukan.

Log teks di bawah /var/log ditulis oleh rsyslog, yang bekerja terpisah dari journald. Karena itu cara membaca dan cara mengelola ukuran kedua log itu berbeda.

Itemjournald(journalctl)rsyslog
Cara membacajournalctlcat, less, grep
Lokasi penyimpanan/run/log/journal atau /var/log/journal/var/log/messages (keluarga RHEL) atau /var/log/syslog (keluarga Debian)
Pengelolaan ukuranSystemMaxUse dan lainnya di journald.conflogrotate

7️⃣ Izin baca dan opsi perintah journalctl

  • ↪️ Saat akun biasa tidak bisa melihat log

🔲 Izin baca

Jika journalctl dijalankan dengan akun selain root, teks [Hint] muncul di atas dan hanya log yang ditulis akun itu yang terlihat. Saat log nginx dicari dengan akun biasa di server Debian 12, setelah pemberitahuan hanya muncul [-- No entries --].

journalctl -u nginx -n 5
Hint: You are currently not seeing messages from other users and the system.
      Users in groups 'adm', 'systemd-journal' can see all messages.
      Pass -q to turn off this notice.
-- No entries --

Menurut id -nG, akun ini hanya masuk satu grup dan tidak termasuk grup adm atau systemd-journal yang disebut pemberitahuan itu.

id -nG
user

Manual resmi menjelaskan bahwa akun di grup systemd-journal, adm, dan wheel dapat membaca seluruh jurnal. adm dan wheel juga membawa izin lain yang ditetapkan distribusi, dan wheel sering juga mengizinkan pekerjaan administrasi, jadi untuk akun yang hanya membaca log, grup yang tepat adalah systemd-journal.

usermod -aG systemd-journal user

Perintah usermod yang menambahkan grup tidak dijalankan di artikel ini. Setelah grup ditambahkan, login ulang lalu periksa grup dengan id -nG. Akun yang punya hak administrator juga melihat semua log jika menjalankan sudo journalctl.

Teks [Hint] disembunyikan dengan -q. Namun meski dengan -q, log yang terlihat tetap hanya baris yang ditulis akun itu. --user membaca jurnal pengguna akun itu dan hanya bekerja di server yang menyimpan jurnal di disk. Di server Debian 12 yang menyimpan jurnal di disk, baris systemd dan baris logger milik akun itu muncul.

journalctl --user -n 3
Oct 28 07:12:35 server2 systemd[347665]: Reached target default.target - Main User Target.
Oct 28 07:12:35 server2 systemd[347665]: Startup finished in 181ms.
Oct 28 07:12:44 server2 myapp[347693]: journalctl test message

🔲 Opsi perintah journalctl

📌 Opsi utama: hasil dari artikel ini

OpsiFungsiHasil di artikel ini
-n jumlah barisHanya menampilkan beberapa baris terakhir; 10 baris jika angka dihilangkan-n 3 menampilkan tiga baris terakhir
-rMembalik urutan, baris terbaru di paling atasDi log crond, baris CMDEND yang ditulis paling akhir ada di paling atas
-fTerus menampilkan baris baru setelah baris terakhirDua baris yang ditulis dengan logger langsung menyusul di bawah
-qMenyembunyikan pemberitahuan seperti [Hint]Hasil --disk-usage akun biasa Debian 12 hanya satu baris: 6.6M
-u unitHanya menampilkan log layanan ituDengan -u dua kali, empat baris crond disusul dua baris nginx reload sesuai urutan waktu
-t tagHanya menampilkan log dengan tag yang diberikan pada logger -t-t myapp menampilkan baris yang ditulis dengan logger
-g teksHanya menampilkan baris yang pesannya berisi teks ituDari dua baris terakhir crond, hanya baris yang berisi anacron yang tersisa
--since, --untilAwal dan akhir rentang waktu yang ditampilkan--since '-2h' dimulai dari baris crond yang ditulis pukul 06:01
-bHanya log sejak boot saat ini; -b -1 adalah boot sebelumnyaDi server AlmaLinux yang tidak menyimpan jurnal di disk, -b -1 hanya menampilkan pemberitahuan [no persistent journal was found]
--list-bootsDaftar boot yang tersimpan di jurnalServer AlmaLinux hanya punya satu catatan boot
-p tingkatHanya menampilkan prioritas itu dan tingkat yang lebih penting-p err membuang baris notice dan hanya menyisakan baris err; warning..err memberi baris yang sama
-kHanya menampilkan pesan kernel dari boot saat iniTiga baris terakhir semuanya baris systemd-rc-local-generator
-o formatMengubah format keluaran setiap barisshort-iso menambahkan +0000 di akhir waktu; cat hanya menyisakan pesan
--output-fields fieldMemilih field pada keluaran jsonMeski hanya empat field yang dipilih, __CURSOR, _BOOT_ID, dan dua field waktu ikut muncul
--disk-usageMenampilkan ukuran total file jurnal6.6M pada akun biasa di server Debian 12
--userMembaca jurnal pengguna akun ituDi server Debian 12 muncul baris systemd dan baris logger milik akun itu
--utcMenampilkan waktu dalam UTCBahkan di server AlmaLinux dengan zona waktu sendiri, waktu log crond berubah ke UTC
field=nilaiHanya menampilkan baris dengan nilai field itu_PID=347704 hanya menampilkan satu baris err yang ditulis logger

📎 Opsi lainnya: menurut manual resmi

OpsiFungsi
--no-pagerLangsung menampilkan di terminal tanpa melewati less
-e, --pager-endMembuka less di akhir jurnal; 1000 baris jika -n tidak ditulis
-x, --catalogMenambahkan teks penjelasan dari katalog pesan ke baris log
-a, --allMenampilkan field secara utuh, termasuk yang berisi karakter tak tercetak atau sangat panjang
-N, --fieldsMenampilkan semua nama field yang dipakai di jurnal
-F, --field= fieldMenampilkan semua nilai yang dimiliki field itu
-D folderMembaca jurnal di folder yang ditentukan, bukan di lokasi bawaan
--file= fileMembaca file jurnal yang ditentukan; boleh ditulis berkali-kali
--vacuum-size= ukuranMenghapus file jurnal yang diarsipkan mulai dari yang paling lama sampai di bawah ukuran yang ditentukan
--vacuum-time= jangka waktuMenghapus file arsip yang hanya berisi baris lebih lama dari jangka waktu yang ditentukan
--vacuum-files= jumlahMenghapus file jurnal yang diarsipkan dan hanya menyisakan jumlah yang ditentukan
--rotateMengarsipkan file jurnal yang sedang dipakai dan memulai file baru
--flushMemindahkan jurnal dari memori (/run/log/journal) ke disk (/var/log/journal), saat penyimpanan persistent

🔲 Simulator perintah journalctl

Di simulator di bawah, Anda bisa mengetik sendiri perintah untuk memeriksa log terbaru, log per layanan, rentang waktu, prioritas, dan format keluaran.

Simulator perintah journalctlsystemd 252
[root@server work]#
Hanya berjalan di browser Anda; baris yang ditulis dengan logger hilang saat halaman dimuat ulang, dan ↑↓ memanggil kembali perintah yang diketik sebelumnya.

🔢 FAQ & Konten yang Direkomendasikan

Dengan --utc, waktu ditampilkan dalam UTC tanpa bergantung pada pengaturan zona waktu server. Bahkan di server AlmaLinux dengan zona waktu sendiri, log crond dengan --utc menampilkan waktu dalam UTC.

Jika nama field dan nilainya ditulis dengan tanda sama dengan seperti journalctl _PID=347704, hanya baris dengan nilai itu yang tersisa. Pencarian dengan nomor proses baris err yang ditulis logger hanya memunculkan baris itu, dan jika ditulis bersama -u hanya baris yang memenuhi kedua syarat yang ditampilkan.

🧭 Perintah info · pengaturan sistem: konten rekomendasi 8 artikel · 2 referensi
🗂️ Perintah info · pengaturan sistem
📄 Info CPU · RAM · disk · OS 📄 uname · versi kernel 📄 Perintah free 📄 Perintah uptime
📄 Perintah timedatectl 📄 Perintah localectl
📄 logrotate 📄 Perintah journalctl

ℹ️ Pemberitahuan Afiliasi
Konten di situs ini berisi tautan afiliasi. Jika pengunjung membeli produk atau layanan melalui tautan tersebut, situs ini menerima komisi dari penjual. Harga yang dibayar pembeli(turun saat ada diskon promo ↓), tidak naik karena hal ini. Harga, diskon, dan informasi stok yang ditampilkan berlaku pada saat penulisan dan bisa berbeda dengan kondisi sebenarnya, jadi pastikan kembali di situs penjual sebelum membeli. Pemilihan dan penilaian produk dibuat berdasarkan standar kami sendiri, dan ada tidaknya komisi tidak memengaruhi urutan maupun isi penilaian.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Buktikan bahwa Anda manusia: 1   +   10   =