Simulasi Token Listrik PLN Pakai Python — Belajar Kriptografi dari Nol

Ditulis oleh Tim Redaksi ChatBot Cell12 menit baca
Ditinjau Editor SpesialisStandar Editorial
Simulasi Token Listrik PLN Pakai Python — Belajar Kriptografi dari Nol
Daftar Isi▼

Pernah Mikir, Gimana Sih 20 Digit Token Listrik Itu "Dihitung"?

Tiap beli token listrik, kamu dapet deretan 20 digit yang keliatan gak ada hubungannya sama apa pun. Nominalnya Rp 100.000, dapet angka acak. Beli lagi besok, angkanya beda total. Padahal kalo dipikir-pikir, angka itu jelas bukan hasil kocokan — pasti ada rumus, ada mesin yang "menghitung"nya, dan meteran kamu somehow bisa mastiin angka itu bener.

Daripada cuma nanya-nanya di grup WA, mending kita buktiin sendiri. Di artikel ini kita bakal bikin simulasi cara kerja token listrik pakai Python — lengkap dengan meteran virtual, pabrik token mini, dan uji coba tiga skenario. Bukan hack, bukan crack, dan jelas bukan alat bikin token beneran. Ini murni project belajar: cara paling seru buat ngerti kriptografi ya dengan nonton langsung gimana mesinnya "berpikir", pakai kode yang kamu tulis sendiri.

Singkatnya: kita bakal ngerakit simulasi token 20 digit + meteran virtual pakai Python biar kebayang kenapa token asli mustahil dipalsukan. Buat token yang beneran masuk meteran, chat ChatBot Cell di sini — 3 detik, bayar QRIS, ada struk digital.

Konsep Dulu, Baru Ngoding — Apa yang Sebenarnya Dihitung Mesin Itu

Token prabayar 20 digit itu mengikuti standar internasional yang disebut STS (Standard Transfer Specification), diakui lewat dokumen IEC 62055-41. Gak perlu dibaca dokumennya — cukup pahami bentuk kasarnya. Sebelum jadi 20 digit acak, ada paket data kecil yang dirakit dulu, kira-kira gini isinya:

Bagian Contoh Fungsi
Jenis token transfer kredit Nandain token ini buat nambah kWh, bukan perintah lain
Jumlah kWh 50 "Isi" utama token yang kamu beli
Token ID (TID) basis tanggal Cap waktu pembuatan — token punya umur dan urutan
Nonce / pengacak angka acak Bikin dua token nominal sama gak pernah identik
Digit cek 1 digit Nangkep salah ketik sebelum token diproses

Terus paket data itu dienkripsi pakai kunci yang terikat ke meteran kamu — tiap meteran punya kunci beda. Bayangin kayak amplop terkunci: isi suratnya sama-sama "50 kWh", tapi amplopnya dikunci pakai gembok khusus meteran kamu. Cuma meteran kamu yang pegang kuncinya. Meteran tetangga punya gembok sendiri, jadi amplop kamu dipaksa dibuka pakai kunci tetangga? Gak bakal nyambung, suratnya keliatan ngaco, langsung ditolak.

Nah, di simulasi kita nanti, kita bakal main peran dua sisi: jadi mesin penjual token yang mengunci amplop, dan jadi meteran yang buka amplopnya. Seru bagiannya di situ.

Siapin Senjata: Python 3 + Tempat Nulis

Yang kamu butuhin cuma Python 3 (versi berapa aja yang penting 3.x) dan tempat nulis kode. Dua pilihan:

  • Google Colab (paling direkomendasikan) — buka colab.research.google.com di browser, klik New Notebook, tinggal copas kode. Gak perlu install apa-apa, gratis, jalan juga di HP walau kurang nyaman. 🐍
  • Laptop/PC lokal — install Python dari python.org, tulis kode di VS Code, simpan sebagai simulasi_token.py, jalankan pakai python simulasi_token.py.

Semua kode di bawah cuma pakai bawaan Python (hashlib dan datetime) — tanpa library eksternal, gak perlu pip install apa-apa. Salin tiap blok berurutan ke satu file/notebook, ya, biar saling kenal.

