Eksperimen Pemrograman CGI Dengan Python dan Web Server Mongoose


Gambar di samping adalah diagram arsitektur CGI atau Common Gateway Interface, yakni sebuah standar yang mengatur/mendefinisikan tentang bagaimana informasi dipertukarkan antara web server dan skrip program. (Sumber: tutorialpoints.com)

Ketika HTTP Sever menerima permintaan file dari Web Browser, maka HTTP Server akan mencari file yang dimaksud dan jika file ditemukan, maka akan dikirimkan ke Web Browser.

Namun demikian, HTTP Server dapat dikonfigurasi sedemikian sehingga file yang diminta oleh Web Browser tidak dikirimkan ke Web Browser akan tetapi dieksekusi oleh Server, dan output hasil eksekusi programlah yang dikirimkan ke Web Browser untuk ditampilkan.

Fungsi HTTP Server yang mengeksekusi file program dan mengirimkan outputnya ke Web Server disebut sebagai CGI. Program yang dieksekusi disebut CGI Script.

Hampir semua interpreter dan kompiler dapat digunakan untuk membuat skrip CGI, misalnya: Perl, Python, PHP, Shell, Ch, C/C++, XBLite, dan lain sebagainya.

Pada tulisan ini akan diberikan contoh skrip CGI menggunakan bahasa Python. Adapun software-software yang dibutuhkan antara lain adalah:

  • Web Browser – pada eksperimen ini saya menggunakan Google Chrome
  • Web Server – pada eksperimen ini saya menggunakan Mongoose
  • Python – pada eksperimen ini saya menggunakan Python 2.5.4

Jika Anda belum mengenal web server Mongoose, Anda bisa membaca dulu tulisan yang membahas Mongoose, yakni: https://telinks.wordpress.com/2013/01/21/mengenal-mongoose-web-server-mini-yang-support-php-cgi/

πŸ˜€

imagePada eksperimen ini, program Mongoose saya letakkan di direktori/folder C:\Mongoose seperti ditunjukkan oleh screenshot di samping. Sub-folder web_root adalah tempat di  mana kita harus meletakkan file-file skrip html dan skrip CGI seperti PHP, Python, dan file-file lain yang diperlukan.

Btw, berikut adalah beberapa contoh penggunaan web server Mongoose untuk aplikasi pengontrolan relay melalui web/internet:

Nah, sekarang mari kita buat skrip Python sederhana untuk sekedar menguji apakah skrip CGI Python berhasil dieksekusi oleh web server dan hasilnya dapat ditampilkan di web browser.

# test-py.cgi
# Chandra MDE – http://teknikelektrolinks.com

def html1():  #html bagian atas
    print "Content-type: text/html\r\n\r\n"
    print  "<html><body>\n"
    print  "<h2>Tes Skrip Bahasa Python</h2>"
    print  "Deret Bilangan Prima antara 1-500"
    print  "<hr/>"
    print  "<p>Skrip ini dijalankan oleh interpreter Python 2.5.4</p>"
    print  "<p>Skrip mengidentifikasi bilangan antara 1-500 untuk"
    print  "ditentukan apakah termasuk bilangan prima atau tidak.</p>"

def html2():  #html bagian bawah
    print "<br /><br /><br /><hr>"
    print "<p>Chandra MDE – http://teknikelektrolinks.com</p>"
    print "</body></html>"

def isprime(n):  #fungsi seleksi bilangan prima
    if n == 1:
        return False
    for x in range(2, n):
        if n % x == 0:
            return False
    else:
        return True

def main():  # fungsi program utama
     #tampilan web bagian atas
     html1()

    #tampilkan deret bilangan prima
    for n in range(2, 500):
        if isprime(n):
            print n,

    #tampilan web bagian bawah
    html2()

if __name__ == ‘__main__’:
    main()

Screenshot skrip di atas pada web browser Google Chrome adalah sebagai berikut:

tes_python_cgi

Menarik, bukan?

Dengan demikian, langkah selanjutnya adalah bagaimana mengontrol modul driver relay seperti USB-2REL dan SER-2REL atau yang lainnya menggunakan Python.

Dengan kemampuan pemrograman skrip CGI Python dan dengan dukungan modul PyUSB dan PySerial, maka aplikasi pengontrolan relay melalui web dapat dilakukan dengan mudah.

Dan tidak seperti contoh aplikasi web relay sebelum-sebelumnya:

yang MASIH menggunakan bantuan program USB2R.EXE dan SER6REL.EXE yang dieksekusi oleh PHP dengan perintah exec(), maka dengan Python + PyUSB + PySerial, kita tidak memerlukan lagi file-file .EXE tersebut. Dan sehingga dengan demikian, skrip CGI pengontrolan relay yang dibuat dengan Python akan dapat digunakan pada platform lain seperti Mac dan Linux tanpa perubahan atau dengan hanya sedikit perubahan.

Sekian dan nantikan tulisan selanjutnya tentang aplikasi web relay dengan Python, PyUSB, dan PySerial.

Semoga bermanfaat, selamat belajar, dan selamat berkarya!

πŸ™‚

4 comments

  1. rattan furniture · Mei 17, 2014

    wah, berarti pake apache web server biasa bisa menjalankan web python ya?

  2. Ping-balik: Contoh Program Bilangan Prima Dengan C++
  3. Ping-balik: Membuat Program Bilangan Prima Dengan C++

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s