variabelphp

18
Variabel Dasar-dasar Variabel dalam PHP ditandai dengan karakter dollar kemudian diikuti dengan nama variabelnya sendiri. Nama variabel membedakan antara huruf kecil dan besar (case-sensitive). Nama variabel mengikutai aturan yang sama dengan label yang lain dalam PHP. Nama variabel yang diperbolehkan dimulai dengan huruf atau garis-bawah, kemudian diikuti dengan huruf, angka atau garis- bawah. Dalam regular expression, akan dituliskan sebagai : ’[a -zA-Z_\x7f- \xff][a-zA-Z0-9_\x7f-\ xff]*’ Catatan: Untuk keperluan kita di sini yang dimaksud dengan huruf adalah a-z, A-Z, dan karakter ASCII dari 127 hingga 255 (0x7f-0xff). 1 2 $var = "Bob"; 3 $Var = "Joe"; 4 echo "$var, $Var"; // menghasilkan "Bob, Joe" 5 6 $4site = ’not yet’; // tidak boleh; dimulai dengan angka 7 $_4site = ’not yet’; // boleh; dimulai dengan garis-bawah 8 $täyte = ’mansikka’; // boleh; ’ä’ adalah ASCII 228. 9 Dalam PHP, variabel selalu diisi dengan nilai. Dengan kata lain, ketika anda mengisikan sebuah ekspresi pada suatu variabel, semua nilai ekspresi asal akan disalin ke dalam variabel tujuan. Ini berarti setelah mengisikan nilai suatu variabel ke variabel yang lain, jika kita mengubah nilai salah satu variabel tidak akan mempengaruhi variabel yang lain. Untuk lebih jelas mengenai pengisian ini, lihat Ekspresi. PHP4 memberikan cara lain untuk mengisikan nilai ke variabel: assign by reference. Artinya, variabel yang baru merujuk (dengan kata lain, "menjadi alias untuk" atau "menunjuk pada") variabel asal. Perubahan pada variabel yang baru akan mempengaruhi variabel asal, dan sebaliknya. Ini juga berarti tidak ada proses penyalinan; sehingga pengisian variabel bekerja lebih cepat. Akan tetapi perlu diingat peningkatan kecepatan hanya dapat diamati pada pengulangan yang banyak atau pada pengisian array atau objek yang besar. Untuk mengisikan dengan rujukan, cukup menuliskan karakter ampersand (&) di awal variabel yang akan diisikan (variabel asal). Sebagai contoh, akan mencetak output 'Nama saya Bob' dua kali. 1 2 <?php 3 $foo = 'Bob'; // Mengisikan kata 'Bob' ke variabel $foo 4 $bar = &$foo; // Merujuk pada $foo melalui $bar.

Upload: maswahyu73

Post on 09-Jul-2015

127 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Variabelphp

Variabel

Dasar-dasar

Variabel dalam PHP ditandai dengan karakter dollar kemudian diikuti dengan nama variabelnya sendiri. Nama variabel membedakan antara huruf kecil dan besar (case-sensitive).

Nama variabel mengikutai aturan yang sama dengan label yang lain dalam PHP. Nama variabel

