Anda di halaman 1dari 11

Belajar PHP, membuat fungsi dapat mengembalikan lebih dari satu nilai

Oke, dalam belajar php kali ini saya akan coba jelaskan bagaimana membuat suatu fungsi yang dapat
mengembalikan lebih dari satu nilai, atau istilah aslinya, returning multiple value from function in php.
Inti dari fungsi tersebut adalah penggunaan array dan fungsi list();. Ya, di sini saya akan coba
memberikan sebuah contoh fungsi yang dapat memisahkan nama depan dan nama belakang dari nama
seseorang. Buatlah sebuah file dengan nama rvalue.php atau anda dapat memberikan nama lain yang
anda inginkan. Isi file tersebut dengan :

< ?php

function double_value($namalengkap)
{
$depanbelakang = explode(" ", $namalengkap);
$nama_depan = $depanbelakang[0];
$nama_belakang = $depanbelakang[1];
return array($nama_depan, $nama_belakang);
}

$namalengkapnya = "Loka Dwiartara";

list($namadepannya, $namabelakangnya) = double_value($namalengkapnya);

echo "Nama Lengkap : ".$namalengkapnya."<br>";


echo "Nama Depan : ".$namadepannya."<br>";
echo "Nama Belakang : ".$namabelakangnya ;

?>

Inti dari fungsinya ...


ketika sebuah variable dijadikan isi dari parameter

double_value($namalengkap)

pisahkan nama depan dan belakang dengan memanfaatkan spasi dan masukkan ke dalam array
$depanbelakang = explode(" ", $namalengkap);

sehingga nantinya untuk dapat mengakses nama depan nya memanfaatkan variable $depanbelakang[0]
dan untuk mengakses nama belakang nya dapat menggunakan variable $depanbelakang[0]
kemudian lakukan kembalikan nilai dalam bentuk array
return array($nama_depan, $nama_belakang);

dengan fungsi list() ambil kedua nilai yang berbentuk array


list($namadepannya, $namabelakangnya) = double_value($namalengkapnya);

kemudian tampilkan dengan memanfaatkan fungsi echo

echo "Nama Lengkap : ".$namalengkapnya."<br>";


echo "Nama Depan : ".$namadepannya."<br>";
echo "Nama Belakang : ".$namabelakangnya ;

Itu merupakan algoritma salah satu contoh membuat fungsi dapat mengembalikan dua nilai. Selamat
mencoba.

Operasi String…

Ya, kali ini penulis akan coba sedikit jelaskan bagaimana memanfaatkan fungsi substr untuk mengubah
suatu variable berisi int/float menjadi nilai mata uang.
Sebagai contohnya, dalam artikel ini penulis akan coba jelaskan bagaimana merubah,
93250750502500 menjadi Rp 93.250.750.502.500.-

Berikut adalah source code lengkapnya :

$uang = 93250750502500 ;
$digituang = strlen($uang);
$bagihabis3 = $digituang % 3 ;
$sisadigit = $digituang - 3 ;
for ($i=3;$i <= $digituang; $i+=3)
{
$uangasli = substr($uang, -$i, 3).".".$uangasli;
if ($i >= $sisadigit)
{
$uangasli = "Rp ".substr($uang, 0, $bagihabis3).".".$uangasli."-";
}
}
print $uangasli;
?>
Cara kerja script ini adalah sebagai berikut,

menghitung berapa digit angka yang akan di konversi.


$digituang = strlen($uang);

selanjutnya bagi habis variable tersebut,


$bagihabis3 = $digituang % 3 ;
hal ini digunakan untuk mewaspadai apabila nanti jumlah nilai uangnya tidak bisa dibagi habis 3.

kemudian,
$sisadigit = $digituang - 3 ;
ini digunakan sebagai persiapan untuk menampilkan angka paling depan, jika jumlah digit uang tidak
bisa di habis oleh 3.

dan script intinya yang melakukan pengulangan fungsi substr,


for ($i=3;$i <= $digituang; $i+=3)
{
$uangasli = substr($uang, -$i, 3).".".$uangasli;

jika jumlah digitnya tidak bisa dibagi 3


if ($i >= $sisadigit)
{

maka ambil x angka dari depan.


$uangasli = "Rp ".substr($uang, 0, $bagihabis3).".".$uangasli."-";
}
}

