Minggu, 16 Oktober 2016

Belajar pemrograman web dengan Php - Membuat fungsi sendiri

Membuat Fungsi Sendiri Pada PHP

            Pada bahasan-bahasan kita yang lalu Anda telah belajar bagaimana menggunakan fungsi-fungsi yang ada di PHP. Andapun dapat membuat fungsi-fungsi sendiri yang dapat memenuhi kebutuhan Anda. Kali ini kita akan belajar bagaimana membuat sebuah fungsi sendiri. Nama keren dari fungsi buatan sendiri adalah User Defined Function alias UDF.
            Sebuah fungsi dideklarasikan dengan sintaks sebagai berikut:

function namafungsi(arg1, arg2, ..., argn) {
...isi fungsi...
[return nilaibalik]
}

            Namafungsi adalah nama dari fungsi yang dideklarasikan tersebut dan aturan pemberian namanya mengikuti aturan pemberian nama variabel serta tidak boleh menggunakan nama fungsi yang telah ada.
            Isi fungsi haruslah merupakan kode program PHP yang valid. Anda dapat menggunakan fungsi-fungsi built-in PHP dalam menyusun isi fungsi tersebut.
            Nilaibalik adalah sebuah variabel yang menyimpan nilai yang akan dikembalikan oleh fungsi tersebut pada kode program yang memanggilnya.
            Arg1, arg2, ..., argn adalah argumen-argumen yang akan diolah didalam fungsi tersebut. Argumen dapat dianalogikan sebagai sebuah variabel. Argumen bersifat optional, artinya tidak harus ada dalam setiap penggunaan UDF. Namun jika sebuah UDF dideklarasikan dengan menggunakan argumen, maka argumen tersebut harus dituliskan jika fungsi itu dipanggil.
            Berikut adalah contoh sebuah fungsi sederhana:

<HTML>
<HEAD>
<TITLE> Fungsi </TITLE>
</HEAD>

<BODY>
<?
function garis($ukuran) {
            echo "<HR COLOR='#FF0000' SIZE='$ukuran' NOSHADE>";
}

echo "Ini garis merah dengan ukuran 2 <BR>";
garis(2);
echo "Ini garis merah dengan ukuran 4 <BR>";
garis(4);
?>
</BODY>
</HTML>

            Hasil yang diberikan oleh skrip di atas dapat dilihat pada gambar 1.
            Fungsi tersebut bernama garis() dan memiliki sebuah argumen bernama $ukuran. Argumen ini akan menentukan ukuran dari garis yang digunakan.
            Pada PHP 3, sebuah fungsi harus dideklarasikan terlebih dahulu sebelum dapat digunakan, tapi sejak PHP 4 sebuah fungsi dapat dideklarasikan belakangan. Namun ada perkecualiannya, yaitu deklarasi fungsi tersebut tidak boleh berada dalam sebuah struktur berkondisi atau di dalam fungsi lain, sebab jika kondisi tidak terpenuhi atau fungsi lain tersebut belum dipanggil, maka deklarasi fungsi tersebut akan tidak dikenal. Bingung? Nih contohnya:

<HTML>
<HEAD>
<TITLE> Fungsi </TITLE>
</HEAD>

<BODY>
<?
echo "Ini garis biru dengan ukuran 2 <BR>";
garisbiru(2);
echo "Ini garis merah dengan ukuran 4 <BR>";
garismerah(4);

$tes = true;

if ($tes) {
            function garismerah($ukuran) {
                        echo "<HR COLOR='#FF0000' SIZE='$ukuran' NOSHADE>";
            }
}

function garisbiru($ukuran) {
            echo "<HR COLOR='#0000FF' SIZE='$ukuran' NOSHADE>";
}

?>
</BODY>
</HTML>

            Perhatikan baik-baik contoh tersebut. Pada contoh ini fungsi garisbiru() dapat dipanggil dengan baik walaupun dideklarasikan belakangan. Tapi fungsi garismerah() tidak dapat dipanggil, sebab pada saat fungsi garismerah() dipanggil, kondisi if ($tes) belum dievaluasi. Jika dijalankan, maka PHP akan memberikan peringatan sebagai berikut:

Fatal error: Call to undefined function: garismerah() in c:\wwwroot\php\fungsi.php on line 11

            Bandingkan dengan gambar 2.
            Jika fungsi garismerah() dipanggil setelah kondisi if ($tes) dan itupun $tes harus bernilai true, maka fungsi garismerah() baru dapat berjalan dengan baik.
            Nah, sekarang kita akan bahas bagaimana menggunakan fungsi yang memiliki nilai balik. Berikut adalah contohnya:

<HTML>
<HEAD>
<TITLE> Fungsi </TITLE>
</HEAD>

<BODY>
<?
function luas($r) {
            $lingk = M_PI * $r * $r;
            return $lingk;
}

$r = 3;
echo "Lingkaran dengan jari-jari $r memiliki luas = ";
$luas = luas($r);
echo "$luas";
?>
</BODY>
</HTML>

            Jika dijalankan, maka hasilnya adalah:

“Lingkaran dengan jari-jari 3 memiliki luas = 28.2743338823”.

            Perhatikan bahwa function luas() mempunyai nilai balik yaitu $lingk. Jika fungsi tersebut dipanggil, maka sebuah variabel harus disiapkan untuk “menangkap” nilai balik tersebut. Dalam contoh di atas variabel tersebut adalah $luas, sehingga pemanggilan fungsi tersebut menjadi sebagai berikut:

$luas = luas($r);

            Sebagai alternatif dapat juga menggunakan bentuk seperti pada contoh di bawah ini:

<HTML>
<HEAD>
<TITLE> Fungsi </TITLE>
</HEAD>

<BODY>
<?
function luas($r) {
            $lingk = M_PI * $r * $r;
            return $lingk;
}

$r = 3;
echo "Lingkaran dengan jari-jari $r memiliki luas = " . luas($r);
?>
</BODY>
</HTML>

            Pada bentuk kedua ini, nilai balik tidak ditangkap dalam variabel lain, tapi fungsi luas($r) langsung disambungkan dengan string "Lingkaran dengan jari-jari $r memiliki luas = ". Ingat, untuk menggabungkan dua buah string harus digunakan operator titik (.).

Nilai default argumen
            Sebuah argumen dapat memiliki nilai default. Jika sebuah argumen ditentukan untuk memiliki nilai default, maka argumen tersebut boleh tidak ditulis dalam pemanggilan fungsi. Jika tidak ditulis, maka nilai defaultnyalah yang akan digunakan. Contoh:

<HTML>
<HEAD>
<TITLE> Fungsi </TITLE>
</HEAD>

<BODY>
<?
function luas($a=5,$t=5) {
            $luas_sgt = 0.5 * $a * $t;
            $teks = "Segitiga dengan alas $a ";
            $teks .= "dan tinggi $t memiliki luas ";
            $teks .= $luas_sgt;
            return $teks;
}

echo luas();
echo "<BR>";
echo luas(3);
echo "<BR>";
echo luas(3,7);
?>
</BODY>
</HTML>

            Jika dijalankan pada browser, hasilnya nampak seperti gambar 3.
            Pada pemanggilan fungsi luas() yang pertama, argumen sama sekali tidak dituliskan, sehingga yang digunakan adalah nilai defaultnya, yaitu $a=5 dan $t=5. Pada pemanggilan fungsi luas() yang kedua, hanya sebuah argumen yang dituliskan, dalam hal ini adalah argumen $a, sehingga nilai $a adalah 3. Pada pemanggilan yang ketiga baik argumen $a maupun $t diberi nilai, sehingga yang digunakan dalam fungsi adalah $a=3 dan $t=7.
            Jika Anda jeli, Anda mungkin bertanya-tanya, mengapa tidak ada pemanggilan fungsi luas dengan cara seperti ini: luas(,7)? Maksudnya adalah nilai $a dibiarkan default, sedangkan $t diberi nilai 7.
            Jawabannya adalah karena hal tersebut memang tidak diijinkan di PHP. Jika terdapat beberapa argumen dalam sebuah fungsi tidak semua memiliki nilai default, maka argumen yang memiliki nilai default harus diletakkan di sebelah kanan argumen yang tidak memiliki default.
            Anggaplah argumen $t di atas tidak memiliki default sedangkan $a tetap memiliki nilai default 5, maka deklarasi fungsi luas harus diubah menjadi sebagai berikut:

 function luas($t=5,$a) {
            $luas_sgt = 0.5 * $a * $t;
            $teks = "Segitiga dengan alas $a ";
            $teks .= "dan tinggi $t memiliki luas ";
            $teks .= $luas_sgt;
            return $teks;
}

            Dengan demikian, jika diinginkan nilai $a default dan nilai $t adalah 7, maka pemanggilan fungsi luas adalah sebagai berikut: luas(7).

            Aturan ini juga berlaku jika keduanya memiliki default, namun dalam pemanggilan hanya salah satu saja yang akan diberi nilai. Jadi jelas toh mengapa pemanggilan fungsi luas() dengan cara luas(,7) tidak diijinkan.