yang diperbolehkan dimulai dengan huruf atau garis-bawah, kemudian diikuti dengan huruf, angka atau garis-bawah. Dalam regular expression, akan dituliskan sebagai : ’[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*’

Catatan: Untuk keperluan kita di sini yang dimaksud dengan huruf adalah a-z, A-Z, dan karakter

ASCII dari 127 hingga 255 (0x7f-0xff).

1

2 $var = "Bob";

3 $Var = "Joe";

4 echo "$var, $Var"; // menghasilkan "Bob, Joe"

5

6 $4site = ’not yet’; // tidak boleh; dimulai dengan angka

7 $_4site = ’not yet’; // boleh; dimulai dengan garis-bawah

8 $täyte = ’mansikka’; // boleh; ’ä’ adalah ASCII 228.

9

Dalam PHP, variabel selalu diisi dengan nilai. Dengan kata lain, ketika anda mengisikan sebuah ekspresi pada suatu variabel, semua nilai ekspresi asal akan disalin ke dalam variabel tujuan. Ini berarti setelah mengisikan nilai suatu variabel ke variabel yang lain, jika kita mengubah nilai

salah satu variabel tidak akan mempengaruhi variabel yang lain. Untuk lebih jelas mengenai pengisian ini, lihat Ekspresi.

PHP4 memberikan cara lain untuk mengisikan nilai ke variabel: assign by reference. Artinya,

variabel yang baru merujuk (dengan kata lain, "menjadi alias untuk" atau "menunjuk pada") variabel asal. Perubahan pada variabel yang baru akan mempengaruhi variabel asal, dan sebaliknya. Ini juga berarti tidak ada proses penyalinan; sehingga pengisian variabel bekerja

lebih cepat. Akan tetapi perlu diingat peningkatan kecepatan hanya dapat diamati pada pengulangan yang banyak atau pada pengisian array atau objek yang besar.

Untuk mengisikan dengan rujukan, cukup menuliskan karakter ampersand (&) di awal variabel

yang akan diisikan (variabel asal). Sebagai contoh, akan mencetak output 'Nama saya Bob' dua kali.

1

2 <?php

3 $foo = 'Bob'; // Mengisikan kata 'Bob' ke variabel $foo

4 $bar = &$foo; // Merujuk pada $foo melalui $bar.

Page 2: Variabelphp

5 $bar = "Nama saya $bar"; // Menimpa variabel $bar dengan nilai yang

baru

6 echo $foo; // $foo akan ditimpa juga.

7 echo $bar;

8 ?>

9

Satu masalah penting yang harus diingat adalah, hanya nama variabel yang bisa diisikan dengan rujukan.

1

2 <?php

3 $foo = 25;

4 $bar = &$foo; // Pengisian yang diperbolehkan.

5 $bar = &(24 * 7); // Tidak boleh!; tidak merujuk pada nama variabel.

6

7 function test() {

8 return 25;

9 }

10

11 $bar = &test(); // Tidak benar; karena tes() adalah fungsi.

12 ?>

13

Variabel-variabel Terdefinisi

PHP menyediakan banyak variabel yang telah terdefinisi untuk semua skrip yang dijalankannya.

Banyak dari variabel-variabel ini, tidak dapat didokumentasikan sepenuhnya karena sangat tergantung pada server yang dijalankan, versi dan setup server, dan faktor yang lainnya. Beberapa variabel tidak bisa didapatkan jika PHP dijalankan pada mode perintah baris

(command-line).

Tanpa melihat faktor-faktor tersebut, disini diberikan variabel terdefinisi yang bisa dipakai jika PHP3 berjalan sebagai module server Apache.

Untuk mendapatkan daftar variabel terdefinsi (dan informasi yang lain), silahkan lihat (dan

gunakan) phpinfo().

Catatan: Daftar berikut hanyalah petunjuk sederhana mengenai variabel terdefinisi yang anda harapkan dapat anda pakai dalam skrip anda.

Variable-variabel dari Apache

Variabel-variabel ini dibuat oleh webserver Apache. Jika anda menjalankan webserver yang lain, tidak ada jaminan ia menyediakan variabel-variabel yang sama; mungkin ia tidak menyediakan beberapa variabel tapi menyediakan variabel lain yang tidak disebutkan disini. Boleh dikatakan,

Page 3: Variabelphp

kebanyakan dari variabel-variabel ini disebutkan di spesifikasi CGI 1.1 jadi masih ada harapan untuk bisa memakainya.

Sebagai catatan, beberapa dari variabel-variabel ini bisa dipakai (atau punya arti) jika PHP dijalankan dari perintah baris.

GATEWAY_INTERFACE Revisi spesifikasi CGI yang digunakan oleh server, misalnya; i.e. 'CGI/1.1'.

SERVER_NAME Nama host server dimana skrip dijalankan. Jika skrip dijalankan pada virtual host, maka

variabel ini akan berisi nilai yang didefinisikan untuk virtual host tersebut. SERVER_SOFTWARE

String identifikasi string, diletakkan di dalam header ketika menangapi permintaan.

SERVER_PROTOCOL Nama dan revisi protokol informasi darimana permintaan dilakukan; misalnya

'HTTP/1.0'. REQUEST_METHOD

Metode permintaan yang dipakai ketika mengakses halaman; misalnya 'GET', 'HEAD',

'POST', 'PUT'. UERY_STRING

String permintaan, jika ada, darimana halaman diakses. DOCUMENT_ROOT

Direktori dokumen root dimana didalamnya berisi skrip yang sedang dilaksanakan,

seperti didefinisikan di file konfigurasi server. HTTP_ACCEPT

Berisi Accept:header permintaan, jika ada.

HTTP_ACCEPT_CHARSET

Berisi Accept-Charset: header permintaan, jika ada. Contoh: 'iso-8859-1,*,utf-8'.

HTTP_ENCODING Berisi Accept-Encoding: header permintaan, jika ada. Contoh: 'gzip'.

HTTP_ACCEPT_LANGUAGE

Berisi Accept-Language: header permintaan, jika ada. Contoh: 'en'. HTTP_CONNECTION

Berisi Connection: header permintaan, jika ada. Contoh: 'Keep-Alive'.

HTTP_HOST Berisi Host: header permintaan, jika ada.

HTTP_REFERER

Alamat halaman (jika ada) yang diberikan oleh browser pada halaman yang aktif. Variabel ini diset oleh browser pengguna, tidak semua browser memberikan variabel ini.

HTTP_USER_AGENT

Berisi User_Agent: header permintaan, jika ada. String ini menunjukkkan software

browser yang dipakai untuk melihat halaman yang sedang aktif; misalnya; Mozilla/4.5

[en] (X11; U; Linux 2.2.9 i586). Anda dapat memakai nilai ini dengan

get_browser() untuk menyesuaikan kemampuan browser pemakai. REMOTE_ADDR

Alamat IP darimana pengguna melihat halaman saat ini.

Page 4: Variabelphp

REMOTE_PORT Port yang dipakai oleh komputer pemakai untuk berkomunikasi dengan server web.

SCRIPT_FILENAME Nama path absolut dari skrip yang sedang dilaksanakan.

SERVER_ADMIN Nilai yang diberikan untuk direktive SERVER_ADMIN (Apache) dalam file konfigurasi server web. Jika skrip dijalankan pada host virtual, variabel ini akan berisi nilai yang

diberikan untuk host virtual tersebut. SERVER_PORT

Port mesin server yang dipakai oleh server web untuk berkomunikasi. Untuk setup default, akan berisi '80'; jika menggunakan SSL, misalnya, nilai ini akan diubah menjadi nomor port berapa saja yang didefinisikan untuk port HTTP aman.

SERVER_SIGNATURE String ini berisi versi server dan nama host virtual yang ditambahkan pada halaman yang

dihasilkan server, jika diaktifkan. PATH_TRANSLATED

Path dari sript yang sedang berjalan berdasarkan Sistem filenya-(bukan dokumen root);

setelah server mengerjakan pemetaan virtual ke real. (Catatan Penerjemah: ini berhubungan sistem file yang dipakai; misalnya untuk linux kita memakai notasi

/www/htdocs sedangkan untuk windows/dos kita memakai \www\htdocs). SCRIPT_NAME

Berisi path skrip yang sedang berjalan. Ini sangat berguna untuk halaman-halaman yang

perlu merujuk pada pada diri mereka sendiri. REQUEST_URI

URI yang diberikan untuk mengakses halaman yang sedang aktif; misalnya '/index.html'.

Variable-variabel Lingkungan

Variabel-variabel ini diimport ke dalam variabel global PHP dari variabel lingkungan dimana PHP dijalankan. Kebanyakan disediakan oleh program shell dimana PHP dijalankan dan system

yang berbeda akan menjalankan program shell yang berbeda pula, daftar yang tetap tidak mungkin diberikan karena variasi ini. Silahkan lihat dokumentasi program shell untuk variabel

yang diberikan oleh lingkungan shell yang anda pakai.

Variabel-variabel yang lain termasuk variabel yang diberikan oleh CGI, akan diberikan juga tidak peduli PHP dijalankan sebagai modul server atau pemroses CGI.

Variable-variabel PHP

Ini adalah variabel yang dibuat oleh PHP sendiri.

argv

Page 5: Variabelphp

Array argument yang diberikan pada skrip. Jika skrip dijalankan dalam mode perintah baris maka variabel ini bisa berisi parameter seperti gaya bahasa C. Ketika dipanggil

dengan metode GET, variabel ini akan berisi string permintaan yang diberikan. argc

Berisi jumlah variabel yang diberikan saat menjalankan skrip (jika dijalankan dalam mode perintah baris).

PHP_SELF

Nama file yang skrip yang sedang berjalan, relatif terhadap dokumen root. Jika PHP dijalankan sebagai pemroses perintah baris, variabel ini tidak diberikan.

HTTP_COOKIE_VARS Array asosiatif variabel-variabel yang diberikan kepada skrip lewat cookies HTTP. Hanya diberikan jika pelacakan variabel diaktifkan baik lewat direktif konfigurasi

track_vars atau direktif <?php_track_vars?>.

HTTP_GET_VARS Array asosiatif variabel-variabel yang diberikan kepada skrip lewat metode HTTP GET.

Hanya diberikan jika pelacakan variabel diaktifkan baik lewat direktif konfigurasi track_vars atau direktif <?php_track_vars?>.

HTTP_POST_VARS Array asosiatif variabel-variabel yang diberikan kepada skrip lewat metode HTTP POST.

Hanya diberikan jika pelacakan variabel diaktifkan baik lewat direktif konfigurasi track_vars atau direktif <?php_track_vars?>.

Ruang Lingkup Variabel

Ruang lingkup sebuah variabel tergantung dimana ia didefinisikan. Pada umumnya variabel-variabel PHP hanya mempunyai satu ruang lingkup. Ruang lingkup ini meluas kepada file-file

yang disisipkan, dengan perintah include atau require. Sebagai contoh,

1

2 $a = 1;

3 include "b.inc";

4

Disini variabel $a dapat dipakai dalam skrip b.inc yang disisipkan. Dalam fungsi yang kita definisikan sendiri ruang lingkup fungsi tersebut yang dipakai. Semua variabel yang digunakan

dalam suatu fungsi secara default terbatas pada ruang lingkup fungsi tersebut. Sebagai contoh,

1

2 $a = 1; /* global scope */

3

4 Function Test () {

5 echo $a; /* rujukan ke variabel lokal */

6 }

7

Page 6: Variabelphp

8 Test ();

9

Skrip ini tidak akan memberikan hasil karena perintah echo merujuk pada variabel $a yang berlaku di lokal, dan variabel ini belum diisikan dengan nilai pada ruang lingkup tersebut. Anda mungkin dapat melihat bahwa ini sedikit berbeda bahasa C, pada C variabel global secara otomatis dikenali oleh fungsi kecuali didefinisikan lagi dalam fungsi. Ini bisa menyebabkan

masalah jika secara tak sengaja seseorang mengubah variabel global. Dalam PHP variabel global harus dideklarasikan global di dalam fungsi jika fungsi tersebut ingin menggunakannya. Contoh,

1

2 $a = 1;

3 $b = 2;

4

5 Function Sum () {

6 global $a, $b;

7

8 $b = $a + $b;

9 }

10

11 Sum ();

12 echo $b;

13

Skrip diatas akan menghasilkan "3". Dengan mendeklarasikan $a dan $b sebagai variabel global

dalam fungsi, semuanya proses yang berhubungan dengan keduanya akan mengubah variabel global. Tidak batasan jumlah variabel global yang dapat dimanipulasi oleh sebuah fungsi.

Cara kedua untuk mengakses variabel dari ruang lingkup global adalah dengan menggunakan array khusus yang didefinisikan oleh PHP, yaitu $GLOBALS. Contoh sebelumnya dapat ditulis

sebagai berikut,

1

2 $a = 1;

3 $b = 2;

4

5 Function Sum () {

6 $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];

7 }

