Bangun Alat Otomatis Pantau Kecepatan Internet di Rumah, Ungkap Rahasia ISP dan Rekam Turunnya Koneksi Tanpa Bias!

Mendeteksi masalah internet yang sering terjadi kadang sulit karena hasil tes kecepatan sesaat biasanya menunjukkan angka yang sesuai janji penyedia layanan internet (ISP). Namun, kenyataannya kecepatan internet yang diumumkan merupakan nilai maksimal yang jarang tercapai secara konsisten. Hal ini karena sebagian besar ISP menggunakan istilah "up to" yang berarti kecepatan tersebut hanya batas atas dan bukan kecepatan tetap.

Oleh karena itu, solusi terbaik adalah memantau kecepatan internet secara otomatis dan menyimpan datanya secara berkala. Dengan begitu, pengguna dapat memiliki catatan nyata atas kecepatan internet yang diterima, termasuk saat mengalami gangguan atau penurunan performa. Data ini sangat berguna saat melakukan keluhan atau negosiasi dengan ISP.

Menyiapkan Perangkat dan Perangkat Lunak untuk Monitoring Otomatis

Langkah pertama adalah menggunakan aplikasi Speedtest CLI dari Ookla yang dapat dijalankan lewat terminal Linux. Aplikasi ini memberikan hasil pengujian kecepatan (ping, download, upload) secara sederhana dan efisien tanpa harus membuka browser. Untuk memasangnya, cukup jalankan perintah:

  1. sudo apt update untuk memperbarui daftar paket.
  2. sudo apt install speedtest-cli -y untuk menginstal Speedtest CLI.

Setelah instalasi, lakukan pengujian manual dengan perintah
speedtest-cli --simple
untuk memastikan aplikasi berjalan dengan baik.

Membuat Skrip Python untuk Merekam Kecepatan Internet Otomatis

Setelah alat siap, buat folder khusus guna menyimpan proyek. Gunakan perintah:

mkdir -p ~/"Internet Speed Tracker Project"
cd ~/"Internet Speed Tracker Project"

Lalu buat skrip Python bernama internet_speed_tracker.py dengan isi sebagai berikut:

python

!/usr/bin/env python3

import subprocess
import csv
import os
from datetime import datetime

BASE_DIR = os.path.dirname(os.path.abspath(file))
LOG_FILE = os.path.join(BASE_DIR, "speed_log.csv")

def run_speed_test():
try:
result = subprocess.check_output(["speedtest-cli", "–simple"]).decode("utf-8")
lines = result.split(‘\n’)
ping = lines[0].split()[1] download = lines[1].split()[1] upload = lines[2].split()[1] return ping, download, upload
except Exception:
return "0", "0", "0"

def main():
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
ping, download, upload = run_speed_test()
file_exists = os.path.isfile(LOG_FILE)
with open(LOG_FILE, mode="a", newline="") as f:
writer = csv.writer(f)
if not file_exists:
writer.writerow(["Timestamp", "Ping (ms)", "Download (Mbit/s)", "Upload (Mbit/s)"])
writer.writerow([timestamp, ping, download, upload])

if name == "main":
main()

Simpan perubahan dan buat skrip tersebut bisa dieksekusi:
chmod +x internet_speed_tracker.py

Menguji Skrip dan Membuka Hasil Catatan

Jalankan skrip dengan perintah:
./internet_speed_tracker.py
Skrip ini akan membuat file speed_log.csv. File ini dapat dibuka dengan aplikasi spreadsheet seperti Google Sheets atau LibreOffice. Dengan format CSV, data akan tersusun rapi dan lebih mudah dianalisis.

Mengotomatiskan Proses dengan systemd Timer

Agar skrip ini berjalan otomatis sesuai interval, manfaatkan systemd pada sistem Linux. Pertama, buat service unit file:

bash
sudo nano /etc/systemd/system/internet-speed-tracker.service

Isi dengan:

[Service] ExecStart=/usr/bin/python3 /home/user/Internet Speed Tracker Project/internet_speed_tracker.py
User=user

Ganti /home/user/Internet Speed Tracker Project dan user sesuai dengan username dan path di sistem masing-masing.

Kemudian buat timer unit file agar skrip berjalan otomatis setiap 2 menit (sesuaikan sesuai kebutuhan):

bash
sudo nano /etc/systemd/system/internet-speed-tracker.timer

Isi dengan:

[Timer] OnBootSec=5min
OnUnitActiveSec=2min
Persistent=true

[Install] WantedBy=timers.target

Selanjutnya aktifkan timer:

sudo systemctl daemon-reload
sudo systemctl enable –now internet-speed-tracker.timer

Timer ini memicu service untuk menjalankan skrip secara otomatis. Interval bisa diubah dengan mengedit nilai OnUnitActiveSec.

Menganalisis Data dan Keuntungan Penggunaan Tracker

Dengan data yang terkumpul selama beberapa hari atau minggu, pengguna bisa melihat pola gangguan serta variasi kecepatan pada jam sibuk. Penurunan kecepatan signifikan sering kali menunjukkan oversubscription dari ISP atau throttling. Catatan juga memperlihatkan bila terdapat gangguan fisik jaringan (flatline) dan pemutusan total koneksi (nilai 0).

Data yang jelas ini memberikan bukti kuat saat meminta solusi ke ISP. Dokumen log juga memperjelas keluhan, menghindari jawaban normatif dari pihak ISP seperti "semua berjalan normal pada sisi kami".

Dengan membangun alat pengukur kecepatan internet otomatis, pengguna dapat memantau kualitas layanan dan lebih percaya diri dalam mengatasi masalah jaringan. Ini merupakan langkah proaktif yang disarankan bagi siapa saja yang ingin memaksimalkan nilai dari paket internet yang dibayar secara bulanan.

Terkait