Disclaimer penting: semua cipher di artikel ini adalah cipher mainan (geser digit ala Vigenere + SHA-256 dari hashlib) yang cuma buat mengilustrasikan konsep. Ini BUKAN algoritma STS yang asli, dan gak ada kunci resmi PLN di mana-mana. Hasil kodenya cuma angka simulasi — kalau diketik ke meteran asli bakal ditolak, malah bisa bikin meteran error. Jangan pernah coba di meteran beneran.

Step 1 — Bikin MeteranVirtual, "Meteran Listrik" Versi Kamu

Pertama, kita bikin meterannya dulu. Kelas MeteranVirtual punya tiga hal penting: nomor meteran (identitas sekaligus bahan baku kunci), saldo kWh, dan riwayat token terpakai — biar token yang udah masuk gak bisa dipakai dua kali, persis konsep replay protection.

import hashlib
from datetime import datetime

PANJANG_DATA = 12   # 3 digit kWh + 6 digit TID + 3 digit nonce
PANJANG_TOKEN = 20  # 12 digit data tersandi + 7 digit pengacak + 1 digit cek


class MeteranVirtual:
    """Meteran listrik mainan: cuma ngerti token buat dirinya sendiri."""

    def __init__(self, nomor_meteran):
        self.nomor_meteran = nomor_meteran
        self.saldo_kwh = 0
        self.riwayat_token = set()  # token yang udah pernah masuk

    def terima_token(self, token):
        # Pemeriksaan 1: digit cek (checksum)
        if digit_cek(token[:-1]) != token[-1]:
            return "DITOLAK: digit cek gak cocok (salah ketik?)"

        # Pemeriksaan 2: token bekas (replay)
        if token in self.riwayat_token:
            return "DITOLAK: token udah pernah dipakai"

        # Pemeriksaan 3: dekripsi pakai kunci milik meteran ini
        kunci = aliran_kunci(self.nomor_meteran, PANJANG_DATA)
        payload = dekripsi_digit(token[:PANJANG_DATA], kunci)
        kwh = int(payload[0:3])
        tid = payload[3:9]

        # Pemeriksaan 4: TID harus nyambung sama tanggal hari ini
        if tid != datetime.now().strftime("%y%m%d"):
            return "DITOLAK: dekripsi gak nyambung (token meteran lain?)"

        self.saldo_kwh += kwh
        self.riwayat_token.add(token)
        return f"DITERIMA: +{kwh} kWh (Token ID {tid})"

Perhatiin urutan pemeriksaannya: murah dulu, mahal belakangan. Cek digit itu instan, sedangkan dekripsi dan validasi TID dikerjain setelah token lolos dua gerbang pertama. Meteran beneran juga mikir kayak gini — berlapis. Empat pemeriksaan yang saling ngebackup, nah, makanya token asli mustahil dipalsukan: pemalsu harus lolos SEMUA gerbang sekaligus.

Step 2 — Bikin Pabrik Token Simulasi

Sekarang sisi penjual. Kita bikin fungsi yang merakit data jadi payload, "menguncinya" pakai kunci turunan nomor meteran, lalu memetakan hasilnya jadi 20 digit plus digit cek.

Rakit Payload: kWh + TID + Nonce

def bikin_payload(kwh, nonce):
    """Rakit data mentah: jumlah kWh + TID (basis tanggal) + nonce."""
    tid = datetime.now().strftime("%y%m%d")
    return f"{kwh % 1000:03d}{tid}{nonce % 1000:03d}"

Buat kwh=50 dan nonce=7, hasilnya 050261101007 — yaitu 050 (kWh), 261101 (tanggal 2026-11-01 sebagai TID), 007 (nonce). Data mentah semacam ini (versi aslinya lebih rapi dan berlapis) adalah yang dienkripsi sistem resmi sebelum jadi token.

Kunci Unik per Meteran + Cipher Mainan

def aliran_kunci(nomor_meteran, panjang):
    """Kunci 'unik per meteran': deret angka dari SHA-256 nomor meteran.
    ILUSTRASI saja -- BUKAN algoritma STS yang asli."""
    dasar = hashlib.sha256(("simulasi|" + nomor_meteran).encode()).digest()
    return [b % 10 for b in dasar[:panjang]]


def enkripsi_digit(data, kunci):
    """Cipher mainan gaya Vigenere: geser tiap digit pakai kunci (mod 10)."""
    return "".join(str((int(d) + k) % 10) for d, k in zip(data, kunci))


