Bagi anda yang bergelut dengan php tiap harinya, pernah terpikir ga bagaimana bahasa pemrograman sejuta umat ini dibuat? Ternyata bahasa pemrograman PHP pada mulanya tidak dirancang sebagai bahasa pemrograman baru, tapi hanya skrip bahasa C yang memanfaatkan CGI untuk memproses data  untuk keperluan menghitung jumlah kunjungan dan menerima input dari form website Rasmus Rerddorf.  Maka jangan heran, awal  kependekan PHP Sendiri adalah Personal Homepage Tools, dan bukan PHP programing language.

Menariknya tool ini di opensourcekan dan dibagikan ke programer yang lain dan fitur fitur terus ditambahkan ke dalamnya. Maka dalam waktu yang tidak begitu lama (Sekitar 1 sampai 2 tahun), fitur itu dikembangkan agar bisa memproses form HTML, berubahlah nama PHP menjadi PHP/F1 (PHP /Form Interpreter). Mungkin anda mengira hebat ya seorang Rasmus bisa menciptakan PHP sendiri. Berapa ribu baris kode yang ditulis? Ternyat PHP v1 itu sangat sederhana. Bahkan jika merujuk pada spesifikasi bahasa pemrograman, PHP v1 belum bisa disebut bahasa pemrograman, hanya tool bahasa C yang dipakai untuk memproses data dinamis lewat Web.Versi ini bahkan belum bisa terkoneksi ke database. Lebih rinci tentang sejarah versi satu bisa anda baca di http://php.net/manual/en/history.php.php.

Artikel ini saya tulis bagi yang tertarik dengan sejarah bahasa pemorgraman PHP atau mahasiswa yang tertarik membuat bahasa pemrograman sederhana, memahami awal PHP muncul dan kodenya akan makin memahamkan anda bagaimana pemrograman web saat itu dibuat dan bagaimana Aplikasi web bekerja dan memotivasi kita untuk menjadi programer yang lebih baik.

Analisa Code

Source code PHP v1 bisa anda download di http://museum.php.net. Source code PHP versi 1 hanya berukuran 27kb dalam format Zip yang terdiri dari 19 File source C, MakeFile dan Readme. Total baris source code PHP hanya sekitar 3200-an Baris kode. Artinya kode program yang dibuat untuk tugas akhir anak teknik informatika saat ini jauh lebih banyak daripada source code PHP v1.

Berikut ini adalah daftar filenya

rw-r--r-- 1 candra candra 5,3K Jun 22  1995 common.c
-rw-r--r-- 1 candra candra 1,3K Jun 12  1995 common.h
-rw-r--r-- 1 candra candra 1,9K Jun 12  1995 config.h
-rw-r--r-- 1 candra candra 1,4K Jun 22  1995 error.c
-rw-r--r-- 1 candra candra 1,1K Jun 12  1995 html_common.h
-rw-r--r-- 1 candra candra  18K Jun 12  1995 License
-rw-r--r-- 1 candra candra 1,8K Jun 22  1995 Makefile
-rw-r--r-- 1 candra candra 9,4K Jun 22  1995 phpf.c
-rw-r--r-- 1 candra candra  29K Jun 22  1995 phpl.c
-rw-r--r-- 1 candra candra  13K Jun 22  1995 phplmon.c
-rw-r--r-- 1 candra candra 8,3K Jun 22  1995 phplview.c
-rw-r--r-- 1 candra candra 3,2K Jun 22  1995 post.c
-rw-r--r-- 1 candra candra 1,2K Jun 12  1995 post.h
-rw-r--r-- 1 candra candra 2,7K Jun 12  1995 README
-rw-r--r-- 1 candra candra 5,1K Jun 22  1995 subvar.c
-rw-r--r-- 1 candra candra 1,2K Jun 16  1995 version.h
-rw-r--r-- 1 candra candra 5,1K Jun 22  1995 wm.c
-rw-r--r-- 1 candra candra 1,1K Jun 12  1995 wm.h