Belajar pemrograman web dengan Php - Fungsi bilangan acak

Fungsi bilangan acak
            Fungsi bilangan acak digunakan untuk menghasilkan bilangan acak (random). Ada dua kelompok fungsi bilangan acak, yaitu fungsi bilangan acak biasa dan fungsi bilangan acak yang lebih baik.
            Yang termasuk ke dalam fungsi bilangan acak biasa adalah:

  • rand(), digunakan untuk menghasilkan bilangan acak.
  • srand(), digunakan untuk memberikan nilai awal (seed) pada fungsi rand().
  • getrandmax(), digunakan untuk mengambil nilai maksimum yang mungkin dari sebuah bilangan acak.

            Sejak PHP 4.2.0, srand() tidak lagi diperlukan untuk memberikan nilai seed pada fungsi rand().
            Contoh:

<HTML>
<HEAD>
<TITLE> Randomizer </TITLE>
</HEAD>
<BODY>
Berikut ini adalah beberapa bilangan acak yang dihasilkan oleh PHP <BR>
<?
$a = rand();
echo "Bilangan acak pertama = $a";
echo "<BR>";
$b = rand();
echo "Bilangan acak kedua = $b";
echo "<BR>";
$c = rand();
echo "Bilangan acak ketiga = $c";
echo "<BR>";
$max = getrandmax();
echo "Nilai maksimum bilangan acak = $max";
?>
</BODY>
</HTML>

            Jika dijalankan pada browser, hasilnya akan nampak seperti gambar 1.

            Selanjutnya yang termasuk ke dalam fungsi bilangan acak yang lebih baik adalah:

  • mt_rand(), digunakan untuk menghasilkan bilangan acak.
  • mt_srand(), digunakan untuk memberikan nilai awal (seed) pada fungsi mt_rand().
  • mt_getrandmax(), digunakan untuk mengambil nilai maksimum yang mungkin dari sebuah bilangan acak.

            Sejak PHP 4.2.0, mt_srand() tidak lagi diperlukan untuk memberikan nilai seed pada fungsi mt_rand().
            Fungsi ini disebut lebih baik karena menggunakan karakteristik Mersenne Twister (http://www.math.keio.ac.jp/~matumoto/emt.html). Karakteristik ini menghasilkan bilangan acak yang cocok untuk beberapa pekerjaan cryptography dan empat kali lebih cepat daripada fungsi bilangan acak biasa.
            Contoh:

<HTML>
<HEAD>
<TITLE> Randomizer </TITLE>
</HEAD>
<BODY>
Berikut ini adalah beberapa bilangan acak berkarakteristik Mersenne Twister yang dihasilkan oleh PHP <BR>
<?
$a = mt_rand();
echo "Bilangan acak pertama = $a";
echo "<BR>";
$b = mt_rand();
echo "Bilangan acak kedua = $b";
echo "<BR>";
$c = mt_rand();
echo "Bilangan acak ketiga = $c";
echo "<BR>";
$max = mt_getrandmax();
echo "Nilai maksimum bilangan acak = $max";
?>
</BODY>
</HTML>

            Jika dijalankan pada browser, hasilnya akan nampak seperti gambar 2.

Fungsi-fungsi Matematika Lain
            Beberapa fungsi matematika lain yang dikenal PHP adalah:

  • abs(x), mengambil nilai absolut x.
  • ceil(x), membulatkan sebuah pecahan x ke atas.
  • floor(x), membulatkan sebuah pecahan x ke bawah.
  • round(x,y), membulatkan sebuah pecahan x sampai y angka di belakang koma.
  • pi(), mengambil nilai pi, yaitu kira-kira 3.14159265358979323846 atau sama dengan konstanta M_PI.
  • fmod(x,y), menghasilkan sisa hasil pembagian x/y.
  • is_nan(x), memeriksa apakah x bukan merupakan bilangan (nan = not a number).
  • number_format(x,y,k,r), menuliskan bilangan x dengan format y angka di belakang koma, dengan koma diganti dengan karakter k dan pemisah ribuan diganti dengan karakter r.
  • hypot(x,y), menghasilkan akar (x2 + y2). Fungsi ini masih merupakan eksperimen, sehingga kesalahan akibat penggunaan fungsi ini merupakan resiko Anda.

Contoh:

<HTML>
<HEAD>
<TITLE> Other </TITLE>
</HEAD>
<BODY>
<?
$a = 5;
$b = -5;
$c = abs($a);
$d = abs($b);
echo "abs(5) = abs(-5) = $c";
echo "<BR>";
$e = ceil(4.25);
echo "ceil(4.25) = $e";
echo "<BR>";
$f = floor(4.25);
echo "floor(4.25) = $f";
echo "<BR>";
$g = round(3.6);
echo "round(3.6) = $g";
echo "<BR>";
$h = round(3.5853, 2);
echo "round(3.5853, 2) = $h";
echo " (sampai 2 digit di belakang koma)";
echo "<BR>";
$i = fmod(10,3);
echo "fmod(10,3) = $i";
echo "<BR>";
if (is_nan('100') == true) {
            echo "String 100 bukan bilangan";
}
$j = hypot(8,6);
echo "hypot(8,6) = $j";
echo "<BR>";
$pi = pi();
echo "Nilai pi adalah = $pi <BR>";
$format1 = number_format(1234567.890);
$format2 = number_format(1234567.890,3);
$format3 = number_format(1234567.890,3,'/','*');
echo "Format bilangan pada PHP = <BR>";
echo "Format 1 = $format1 <BR>";
echo "Format 2 = $format2 <BR>";
echo "Format 3 = $format3 <BR>";
?>
</BODY>
</HTML>

            Jika dijalankan pada browser, hasilnya akan nampak seperti gambar 3.

            Selamat belajar.

Belajar pemrograman web dengan Php - Fungsi-fungsi Matematika

Fungsi-fungsi Matematika di PHP

            Yang namanya matematika nampaknya tidak bisa lepas dari pemrograman komputer, demikian pula sebaliknya. Nampaknya mustahil sebuah pemrograman komputer bisa “hidup” tanpa adanya nafas matematika yang terkandung di dalamnya.
            Demikian pula dengan PHP yang sedang kita pelajari ini. Segepok fungsi matematika telah tersedia dalam dompet si PHP ini. Tapi sebelum lebih jauh mendalami tentang fungsi-fungsi matematika dalam PHP, terlebih dahulu akan diberikan daftar konstanta-konstanta yang diperlukan dalam perhitungan-perhitungan matematika. Berikut adalah konstanta-konstanta tersebut.

Konstanta
Nilai
Keterangan
M_PI
3.14159265358979323846
Pi, yang umumnya digunakan dalam perhitungan luas lingkaran. **)
M_E
2.7182818284590452354
e, atau dikenal pula dengan bilangan natural.
M_LOG2E
1.4426950408889634074
2log e, atau logaritma e dengan basis bilangan 2.
M_LOG10E
0.43429448190325182765
log e, atau logaritma e.
M_LN2
0.69314718055994530942
ln 2, atau logaritma natural 2.
M_LN10
2.30258509299404568402
ln 10, atau logaritma natural 10
M_PI_2
1.57079632679489661923
pi/2
M_PI_4
0.78539816339744830962
pi/4
M_1_PI
0.31830988618379067154
1/pi
M_2_PI
0.63661977236758134308
2/pi
M_SQRTPI
1.77245385090551602729
Akar pi *)
M_2_SQRTPI
1.12837916709551257390
2/akar pi
M_SQRT2
1.41421356237309504880
Akar 2
M_SQRT3
1.73205080756887729352
Akar 3 *)
M_SQRT1_2
0.70710678118654752440
1/akar 2
M_LNPI
1.14472988584940017414
ln pi *)
M_EULER
0.57721566490153286061
Konstanta Euler *)

            Hanya M_PI yang terdapat pada semua versi PHP. Konstanta yang lain baru terdapat pada PHP versi 4.0.0, sedangkan yang diberi tanda *) baru terdapat pada versi 4.0.2.
            Nah, sekarang mari kita bahas fungsi-fungsi matematika dalam PHP. Secara garis besar fungsi-fungsi matematika dalam PHP dapat dibagi dalam beberapa kelompok yaitu:

  • Fungsi-fungsi Trigonometri
  • Fungsi-fungsi Pangkat dan Logaritma
  • Fungsi-fungsi Base n
  • Fungsi lain-lain

