Pages

Selasa, 24 November 2009

PHP dan ASP, Sebuah Perbandingan

Diantara bahasa pemprograman server side, kita mengena PHP dan ASP sebagai bahasa pemprograman yang populer dan paling sering digunakan. Yang sering menjadi pertanyaan saya adalah, diantara keduannya mana yang lebih baik? mana yang harus saya pilih? Sebuah jawaban tentu saja harus muncul dari pemahaman yang mendalam untuk melihat dari berbagai sisi. Berikut uraiannya: Sebuah Perbandingan: Platform ASP adalah bahasa pemprograman Microsoft yang membutuhkan server IIS dan Windows untuk menjalankannya. Memang dimungkinkan untuk menjalankan ASP di server Apache meskipun tidak akan semaksimal jika menggunakan php di Apache tentunya. Tapi sekarang sudah ada pihak ketiga yang mengembangkan pada platform lain misalnya, Linux, Solaris dll. Salah satu Vendor pengembangnya adalah ChiliSoft Inc. Anda bisa membaca artikel yang berkaitan dengan ini di sini. Satu hal yang perlu diingat adalah kebutuhan akan instalasi .NET framework jika ingin menjalankan ASP di atas Server Apache yang berbasis Linux. Satu lagi sehubungan dengan .NET, siap-sap saja dengan space hardisk yang dibutuhkan sebab .Net terkenal rakus dan memakan banyak space hardisk buat menjalankan aplikasi-aplikasinya. PHP bisa dijalankan di hampir semua web server dan hampur semua platform. 25 database, termasuk Adabas D, dBase, Empress, FilePro, FrontBase, Hyperwave, IBM DB2, Informix, Ingres, Interbase, mSQL, direct MS-SQL, MySQL, SQLite, Oracle, Ovrimos, PostgreSQL, Solid, Sybase, Unix dbm, dan Velocis. Jadi tidak ada masalah di mana PHP harus dijalankan. Bahkan PHP bisa dijalankan dengan cukup sukses di IIS yang berbasis Windows, pengalaman saya hampir tidak ada masalah berarti. Syntax dan Semantics ASP menggunakan bahasa standar yang dikembangkan oleh Microsoft yaitu, Microsoft VBScript dan Jscript. Developer ASP paling banyak menggunakan VBScript. jadi bisa dikatakan ASP sebenarnya merupakan paket dari bebrapa bahasa pemprograman yang berjalan melalui .NET framework. Ketika Anda menggunakan ASP itu berarti Anda juga sedang menggunakan JavaScript atau VBScript atau C#. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaanya. Ketika Anda menggunakan PHP itu berarti anda sedang menggunakan PHP itu sendiri, dimana PHP merupakan bahasa program yang sedang anda gunakan. PHP dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah system. Untuk mengetahui perbedaan cara penanganan sebuah code dari kedua program tersebut, kita bisa lihat dari contoh berikut: Ambil contoh untuk kasus pembacaan kontent dari sebuah file. Di PHP ini adalah masalah sederhana untuk membuat pointer ke sebuah file, memasukan kontent file tersebut ke variabel dan kemudian menutup pointer. Bahkan jika proses tersebut melibatkan proses pengecekan untuk memastikan apakah file tersebut ada, kita hanya membutuhkan empat baris script yang bisa dijalankan di situasi apapun, tidak masalah dimana lokasi maupun apa format dari file tersebut. Beda ceritanya jika menggunakan ASP. Pertama tama Anda harus mengambil dari lima classes berbeda tergantung format file apa yang ingin anda baca. Setelah anda menemukan class yang sesuai anda tinggal menuliskan tiga baris code untuk mendapatkan kontent tersebut. Masalahnya jika situasinya berbeda, misalkan format file yang hendak dibaca berbeda, anda harus kembali menulis ulang code yang anda buat tadi menggunakan class baru yang sesuai dengan situasi tersebut. Jadi untuk urusan ini PHP lebih maintainable dibandingkan ASP. PHP memiliki lebih dari 85 function untuk memanipulasi string. Pada PHP 5 selain ada peningkatan terhadap kemampuan pemrograman berorientasi objek (OOP), juga ada peningkatan dukungan terhadap XML dan Web Service, yang menggunakan libxml2. Tapi sedikit susah menerapkan mvc (model view controler). Tapi itu bisa dibantu dengan memakai smarty. Beberapa orang mengkhawatirkan dengan source PHP yang kelihatan. Saat ini tidak ada produk gratis untuk mengkompilasi kode PHP. Bandingkan dengan Python atau Java misalnya, yang sejak awal sudah memiliki kemampuan menyimpan hasil kompilasi bytecode ke dalam file. Artinya, sebagian vendor aplikasi mungkin mempertimbangkan untuk tidak menggunakan PHP karena takut kodenya dapat dilihat oleh klien/pembeli program. Ada produk bernama Zend Encoder untuk mengatasi masalah ini, namun produk ini harganya mahal. Pertama diluncurkan dibandrol $6000 per mesin, meskipun kini—setelah diprotes habis-habisan oleh komunitas PHP—“hanya” berharga sekitar $2000 dan juga ada opsi pembayaran berlangganan (meskipun ini artinya pengembang aplikasi harus membayar terus-menerus pada Zend $50/bulan jika ingin masih bisa mengkompilasi kode PHP-nya). ASP memiliki Model Obyek yang bagus. Lewat model objek ini, Anda dapat mengakses dan memodifikasi header HTTP dan komponen dokumen melalui serangkaian method dan property. Namun kemudahan-kemudahan ini bukan sesuatu yang tidak dapat dilakukan oleh mod_perl dan PHP. HTML::Embperl, misalnya, mendukung variabel session. Baik PHP dan mod_perl dapat memodifikasi header HTTP dan mendukung koneksi database persisten. Silakan kunjungi situs aspvphp.com untuk perbandingan (ASP VS PHP) lebih lanjut. Kecepatan PHP ditulis dalam bahasa C murni, jadi meskipun mungkin tidak secepat perl, tapi mengingat PHP memang diciptakan dengan tujuan kusus untuk pemprograman server site, maka bisa dipastikan PHP merupakan yang tercepat dibanding dengan rivalnya. Dan kecepatan ini akan semakin dikembangkan dari versi ke versi http://www.benpinter.net/article.php?story=20031121224439960. Modul PHP berjalan di dalam ruang memorinya sendiri sehingga tidak ada waktu yang hilang untuk berhubungan dengan object atau system lain yang berjalan di dalam proses yang berbeda. Selain itu, page yang dibangun dengan PHP rata-rata memiliki kapasitas yang sangat kecil sehingga sangat cepat untuk diakses. ASP bisa di tulis dalam beberapa bahasa yang berbeda dengan level kompleksitas yang cukup tinggi. Beberapa bahasa yang dipakai kemudian akan diterjemahkan kedalam apa yang disebut Common Language Infrastructure (CLI) yang kemudian fed ke mesin virtual dan diesekusi. Proses yang cukup berat dan terkenal lambat. Konektivitas ASP biasa melakukan koneksi ke Microsoft SQL server dan mungkin Access. Memang dimungkinkan untuk melakukan koneksi ke yang lain, tapi sangat direkomendasikan untuk hanya melakukan koneksi ke SQL server. Juka untuk konek ke hal lain menggunakan ASP anda butuh membuat connection string. String berupa teks-teks bit yang rumit, setidaknya bagi saya pribadi. Mungkin akan lebih mudah jika seandainya ASP membuat sebuah function lalu menambahkan parameter yang benar kedalamnya. Entah lah PHP bisa melakukan koneksi ke hampir semua server. Bahkan Anda bisa membuat semacam flat text file dan menggunakannya sebagai database. Kecepatan server juga tidak selalu menjadi masalah. Saya biasa menggunakan class ADODB untuk melakukan konekse ke berbagai server. Biaya Untuk menjalankan ASP Anda membutuhkan hardware dengan spesifikasi yang cukup berat dan software berlisensi Microsoft yang tentu saja tidak murah (ada MS SQL dan IIS). PHP biasanya berjalan di server Apache berbasis Linux. Baik PHP maupun Linux adalah produk open source, jadi Anda bisa memotong anggaran untuk keperluan software di sini. Spesifikasi hardware yang dibutuhkan pun tidak terlalu tinggi. Anda sudah bisa menjalankan sistem PHP menggunakan Pentium 3 dengan 128MB RAM. Keamanan Bisa dikatakan bahwa dua lubang keamanan PHP terletak pada Registrasi Global dan magic quotes. The register_globals directive adalah cara dimana POST and GET variables diubah menjadi server side variable on the fly. Variabel global di PHP dapat berasal dari masukan pengunjung Web (dari GET/POST/Cookie), sehingga bila programernya ceroboh tidak menginisialisasi tiap variabel sebelum pemakaian, seorang penyerang dapat memasukkan nilai-nilai awal variabel ke dalam skrip untuk mengubah kelakuannya. Sebelum PHP 3.0.18 terdapat bug pada file upload yang banyak dieksploitasi untuk menembus banyak situs PHP. Dalam bug ini interpreter PHP dapat diakali untuk menulisi file di filesystem server mana pun sesuai keinginan penyerangnya, karena path dapat dimasukkan lewat form HTML. Beberapa kelemahan ini dapat dikonfigurasi atau dimatikan. Karena itu seorang programer PHP dan admin perlu mengetahui opsi-opsi konfigurasi PHP agar sistem mereka lebih aman. Magic quotes adalah refrensi dari apa yang lebih sering kita kenal sebagai SQL injection attacks. SQL Injection attack merupakan salah satu teknik dalam melakukan web hacking utk menggapai akses pada sistem database yg berbasis SQL. Teknik ini memanfaatkan kelemahan dalam bahasa pemprograman scripting pada SQL dalam mengolah suatu sistem database. Karena ASP merupakan komponen dari IIS, maka ASP memiliki level keamanan yang dimiliki oleh Windows NT, Windows 2000. Dengan partisi NTFS file ASP bisa diproteksi dengan berbagai macam cara. Salah satu kelemahan ASP adalah bug ::$DATA yang memungkinkan pengunjung melihat kode sumber sebuah halaman. Namun masalah keamanan ASP cukup terkait dengan arsitektur di tingkat yang lebih bawah, yaitu IIS/NT, dan bukan sepenuhnya karena rancangan dan implementasi ASP. Komunitas Dukungan komunitas PHP di internet memang jauh lebih banyak dibandingkan ASP. Perbandingan server yang mendukung PHP juga jauh lebih banyak dibanding dengan ASP, mengingat PHP identik dengan Linux dan Apache. Berdasarkan hasil survey Netcraft, lebih dari satu juta site menggunakan PHP sebagai bahasa pemrograman webnya. Hampir semua proyek opensource yang ada seperti Wordpress dan OsCommerce ditulis menggunakan PHP murni (hla iya tho, wong ASP kan tidak gratis .... he...he...he..) Jadi faktanya PHP memiliki lebih banyak resource di Internet untuk menolong para programer mempelajari bahasa ini. Google search untuk kata kunci "php tutorial" akan menghasilkan lebih dari 60 juta results, dimana pencarian dengan kata kunci "asp tutorial" hanya menghasilkan 25 juta. Dukungan komunitas ini akan membuat sebuah bahasa program lebih mudah untuk dipelajari dan digunakan untuk riset dan pengembangan. Filosofi ASP adalah produk dari Microsoft tahu sendiri lah apa konsekwensinya. Sedangkan PHP adalah produk dengan semangat opensource. ASP banyak dipake di bisnis, khususnya small, middle dan sedikit enterprise. kalo lo ngelamar kerja ke perusahaan2 besar pasti nyari programernya yg bisa asp PHP almost gak pernah dipake dunia bisnis strategis....apalagi yang krucial macam perbankan, dll Untuk tujuan bisnis (small, medium enterprise) mending pelajari ASP karena banyak digunakan. Bukan berarti PHP juga nggak memiliki sisi komersial karena banyak juga yang jualan aplikasi PHP di internet Jadi ke depan .NET dengan ASP.NET nya lah yang berkemungkinan besar bermain di dunia enterprise sedang PHP meskipun bisa masuk ke dalam enterprise tapi rada susah. Tapi jangan minder dulu buat para PHP programer sebab PHP tidak selalu identik dengan small scale buktinya situs yahoo kan menggunakan php http://lists.evolt.org/archive/Week-...14/139240.html Memang cukup seru jika kita memperdebatkan ASP dan PHP. Sebenarnya pertanyaanya bukanlah mana yang terbaik, tapi mana yang sesuai degan kebutuhan anda. Baik ASP maupun PHP memiliki karakter yang unik dan keunggulannya sendiri. Jika anda seorang programer, dan sudah biasa dengan Java atau C++, mungkin anda akan merasa lebih familier dengan kode program PHP. Sedangkan apabila Anda telah mendalami Visual Basic, dengan mudah akan memahami ASP. Lalu, sistem operasi pelayan web apa yang cocok dan akan anda gunakan, UNIX/LINUX atau Windows? server apa yang anda pilih Apache atau IIS? Tergantung berapa biaya yang akan dikeluarkan, produk layanan serta dukungan maintenance hosting yang seperti apa yang anda inginkan bukan? PHP memang lebih fleksibel, karena bisa berjalan pada berbagai platform, sedangkan ASP lebih optimal bila dijalankan di Windows. Sebagai pertimbangan lain, yaitu masalah database. Untuk layanan hosting berbasis Windows hanya menyediakan Microsoft Access, sedangkan bila ingin menggunakan Microsoft SQL Server perlu mengeluarkan biaya lagi. Sementara Kebanyakan hosting UNIX/Linux menggunakan pelayan database MySQL dengan keunggulan dan kekurangannya. Ref : http://solowebdesignid.blogspot.com/2007/05/php-dan-asp-sebuah-perbandingan.html

0 comments: