Bhyllabus l'énigme

Les pèlerins au-dessus des nuages

Mencoba Komputasi Kuantum dari Laptop: Rangkaian Bell State Pertamamu dengan Qiskit

Ilustrasi dua bola cahaya yang terhubung benang bercahaya di atas papan sirkuit abstrak, melambangkan keterkaitan kuantum

Berita komputer kuantum sering terdengar seperti kabar dari planet lain: chip dingin, miliaran rupiah, laboratorium steril. Padahal, belajar menyusun program kuantum pertamamu bisa dilakukan di laptop biasa, gratis, dan selesai sebelum teh hangatmu dingin. Panduan ini untuk kamu yang penasaran, sudah akrab dengan Python dasar, dan ingin merasakan sendiri apa itu “keterkaitan kuantum” (entanglement) lewat kode.

Kita memakai Qiskit, kerangka kerja sumber terbuka dari IBM, dan membuat rangkaian yang disebut Bell state: “Halo Dunia”-nya dunia kuantum.

Sekilas
PrasyaratPython 3.10 atau lebih baru, terminal, koneksi internet untuk instalasi
Waktusekitar 10-15 menit
KesulitanPemula (tidak perlu paham fisika kuantum)
DiujiQiskit 2.6.2, Python 3.13 (per November 2026)

Langkah 1: Siapkan lingkungan Python yang bersih

Pakai lingkungan virtual agar pustaka kuantum tidak mengacaukan proyek Python lain. Dokumentasi resmi Qiskit juga menyarankan ini.

python3 -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install qiskit matplotlib

Panduan mulai cepat IBM per November 2026 menyematkan versi 2.5.x dan menyarankan “versi itu atau yang lebih baru”; saat artikel ini ditulis, rilis terbaru di PyPI adalah 2.6.2, dan itulah yang saya uji. Qiskit membutuhkan Python 3.10 ke atas.

Langkah 2: Bangun rangkaian Bell state

Simpan kode berikut sebagai bell.py. Rangkaian ini hanya punya dua qubit dan dua gerbang: gerbang Hadamard (h) menaruh qubit pertama dalam keadaan “superposisi”, lalu gerbang CNOT (cx) mengikat qubit kedua padanya.

from qiskit import QuantumCircuit
from qiskit.primitives import StatevectorSampler

qc = QuantumCircuit(2)
qc.h(0)          # superposisi pada qubit 0
qc.cx(0, 1)      # ikat qubit 1 pada qubit 0
qc.measure_all() # ukur keduanya

sampler = StatevectorSampler()
hasil = sampler.run([qc], shots=1024).result()
print(hasil[0].data.meas.get_counts())

print(qc.draw("text"))

Jalankan dengan python bell.py. Di mesin saya, keluarannya kira-kira:

{'11': 516, '00': 508}

Angka persisnya akan berbeda tiap kamu menjalankannya, karena hasil pengukuran kuantum memang acak.

Langkah 3: Baca hasilnya

Perhatikan dua hal. Pertama, hasilnya hampir selalu 00 atau 11 dengan peluang sekitar separuh-separuh. Kedua, tidak pernah muncul 01 atau 10. Artinya kedua qubit “sepakat”: begitu satu terukur 0, yang lain pasti 0; begitu satu terukur 1, yang lain pasti 1. Itulah ciri keterkaitan. Sebelum diukur, tidak ada nilai pasti pada masing-masing qubit; yang pasti hanyalah hubungan di antara keduanya.

Bagian kodeFungsinya
QuantumCircuit(2)Membuat rangkaian dengan 2 qubit
h(0)Superposisi: qubit 0 menjadi campuran 0 dan 1
cx(0, 1)Mengikat qubit 1 pada qubit 0 (keterkaitan)
measure_all()Mengukur semua qubit ke register klasik bernama meas
shots=1024Mengulang eksperimen 1.024 kali untuk melihat sebaran

Langkah 4 (opsional): Naik ke perangkat keras sungguhan

Kalau kamu ingin kode yang sama berjalan di komputer kuantum sungguhan, IBM Quantum Platform punya Open Plan gratis. Menurut halaman paketnya per November 2026, jatahnya setara sampai 10 menit waktu QPU per jendela 28 hari, dan instans Open Plan hanya bisa dibuat di wilayah us-east. Langkah umumnya: daftar akun, buat kunci API di dasbor, lalu pasang qiskit-ibm-runtime dan simpan akunmu.

pip install qiskit-ibm-runtime

from qiskit_ibm_runtime import QiskitRuntimeService
QiskitRuntimeService.save_account(
    token="KUNCI_API_KAMU",
    instance="NAMA_ATAU_CRN_INSTANS",
    set_as_default=True,
)

Perhatian: rangkaian harus diterjemahkan (transpile) ke gerbang yang dipahami chip tujuan sebelum dikirim, dan hasilnya akan lebih “kotor” karena derau, jadi 01 dan 10 kadang muncul. Itu normal, bukan bug. Detail langkah ini ada di panduan resmi IBM; saya tidak mengujinya langsung, jadi ikuti dokumentasi terbarunya.

Jebakan Umum dan Cara Mengatasinya

GejalaPenyebabSolusi
ImportError pada execute atau Aer gaya lamaTutorial lama memakai API yang sudah dihapus di Qiskit 2.xPakai primitif Sampler seperti contoh di atas
Error pada qiskit-aerAer versi 0.18 membutuhkan Python 3.11+ dan berstatus pemeliharaan terbatasUntuk latihan dasar, StatevectorSampler bawaan Qiskit sudah cukup
AttributeError pada .data.measLupa measure_all(), atau memakai nama register lainPanggil measure_all() atau sesuaikan nama register
Pustaka tidak ditemukanLingkungan virtual belum aktifJalankan ulang perintah activate

Satu catatan lagi: StatevectorSampler mensimulasikan seluruh keadaan kuantum di memori, sehingga hanya nyaman untuk rangkaian kecil (belasan qubit saja sudah mulai berat) dan tidak mendukung pengukuran di tengah rangkaian.

Ringkasan Cepat

  • Pasang qiskit di lingkungan virtual; Python 3.10+ sudah cukup.
  • Bell state = h(0) + cx(0, 1); hasilnya hanya 00 dan 11 dengan sebaran sekitar 50:50.
  • Simulator lokal tidak butuh akun; perangkat keras IBM butuh kunci API dan jatah Open Plan terbatas.
  • Hati-hati dengan tutorial lama: API Qiskit berubah cukup banyak antar versi mayor.

Penasaran kenapa pekerjaan ini penting? Ikuti perkembangan perangkat kerasnya di catatan Minggu Emerging Tech tentang komputer kuantum dan jadwal migrasi enkripsinya di edisi 8 November. Kamu sudah mencoba Qiskit atau kerangka kuantum lain? Ceritakan di kolom komentar, trik dan jebakan versimu sangat berharga.

Sumber

Commenting 101: “Be kind, and respect each other” // Bersikaplah baik, dan saling menghormati (Indonesian) // Soyez gentils et respectez-vous les uns les autres (French) // Sean amables y respétense mutuamente (Spanish) // 待人友善,互相尊重 (Chinese) // كونوا لطفاء واحترموا بعضكم البعض (Arabic) // Будьте добры и уважайте друг друга (Russian) // Seid freundlich und respektiert einander (German) // 親切にし、お互いを尊重し合いましょう (Japanese) // दयालु बनें, और एक दूसरे का सम्मान करें (Hindi) // Siate gentili e rispettatevi a vicenda (Italian)

Tinggalkan Balasan