8

9 Sum ();

10 echo $b;

11

Page 7: Variabelphp

Array $GLOBALS adalah array asosiatif dimana nama variabel global dipakai sebagai key dan isi variabel tersebut adalah nilai elemen arraynya.

Sifat penting lainnya dari ruang lingkup adalah apa yang disebut dengan variabel static. Variabel

static hanya terdapat dalam ruang lingkup lokal suatu fungsi, akan tetapi ia tidak akan kehilangan nilainya jika pelaksanaan program keluar dari ruang lingkup ini. Perhatikan contoh ini:

1

2 Function Test () {

3 $a = 0;

4 echo $a;

5 $a++;

6 }

7

Fungsi ini tidak begitu berguna karena setiap ia dipanggil ia akan memberikan nilai 0 pada $a kemudian mencetak "0". $a++ yang menaikkan nilai variabel tidak ada gunanya karena jika fungsi sudah selesai dijalankan variabel $a akan dihapus. Agar fungsi ini ada gunanya, supaya

tidak kehilangan nilai perhitungan yang berlaku, variabel $a harus dideklarasikan sebagai static:

1

2 Function Test () {

3 static $a = 0;

4 echo $a;

5 $a++;

6 }

7

Sekarang setiap fungsi Test() dipanggil ia akan mencetak nilai $a dan menaikkan nilainya.