Fungsi-fungsi Trigonometri
            Fungsi-fungsi trigonometri merupakan fungsi-fungsi yang berhubungan dengan ilmu trigonometri, yaitu ilmu sudut-sudut segitiga. Fungsi-fungsi tersebut adalah:

  • sin(sudut), mengambil nilai sinus sebuah sudut.
  • cos(sudut), mengambil nilai cosinus sebuah sudut.
  • tan(sudut), mengambil nilai tangen sebuah sudut.
  • asin(sudut), mengambil nilai arcus sinus sebuah sudut.
  • acos(sudut), mengambil nilai arcus cosinus sebuah sudut.
  • atan(sudut), mengambil nilai arcus tangen sebuah sudut.
  • deg2rad(x), mengubah derajat menjadi radian.
  • rad2deg(x), mengubah radian menjadi derajat.

            Nilai sudut yang akan diolah harus dinyatakan dalam radian.
            Berikut adalah penggunaan fungsi-fungsi tersebut dalam skrip PHP.

<HTML>
<HEAD>
<TITLE> Trigonometri </TITLE>
</HEAD>
<BODY>
Pada sebuah segitiga, salah satu kaki sudutnya adalah 45 &deg;
<BR>
<?
$a = deg2rad(45);
echo "Dalam radian, 45 &deg; adalah $a radian. <BR>";
$x = sin($a);
$y = cos($a);
$z = tan($a);
echo "sin($a) = $x <BR>";
echo "cos($a) = $y <BR>";
echo "tan($a) = $z <BR>";
$p = asin($x);
$q = acos($y);
$r = atan($z);
echo "Jika nilai-nilai tsb dikembalikan ke radian: <BR>";
echo "asin($x) = $p <BR>";
echo "acos($y) = $q <BR>";
echo "atan($z) = $r <BR>";
?>
</BODY>
</HTML>

            Hasil yang diberikan jika skrip tersebut dijalankan pada browser akan nampak seperti gambar 1.

