Warning: Undefined variable $asn_org in /www/wwwroot/abangtutor.biz.id/wp-content/plugins/ktls-cloaking-link-pro/Core/Cloaking.php on line 0
Kode Python Cek Kecepatan Internet (Speedtest) Langsung dari Terminal – Ringan & Akurat – ABANGTUTOR

Kode Python Cek Kecepatan Internet (Speedtest) Langsung dari Terminal – Ringan & Akurat

Kode Python Cek Kecepatan Internet (Speedtest) Langsung dari Terminal – Ringan & Akurat

Kode Python Cek Kecepatan Internet (Speedtest) Langsung dari Terminal – Ringan & Akurat

Mengecek kecepatan internet biasanya dilakukan dengan membuka situs web seperti Speedtest.net atau Fast.com. Namun, cara ini memiliki kelemahan: browser memakan banyak RAM, penuh dengan iklan yang berat, dan terkadang grafis animasi di situs tersebut justru mempengaruhi hasil tes pada komputer spesifikasi rendah.

Bagi seorang System Administrator, Developer, atau pengguna VPS (Virtual Private Server) yang tidak memiliki antarmuka grafis (GUI), membuka browser bukanlah opsi.

Solusinya adalah menggunakan Python. Dengan script sederhana, Anda bisa melakukan tes PingDownload, dan Upload langsung dari Terminal/CMD. Cara ini jauh lebih ringan, tanpa iklan, dan hasilnya bisa disimpan (log) untuk memantau kejujuran ISP (Internet Service Provider) Anda.

Dalam panduan ini, kita akan membuat alat Speedtest sendiri menggunakan library speedtest-cli.

Mengapa Menggunakan Python CLI?

Sebelum masuk ke kode, pahami nilai tambah (value) dari metode ini:

  1. Tanpa Browser & Iklan: Murni teks, sangat hemat bandwidth dan resource CPU.
  2. Otomatisasi: Script ini bisa dipasang di Task Scheduler (Windows) atau Cron Job (Linux) untuk mengecek kecepatan internet secara berkala (misal: tiap jam) dan menyimpan laporannya.
  3. Server Headless: Satu-satunya cara mengecek kecepatan internet di server Linux/Ubuntu tanpa monitor.

Persiapan: Instalasi Library

Kita tidak perlu menulis algoritma pengiriman paket data dari nol. Komunitas Python sudah menyediakan library populer bernama speedtest-cli. Library ini bekerja dengan cara menghubungi server Speedtest.net terdekat menggunakan API.

Buka Terminal atau Command Prompt (CMD), lalu jalankan perintah instalasi:

Bash
pip install speedtest-cli

Catatan: Pastikan koneksi internet stabil saat instalasi.


Kode Python: Speedtest Sederhana

Buat file baru bernama cek_koneksi.py. Salin kode di bawah ini. Kode ini sudah saya lengkapi dengan konversi satuan dari Bits ke Megabits (Mbps) agar mudah dibaca manusia.

Python
import speedtest
import math

def bytes_to_mbps(bytes_per_sec):
# Rumus konversi: 1 Mbps = 1.000.000 bits
# Output library adalah bit/s, jadi kita bagi 10^6
return bytes_per_sec / 1000000

def run_speedtest():
print("------------------------------------------------")
print(" PYTHON SPEEDTEST CLI (Please Wait...) ")
print("------------------------------------------------")

try:
# 1. Inisialisasi Library
st = speedtest.Speedtest()

print("1. Mencari server terdekat...")
# Mencari server fisik yang paling dekat dengan lokasi Anda (Ping terendah)
st.get_best_server()

print("2. Sedang menguji kecepatan DOWNLOAD...")
download_speed = st.download()

print("3. Sedang menguji kecepatan UPLOAD...")
upload_speed = st.upload()

# Mengambil hasil Ping
ping = st.results.ping