Variabel static juga menyediakan satu cara yang berhubungan fungsi- fungsi rekursif. Sebuah fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Kita harus berhati-hati menulis

fungsi rekursif sebab bisa saja fungsi tersebut akan berulang terus menerus. Anda harus yakin ada kondisi yang bisa dipenuhi supaya proses pengulangan berhenti. Fungsi rekursi sederhana

berikut akan menghitung sampai 10, dengan menggunakan variabel static $count untuk mengetahui kondisi kapan harus berhenti.

1

2 Function Test () {

3 static $count = 0;

4

5 $count++;

6 echo $count;

7 if ($count < 10) {

8 Test ();

9 }

10 $count--;

Page 8: Variabelphp

11 }

12

Variabel yang berubah-ubah

Kadang-kadang lebih mudah jika kita bisa membuat variabel yang bisa berubah-ubah namanya.

Yaitu, nama variabel yang dapat diset dan digunakan secara dinamis. Variabel normal diset dengan perintah seperti berikut,

1

2 $a = "hello";

3

Variabel yang berubah mengambil nilai sebuah variabel dan memperlakukannya sebagai nama variabel. Pada contoh diatas, hello, dapat dipakai sebagai nama variabel dengan menambahkan dua tanda dollar. Lihat contoh berikut,

1