Fungsi-fungsi Pangkat dan Logaritma
            Fungsi-fungsi Pangkat dan Logaritma digunakan untuk perhitungan-perhitungan yang berhubungan dengan pangkat dan logaritma. Fungsi-fungsi tersebut adalah:

  • pow($x,$y), digunakan untuk memangkatkan $x dengan $y.
  • exp($x), digunakan untuk memangkatkan e dengan $x.
  • log($x), digunakan untuk mengambil nilai logaritma naturalis $x.
  • log10($x), digunakan untuk mengambil nilai logaritma $x.
  • sqrt($x), digunakan untuk mencari akar $x.

            Harap diperhatikan bahwa logaritma naturalis justru ditulis dengan log(), sedangkan untuk logaritma biasa ditulis dengan log10.
            Contoh penggunaannya adalah sebagai berikut:

<HTML>
<HEAD>
<TITLE> Pangkat dan Logaritma </TITLE>
</HEAD>

<BODY>
<?
$a = pow(2,10);
$b = exp(2);
$c = log(10);
$d = log10(10);
$e = sqrt(100);
echo "2 pangkat 10 = $a <BR>";
echo "e pangkat 2 = $b <BR>";
echo "ln 10 = $c <BR>";
echo "log 10 = $d <BR>";
echo "akar 100 = $e";
?>
</BODY>
</HTML>

            Hasilnya nampak seperti gambar 2.

            Bagaimana seandainya jika kita ingin mengambil logaritma dengan basis bilangan selain e atau 10? Kita dapat memanfaatkan hukum yang terdapat pada logaritma sebagai berikut:

