Apa lagi nih, belum juga paham dengan istilah bahasa pemrograman masa kini (misal OOP), ada pula yang namanya Bahasa Pemrograman Kuantum.. Buat apa sih bahasa yang satu ini ?, ternyata bahasa ini erat kaitannya dengan keberadaan komputer kuantum. Yaitu komputer super cepat yang saat ini sedang dikembangkan. Denger-denger sih komputer ini bisa melakukan perhitungan dalam level atomik. Bayangkan sebuah komputer dimana setiap atom penyusunnya bisa melakukan perhitungan.. wuih… gileee… Ok simpan materi tentang komputer kuantum ini buat next post. sekarang bahas Bahasa Pemrograman Kuantum dulu.

Sesuai dengan namanya, Bahasa Pemrograman Kuantum adalah sebuah bahasa pemrograman yang dapat digunakan untuk membuat program yang dapat berjalan dalam komputer kuantum. Seperti bahasa pemrograman pada komputer masa kini, perkembangan bahasa pemrograman kuantum pun memiliki beberapa tahapan.
1. Imperative Quantum Programming
- Pseudocode Kuantum (Quantum Pseudocode)
Bahasa pemrograman ini pertama kali di ajukan oleh E. Knill sebagai bahasa pertama untuk komputer kuantum, model bahasa ini memiliki kaitan yang erat dengan salah satu model komputer kuantum yaitu Quantum Random Access Memory (QRAM)
- Quantum Computing Language
QCL(Quantum Computing Language) adalah implementasi dari bahasa pemrograman kuantum yang paling mutakhir. Sintaks yang dimilikinya memiliki banyak kemiripan dengan bahasa pemrograman C, dan memiliki struktur tipe data yang mirip pula dengan bahasa C.
Bentuk tipe data yang palling mendasar pada bahasa pemrograman ini adalah qreg (quantum register), dimana qreg ini dapat diartikan sebagai array (susunan) dari qubits (quantum bits).
qureg x1[2]; // 2-qubit quantum register x1
qureg x2[2]; // 2-qubit quantum register x2
H(x1); // Hadamard operation on x1
H(x2[1]); // Hadamard operation on the first qubit of the register x1
QCL juga memiliki beberapa operator standard yang dapat digunakan dalam algoritma kuantum, yaitu :
1. controlled-not dengan banyak target qubit,
2. operasi Hadamard pada banyak qubit,
3. parse dan controlled phase
Namun fungsi yang paling penting dari QCL adalah dukungan terhadap fungsi tambahan. Seperti pada bahasa pemrograman yang ada saat ini, QCL memungkinkan kita untuk membuat sebuah procedure / fungsi yang dapat digunakan untuk memanipulasi data kuantum. Misalnya
operator diffuse(qureg q) {
H(q); // Hadamard Transform
Not(q); // Invert q
CPhase(pi,q); // Rotate if q=1111..
!Not(q); // undo inversion
!H(q); // undo Hadamard Transform
}
Q Language (Bahasa Pemrograman Q) adalah implementasi kedua dari Bahasa Pemrograman Kuantum imperatif. Q Language di implementasikan sebagai pengembangan dari bahasa pemrograman C++, Bahasa ini menyediakan kelas-kelas yang dapat digunakan untuk melakukan operasi kuantum dasar seperti QHadamard, QFourier, QNot, dan QSwap. Operator baru dapat dibuat menggunakan mekanisme kelas pada C++.
Memory Quantum yang di representasikan oleh kelas Qreg
Qreg x1(); // 1-qubit quantum register with initial value 0
Qreg x2(2,0); // 2-qubit quantum register with initial value 0
Quantum Guarded Command Language (qGCL) didefinisikan oleh P. Zuliani dalam tesis PhD-nya. Bahasa ini berbasis pada Guarded Command Language yang dibuat oleh Edsger Djikstra.
2. Functional Quantum Programming
Dalam beberapa tahun terakhir ada banyak bahasa pemrograman kuantum berbasis paradigma pemrograman fungsional (functional programming language) yang telah diajukan. Paradigma bahasa ini dianggap memiliki banyak kelebihan daripada paradigma bahasa pemrograman kuantum sebelumnya, dimana pada paradigma ini algoritma dapat di jelaskan secara lebih jelas.
Bahasa pemrograman kuantum (QPL) di ajukan oleh Peter Selinger bersama dengan cQPL, yaitu sebuah ekstensi yang sangat berguna untuk melakukan permodelan komunikasi kuantum. Bahasa pemrograman yang telah memiliki ekstensi ini dinamakan cQPL (communication capable QPL).
Contoh:
Alokasi qubit
new qbit q := 0;
q *= H;
measure q then {
print “Head!”
} else {
print “Tail:(”;
};
cQPL menyediakan dukungan untuk memodelkan protokol komunikasi kuantum, sebagai contoh, Komunikasi antara Alice dan Bob dapat di jelaskan sebagai pertukaran qubit antara dua modul.
module Alice {
new qbit a := 0;
new qbit b := 0;
send qbit a to Bob;
send qbit b to Bob;
}
module Bob {
receive q1:qbit from Alice;
receive q2:qbit from Bob;
dump q1;
dump q2;
}
Usaha pertama dalam mengajukan lambda calculus dilakukan oleh Philip Maymin pada tahun 1996. Kemudian pada tahun 2003 André van Tonder menyatakan bahwa ekstensi dari lambda calculus sangat cocok digunakan untuk membuktikan tingkat kebenaran dari program kuantum.
Quantum Lambda Language adalah bahasa yang berbasis pada lambda calculus yang pertama kali diperkenalkan oleh Alonzo Church dan Stephen Cole Kleene pada tahun 1930. Model bahasa ini merupakan salah satu model bahasa
pemrograma kuantum yang dapat dijadikan alternatif.
source :
http://www.quantiki.org/wiki/index.php/Quantum_Programming_Language