Cek Ping Internet
Cek Ping Internet

Cek ping internet terdetail, gue sering banget ngerasa kesel kalau lagi asik push rank atau meeting penting, tiba-tiba koneksi RTO (Request Time Out). Pas komplain ke CS ISP, jawabannya klasik: “Dari sini normal, Kak. Coba restart modem.” Wah, rasanya pengen banting meja. Masalahnya, kita sering nggak punya bukti kuat kalau jaringan emang lagi busuk di jam-jam tertentu.

Nah, artikel ini bakal bahas solusi konkret buat masalah itu: aplikasi Net Monitor. Ini adalah tools sederhana tapi powerful buat memantau kestabilan internet secara realtime. Gue bakal bedah tuntas cara kerjanya berdasarkan repo GitHub bulux322/net-monitor dan nambahin dikit konsep pengembangan biar lu punya amunisi data yang valid buat ngadu ke ISP.

Poin Penting

  • Masalah: Internet sering RTO tapi susah dibuktikan.
  • Solusi: Aplikasi monitoring mandiri berbasis Python.
  • Tujuan: Data valid buat “skakmat” ISP yang denial.

Fitur Utama: Biar Ngadunya Berdata

Kalau cuma bilang “lag nih”, orang teknis ISP nggak bakal dengerin. Tapi kalau lu kasih data latency, packet loss, dan jitter, mereka baru mikir. Nih fitur-fitur kece dari Net Monitor yang bisa lu pake:

FiturFungsi Buat Bukti
Realtime ICMP RTTPing murni ke server (misal Google). Ini angka keramat buat nentuin lag atau enggak.
Process LatencyBeda sama ping, ini nunjukin seberapa berat PC/Laptop lu memproses perintah ping.
Packet Loss %Kalau ini > 0%, berarti ada data yang ilang di jalan. Musuh utama gamer.
Jitter DetectionNangkep fluktuasi ping. Ping kecil tapi naik-turun drastis = Jitter tinggi = Lag spike.
Smart StatusOtomatis ngasih label DOWN, STABLE, LAG, atau BAD. (Note: Label ini sesuai kode monitor.py, berbeda dengan README yang masih menulis OK/WARN/BAD).

Selain itu, tampilannya dibikin ala HUD game (terinspirasi Dota 2 katanya), jadi enak dipandang. Ada grafik dual latency juga yang jalan terus, jadi lu bisa liat momen pas grafik tiba-tiba loncat. Tombol Start/Stop dan Target Dinamis bikin lu bebas mau ngetes ke server mana aja (Google, Cloudflare, atau IP game server).

Arsitektur dan Alur: Dari Klik sampai Grafik

Gimana sih cara kerjanya? Kok bisa nampilin data live di browser? Gue bedah dikit alurnya biar lu paham “jeroannya”. Intinya, ini kolaborasi antara Python (Backend) dan Javascript (Frontend) via WebSocket.

Alur kerja aplikasi dari Browser sampai Ping OS

Prosesnya berjalan kayak gini:

  1. Browser UI: User buka localhost:5000, masukin target IP, terus klik Start.
  2. Flask-SocketIO: Server nerima perintah start_monitor dan memicu background task pake eventlet (ini penting biar nggak nge-block proses lain).
  3. Monitoring Loop: Di file monitor.py, ada infinite loop yang jalan selama statusnya running.
  4. Ping Command: Python nyuruh OS (Windows/Linux) buat nge-ping satu kali (ping -n 1 atau -c 1).
  5. Parsing & Kalkulasi: Output dari CMD ditangkep, diambil angkanya (pake Regex), terus dihitung deh tuh Packet Loss (pake window history), Jitter, dan RTO.
  6. Emit Data: Hasil hitungan dikirim balik ke browser via WebSocket (event ping_data) buat digambar jadi grafik cantik.
  7. Under the Hood: Sedikit Ngulik Kode

Buat yang demen teknis, ada beberapa bagian menarik di kodenya. Di app.py, pengembang pake eventlet.monkey_patch() di baris paling atas. Ini wajib hukumnya kalau mainan WebSocket di Python biar thread-nya jalan beneran paralel (async).

Terus di monitor.py, fungsi ping()-nya pinter nih, dia deteksi OS dulu:


def ping():
    system = platform.system().lower()
    # Windows pake -n, Linux/Mac pake -c
    cmd = ["ping", "-n", "1", target] if system == "windows" else ["ping", "-c", "1", target]
    ...

Dia juga pake Regex r”time[=<]\s*(\d+)” buat nyomot angka latency dari teks ruwet output CMD. Buat nentuin status jaringan bagus atau jelek, ada fungsi smart_status yang punya parameter ambang batas (threshold):

  • DOWN: Target tidak merespon (RTO/Timeout).
  • STABLE: Loss < 1%, Jitter < 10ms, Latency < 80ms.
  • LAG: Loss < 5%, Jitter < 30ms, Latency < 200ms.
  • BAD: Di atas ambang batas LAG.