alog b = (plog b)/(plog a)                       (persamaan 1)

            Dengan nilai p adalah bebas.
            Karena nilai p bebas, maka sebaiknya diganti dengan nilai 10, karena jika 10 yang digunakan sebagai basis logaritma tidak perlu dituliskan dalam persamaan, sehingga persamaan 1 dapat dituliskan sebagai berikut:

alog b = (log b)/(log a)                         (persamaan 2)

            Atau dapat juga dengan logaritma naturalis:

alog b = (ln b)/(ln a)                             (persamaan 3)

            Contoh penggunaan hukum tersebut dalam skrip PHP adalah sebagai berikut:

<HTML>
<HEAD>
<TITLE> Pangkat dan Logaritma </TITLE>
</HEAD>

<BODY>
<?
$a = log(4) / log(2);
echo "<SUP> 2 </SUP> log 4 = ";
echo $a;
?>
</BODY>
</HTML>

Fungsi-fungsi Base n
            Fungsi-fungsi Base n digunakan untuk konversi suatu bilangan kepada bilangan berbasis n. Fungsi-fungsi tersebut adalah:

  • base_convert(x,y,z), yang mengubah bilangan x dari berbasis y menjadi berbasis z.
  • decbin(x), yang mengubah bilangan berbasis 10 menjadi berbasis 2.
  • dechex(x), yang mengubah bilangan berbasis 10 menjadi berbasis 16.
  • decoct(x), yang mengubah bilangan berbasis 10 menjadi berbasis 8.
  • bindec(), yang mengubah bilangan berbasis 2 menjadi berbasis 10.
  • hexdec(), yang mengubah bilangan berbasis 16 menjadi berbasis 10.
  • octdect(), yang mengubah bilangan berbasis 8 menjadi berbasis 10.

Contoh:

<HTML>
<HEAD>
<TITLE> Base n </TITLE>
</HEAD>

<BODY>
<?
$a = 73;
$b = base_convert($a,10,3);
$c = decbin($a);
$d = dechex($a);
$e = decoct($a);
echo "Angka $a dalam bilangan basis 3 adalah = $b <BR>";
echo "Angka $a dalam bilangan basis 2 adalah = $c <BR>";
echo "Angka $a dalam bilangan basis 16 adalah = $d <BR>";
echo "Angka $a dalam bilangan basis 8 adalah = $e <BR>";
?>
</BODY>
</HTML>

            Jika dijalankan pada browser, hasilnya akan nampak seperti gambar 3.

Fungsi-fungsi Matematika Lain
            Beberapa fungsi matematika lain yang dikenal PHP adalah:

  • abs(x), mengambil nilai absolut x.
  • ceil(x), membulatkan sebuah pecahan x ke atas.
  • floor(x), membulatkan sebuah pecahan x ke bawah.
  • round(x,y), membulatkan sebuah pecahan x sampai y angka di belakang koma.
  • pi(), mengambil nilai pi, yaitu kira-kira 3.14159265358979323846 atau sama dengan konstanta M_PI.
  • number_format(x,y,k,r), menuliskan bilangan x dengan format y angka di belakang koma, dengan koma diganti dengan karakter k dan pemisah ribuan diganti dengan karakter r.

Contoh:

<HTML>
<HEAD>
<TITLE> Other </TITLE>
</HEAD>
<BODY>
<?
$a = 5;
$b = -5;
$c = abs($a);
$d = abs($b);
echo "abs(5) = abs(-5) = $c <BR>";
$e = ceil(4.25);
echo "ceil(4.25) = $e <BR>";
$f = floor(4.25);
echo "floor(4.25) = $f <BR>";
$g = round(3.6);
echo "round(3.6) = $g <BR>";
$h = round(3.5853, 2);
echo "round(3.5853, 2) = $h";
echo " (sampai 2 digit di belakang koma) <BR>";
$pi = pi();
echo "Nilai pi adalah = $pi <BR>";
$format1 = number_format(1234567.890);
$format2 = number_format(1234567.890,3);
$format3 = number_format(1234567.890,3,'/','*');
echo "Format bilangan pada PHP = <BR>";
echo "Format 1 = $format1 <BR>";
echo "Format 2 = $format2 <BR>";
echo "Format 3 = $format3 <BR>";
?>
</BODY>
</HTML>

            Jika dijalankan pada browser, hasilnya akan nampak seperti gambar 4.

            Selamat belajar.

Belajar pemrograman web dengan Php - Fungsi-fungsi Array III

Fungsi-fungsi Array di PHP (bagian 3-habis)

            Artikel ini akan menutup jumpa kita dalam pembahasan mengenai fungsi-fungsi Array. Minggu depan kita akan belajar mengenai hal lain. Dalam tiga artikel ini tentu saja tidak semua fungsi array dapat dibahas, tapi PCplus berusaha menjelaskan fungsi-fungsi yang paling mendasar dan sering dipakai. Fungsi selengkapnya dapat Anda baca pada PHP manual yang dapat didownload di www.php.net.
            Fungsi-fungsi yang akan dibahas kali ini adalah:

Fungsi array_merge()

            Kita tentu sudah sering mendengar kata merger. Merger dari dua bank berarti dua bank bergabung menjadi satu bank di bawah bendera salah satu bank atau mengibarkan bendera dengan nama lain. Demikian pula dengan fungsi array_merge(). Fungsi array_merge() akan memerger dua buah array atau lebih menjadi sebuah array. Sintaksnya adalah sebagai berikut:

Array_merge(array1, array2 [, ...., arrayn])

            Dalam proses merger ini ada ketentuan yang harus diikuti. Jika indeks array berupa string dan pada array-array yang digabung terdapat indeks array yang sama, maka nilai array yang digabungkan terakhir akan menggantikan nilai array sebelumnya. Hal ini tidak berlaku jika indeksnya numeris. Jika terdapat array dengan indeks numeris sama, maka array tetap digabungkan dan pemilik indeks sama pada array yang digabungkan terakhir akan diberi indeks berbeda.
            Agar memudahkan pengertian terhadap ketentuan tersebut perhatikan contoh berikut ini:

<HTML>
<HEAD>
<TITLE> Array </TITLE>
</HEAD>

<BODY>
<?
$array1 = array("warna"=>"merah",1=>5,2=>10);
$array2 = array("warna"=>"biru",1=>3,2=>7,3=>73);
$merger = array_merge($array1,$array2);
echo "Isi array1 adalah : <BR>";
print_r($array1);
echo "<BR>";
echo "Isi array2 adalah : <BR>";
print_r($array2);
echo "<BR>";
echo "Setelah dimerge : <BR>";
print_r($merger);
?>
</BODY>
</HTML>

            Jika dijalankan pada browser hasilnya akan nampak seperti gambar 1.
            Perhatikan bahwa pada array yang akan digabungkan terdapat nilai dengan indeks sama, yaitu “warna”, 1, dan 2. Setelah dimerge, nilai array dengan indeks “warna” yang muncul adalah yang terakhir, yaitu “biru”, sedangkan indeks dengan nilai numeris akan digabungkan dan diberi indeks berbeda. Dengan demikian array hasil merger adalah sebagai berikut:

Array
(
            [warna] => biru
            [0] => 5
            [1] => 10
            [2] => 3
            [3] => 7
            [4] => 73
)

            Jika urutan merger dibalik, yaitu array2 dulu baru array1, maka hasil yang akan diberikan adalah sebagai berikut:

Array
(
            [warna] => merah
            [0] => 3
            [1] => 7
            [2] => 73
            [3] => 5
            [4] => 10
)