# Konversi hasil ke Mbps dan bulatkan 2 angka desimal
d_mbps = round(bytes_to_mbps(download_speed), 2)
u_mbps = round(bytes_to_mbps(upload_speed), 2)

print("\n=== HASIL PENGUJIAN ===")
print(f"Server: {st.results.server['sponsor']} ({st.results.server['name']})")
print(f"Ping : {ping} ms")
print(f"Unduh : {d_mbps} Mbps")
print(f"Unggah: {u_mbps} Mbps")
print("------------------------------------------------")

except Exception as e:
print(f"\n[ERROR] Terjadi kesalahan: {e}")
print("Pastikan Anda terhubung ke internet.")

if __name__ == "__main__":
run_speedtest()

Bedah Logika: Bagaimana Script Ini Bekerja?

Agar artikel ini memberikan wawasan teknis (High Value), mari kita bedah fungsi utama dalam kode di atas:

1. st.get_best_server()

Fungsi ini sangat krusial. Library akan melakukan “ping” ke daftar server Speedtest.net di seluruh dunia, lalu memilih satu server dengan latensi (ping) terendah. Tanpa fungsi ini, pengujian mungkin dilakukan ke server yang jauh (misal: Anda di Jakarta, tes ke server New York), sehingga hasilnya tidak akurat.

2. st.download() dan st.upload()

Fungsi ini mengunduh dan mengunggah file dummy dalam berbagai ukuran untuk mengukur throughput maksimal jaringan Anda. Proses ini memakan waktu sekitar 10-20 detik, itulah mengapa kita perlu memberikan pesan “Please Wait…” agar pengguna tidak menutup terminal karena mengira program macet.

3. Konversi Satuan (Matematika)

Secara default, output dari library ini adalah dalam satuan bits per second (bps).
ISP (IndiHome, Biznet, FirstMedia, dll) memasarkan produk dalam satuan Megabits (Mbps).

  • Rumus: Nilai Asli / 1.000.000 = Mbps.
  • Jangan tertukar dengan MegaBytes (MBps). Jika ingin hasil dalam MegaBytes/detik (kecepatan download file IDM), bagilah dengan 8.000.000.

Studi Kasus: Monitoring Kualitas ISP (Project Lanjutan)

Script di atas bisa Anda kembangkan menjadi alat monitoring otomatis.

Bayangkan Anda membayar paket internet 100 Mbps, tapi sering merasa lambat di jam tertentu. Anda tidak mungkin melakukan tes manual setiap jam.

Anda bisa memodifikasi kode di atas untuk:

  1. Berjalan otomatis setiap jam menggunakan Cron Job (Linux) atau Task Scheduler (Windows).
  2. Menyimpan hasil tes ke dalam file CSV atau Excel.
  3. Membuat grafik penurunan performa.

Berikut adalah contoh modifikasi kode untuk menyimpan hasil ke file teks (log.txt):

Python
# Tambahkan di bagian akhir fungsi run_speedtest
from datetime import datetime

waktu = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
log_data = f"{waktu} | Ping: {ping}ms | Down: {d_mbps}Mbps | Up: {u_mbps}Mbps\n"

with open("speedtest_log.txt", "a") as f:
f.write(log_data)

print("Data berhasil disimpan ke speedtest_log.txt")

Dengan data log ini, Anda memiliki bukti valid untuk mengajukan komplain ke penyedia layanan internet jika kecepatan yang didapat tidak sesuai dengan yang dijanjikan.

Kesimpulan

Membuat alat Speedtest sendiri dengan Python memberikan Anda kontrol penuh, efisiensi, dan akurasi. Script ini sangat ringan dan bisa dijalankan di komputer tua sekalipun.

Bagi pengelola server atau pegiat jaringan, script ini adalah utility wajib yang harus ada di dalam toolbox Anda. Selamat mencoba dan semoga koneksi Anda selalu ngebut!

Leave a Comment