print $uangasli;
?>

sebenarnya pengulangan di atas itu sama dengan fungsi di bawah ini :


$uangasli = substr($uang,-11,2).".".substr($uang,-9,3).".".substr($uang,-6,3).".".substr($uang,-3,3);

Mungkin ada kalanya anda memiliki algoritma sendiri yang lebih mantap, silahkan dikembangkan.
Selamat ber-php ria.
Operasi string 2

Operasi string begitu penting dalam dunia per-php-an. Kenapa begitu penting ? Karena
melakukan pekerjaan dengan php, baik itu membangun suatu sistem informasi, membuat fasilitas
searching di web, dan berbagai hal lain yang berhubungan dengan web development tak lepas
dari operasi string. Begitu banyak fungsi operasi string yang ada, dan banyak pula fungsi string
yang sering digunakan, sehingga penulis perlu membaginya menjadi beberapa artikel mengenai
operasi string ini. Untuk artikel bagian pertama penulis akan menjelaskan 2 fungsi yang memiliki
tugas tambahan selain dari mencari string. Antara lain :

 substr()
 strstr()

Substr(), memiliki fungsi untuk mengambil satu, atau banyak karakter dari suatu variable.
Implementasinya seperti mengambil karakter yang dihasilkan dari fungsi DATE() –nya mysql.
Contoh penggunaannya adalah sebagai berikut :

$tanggal = '012409';

$bulan = substr($date, 0, 2);


$hari = substr($date, 2, 2);
$tahun = substr($date, -2);

echo "$hari/$bulan/$tahun";
?>

Hasilnya adalah :
24/01/09

Penjelasannya adalah sebagai berikut :

$bulan = substr($date, 0, 2);


Ambil 2 karakter dari digit terdepan, hasilnya adalah 01

$hari = substr($date, 2, 2);


Ambil 2 karakter dari digit ke 3. Karena string  memiliki urutan awal 0, maka angka 2 pada
variable $tanggal memiliki posisi di urutan ke 2. Hasilnya adalah 24.

Untuk membuktikannya :
$tanggal = '012409';
echo $tanggal[2];
?>

hasilnya adalah :
2

Dan yang terakhir adalah


$tahun = substr($date, -2);
Ini berarti ambil 2  karakter dari belakang. Hasilnya adalah 09.

Strstr(),  fungsi ini digunakan untuk mengembalikan semua string dibelakang string yang dicari.
Misalnya ada sebuah kalimat :
"Ketampanan abadi terpancar dari Kegantengan sejati . --Al-k",
karakter yang dicari adalah "--",
maka hasil dari fungsi strstr() adalah "--Al-k"

Contoh penggunaanya :

$kalimat= "Ketampanan abadi terpancar dari Kegantengan sejati . --Al-k";


$tanda = '--';
$yangdicari = strstr ($kalimat, $tanda);
echo $yangdicari;
?>

Hasilnya adalah :
--Al-k

Implementasi penggunaan strstr() contohnya seperti ini :

$kalimat= "Ketampanan abadi terpancar dari Kegantengan sejati . --Al-k";


$tanda = '--';

if ($yangdicari = strstr ($kalimat, $tanda)) {


   echo 'Ungkapan yang keren tadi di buat oleh '."'". substr ($yangdicari , strlen ($tanda))."'";
} else {
   echo "Nggak ada ungkapan tuhh !!";
}
?>

Penjelasannya adalah sebagai berikut :