Install & Run: Biar Langsung Ngebut

Udah paham teorinya? Sekarang cobain sendiri. Cara install-nya gampang kok, asal lu punya Python 3.8+ di komputer lu.

  1. Siapkan Environment: Bikin folder baru, buka terminal/CMD di situ.
  2. Virtual Environment (Wajib biar rapi): Windows: python -m venv venv terus venv\Scripts\activate Linux/Mac: python3 -m venv venv terus source venv/bin/activate
  3. Install Library: pip install flask flask-socketio eventlet requests Note: Jangan lupa install eventlet ya, kalau nggak nanti WebSocket-nya lemot parah.
  4. Jalankan App: python app.py
  5. Akses UI: Buka browser, ketik http://localhost:5000.
  6. Pakai UInya: Baca HUD & Grafik dengan Benar

Pas lu buka, tampilannya bakal berasa “gamer” banget. Cara pakainya simpel:

  • Isi Target: Default-nya 8.8.8.8 (Google DNS). Bisa diganti ke 1.1.1.1 (Cloudflare) atau IP server game lu.
  • Klik START: Tombol bakal jadi merah (STOP), dan grafik mulai jalan.

Di bagian grafik, lu bakal liat dua garis. Garis Biru/Hijau (ICMP) itu ping internet lu yang sebenernya. Garis Merah/Kuning (Process) itu performa komputer lu pas nge-ping. Cara bacanya gini:

Kondisi GrafikArti / Masalahnya Dimana?
ICMP Kecil, Process BesarInternet aman, tapi PC/Laptop lu yang lagi berat (CPU usage tinggi).
Dua-duanya TinggiFix masalah ISP atau jaringan lokal (WiFi lu penuh).
Packet Loss Naik TerusKabel putus nyambung atau sinyal WiFi busuk.
Status (DOWN/STABLE/LAG/BAD)Indikator kesehatan koneksi. DOWN = Mati/RTO, STABLE = Lancar, LAG = Agak berat, BAD = Gangguan parah. (Ikuti kode, bukan README).

Catatan Penting & Troubleshooting

Disclaimer Teknis

Inget ya, Process Latency bukan tolak ukur kualitas ISP. Jangan ngadu ke ISP pake data Process Latency, nanti diketawain. Pake data ICMP RTT dan Packet Loss buat bukti yang valid.

⚠️ Konsistensi Label Status

Beberapa masalah yang mungkin lu temuin:

  • CPU 100%? Cek kode monitor.py, pastikan ada socketio.sleep(INTERVAL) di akhir loop. Kalau nggak di-sleep, CPU lu bakal diperes habis buat nge-loop tanpa henti.
  • Data Nggak Muncul / Loss Terus? Kadang Firewall (terutama di Windows) nge-blok paket ICMP. Coba matiin firewall sebentar atau bikin rule allow ICMP.

Rekap Jam Gangguan: Konsep yang Lu Mau

Nah, ada satu fitur impian yang sebenernya krusial banget buat ngadu: “Rekap Jam Gangguan”. Bayangin kalau lu bisa kasih laporan: “Nih Pak, tiap jam 19:00 sampe 21:00 packet loss saya naik 10%!”

Tapi perlu gue tegesin, di repo bulux322/net-monitor saat ini BELUM ADA fitur database atau penyimpanan log. Gue udah cek file list-nya, nggak ada file .db, .sqlite, atau kode buat nulis ke file text (CSV/JSON). Data cuma ada di memori (RAM), jadi kalau browser di-refresh atau server mati, datanya ilang.

Ini peluang buat dikembangin! Konsepnya simpel:

  • Tambahin modul simpel buat append status (Jam, Latency, Loss) ke file CSV tiap menit.
  • Bikin halaman baru buat visualisasi data historis itu.

Jadi ini statusnya masih Konsep/Uncertain ya, belum fitur bawaan.

Penutup: Gas, Bikin ISP Nggak Bisa Ngeles

Net Monitor ini bukan sekadar mainan ping biasa. Ini adalah alat bantu buat lu, para gamer, pekerja remote, atau siapapun yang butuh internet stabil. Dengan data visual yang jelas, posisi tawar lu pas komplain ke NOC atau CS ISP jadi lebih kuat.

Tertarik nyoba? Langsung aja meluncur ke repo admin Repo GitHub-nya. Kalau lu mau modif coding, sekalian bantu kontribusi bikin fitur logging database yang tadi gue bilang. Biar kita semua makin enak internetannya! Komen kalo mau dibuatin versi Videonya.

By adminx

Leave a Reply

Your email address will not be published. Required fields are marked *