2 $$a = "world";

3

Pada tahap ini dua variabel telah didefinisikan dan disimpan dalam daftar simbol PHP: $a berisi "hello" dan $hello berisi "world". Jadi, perintah:

1

2 echo "$a ${$a}";

3

akan menghasilkan hasil yang sama seperti,

1

2 echo "$a $hello";

3

keduanya akan mencetak kalimat: hello world.

Untuk memakai variabel yang berubah-ubah dengan array, anda harus memperhitungkan masalah yang bisa saja membingungkan. Sebagai contoh, jika anda menulis $$a[1] maka pemroses harus tahu apakah anda bermaksud menggunakan $a[1] sebagai variabel atau anda

menginginkan $$a sebagai variabel dan [1] adalah indeks dari variabel tersebut. Sintaksis untuk menghindari keraguan seperti ini adalah:${$a[1]} untuk kasus yang pertama dan ${$a}[1] untuk kasus yang kedua.

Page 9: Variabelphp

Variabel-variabel dari luar PHP

Form HTML (GET dan POST)

Ketika sebuah formulir dikirimkan pada skrip PHP, semua variabel dari formulir tersebut secara otomatis bisa di pakai dalam skrip PHP. Sebagai contoh lihat contoh berikut,

Contoh 7-1. Variabel formulir sederhana

1

2 <form action="foo.php3" method="post">

3 Name: <input type="text" name="name"><br>

4 <input type="submit">

5 </form>

6

Ketika dikirimkan, PHP akan membuat variabel $name, yang berisi apa saja yang diberikan pada

field Name: di formulir.

PHP juga mengerti array dalam konteks variabel-variabel formulir, akan tetapi hanya terbatas pada ukuran satu dimensi. Anda bisa, sebagai contoh, mengumpulkan variabel-variabel yang

berhubungan, atau menggunakan kemampuan ini untuk mengambil nilai dari input select yang banyak.

Contoh 7-2. Variabel formulir yang lebih kompleks. 1

2 <form action="array.php" method="post">

3 Name: <input type="text" name="personal[name]"><br>

4 Email: <input type="text" name="personal[email]"><br>

5 Beer: <br>

6 <select multiple name="beer[]">

7 <option value="warthog">Warthog

8 <option value="guinness">Guinness

9 <option value="stuttgarter">Stuttgarter Schwabenbräu

10 </select>

11 <input type="submit">

12 </form>

13

Jika track_vars PHP diaktifkan, baik dengan mengunakan setting konfigurasi track_vars atau direktif <?php_track_vars?>, maka variable yang dikirimkan melalui metode POST atau GET

akan dapat ditemukan dalam array asosiatif global $HTTP_POST_VARS dan $HTTP_GET_VARS.

Page 10: Variabelphp

Nama-nama Variabel IMAGE SUBMIT

Ketika mengirimkan formulir, kita bisa memakai gambar bukan tombol submit standar dengan

tag seperti berikut,

1

2 <input type=image src="image.gif" name="sub">

3

Saat pengguna menekan tombol mouse di dalam daerah gambar, formulir akan dikirim ke server dengan dua variabel tambahan, yaitu sub_x and sub_y. Variabel tersebut akan berisi koordinat dalam gambar yang di klik. Bagi yang sudah berpengalaman mungkin dapat melihat nama

variabel yang dikirimkan oleh browser berisi tanda "titik" bukan garis bawah, akan tetapi PHP akan mengkonversi titik tersebut menjadi garis bawah secara otomatis.

Cookie HTTP