if ($yangdicari = strstr ($kalimat, $tanda)) {


jika karakter yang di cari dalam hal ini $tanda ada pada  string $kalimat, maka kembalikan string
yang berada di belakang tersebut kedalam variable $yangdicari.

echo 'Ungkapan yang keren tadi di buat oleh '."'". substr ($yangdicari , strlen ($tanda))."'";

bagian intinya adalah substr ($yangdicari , strlen ($tanda))

Jika di ubah kedalam nilai sebenarnya adalah


substr ("--Al-k" , 2 )

tampilkan string yang dicari tersebut dengan melewatkan tanda --.

Hasilnya adalah :
Al-k

Sehingga hasil keutuhan dari script

$kalimat= "Ketampanan abadi terpancar dari Kegantengan sejati . --Al-k";


$tanda = '--';

if ($yangdicari = strstr ($kalimat, $tanda)) {


   echo 'Ungkapan yang keren tadi di buat oleh '."'". substr ($yangdicari , strlen ($tanda))."'";
} else {
   echo "Nggak ada ungkapan tuhh !!";
}
?>

Adalah :

Ungkapan mantap tadi di buat oleh 'Al-k'

Cukup mudah ya ? Cukup narsis juga ! :D

Artikel Lebih dalam dengan operasi string bagian pertama saya cukupkan sampai disini. Untuk
bagian ke 2 dan terakhir akan penulis jelaskan di belajar php berikutnya.
Update delete data w/ oop

Penggunaan seleksi untuk menampilkan database menggunakan OOP telah penulis jelaskan
sebelumnya. OOP dalam php 5 ini telah terbukti ampuh dalam menghasilkan source code yang
efisien untuk menangani manajemen database. Tentu hambar rasanya jika penggemar sayur asam
memakannya tanpa ada sedikitpun rasa garam di dalamnya. Nah begitu juga dengan artikel
penulis sebelumnya, menampilkan database dengan OOP masih belum cukup tanpa pengetahuan
selanjutnya mengenai bagaimana melakukan update dan delete record pada database
menggunakan OOP ini. Oleh karena itu di sinilah penulis akan jelaskan sedikit penggunaan OOP
untuk menghandle database. Untuk mempelajarinya mari buat databasenya terlebih dahulu :

-- simple cms database


create database simplecms ;
use simplecms  ;
create table article( id int(4) primary key auto_increment, category varchar(225), article_title
varchar(225) );
insert into article values('','web design', 'Web Design Make Over with CSS');
insert into article values('','graphic design','CorelDraw the handy tool');
insert into article values('','flash animation','Make a splash water animation');

Ya, langsung saja penulis berikan contoh kasusnya, script intinya, index.php, dan biasanya script
seperti ini digunakan sebagai halaman admin. Tentunya admin disini dapat melakukan update
dan delete record database.

$mysqli = new mysqli("localhost", "root", "", "simplecms");


if (mysqli_connect_errno())
{
    echo("Nggak bisa konek : ".mysqli_connect_error());
    exit();
}
$cat = $mysqli->prepare("select id, category, article_title from article order by id");
$cat->execute();
$cat->bind_result($id, $category, $article_title);
?>

Database in OOP Way ; Seleksi Data dengan mySqli


while ($cat->fetch())
    echo "".""; 
?>
SIMPLECMS
CONTROL
PANEL :
Catego
No Title
ry
". ". ".
    . DEL
$id. $catego $article_ti
$id.">E ETE
" ry." tle."
DIT

if ($_REQUEST['yang_ini_didelete'] == 'ya')
{
    echo "Wah... record ".$_REQUEST['id_nya']." bener-bener mau di hapus ya ?" ;
    echo "
           
           

            ";


}

else if ($_REQUEST['delete_langsung_lah'] == 'ya')


{
    $id_delete = $_POST['id'];
    $cat = $mysqli->prepare("delete from article where id=?");
    $cat->bind_param('i',$id);
    $id = $id_delete;
    $cat->execute();
    echo "Database berhasil dihapus ... Anda akan diredirect dalam 2 detik";
    echo "";
}

else if ($_REQUEST['yang_ini_diedit'] == 'ya')


{       
    $cat = $mysqli->prepare("select id, category, article_title from article where id=?");
    $cat->bind_param('i',$id);
    $id = $_REQUEST['id_nya'];
    $cat->execute();
    $cat->bind_result($id, $category, $article_title);
    echo "Yang mau diedit...";
    echo "";
    while ($cat->fetch()) {
    echo "";
    echo "";
    echo "";
    echo "";
    echo "
Category : ".$category."
";
Title :     echo $article_title ; }
    echo "
 
";
}

else if ($_REQUEST['update_langsung_lah'] == 'ya')


{
    $category = str_replace("_"," ",$_POST['category']);
    $title = $_POST['title'];
    $id =  $_POST['id'];
   
    $cat = $mysqli->prepare("update article SET category ='$category', article_title = '$title'
where id=?");
    $cat->bind_param('i',$id);
    $cat->execute();
   
    echo "Database berhasil diupdate ... Anda akan diredirect dalam 2 detik";
    echo "";
   
}
?>

Tampilannya nanti akan seperti ini :

Potongan source code di bawah ini digunakan untuk menampilkan database dengan cara OOP.
Seperti yang pernah penulis jelaskan dalam artikel pertama mengenai penggunaan OOP dalam
PHP 5 untuk memanage database.
$mysqli = new mysqli("localhost", "root", "", "simplecms");
if (mysqli_connect_errno())
{   
    echo("Nggak bisa konek : ".mysqli_connect_error());
    exit();
}
$cat = $mysqli->prepare("select id, category, article_title from article order by id");
$cat->execute();
$cat->bind_result($id, $category, $article_title);

Penjelasan detilnya dapat dilihat di artikel sebelumnya. Di sini penulis akan menjelaskan
beberapa fungsi baru OOP dalam PHP 5. Lihat kembali fungsi tersebut pada baris ini :
 
...
$cat = $mysqli->prepare("delete from article where id=?");
$cat->bind_param('i',$id);
$id = $id_delete;
$cat->execute();
echo "Database berhasil dihapus ... Anda akan diredirect dalam 2 detik";
echo "";
...

Di dalam barisan tersebut terdapat kalimat pembentuk query sql yang sedikit berbeda, yaitu :
$cat = $mysqli->prepare("delete from article where id=?");

Terdapat tanda '?' sebagai perwakilan dari parameter syarat. Tanda tanya ini nantinya akan
didefinisikan sebagai satu syarat dalam satu variable menggunakan fungsi bind_param(),
sehingga jika sebuah query didefinisikannya  seperti ini :
cat = $mysqli->prepare("delete from article where id=?");

maka, harus terdapat fungsi bind_param() sesudahnya, seperti :


$cat->bind_param('i',$id);

Sehingga 2 baris kalimat tersebut sama halnya dengan query biasa, jika dalam query biasa maka
hasilnya seperti ini :

$cat = "delete from article where id='$id'";


   
Setali 3 uang. :D. Ya ya ya ... tapi coba perhatikan kembali fungsi bind_param pada kalimat
tersebut :
$cat->bind_param('i',$id);
Dalam parameter pertama fungsi bind_param di isi dengan 'i'.
Kenapa dengan 'i' ?, i ini adalah perwakilan dari variable yang bertipe integer. Dalam query
seperti ini delete from article where id='$id', mustahil jika mengisinya dengan string, kenapa ?
lihat struktur tablenya. :D, hasilnya nanti akan 0 jika menggunakan string. Adapun type dari
parameter tersebut antara lain yaitu :

i : ini untuk variable yang bertipe integer


s : ini untuk variable yang bertipe string
d : ini untuk variable yang bertipe double
b : ini untuk variable yang bertipe blob.

Ya kita lompat ke baris berikutnya :


$id = $id_delete;
Statement ini hanyalah sebuah assignment, memenuhi syarat sebelumnya.

Selanjutnya adalah menjalankan querynya, eksekusi langsung :D , yakni :


$cat->execute();

Kembali muncul satu pertanyaan, bagaimana jika menggunakan update database dalam oop ?
Silahkan lihat kembali baris di bawah ini :

$cat = $mysqli->prepare("update article SET category ='$category', article_title = '$title' where


id=?");
$cat->bind_param('i',$id);
$cat->execute();

Sepertinya sudah jelas ya. .

Definisikan terlebih dahulu querynya :


$cat = $mysqli->prepare("update article SET category ='$category', article_title = '$title' where
id=?");

Penuhi syarat query tersebut :


$cat->bind_param('i',$id);   

Jalankan querynya :
$cat->execute();

Anda mungkin juga menyukai