def dekripsi_digit(sandi, kunci):
    """Kebalikan enkripsi: mundurin geseran tiap digit (mod 10)."""
    return "".join(str((int(s) - k) % 10) for s, k in zip(sandi, kunci))

Dua hal yang diilustrasikan di sini. Pertama, aliran_kunci nunjukin konsep kunci unik per meteran: nomor meteran beda → SHA-256-nya beda → kuncinya beda total. Kedua, enkripsi_digit itu cipher mainan — geser digit mod 10. Kenapa gak pakai AES? Karena tujuannya ngerti konsep, bukan bikin sistem produksi. Sistem asli pakai cipher blok standar yang jauh lebih rapat, dan itu justru poinnya: kuncinya gak pernah keluar dari sistem resmi dan chip meteran, jadi gak ada jalan buat "ikut menghitung" token asli.

Petakan Jadi 20 Digit + Digit Cek

def digit_cek(angka):
    """Checksum mod sederhana: jumlahin semua digit, ambil sisanya (mod 10)."""
    return str(sum(int(d) for d in angka) % 10)


def bikin_token_simulasi(nomor_meteran, kwh, nonce):
    """Pabrik token SIMULASI -- hasilnya cuma angka mainan, bukan token asli."""
    kunci = aliran_kunci(nomor_meteran, PANJANG_DATA)
    payload = bikin_payload(kwh, nonce)

    data_tersandi = enkripsi_digit(payload, kunci)  # 12 digit
    pengacak = "".join(str(b % 10) for b in          # 7 digit
                       hashlib.sha256(payload.encode()).digest()[:7])
    token = data_tersandi + pengacak

    return {"token": token + digit_cek(token), "payload": payload}

Struktur akhirnya: 12 digit data tersandi + 7 digit pengacak + 1 digit cek = 20 digit. Digit pengacak di-hash dari payload, jadi dua pembelian nominal sama tetap ngasilin token beda. Digit cek pake checksum mod sederhana — cuma ilustrasi konsep, tapi udah cukup buat nangkep satu digit salah ketik.

Step 3 — Tes: Token Valid, Token Dipakai Ulang, Token Salah Meteran

Saatnya nonton pertunjukan. Tiga skenario: token valid, token dicoba dipakai ulang, dan token buat meteran tetangga yang dipaksa masuk ke meteran rumah.

meteran_rumah = MeteranVirtual("32011234567")

# Tes 1: token valid buat meteran sendiri
beli = bikin_token_simulasi("32011234567", kwh=50, nonce=7)
print("Token     :", beli["token"])
print("Payload   :", beli["payload"])
print("Hasil     :", meteran_rumah.terima_token(beli["token"]))
print("Saldo     :", meteran_rumah.saldo_kwh, "kWh")

# Tes 2: coba pakai ulang token yang sama
print("Hasil     :", meteran_rumah.terima_token(beli["token"]))

# Tes 3: token buat meteran tetangga dipakai ke meteran rumah
beli_tetangga = bikin_token_simulasi("32019876543", kwh=20, nonce=1)
print("Token     :", beli_tetangga["token"])
print("Hasil     :", meteran_rumah.terima_token(beli_tetangga["token"]))

Hasil run-nya (token kamu bakal beda — itu justru bukti desainnya bener):

Token     : 69865014908756048219
Payload   : 050261101007
Hasil     : DITERIMA: +50 kWh (Token ID 261101)
Saldo     : 50 kWh
Hasil     : DITOLAK: token udah pernah dipakai
Token     : 39422241182625631326
Hasil     : DITOLAK: dekripsi gak nyambung (token meteran lain?)

Baca pelan-pelan hasilnya. ✅ Tes 1 lolos semua gerbang: digit cek cocok, belum pernah dipakai, dekripsi nyambung, TID valid — saldo nambah 50 kWh. Tes 2 ditolak di gerbang riwayat: token bekas gak laku dua kali. Tes 3 paling seru: token tetangga lolos digit cek (memang dibikin bener), tapi pas "dibuka pakai kunci meteran rumah", isi yang keluar ngaco dan TID-nya gak nyambung sama tanggal hari ini — ditolak. Itu persis cerita amplop terkunci di atas, nah, makanya token asli mustahil dipalsukan: tanpa kunci yang tepat, isi yang terbaca cuma sampah acak.

Pelajaran Kriptografi yang Baru Saja Kamu Pegang