Fungsi array_merge_recursive()

            Fungsi ini mirip dengan fungsi array_merge(), hanya saja jika terdapat array dengan indeks string yang sama, nilai-nilai dengan indeks yang sama tersebut tidak saling menggantikan, melainkan akan ditata menjadi array tersendiri. Jadi jika contoh di atas kita ganti dengan fungsi array_merge_recursive(), hasil yang akan didapatkan adalah sebagai berikut:

Array
(
            [warna] => Array
                        (
                                    [0] => merah
                                    [1] => biru
                        )
            [0] => 5
            [1] => 10
            [2] => 3
            [3] => 7
            [4] => 73
)

CATATAN UNTUK REDAKSI:
Mohon bagian yang menunjukkan array ini tidak ditampilkan sebagai kolom, tapi mungkin ditampilkan pada area tersendiri agar susunannya bisa tetap seperti yang terlihat di atas.

            Contoh berikut menunjukkan penggunaan fungsi array_merge_recursive() untuk array dengan dimensi lebih dari satu.

<HTML>
<HEAD>
<TITLE> Array </TITLE>
</HEAD>

<BODY>
<?
$array1 = array ("warna" => array ("favorit" => "merah"), 5);
$array2 = array (10, "warna" => array ("favorit" => "biru", "putih"));
$merger = array_merge_recursive($array1,$array2);
echo "Isi array1 adalah : <BR>";
print_r($array1);
echo "<BR>";
echo "Isi array2 adalah : <BR>";
print_r($array2);
echo "<BR>";
echo "Setelah dimerge : <BR>";
print_r($merger);
?>
</BODY>
</HTML>

            Hasil yang diberikan oleh contoh ini adalah sebagai berikut:

Array
(
            [warna] => Array
                        (
                                    [favorit] => Array
                                                (
                                                            [0] => merah
                                                            [1] => biru
                                                )
                                    [0] => putih
                        )
            [0] => 5
            [1] => 10
)

Fungsi sort()

            Fungsi sort digunakan untuk mengurutkan nilai array baik secara alfabetis maupun numeris. Urutan numeris adalah dari yang terkecil menjadi yang terbesar, sedangkan urutan secara alfabetis adalah dari A ke Z. Sintaksnya adalah sebagai berikut:

Sort(array[,sort_flags])

            Sort_flags adalah cara pengurutan yang digunakan. Nilai yang mungkin dari sort_flags adalah sebagai berikut:

  • SORT_REGULAR = 0, mengurutkan item secara normal.
  • SORT_NUMERIC = 1, mengurutkan item secara numeris.
  • SORT_STRING = 3, mengurutkan item secara string.

Contoh:

<HTML>
<HEAD>
<TITLE> Array </TITLE>
</HEAD>

<BODY>
<?
$mobil = array("toyota","opel","nissan","bmw","peugeot");
echo "Sebelum diurutkan : <BR>";
print_r($mobil);
echo "<BR>";
echo "Setelah diurutkan : <BR>";
sort($mobil,0);
print_r($mobil);
?>
</BODY>
</HTML>

            Hasilnya dapat dilihat pada gambar 2.

Fungsi array_reverse()

            Fungsi ini digunakan untuk membalik urutan array. Sintaksnya adalah sebagai berikut:

Array_reverse(array[,preserve_keys])

            Preserve_keys adalah nilai boolean yang menentukan apakah nilai array tetap dilekatkan pada indeksnya atau tidak. Nilai default adalah false. Contoh:

<HTML>
<HEAD>
<TITLE> Array </TITLE>
</HEAD>

<BODY>
<?
$klub = array("Juventus", "MU", "Barcelona", "Muenchen");
echo "Sebelum diurutkan :";
echo "<BR>";
print_r($klub);
echo "<BR> Diurutkan tanpa preserve key: <BR>";
$klub = array_reverse($klub);
print_r($klub);
echo "<BR> Diurutkan dengan preserve key: <BR>";
$klub = array("Juventus", "MU", "Barcelona", "Muenchen");
$klub = array_reverse($klub,TRUE);
print_r($klub);
?>
</BODY>
</HTML>


            Hasilnya dapat dilihat pada gambar 3.