NET105 – Migrasi PHP ke ASP.NET
Migrasi
PHP ke ASP.NET (NET105)
Willy Ali Ahmad Heryana Rimbun Marpaung Basirudin Rachman
Project Otak 2005 Project Otak – http://otak.csharpindonesia.net
2
NET105 – Migrasi PHP ke ASP.NET
Project Otak Project otak adalah project community yang bertujuan untuk menyediakan resources tentang informasi teknologi .NET bagi orang-orang yang ingin belajar teknologi .NET.
Trademark Acknowledgements Team project otak akan berusaha menyediakan informasi trademark termasuk semua produk yang telah disebut didalam buku ini. Windows, Framework .NET, C#, dan Visual Studio.NET adalah trademark dari Microsoft.
Credits Project Manager
Secretary
Agus Kurniawan
Dewi Maya
Technical Writer Willy (Leader) Ali Ahmad Heryana Rimbun Marpaung Basirudin Rachman
Editor Agus Kurniawan
Cover Designer Danni Afasyah
Version 1.0 Printed: 26 Juni 2005 Book Code: NET105 Update E-Book : http://otak.csharpindonesia.net
Semua materi yang ada didalam buku ini adalah satu kesatuan. Tidak boleh sebagian atau seluruh materi didalam buku ini diubah tanpa seijin team project otak.
Project Otak – http://otak.csharpindonesia.net
3
NET105 – Migrasi PHP ke ASP.NET
Kata Pengantar
Puji syukur kepada Tuhan YME atas rahmat-NYA sehingga team project otak dapat menyelesaikan e-book ini melalui project otak. Buku ini ditulis untuk melengkapi kasanah sumber ilmu dalam bidang pemrogaman. Buku ini merupakan buku migrasi dari PHP ke ASP.NET. Buku ini sangat cocok untuk para pembaca yang memiliki dasar pemrograman PHP. Penulis juga sebagai manusia biasa maka penulis tidak lepas dari kesalahan sehingga penulis menerima saran dan kritik yang membangun. Semoga buku ini berguna untuk para mahasiswa, developer, professional dan pemerhati software.
Depok, 26 Juni 2005
Team Project Otak
Project Otak – http://otak.csharpindonesia.net
4
NET105 – Migrasi PHP ke ASP.NET
Tentang Penulis Willy Willy lulusan Universitas Bina Nusantara, saat ini bekerja sebagai software developer pada salah satu perusahaan swasta di Jakarta menggunakan VB dan .NET sebagai bahasa pemrograman utama. Lahir di Jakarta, pada tahun 1982. Kupersembahkan buku ini untuk Meifei. Willy telah memberikan kontribusi di buku ini pada bab 1, 6, 7, dan 8
Ali Ahmad Heryana Ali Ahmad Heryana, saat ini bekerja sebagai Developer di PT Ericsson Indonesia. Lahir di Subang - Jawa Barat dan menamatkan kuliahnya di salah satu PT di Bandung. Ali adalah salah seorang pencetus munculnya web csharpindonesia.net dan aspxindonesia.net yang sekarang menjadi bagian dari INDC. Semua hal yang berhubungan dengan IT dan Telekomunikasi sangat digemari untuk dipelajarinya. Selain sebagai salah satu group leader di INDC pada komunitas ASP.NET Indonesia, di waktu luangnya, Ali tidak ketinggalan untuk mengikuti dunia otomotif terutama yang berhubungan dengan Motor. Kupersembahkan buku ini: " buku/ebook ini dipersembahkan buat putri pertama ku Nabila & istriku Azan N" Ali Ahmad Heryana telah memberikan kontribusi di buku ini pada bab 9
Project Otak – http://otak.csharpindonesia.net
5
NET105 – Migrasi PHP ke ASP.NET
Rimbun Marpaung Rimbun lahir di Medan, pada tanggal 11 Oktober 1980. Lulusan DIII Ilmu Komputer USU. Bekerja sebagai Software Engineer di PT. Halotec Indonesia. Baru serius dalam pemrograman sekitar tahun 2003. Kupersembahkan buku ini: Buat kedua orang tuaku, dan keempat saudaraku serta orang yang dekat denganku, Hilda Fitri Yanti Rimbun Marpaung telah memberikan kontribusi di buku ini pada bab 2, 3, dan 4
Basirudin Rachman Basirudin lulusan Ilmu Komputer IPB, Bekerja di PT Kontinum Era Artha sebagai Team Leader/ Software Development Manager. Koordinator Group Leader C# di INDC, Founder komunitas Virtual Garage (alumni Ilmu Komputer IPB), Anggota Moslem Information Technology Association (MIFTA). Kupersembahkan buku ini : Untuk dunia ilmu pengetahuan, Istriku (yg sedang belajar .NET :) ), .NET ers ... , PHP ers ... Basirudin Rachman telah memberikan kontribusi di buku ini pada bab 5
Project Otak – http://otak.csharpindonesia.net
6
NET105 – Migrasi PHP ke ASP.NET
Daftar Isi Project Otak .......................................................................................................3 Credits .................................................................................................................3 Kata Pengantar .....................................................................................................4 Tentang Penulis ....................................................................................................5 Daftar Isi ...............................................................................................................7 1. Pengenalan Dasar ............................................................................................9 1.1 Pengenalan Dasar PHP ............................................................................................. 9 1.2 Pengenalan Dasar ASP.NET..................................................................................... 9 2. Sintak PHP Dan ASP.NET..............................................................................12 2.1 Syntax Dasar ........................................................................................................... 12 2.2 Variable.............................................................................................................. 18 2.3 Flow Kontrol...................................................................................................... 21 2.4 Array .................................................................................................................. 27 2.5 Fungsi................................................................................................................. 30 3. Manajemen State............................................................................................34 3.1 Cookies ................................................................................................................... 34 3.2. Session ................................................................................................................... 44 3.3 View State Pada ASP.Net ....................................................................................... 50 4. Validasi ...........................................................................................................53 4.1 Validasi Pada PHP .................................................................................................. 54 4.2 Validasi Pada ASP.Net ........................................................................................... 58 5. Penanganan Error...........................................................................................72 5.1 Penanganan Error.................................................................................................... 72 5.2 Penanganan Error Pada PHP................................................................................... 74 5.2.1 Penanganan Error................................................................................................. 75 5.2.2 Penanganan Error Pada PHP 5............................................................................. 80 5.3 Penanganan Error Pada C# ..................................................................................... 84 5.3.1 Try Statement ....................................................................................................... 85 5.3.2 Melempar Exception ............................................................................................ 86 5.3.3 Pernyataan Catch ................................................................................................. 87 5.3.3.1 Menentukan Catch Untuk Menangkap Exception Tertentu.............................. 88 5.3.3.2 Penggunaan Beberapa Blok Catch.................................................................... 89 5.3.4 Pernyataan Finally ............................................................................................... 90 5.3.5 Lebih Jauh Tentang Class Exception................................................................... 92 5.3.6 Custom Exception ................................................................................................ 94 6. Koneksi Data...................................................................................................97 6.1 Koneksi ke Database pada PHP.............................................................................. 97 6.2 Koneksi ke Database pada ASP.NET ................................................................... 102 6.2.1 Melakukan Koneksi ke Database................................................................... 103 6.2.2 Membuat Data Set.......................................................................................... 107 6.2.3 Menampilkan Isi Data Set.............................................................................. 108
Project Otak – http://otak.csharpindonesia.net
7
NET105 – Migrasi PHP ke ASP.NET
6.2.4 Menampilkan Data dengan Data View .......................................................... 109 6.2.5 Manipulasi Data dengan Data Set.................................................................. 110 6.3 Menambah, Merubah, dan Menghapus Data ........................................................ 110 7. Caching dan Send Email ..............................................................................113 7.1 Caching pada ASP.NET........................................................................................ 113 7.1.1 Caching Web Form ........................................................................................ 113 7.1.2 Fragment Caching.......................................................................................... 115 7.1.3 Caching Data Aplikasi ................................................................................... 117 7.2 Send Email ............................................................................................................ 118 7.2.1 Send Email dengan PHP ................................................................................ 119 7.2.2 Send Email dengan ASP.NET ....................................................................... 119 8. Debug ...........................................................................................................121 8.1 Debug pada PHP ................................................................................................... 121 8.2 Debug pada ASP.NET dengan VS.NET............................................................... 121 9. Tool “PHP to ASP.Net Migration Assistant” ..................................................123 9.1 Apakah Itu Tool “PHP to ASP.Net Migration Assistant” ?.................................. 123 9.2 Menggunakan Tool “PHP to ASP.Net Migration Assistant” ............................... 123 9.2.1 Visual Studio .Net.............................................................................................. 124 9.2.2 Command Window ............................................................................................ 128 9.3 Keuntungan dan Kelemahan Tool “PHP to ASP.Net Migration Assistant”......... 130 9.3.1 Keuntungan Tool “PHP to ASP.Net Migration Assistant”................................ 130 9.3.2 Kelemahan Tool “PHP to ASP.Net Migration Assistant” ................................. 132 Lampiran...........................................................................................................133 Strukutur Organisasi Project Otak 2005-2006 ..................................................134 Program Donatur Project Otak..........................................................................136
Project Otak – http://otak.csharpindonesia.net
8
NET105 – Migrasi PHP ke ASP.NET
1. Pengenalan Dasar Willy
PHP dan ASP.NET adalah dua bahasa pemrograman yang digunakan pada pembuatan aplikasi web yang bersifat server side. Kedua bahasa ini dapat diintegrasikan dalam HTML sehingga suatu halaman web dapat menjadi halaman yang dinamis. Seperti kita ketahui, aplikasi web menggunakan arsitektur client-server. Aplikasi web ditempatkan pada sisi server untuk memberikan respon (response) atas setiap permintaan (request) dari client melalui internet. Respon yang diberikan akan dikirimkan ke client dan ditampilkan dalam browser.
1.1 Pengenalan Dasar PHP PHP merupakan singkatan dari Personal Home Page tool dan sering digunakan pada web server yang berbasis Linux, walaupun begitu PHP juga dapat digunakan pada komputer yang berbasis Windows. Untuk dapat menggunakan PHP, Anda harus menginstall web server pada komputer Anda. Web server yang umum digunakan untuk sistem operasi windows adalah Personal Web Server (PWS) untuk Windows 98 atau Internet Information Service/Server (IIS) untuk Windows 2000, XP, atau NT. Sedangkan pada komputer berbasis Linux, web server yang umum digunakan adalah Apache. PHP dapat “melakukan” semua hal yang bisa dilakukan oleh aplikasi program CGI, seperti mengambil nilai form, menghasilkan halaman web yang dinamis, serta mengirim dan menerima cookie. PHP juga dapat berkomunikasi dengan layanan-layanan yang menggunakan protokol IMAP, SNMP, NNTP, POP3, HTTP, dan lain-lain. Namun tampaknya kelebihan PHP yang paling signifikan adalah kemampuannya untuk melakukan koneksi dengan berbagai macam database, seperti MySQL, PostgreSQL, dBase, Oracle, Direct MS-SQL, Informix, dan lain-lain. Untuk mendapatkan file distribusi instalasi PHP, Anda dapat mencarinya pada situs resmi PHP, yaitu http://www.php.net. Di sana terdapat file distribusi baik untuk sistem operasi yang berbasis UNIX maupun Windows.
1.2 Pengenalan Dasar ASP.NET ASP.NET adalah salah satu platform dari Microsoft yang dapat Anda gunakan untuk membuat aplikasi web dan web service yang berbasis IIS. ASP.NET juga merupakan bagian dari .NET Framework dan terdiri dari beberapa komponen pendukung. • Namespace System.Web
Project Otak – http://otak.csharpindonesia.net
9
NET105 – Migrasi PHP ke ASP.NET
Namespace ini merupakan bagian dari .NET Framework dimana didalamnya terdapat class-class yang digunakan dalam pemrograman aplikasi web seperti HTTP request, HTTP response, browser, dan e-mail. • Server control dan HTML control Merupakan komponen user-interface yang Anda gunakan mengumpulkan informasi atau menyediakan informasi kepada user.
untuk
Selain komponen-komponen di atas, ASP.NET juga menggunakan beberapa tools tambahan yang merupakan kunci dalam pemrograman ASP.NET, seperti: • Microsoft Internet Information Services (IIS). IIS bertugas untuk mengatur aplikasi web pada sisi server, meneruskan request dari klien ke aplikasi, dan mengembalikan respon dari aplikasi ke klien. • Bahasa pemrograman Visual Basic .NET, Visual C#, dan Visual J# Ketiga bahasa pemrograman ini memiliki dukungan yang sudah terintegrasi dalam Visual Studio .NET untuk pembuatan aplikasi web. • .NET Framework Merupakan suatu set lengkap dari kumpulan class-class yang digunakan dalam pemrograman .NET, termasuk class-class ASP.NET dan class-class yang digunakan dalam tujuan pemrograman lainnya seperti array, manipulasi string, akses file, konversi tipe data, dan lain-lain. • Microsoft ADO.NET Komponen yang menyediakan akses terhadapa Microsoft SQL Server dan ODBC Database. Akses terhadap data seringkali menjadi kunci utama dalam aplikasi web. • Microsoft Application Center Test (ACT) Komponen Visual Studio .NET untuk melakukan testing pada aplikasi web. ASP.NET memiliki banyak kelebihan dibandingkan platform lain dalam hal pengembangan aplikasi web. Kelebihan utamanya adalah integrasi antara ASP.NET dengan Windows Server dan tools pemrogramannya. ASP.NET juga mudah untuk dibuat, debug, dan dikembangkan dalam satu aplikasi, yaitu Visual Studio .NET. Berikut adalah kelebihan-kelebihan lain dalam pembuatan aplikasi web dengan menggunakan ASP.NET: • Sebagian dari aplikasi web dapat dikompilasi terlebih dahulu, sehingga mereka dapat dijalankan lebih cepat daripada skrip yang dijalankan secara interpreter seperti HTML. • Memiliki akses terhadap .NET Framework, yang memiliki banyak dukungan dan kemudahan dalam pemrograman berbasis Windows. • Manajemen state seacara otomatis untuk control-control pada halaman web (disebut server control) sehingga control tersebut memiliki sifat yang mirip dengan Windows control. • Kemampuan untuk membuat control baru atau pengembangan dari control yang sudah ada.
Project Otak – http://otak.csharpindonesia.net
10
NET105 – Migrasi PHP ke ASP.NET
• Sistem sekuriti yang terintegrasi dengan Windows atau menggunakan metode autentikasi lainnya. • Integrasi dengan ADO.NET yang menyediakan fasilitas akses data dan perancangan database dari dalan Visual Studio .NET. • Dukungan penuh terhadap Extended Markup Language (XML) dan Cascading Style Sheet (CSS). • Fitur caching dan penyesuaian bahasa dan seting dalam aplikasi sesuai regional setting pada Windows.
Project Otak – http://otak.csharpindonesia.net
11
NET105 – Migrasi PHP ke ASP.NET
2. Sintak PHP Dan ASP.NET Rimbun Marpaung
2.1 Syntax Dasar Pada bagian ini kita akan membicarakan mengenai syntax dasar dari kedua script, php dan asp.net. Tetapi sebelum kita masuk ke pembahasan yang lebih jauh mengenai syntax dari keduanya, kita akan membicarakan mengenai beberapa tehnik penulisan code pada asp.net. Untuk dapat membuat suatu script aspx, dapat digunakan beberapa cara, yaitu : 1. menuliskan script langsung pada halaman aspx cara inipun dapat dilakukan dengan dua style, yaitu : a. dengan menggunakan tag <script> <SCRIPT LANGUAGE=”C#”> …… kode ditulis disini…. contohnya : <script language=C# runat=server> // pendeklarasian variable String str; int i; int i2; //fungsi untuk mengembalikan nilai setelah dikali 2 int DoubleIt(int input) { int faktor = 2; return input * faktor; } <%
// pendeklarasian variable yang digunakan untuk // menyimpan nilai dari query string object varQueryString; varQueryString = Request.QueryString; Response.Write("querystringnya adalah " + Server.HtmlEncode(varQueryString.ToString()));
%>
b. dengan menggunakan asp directive <%@ PAGE LANGUAGE=”C#” %> … kode asp.net ….
catatan:
Project Otak – http://otak.csharpindonesia.net
12
NET105 – Migrasi PHP ke ASP.NET
directive ini harus dituliskan pada awal baris (paling atas) dari script contohnya : <%@ Page language="C#" %> <script runat="server" > public void Page_Load() { Response.Write(“Hello world !!!”); }
2. menuliskan script dengan menggunakan code-behind. Cara ini merupakan cara baru dalam penulisan script. Berbeda dengan asp klasik atau php yang scriptnya dituliskan pada halamannya langsung, asp.net dengan code-behind ini kodenya tidak dituliskan dihalamannya secara langsung, tetapi ada satu file lagi yang merefer pada halaman aspx tersebut, halaman inilah yang berisi dari keseluruhan kode asp.netnya. Jadi dengan kata lain, satu halaman asp.net terdiri dari dua buah file, yaitu: - satu halaman aspx, biasanya hanya digunakan untuk tampilan - satu halaman code-behind, berisi kode yang digunakan oleh halaman aspx. Dan satu kelebihannya lagi, halaman code-behind ini dapat dibuat dengan berbagai macam bahasa pemrograman, tentunya yang support dengan teknologi .net seperti vb.net, C#, dsb, dengan catatan bahasa yang digunakan hanya satu saja tidak lebih, tidak boleh bercampur antara bahasa vb.net dan c# sebagai contoh. File code-behind ini mempunyai ekstensi yang tergantung pada bahasa apa yang digunakan. Kalau kita menggunakan vb.net, maka filenya akan berekstensi .vb, kalau menggunakan bahasa c# akan berekstensi .cs. Untuk dapat membuat script yang menggunakan code-behind, hanya tinggal menambahkan satu baris kode pada file aspx. Baris ini berisi nama file yang merupakan code-behind dari file aspx tersebut. <%@ Page Language=”C#” Codebehind="nama_file.aspx.cs" %> contoh: Kita membuat satu page dengan menggunakan visual studio .net dari menu File > Add New Item…, lalu pilih Web Form pada menu template, maka visual studio .net akan membuat 2 buah file, yaitu halaman .aspx dan .aspx.cs jika menggunakan bahasa C#, .aspx.vb jika menggunakan bahasa VB. Jadi andaikan kita memberi nama web form tersebut dengan nama test.aspx, maka akan menghasilkan 2 buah file, yaitu: 1. file test.aspx, yang berisi: <%@ Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="ASPCode.test" %>
test <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name=vs_defaultClientScript content="JavaScript"> <meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
Project Otak – http://otak.csharpindonesia.net
13
NET105 – Migrasi PHP ke ASP.NET
2. file test.aspx.cs (karena kita menggunakan bahasa C#), yang berisi: using using using using using using using using using using
System; System.Collections; System.ComponentModel; System.Data; System.Drawing; System.Web; System.Web.SessionState; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.HtmlControls;
namespace ASPCode { /// <summary> /// Summary description for test. /// public class test : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here // baris ini digunakan untuk menampilkan kata //Hello World !!! pada browser Response.Write("Hello World !!!"); } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); base.OnInit(e); } /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion }
catatan: Semua kode diatas dibuat otomatis oleh visual studio.net kecuali baris yang bercetak tebal. Hasilnya adalah seperti gambar dibawah ini.
Project Otak – http://otak.csharpindonesia.net
14
NET105 – Migrasi PHP ke ASP.NET
untuk selanjutnya pembahasan pada bab ini dan bab yang akan datang akan menggunakan cara yang kedua ini, yaitu dengan memakai code-behind. Dan kode yang akan ditulis adalah pada baris yang bercetak tebal diatas, pada bagian private void Page_Load.
2.1.1 Tag Script
PHP
Setiap script php diawali dan diakhiri (diapit) oleh tag-tag tertentu yang menandai awal dan akhir dari scrip php. Untuk menuliskan tag pada php ada beberapa macam cara yang dapat digunakan, yaitu: - Cara I - Cara II - Cara III <script language=”php”> … script php … - Cara IV <% … script php … %>
ASP.NET Sedangkan pada ASP.Net, setiap script hanya diapit oleh tanda : <% … %> catatan: tag ini hanya digunakan pada file .aspx, tidak pada code-behind. Sedangkan pada codebehind, tidak diperlukan tag khusus.
2.1.2 Output
PHP
Untuk menghasilkan output kelayar pada PHP dapat digunakan perintah echo atau print. Misal: echo “hallo PHP”; print “hallo PHP”; ASP.NET
Project Otak – http://otak.csharpindonesia.net
15
NET105 – Migrasi PHP ke ASP.NET
sedangkan pada ASP.Net dengan menggunakan Response.write. misal: Response.Write (“Hallo ASP.Net”);
2.1.3 Embedded dan Non Embedded Script
PHP
script pada php dapat disisipkan pada html dan dapat dibuat berdiri sendiri (terpisah dari html) dan dapat menyisipkan tag-tag html pada script php. - disisipkan pada html <TITLE>
atau:
<TITLE>
<script language=”PHP”> echo “Hello world !!!”;
- script php yang berdiri sendiri:
- menyisipkan tag html pada script php ”; echo “
echo “<TITLE> echo “ echo “ echo “ echo “
echo “Hello world !!!”; echo “ echo “