Dalam 90 baris kode, kamu baru aja praktekin empat konsep yang dipakai sistem keuangan dunia nyata:

  • Symmetric key — pihak pengunci dan pembuka pakai kunci sama (turunan nomor meteran). Konsep yang sama ngamanin komunikasi server banking.
  • Checksum — digit cek yang bikin salah ketik satu digit langsung ketahuan. Kakaknya ada di nomor kartu, NIK, sampai ISBN buku.
  • Replay protection — riwayat token bikin token bekas gak berharga. Sama kayak OTP banking yang gak bisa dipakai dua kali.
  • Nonce + sequence — angka acak + TID basis tanggal bikin tiap token unik dan berumur. e-wallet juga pakai nomor urut transaksi kayak gini.

Jadi belajar "token listrik" sebenernya belajar dasar keamanan digital secara umum. Ilmu yang sama yang bikin topup e-wallet kamu gak bisa dobel-transaksi.

Batas Simulasi: Kenapa Kode Ini Gak Akan Pernah Jadi Token Beneran

Biar jujur dan tegas, ini batas-batas simulasi kita:

  • Cipher-nya mainan — geser digit mod 10 itu buat belajar, bukan keamanan. Sistem asli pakai cipher blok standar industri yang jauh lebih rumit.
  • Gak ada kunci resmi — kunci asli di-generate dan dikelola sistem resmi, tertanam di chip meteran. Gak ada di internet, gak bisa ditebak dari nomor meteran, dan jelas gak ada di kode kita.
  • Validasi meteran asli lebih ketat — masih ada lapisan lagi di luar empat gerbang kita: dr kode grup tarif sampai jendela waktu TID yang lebih detail.

Inget ya: hasil kode di atas cuma angka simulasi buat dipelajari. Kalau diketik ke meteran asli, bakal ditolak — dan bisa bikin meteran error atau terkunci. Jangan pernah coba di meteran beneran, milik siapa pun.

Kalau Lampu Udah Kedip-Kedip dan Butuh Token yang Beneran

Simulasi seru buat otak, tapi lampu rumah gak nyala pakai angka mainan. Kalau butuh token valid yang beneran masuk meteran, jalurnya satu: beli dari penjual resmi. Cara paling gesit: ChatBot Cell, chatbot WhatsApp berbasis AI yang online 24 jam — proses 3 detik, bayar QRIS, langsung dapat struk digital.

  1. Buka chat WhatsApp ChatBot Cell — klik link ini, gak perlu save kontak.
  2. Pilih menu Token PLN, ketik nomor meteran — bot verifikasi nama pelanggan dan tarif daya biar gak salah kirim.
  3. Pilih nominal, scan QRIS pakai e-wallet atau m-banking apa aja.
  4. Token 20 digit masuk chat dalam 3 detik lengkap dengan struk digital. Tinggal diinput ke meteran, kWh nambah.

Dari sisi kriptografi juga masuk akal: bot ini terhubung ke sistem vending resmi yang beneran pegang "kunci" buat meteran kamu — jadi token-nya pasti lolos semua gerbang validasi yang barusan kita simulasiin.

FAQ — Pertanyaan yang Sering Muncul

1. Apakah kode ini bisa dipakai buat bikin token listrik beneran?

Gak bisa, titik. Cipher-nya mainan, gak ada kunci resmi, dan meteran asli punya validasi berlapis yang jauh lebih ketat dari simulasi kita. Kode ini murni buat ngerti konsep. Satu-satunya cara dapet token valid ya beli dari jalur resmi, misalnya via ChatBot Cell.

2. Perlu belajar Python dulu berapa lama buat ngerti artikel ini?

Cukup ngerti variabel, fungsi, dan loop — level dasar yang bisa dikuasai dalam satu-dua minggu belajar santai. Kodenya sengaja dibikin idiomatik dan dikomentarin bahasa Indonesia. Kalau ada baris yang bikin bingung, copas aja ke AI tanya "jelaskan baris ini" — itu cheat license yang halal.

3. Boleh jalankan kodenya di HP?

Bisa. Cara paling gampang: buka Google Colab di browser HP, bikin notebook baru, copas kodenya. Jalan, tapi layar kecil bikin kurang nyaman buat baca kode. Kalau ada laptop, mending pakai laptop plus VS Code.

4. Apa itu SHA-256 yang dipakai di kunci?

