Menulis Kode Program Menggunakan Bahasa Alami. Mungkinkah?

Pernahkah Anda membayangkan kalau semua orang (pemrogram komputer atau bukan) dapat menulis kode program secara mudah? Mudah di sini berarti pemrogram tidak perlu mempelajari sintaks bahasa pemrograman (C++, Java, Python, LUA, dsb) yang dipilih untuk menulis kode program. Yang hanya perlu dilakukan adalah menulis kode program menggunakan bahasa alami atau bahasa manusia, kemudian sebuah sistem penerjemah akan memberikan hasil berupa terjemahan bahasa alami tersebut ke dalam suatu bahasa pemrograman yang dipilih. Kode program yang ditulis dalam bahasa alami merepresentasikan algoritma pemecahan masalah. Hasil terjemahan berupa bahasa pemrograman tertentu dapat dikompilasi dan dijalankan.

Bahasa Alami vs. Bahasa Pemrograman

Bahasa alami merupakan bahasa yang digunakan manusia untuk berkomunikasi sehari-hari. Berbeda dengan bahasa pemrograman, bahasa alami bersifat tidak terstruktur. Sifat inilah yang membuat bahasa alami memiliki ambiguitas dalam penggunaannya. Selain itu, penggunaan bahasa alami memungkinkan terdapatnya banyak cara untuk mengekspresikan suatu hal yang bermakna sama. Sebagai contoh, kalimat perintah “jika variabel X sama dengan Y, maka stop iterasi” memiliki beberapa kemungkinan cara penulisan, seperti “apabila X sama dengan Y, iterasi diberhentikan”, “jika isi dari X sama dengan Y, stop proses iterasi”, “iterasi dihentikan saat variabel X sama dengan Y”, dan sebagainya.

Oleh karena kedua sifat tersebut, bahasa alami tidak dapat digunakan untuk menulis kode program. Kode program tidak boleh mengandung ambiguitas agar mesin dapat memahami dengan jelas maksud dari suatu perintah. Selain itu, kode program yang ditulis hanya memiliki 1 kemungkinan penyampaian. Hal ini disebabkan karena bahasa pemrograman bersifat terstruktur dan memiliki sintaks yang sudah didefinisikan.

Tantangan Utama

Membangun sebuah sistem penerjemah kode program yang ditulis dalam bahasa alami ke dalam bahasa pemrograman merupakan tugas yang sangat sulit. Terdapat 2 buah tantangan yang perlu dicari solusinya agar pembangunan sistem penerjemah tersebut dapat direalisasikan, yaitu:

  1. Bagaimana sistem memahami kalimat algoritma yang dituliskan pengguna?
  2. Bagaimana kita dapat yakin bahwa hasil penerjemahan oleh sistem merupakan hasil yang tepat?

Merubah Persoalan

Persoalan yang dibahas adalah membangun sebuah sistem yang dapat menerjemahkan kode program yang ditulis dalam bahasa alami ke dalam bahasa pemrograman tertentu. Tantangan yang dimiliki berfokus kepada cara menangani karakteristik bahasa alami. Karakteristik yang dimiliki bahasa alami tersebut menyebabkan tidak mungkinnya pembangunan sebuah sistem penerjemah yang dapat memproses kode program yang ditulis dalam bahasa yang benar-benar alami, tanpa aturan sintaks / struktur / kontrol tertentu.

Oleh karena itu, salah satu cara yang dapat dilakukan untuk menangani bahasa alami adalah dengan menerapkan kontrol terhadap penulisannya. Kontrol dalam hal ini berarti sintaks atau batasan-batasan yang sudah didefinisikan. Namun demikian, sintaks yang diterapkan haruslah dibuat seminimal mungkin. Sintaks yang minimal membuat penulisan kode program menjadi lebih fleksibel. Fleksibel di sini berarti pengguna dapat menulis kode program secara lebih bebas tanpa terikat banyak aturan penulisan. Jika sintaks yang diterapkan tidak dibuat seminimal mungkin, maka tidak ada bedanya dengan menulis kode program dalam bahasa pemrograman C++, Java, Python, C#, dan sebagainya.

Dengan adanya sintaks yang diterapkan dalam penulisan kode program dalam bahasa alami (walaupun minimal) membuat target penggunanya berubah. Target pengguna yang lebih cocok adalah para pemrogram komputer pemula yang memiliki kemampuan pemecahan masalah yang baik. Mengapa demikian? Hal ini disebabkan oleh adanya kasus dimana banyak pemrogram komputer pemula dengan problem solving skill yang baik, tetapi kesulitan dalam menulis kode program karena tidak mengetahui / memahami sintaks dari bahasa pemrograman yang digunakan. Dengan menulis kode program dalam bahasa alami, para pemrogram komputer pemula tersebut dapat lebih fokus kepada pembuatan strategi pemecahan masalah daripada membuang-buang waktu mencari bugs pada kode program yang ditulisnya.

Kesimpulan

Membangun sistem penerjemah kode program yang ditulis dalam bahasa alami ke dalam bahasa pemrograman tidak mungkin dapat dilakukan apabila kita belum mampu menangani karakteristik dari bahasa alami. Karakteristik bahasa alami tersebut adalah ambiguitas dan banyaknya kemungkinan cara mengekspresikan suatu hal yang bermakna sama.

Namun demikian, kita masih dapat menerapkan lingkungan yang terkontrol dalam penulisan kode program dalam bahasa alami. Kontrol tersebut berupa sintaks yang sudah didefinisikan dan perlu dibuat seminimal mungkin agar penulisan kode program menjadi lebih fleksibel. Adanya penerapan sintaks tersebut membuat target pengguna sistem mengacu kepada para pemrogram komputer pemula yang memiliki kemampuan pemecahan masalah yang baik.

Nilai Artikel Ini
Artikel Berhubungan:

Sponsor Warstek.com:
Albertus Kelvin

Albertus Kelvin

A student majoring in Computer Science at Bandung Institute of Technology (ITB). Doing research on the powerful combination of NLP and Program Synthesis is one of my hobbies

Yuk Ajukan Pertanyaaan atau Komentar