Lewati ke konten utama

Pengantar OpenQASM

OpenQASM (open quantum assembly language), antarmuka pemrograman independen dari mesin yang kompatibel dengan QPU IBM®, adalah bahasa pemrograman imperatif untuk mendeskripsikan quantum Circuit. OpenQASM menggunakan model quantum Circuit untuk mengekspresikan program kuantum sebagai urutan operasi berparameter (seperti Gate, pengukuran, dan reset) dan komputasi klasik secara real-time. Selain algoritma kuantum, OpenQASM juga bisa mendeskripsikan Circuit yang dimaksudkan untuk mengkarakterisasi, memvalidasi, atau men-debug prosesor kuantum.

Seiring berkembangnya kebutuhan pengembangan QPU, daftar fitur OpenQASM pun ikut berkembang; versi terbaru, OpenQASM 3, menyertakan ekstensi seperti kontrol aliran classical feed-forward, modifier Gate, dan implementasi pulsa.

OpenQASM menjadi pilihan berbagai kalangan karena fleksibilitasnya. Pengantar makalah OpenQASM 31 memberikan beberapa contoh:

"Meskipun OpenQASM bukan bahasa tingkat tinggi, banyak pengguna yang ingin menulis quantum Circuit sederhana secara manual menggunakan bahasa domain-spesifik yang ekspresif. Para peneliti yang mempelajari kompilasi Circuit membutuhkan informasi tingkat tinggi yang tercatat dalam representasi perantara untuk menginformasikan algoritma optimasi dan sintesis. Eksperimentalis lebih suka kemudahan menulis Circuit di level yang cukup tinggi, tetapi sering kali perlu memodifikasi timing atau deskripsi Gate di level pulsa secara manual di berbagai titik dalam Circuit. Para insinyur perangkat keras yang merancang pengontrol klasik dan generator waveform lebih suka bahasa yang praktis untuk dikompilasi mengingat keterbatasan perangkat keras dan membuat struktur Circuit eksplisit yang dapat dimanfaatkan oleh pengontrol."

OpenQASM adalah format pertukaran umum di antara berbagai alat perangkat lunak kuantum yang independen. Bagi para developer yang lebih suka satu alat untuk konstruksi Circuit, alat lain untuk transpilasi, dan seterusnya, OpenQASM adalah lingua franca yang menjadi jembatan di antara mereka.

Qiskit SDK menyediakan cara untuk mengonversi antara OpenQASM dan kelas QuantumCircuit (lihat OpenQASM 2 dan Qiskit dan OpenQASM 3 dan Qiskit untuk petunjuknya).

Untuk informasi lebih lanjut, lihat spesifikasi langsung OpenQASM.

Contoh kode OpenQASM: cat state​


OPENQASM 3;
include "stdgates.inc";

const n = 3; // number of qubits
qubit[n] q; // a register 'q' of n qubits
bit[n] c; // a register 'c' of n classical bits

h q[0]; // Hadamard
for k in [0:n-1] {
cnot q[k], q[k+1]; // Controlled-NOT from control qubit q[k] to target qubit q[k+1]
}

c = measure q; // measure quantum register

Langkah berikutnya​

Rekomendasi

Footnotes​

  1. Andrew W. Cross et al. "OpenQASM 3: A broader and deeper quantum assembly language," ACM Transactions on Quantum Computing, Volume 3, Issue 3 (2022). https://doi.org/10.48550/arXiv.2104.14722 ↩

Source: IBM Quantum docs — updated 5 Mar 2026
English version on doQumentation — updated 7 Mei 2026
This translation based on the English version of 11 Mar 2026