Perhatikan bahwa kode ini terakhir kali di edit tahun 1995, sekitar 23 Tahun yang lalu, mungkin sebagian pembaca disini belum lahir :).
Kode PHP paling banyak ada difile phpl.c sepanjang 1049 Baris. rinciannya bisa anda lihat dibawah ini .

  36 common.h
   50 config.h
   27 html_common.h
   34 post.h
   29 version.h
   32 wm.h
  204 common.c
   41 error.c
  398 phpf.c
 1049 phpl.c
  524 phplmon.c
  278 phplview.c
  130 post.c
  156 subvar.c
  166 wm.c
 3154 total

Inti kode PHP ada di 4 file yaitu phpl.c, phpf.c, phplmon.c dan phplview.c. Mari kita lihat sedikit fungsi di phpf.c yang merupakan code untuk memproses form.

void PrintFormType(int type, char *field, char *text) {
        switch(type) {
        case 'M':
                if(field) printf("<b>%s:</b> <a href=\"mailto:%s\">%s</a><br>\n",field,text,text);
                else printf("<a href=\"mailto:%s\">%s</a><br>\n",text,text);
                break;
        case 'm':
                if(field) printf("<b>%s:</b> <a href=\"mailto:%s\">%s</a> \n",field,text,text);
                else printf("<a href=\"mailto:%s\">%s</a> \n",text,text);
                break;
        case 'L':
                if(field) printf("<b>%s:</b> <a href=\"%s\">%s</a><br>\n",field,text,text);
                else printf("<a href=\"%s\">%s</a><br>\n",text,text);
                break;
        case 'l':
                if(field) printf("<b>%s:</b> <a href=\"%s\">%s</a> \n",field,text,text);
                else printf("<a href=\"%s\">%s</a> \n",text,text);
                break;
        case 'T':
                if(field) printf("<b>%s:</b> %s<br>",field,text);
                else printf("%s<br>",text);
                break;
        case 't':
                if(field) printf("<b>%s:</b> %s ",field,text);
                else printf("%s ",text);
                break;
        case 'I':
                if(field) printf("<b>%s:</b> <i>%s</i><br>",field,text);
                else printf("<i>%s</i><br>",text);
                break;
        case 'i':
                if(field) printf("<b>%s:</b> <i>%s</i> ",field,text);
                else printf("<i>%s</i> ",text);
                break;
        case 'B':
                if(field) printf("<b>%s:</b> <b>%s</b><br>",field,text);
                else printf("<b>%s</b><br>",text);
                break;
        case 'b':
                if(field) printf("<b>%s:</b> <b>%s</b> ",field,text);
                else printf("<b>%s</b> ",text);

}
}

Berikut ini adalah fungsi error yang ada di php versi 1.


void html_error(char *str1, char *str2) {
puts("Content-type: text/html");
puts("");
printf("<html><head><title>%s</title></head><body>\n",str1);
printf("<h2>%s</h2>\n",str1);
if(str2) printf("<b>%s</b>\n",str2);
puts("</body></html>");
}

void html_head(char *str) {
puts("Content-type: text/html");
puts("");
if(str) printf("<html><head><title>%s</title></head>\n",str);
}

Jika anda paham bahasa c, pasti anda akan tertarik dengan konstruksi PHP di awal yang memang sederhana. Karena awalnya PHP hanyalah tool CGI, maka PHP sangat lemah dari sisi bahasa pemrograman. PHP Baru benar benar menjadi bahasa pemrograman ketika sudah versi 7. Versi versi sebelumnya merupakan versi bahasa pemprograman setengah matang, makanya programer di luar negeri banyak yang pindah ke Python, Java atau Ruby. Selama 20 tahun berkembang, PHP akhirnya menjadi bahasa yang matang di versi 7. Jika anda mahasiswa IT coba buat analisa kodenya atau membuat tool sederhana dengan Bahasa C untuk memproses form dari web. Jika anda bisa membuat program CGI sederhana yang diproses dengan bahasa C maka sejatinya anda sudah mampu membuat bahasa pemrograman sekelas PHP v1. Ingin mencoba bagaimana membuat program web di tahun 1995 dengan bahasa C? anda bisa mulai disini http://www.purplepixie.org/cgi/howto.php

By Candra Adi Putra

Candra Adi Putra S.Kom adalah Alumni STMIK AKAKOM Yogyakarta. hubungi saya di candraadiputra (at) gmail (dot) com

One thought on “Menganalisa Source Kode PHP versi 1”

Leave a Reply

Your email address will not be published. Required fields are marked *