PHP secara transparan mendukung cookies HTTP sebagaimana yang didefinisikan oleh Spesifikasi Netscape. Cookies adalah suatu mekanisme untuk menyimpan data di browser remote dan mengidentifikasi user. Anda dapat memberikan cookie menggunakan fungsi

SetCookie(). Cookie adalah bagian dari header HTTP, jadi fungsi SetCookie harus dipanggil sebelum output yang lain dikirim ke browser. Ini adalah sama dengan batasan fungsi Header().

Setiap cookie yang dikirim kepada server dari klien akan otomatis dijadikan variabel PHP seperti halnya data dengan metode GET dan POST.

Jika anda ingin memberikan banyak nilai pada satu cookie, tambahkan [] pada nama cookie.

Sebagai contoh,

1

2 SetCookie ("MyCookie[]", "Testing", time()+3600);

3

Sebagai catatan bahwa sebuah cookie akan menimpa cookie sebelumnya dengan nama cookie yang sama kecuali path domainnya berbeda. Jadi, untuk keranjang belanja anda mungkin ingin

menyimpan sebuah penghitung dan memakainya nanti. Contoh-3. Contoh SetCookie

1

2 $Count++;

3 SetCookie ("Count", $Count, time()+3600);

4 SetCookie ("Cart[$Count]", $item, time()+3600);

Page 11: Variabelphp

5

Variabel-variabel Lingkungan

PHP secara otomatis akan membuat variabel lingkungan menjadi variabel PHP seperti yang lain.

1

2 echo $HOME; /* Shows the HOME environment variable, if set. */

3

Informasi yang datang dari mekanisme GET, POST dan cookie juga secara otomatis menciptakan variabel, kadang-kadang lebih baik membaca variabel dari lingkungan secara

eksplisit untuk memastikan bahwa anda mendapatkan versi yang tepat dari variabel yang bersangkutan. Fungsi getenv() dapat digunakan untuk ini. Anda juga bisa membuat variabel

lingkungan dengan fungsi putenv().

Titik di dalam nama variabel masukan

Biasanya, PHP tidak mengabaikan nama variabel jika mereka diberikan pada suatu skrip. Akan tetapi, harus diingat bahwa tanda "titik" adalah karakter yang tidak boleh dipakai sebagai nama

variabel dalam PHP. Sebagai alasan, lihat contoh berikut,

1

2 $varname.ext; /* nama variabel yang tidak diperbolehkan */

3

Sekarang yang dilihat oleh pemroses adalah variabel yang diberi nama $varname, diikuti operator penggabungan string, kemudian diikuti dengan string biasa (yaitu, string yang tidak diberi tanda petik dan bukan nama yang didefinisikan di tempat lain) 'ext'. Tentu saja, ini tidak

akan menghasilkan sesuai dengan apa yang diharapkan.

Karena alasan ini, harus selalu diingat bahwa PHP secara otomatis akan mengganti setiap tanda "titik" nama-nama variabel yang diberikan kepadanya dengan garis bawah.

Menentukan tipe data variabel

Karena PHP menentukan tipe variabel dan mengkonversinya jika perlu, tidak selalu jelas sebuah variabel itu mempunyai tipe apa pada saat tertentu. PHP menyediakan beberapa fungsi yang

dapat menentukan jenis data suatu variabel. Mereka itu adalah gettype(), is_long(), is_double(), is_string(), is_array(), dan is_object().

Page 12: Variabelphp

Membuat peta di php

Tulis kode berikut pada sebuah file dengan nama (map_proc.php) ;

PHP Code: <?php

// buka koneksi ke mySQL database, dan pilih tabel "hotel"

$maps = mysql_pconnect("localhost", "root", "");

mysql_select_db('hotel', $maps);

// tabel peta diminta

$qmaps = mysql_query("SELECT * FROM peta", $maps);

// hasil query disimpan kedalam variabel $str_xml

//xml-firstchild

$str_xml= "<maps>\n";

//xml-childnodes

while($row = mysql_fetch_row($qmaps)){

$str_xml.= "<item";

//xml-atribute

$str_xml.= " id='".$row[0]."'";

$str_xml.= " cx='".$row[1]."'";

$str_xml.= " cy='".$row[2]."'";

$str_xml.= " description='".$row[3]."'";

$str_xml.= " />\n";

}

$str_xml.= "</maps>";

mysql_free_result($qmaps);

// cetak data

echo $str_xml;

?>

Berikut ini adalah hasil query ke database yang nantinya akan diproses oleh flash movie, yakni