Fungsi hash: muterin input apa aja (teks, file) jadi deretan byte tetap 32 karakter yang keliatan acak, dan praktis mustahil dibalikin. Di kode kita, SHA-256 dipakai buat "memaskan" nomor meteran jadi kunci. Di dunia nyata, SHA-256 dipakai di Bitcoin, sertifikat HTTPS, sama verifikasi file download.

5. Kenapa token simulasi saya beda sama contoh di artikel?

Emang harus beda. TID-nya basis tanggal hari kamu menjalankan kode, dan nonce bisa kamu ganti-ganti. Dua token nominal sama pun gak akan pernah identik — itu bukan bug, itu fitur keamanan yang barusan kamu praktekin sendiri.

Kesimpulan — Ngerti Cara Kerjanya Bikin Makin Ngargain Token Asli

Kita udah ngerakit simulasi lengkap: meteran virtual dengan saldo dan riwayat, pabrik token dengan kunci unik per meteran, sama tiga tes yang nunjukin token valid diterima, token bekas ditolak, dan token salah meteran ditolak. Sepanjang jalan, kamu nyemplung ke symmetric key, checksum, replay protection, dan nonce — konsep yang sama yang ngamanin OTP banking dan topup e-wallet kamu tiap hari.

Dan justru dari simulasi inilah kamu ngerti kenapa "generator token gratis" itu mustahil: tanpa kunci resmi yang terikat ke meteran kamu, angka apapun yang dirakit cuma bakal gagal di gerbang dekripsi. Makanya kalau lampu udah tinggal beberapa kWh, jangan utak-atik script — ambil HP, chat ChatBot Cell, dan token yang beneran valid bakal masuk WhatsApp kamu dalam 3 detik. Bayar QRIS, ada struk digital, online 24 jam.

👉 Beli token PLN yang valid dan aman sekarang di ChatBot Cell.

Detail Publikasi

Ditinjau oleh:
Editor Spesialis
Diterbitkan:
Diperbarui terakhir:

Artikel ini mengikuti Kebijakan Editorial ChatBot Cell. Harga & promo bersifat dinamis — selalu cek tarif terbaru di WhatsApp sebelum transaksi. Menemukan error? Laporkan ke tim redaksi.

Artikel Terkait

Benarkah Token Listrik PLN Bisa Dibobol — Rahasia Kriptografi 20 Digit

Benarkah Token Listrik PLN Bisa Dibobol — Rahasia Kriptografi 20 Digit

Angka 20 digit di token listrik PLN bukan acak — itu kriptografi yang cuma cocok di meteran kamu. Bedah rahasianya di sini, plus beli aman via ChatBot Cell.

Dengan Bantuan AI, Bisakah Membuat Token PLN Sendiri Tanpa Beli?

Dengan Bantuan AI, Bisakah Membuat Token PLN Sendiri Tanpa Beli?

Viral video AI bisa bikin token PLN gratis? Faktanya gak bisa, dan ini alasan teknisnya. Plus cara beli token listrik aman & cepat via ChatBot Cell.

Aplikasi Generator Token Listrik PLN — Kenapa 100% Palsu (Fakta Kriptografi)

Aplikasi Generator Token Listrik PLN — Kenapa 100% Palsu (Fakta Kriptografi)

APK generator token listrik PLN 100% palsu — token 20 digit dienkripsi standar STS dengan kunci unik per meteran. Beli token valid dan aman di ChatBot Cell.

Bayar Pulsa, Paket Data, Voucher Game, dan Token PLN — Semua Lewat WhatsApp 2026

Satu nomor WhatsApp untuk semua kebutuhan: pulsa, kuota, voucher game, token listrik, dan top-up e-wallet. Panduan lengkap ChatBot Cell — bayar QRIS, proses 3 detik.

Chatbot AI Indonesia untuk PPOB: Revolusi Bisnis Digital 2026 dengan ChatBot Cell

Chatbot AI Indonesia udah revolusi industri PPOB — pulsa, paket data, token listrik, voucher game, semua bisa dijual otomatis. ChatBot Cell leader vertical PPOB dengan AI agent 24 jam.

Perbandingan Biaya Admin Token Listrik 2026 — Mana yang Paling Murah?

Beli token PLN di tiap platform kena biaya admin beda-beda. Dari Rp 500 sampai Rp 3.000 per transaksi. Ini perbandingan lengkap biaya admin termurah 2026.