beberapa childnode dengan attributes yang berisikan nilai dari rekaman data yang ada pada tabel“peta". HTML Code:

<maps>

<item id='1' cx='110' cy='50' description='lobby' />

<item id='2' cx='110' cy='200' description='parkir' />

</maps>

Page 13: Variabelphp

Client side (Flash)

Buat file dengan nama “map_view.fla”, letakkan gambar peta pada layer 1 frame 1.

Persiapkan gambar penanda lokasi serta sebuah dynamicText dengan nama variabel “desc” dan konversi

menjadi movieclip dengan linkage identifier “mc_icon” (pilih gambar penanda dan dynamicText “desc”,

tekan F8 untuk menampilkan dialog convert to symbol.Hapus movieclip “mc_icon” tersebut dari stage.

Tulis kode berikut pada timeline utama layer 2 frame 1, setelah itu movie di-publish (swf dan html)

var ox:XML = new XML();

ox.ignoreWhite = true;

ox.onLoad = function (stat){

if(stat==true){

var fc = ox.firstChild.childNodes;

// telusuri childnodes

for(i=0;i<fc.length;i++){

// panggil fungsi set_icon dengan parameter fc[i]

set_icon(fc[i]);

}

}

}

ox.load("map_proc.php");

function set_icon(info){

var mc_id = info.attributes.id; // id obyek

var mc_cx = info.attributes.cx; // kordinat x

var mc_cy = info.attributes.cy; // kordinat y

var mc_desc = info.attributes.description; // deskripsi singkat

// ambil movie_clip "mc_icon" dari library

// tempatkan kedalam stage dengan nama baru "mc_icon_" + mc_id

attachMovie("mc_icon","mc_icon_"+mc_id,_root.getNextHighestDepth());

// movieclip yang baru, di identifikasi sebagai variabel

var mc_icon:MovieClip;

mc_icon = this["mc_icon_"+mc_id];

// property movieclip, disesuaikan

mc_icon._x = mc_cx;

mc_icon._y = mc_cy;

mc_icon.desc= mc_desc;

}

Page 14: Variabelphp

Input Data Ke MySQL Secara Simultan Via Form dengan

PHP

September 14th, 2009 | by rosihanari | 20,209 views | Cetak Artikel Ini

Free Software

Seringkali kita membuat script untuk input data hanya terdiri dari sebuah data atau record saja.

Itu sangat-sangat mudah dilakukan. Lantas, bagaimana bila sekali entri langsung beberapa record sekaligus secara simultan? Dengan demikian kita bisa entri beberapa data sekaligus tanpa repot bolak-balik membuka form baru ketika mau menyisipkan data. Kira-kira hal ini bisa dilakukan

nggak ya? He.. 3x… Ya jelas bisa donk! Oleh karena itu akan saya paparkan bagaimana ide membuat script seperti itu dengan PHP melalui artikel ini.

Sebelum kita mulai membahas cara pembuatannya, ada baiknya Anda simak gambar berikut ini

yang merupakan grand design studi kasus yang akan kita buat sebagai contoh input data simultan ini. Studi kasus yang saya ambil terkait dengan entri data mahasiswa.

Pertama, user diminta memasukkan jumlah data yang mau dientri terlebih dahulu (lihat gambar di bawah ini)

Kedua, setelah user memasukkan jumlah data yang mau dientri, selanjutnya muncul form dengan

komponen entri sejumlah data yang tadi dimasukkan. Pada form inilah data yang mau disimpan ke database, dimasukkan.

Setelah form di atas disubmit, maka data akan tersimpan ke database, seperti tampak pada

Page 15: Variabelphp

Gambar berikut ini

Nah… bagaimana cara membuatnya?

Pertama kita siapkan dahulu tabel database MySQL nya. Pada studi kasus ini, kita buat simpel saja deh (cukup 2 field saja dulu)

view sourceprint? 1.CREATE TABLE mhs ( 2.nim varchar(5), 3.namamhs varchar(20), 4.PRIMARY KEY (nim) 5.);

Kemudian kita buat form untuk memasukkan jumlah datanya terlebih dahulu.

form.html

view sourceprint? 1.<h1>Input Data Mahasiswa</h1> 2. 3.<form method="post" action="submit.php"> 4.Jumlah Data <input type="text" name="jum"> <input type="submit" name="submit" value="Submit"> 5.</form>

Saya kira untuk membuat form di atas tidak ada masalah kan?

Berikutnya kita buat script untuk menampilkan komponen inputnya sejumlah data yang tadi

dimasukkan pada form di atas. Konsepnya adalah kita gunakan looping untuk menampilkan komponen inputnya. Lantas… loopingnya dilakukan berapa kali? ya… sebanyak jumlah datanya donk.

submit.php

view sourceprint? 01.<h1>Input Data Mahasiswa</h1> 02.

Page 16: Variabelphp

03.<form method="post" action="insert.php"> 04.<table border="1"> 05.<tr><td>NIM</td><td>NAMA MHS</td></tr> 06. 07.<?php 08.$n = $_POST['jum']; // membaca jumlah data 09. 10.for ($i=1; $i<=$n; $i++) 11.{ 12.echo "<tr><td><input type='text' name='nim".$i."'></td><td><input type='text' name='nama".$i."'></td></tr>"; 13.} 14.?> 15. 16.</table> 17.<br> 18.<input type="hidden" name="jum" value="<?php echo $n; ?>"> 19.<input type="submit" name="submit" value="Submit"> 20.</form>

Bila Anda perhatikan script di atas, maka nama komponen untuk input NIM berbentuk

view sourceprint? 1.<input type='text' name='nim".$i."'>

yang mana nantinya looping ($i=1, 2, 3, …, $n) akan membentuk komponen-komponen dengan nama

view sourceprint? 1.<input type='text' name='nim1'> 2.<input type='text' name='nim2'> 3.<input type='text' name='nim3'> 4.. 5.. 6.dst

Nah… hal yang sama kita buat juga untuk komponen input nama mahasiswa.

Kemudian, coba perhatikan pula bahwa di bagian akhir script terdapat perintah

view sourceprint? 1.<input type="hidden" name="jum" value="<?php echo $n; ?>">

Perintah tersebut akan menghasilkan komponen hidden untuk menyimpan nilai $n (banyaknya

data). Nilai ini nanti akan ikut disubmit ke script berikutnya guna pemrosesan lebih lanjut.

Terakhir.. kita buat script untuk insert datanya. Untuk membuat script insert data secara simultan ini, mungkin yang menjadi kendala adalah bagaimana cara membaca semua data yang telah

diinputkan dalam form sebelumnya untuk kemudian disimpan ke dalam database. Adapun konsep pembacaan datanya adalah dengan menggunakan looping juga. Looping ini dilakukan

Page 17: Variabelphp

sebanyak jumlah datanya ($n). Oleh karena itulah pada script ini kita butuh nilai $n yang ikut

tersubmit dari script sebelumnya.

insert.php

view sourceprint? 01.<?php

02. 03.// koneksi ke mysql 04.mysql_connect("dbhost", "dbuser", "dbpass"); 05.mysql_select_db("dbname"); 06. 07.$n = $_POST['jum']; // membaca jumlah data 08. 09.// looping 10.for ($i=1; $i<=$n; $i++) 11.{ 12.$datanim = $_POST['nim'.$i]; 13.$datanama = $_POST['nama'.$i]; 14. 15.if ((!empty($datanim)) && (!empty($datanama))) 16.{ 17.$query = "INSERT INTO mhs (nim, namamhs) VALUES ('$datanim', '$datanama')"; 18.$hasil = mysql_query($query); 19. 20.if ($hasil) echo "Input data sukses<br>"; 21.else echo "Input data gagal<br>"; 22.} 23.} 24. 25.?>

Perhatikan perintah $datanim = $_POST['nim'.$i]; yang terdapat dalam looping di atas.

Perintah tersebut digunakan untuk membaca value yang diinputkan dari komponen form bernama ‘nim1‘, ‘nim2‘, … dst. Hal yang sama juga berlaku untuk perintah $datanama =

$_POST['nama'.$i];. Setelah value NIM dan Nama Mhs dari komponen pertama (‘nim1‘ dan

‘nama1‘) dibaca, selanjutnya baru disimpan ke database. Kemudian pembacaan dan insert data ke

database dilanjutkan pada komponen kedua (‘nim2‘ dan ‘nama2‘), begitu seterusnya sampai

dengan komponen terakhir.

Oya.. tambahan lagi, dalam script di atas juga terdapat statement

view sourceprint? 1.if ((!empty($datanim)) && (!empty($datanama))) 2.{ 3.... 4.}

Page 18: Variabelphp

Statement tersebut digunakan untuk mengecek jika ada baris komponen form yang tidak diisi NIM maupun nama mahasiswanya. Proses insert data ke database hanya akan dilakukan bila

komponen input NIM dan nama mahasiswanya tidak kosong.