Tuesday, July 1, 2008

Lebih dalam mengenal array

 


Yups, selamat berjumpa kembali dengan penulis dalam Belajar PHP :-q~~ Sebelum ke inti artikel penulis akan mencoba melakukan review mengenai pengetahuan yang telah diketahui sebelumnya. Tak kenal maka tak dalam, begitulah kata sang ahli. :D~ Array merupakan sekelompok data dalam hal ini variable yang terdapat dalam sebuah variable. Dengan kata lain banyak variable yang terdapat dalam satu variable. Nah inilah yang dinamakan dengan array.
Untuk merepresentasikan sebuah array, penulis ambil contoh :
$angka = array("Satu", "Dua", "Tiga");
Dari situ timbul pertanyaan-pertanyaan berkenaan dengan array, salah satunya adalah bagaimana caranya mengambil suatu data yang berada dalam array. Dimisalkan yang akan diambil adalah "Dua". Hal yang perlu dilakukan cukup dengan menggunakan nama variable si array tersebut ditambah dengan urutan keberapakah data yang akan diambil nantinya.
Maka ...
$angka = array("Satu", "Dua", "Tiga");
$ambilarray = $angka[1];
echo $ambilarray ;
Yang ditampilkan dalam browser ..
Dua
Lalu timbul satu pertanyaan lagi, mengapa untuk mengambil data "Dua" itu berada pada urutan ke 1?. Sebagaimana ditampilkan dalam source code $angka[1];. Yup, ini terjadi dikarenakan array itu bermula dari angka 0. Sehingga :
"Satu" itu berada pada urutan ke 0
"Dua" itu berada pada urutan ke 1  , sedangkan
"Tiga" itu berada pada urutan ke 2
Hmmm... jika ada variabel dalam variabel. Bagaimana dengan array dalam array ? Pastinya inilah yang dinamakan array multidimensi. Penulis tidak akan menjelaskan mengenai array 2 dimensi atau lebih dikarenakan hal ini amat jarang sekali dipakai. Contohnya ...
$angka = array("Satu", array("Dua","Tiga") , "Empat");
Untuk mengambil nilai dua yang terdapat dalam array tersebut. Cukup dengan memanggil nama variabel arraynya seperti ini :
$angka = array("Satu", array("Dua","Tiga") , "Empat");
$ambilarray = $angka[1][0];
echo $ambilarray ;
Hasil di browser adalah ...
Dua
Begitu juga dengan bentuk array yang lain.
$angka = array("Satu", "Dua" => "Satu di tambah Satu", "Tiga");
Perhatikan baris  "Dua" => "Satu ditambah Satu" ini berarti variabel "Dua" memiliki nilai "Satu ditambah satu", sehingga untuk mengambil nilai yang berada dalam variabel Dua ...
$angka = array("Satu", "Dua" => "Satu di tambah Satu", "Tiga");
$nilaidua = $angka['Dua'];
echo $nilaidua ;
Maka yang akan ditampilkan oleh browser adalah ...
Satu ditambah Satu
Yup, array memiliki banyak sekali peran dalam web development. Penulis sendiri menggunakan array dalam manajemen artikel., searching database,
dan banyak lagi contoh yang lain dimana pentingnya peranan seorang Array. :D~~
Dari situ penulis akan memberikan sebuah contoh dari implementasi array.
Untuk implementasi kali ini penulis akan menggunakan array sebagai database penyimpanan kata-kata yang nantinya akan diblokir.
Blokir kata dalam komentar dengan Array
Sebelumnya buat database komentarnya terlebih dahulu.
create database komentar;
use komentar;
create table komentar( id int(5) primary key auto_increment, penulis varchar(50), email varchar(30), isikomentar text);
insert into komentar values('','Al-k','alkemail@gmail.com','Pada dasarnya Ryuzaki itu tidak ganteng');
insert into komentar values('','Al-k','alkemail@gmail.com','Pada dasarnya Ryuzaki manusia juga');
insert into komentar values('','Al-k','alkemail@gmail.com','Pada dasarnya Ryuzaki adalah manusia yang tidak keren huehueue');
Kemudian file config.php, file ini yang menghubungkan antara database dengan webserver apache ...
<?php
$user = "root" ;
$passwd = "";
$host = "localhost" ;
$koneksi = mysql_connect($host, $user, $passwd) ;
mysql_select_db("komentar",$koneksi) or die ("Database tidak bisa dikoneksi");
?>
Selanjutnya file intinya, array.php :
<?php
require_once "config.php";
$perintah = "select * from komentar order by id desc";
$jalankanperintahnya = mysql_query($perintah);
$katayangdiblokir = "keren ganteng";
$potongkata = explode(" ", $katayangdiblokir);
$jumlaharray = count($potongkata);
if ($_REQUEST['isikomentar'] == "iya" )
    {
    if (ISSET($_POST['isinya']))
        {
        $isikomentarnyaadalah = $_POST['isinya'];
        $namanya = $_POST['namanya'];
        $emailnya = $_POST['emailnya'];
        mysql_query("insert into komentar values ('','$namanya','$emailnya','$isikomentarnyaadalah')");
        header ("location: array.php");
        }
    }
echo "<b>Komentar :</b><br><hr>";
while ($hasil = mysql_fetch_array($jalankanperintahnya))
{
$nama = $hasil['penulis'];
$email = $hasil['email'];
$komentar = strtolower($hasil['isikomentar']);
$isikomentar = explode(" ",$komentar);
$arraykomentar = count($isikomentar)."<br>";
$total_loop = $arraykomentar + $jumlaharray ;
for ( $i = 0; $i < $jumlaharray  ; $i++)
    {
    if(in_array($potongkata[$i],$isikomentar))
        {
        $komentar = "<font color=red><b>no comment</b></font>" ;
        }
    }
echo "Nama : $nama <br>";
echo "Email : $email <br>";
echo "Komentar : <br>$komentar <hr>";
}
?>
<html><body>
<b>Isi Komentar :</b>
<table border=0>
<form method = 'POST' action = <?php echo "$_SERVER[PHP_SELF]?isikomentar=iya" ; ?> >
<tr><td>Nama:</td><td><input type=text name=namanya></td></tr>
<tr><td>Email:</td><td><input type=text name=emailnya></td></tr>
<tr><td valign=top>Isinya:</td><td><textarea  rows=6 cols=40 name=isinya></textarea></td></tr>
<tr><td></td><td><input type=submit name=submit value=Kirim
style='color: #000000; border: 1px solid #000000; background-color: #DFDFDF'></td></tr>
</form></table>
</body>
</html>
Dilangsungkan ke script intinya saja.
Perhatikan barisan kalimat ...
require_once "config.php";
$perintah = "select * from komentar order by id desc";
$jalankanperintahnya = mysql_query($perintah);
:D cukup familiar? yups, dengan memanfaatkan file koneksi antara webserver dengan mysql servernya, yakni file config.php. Lalu tampilkan semua isi dari tabel komentar dan lakukan sorting berdasarkan id yang terakhir kali disimpan dalam database.
Kemudian ...
$katayangdiblokir = "keren ganteng";
$potongkata = explode(" ", $katayangdiblokir);
$jumlaharray = count($potongkata);
Database kata yang nantinya akan diblokir disisipkan kedalam variabel $katayangdiblokir. Lalu muncul kembali pertanyaan, mengapa tidak berbentuk seperti ini :
$katayangdiblokir = array("keren","ganteng");
Karena penulis akan mencoba mengenalkan penggunaan fungsi explode. Explode berfungsi untuk memisahkan suatu string menjadi kumpulan variabel-variabel.
explode() yang digunakan dalam implementasi kali ini berfungsi untuk membuat array dengan memisahkan variabel menggunakan spasi.
kumpulkan databasenya ...
$katayangdiblokir = "keren ganteng";
kemudian pisahkan lalu masukkan ke dalam array $potongkata
$potongkata = explode(" ", $katayangdiblokir);
Sehingga hasilnya nanti sama dengan $katayangdiblokir = array("keren","ganteng");
Kemudian jumlahkan variabel yang berada dalam array
$jumlaharray = count($potongkata);
Lalu perhatikan susunan kalimat ini ...
if ($_REQUEST['isikomentar'] == "iya" )
    {
    if (ISSET($_POST['isinya']))
        {
        $isikomentarnyaadalah = $_POST['isinya'];
        $namanya = $_POST['namanya'];
        $emailnya = $_POST['emailnya'];
        mysql_query("insert into komentar values ('','$namanya','$emailnya','$isikomentarnyaadalah')");
        header ("location: array.php");
        }
    }
Sebelum beralih lebih lanjut, coba kita perhatikan form yang dihasilkan dari halaman array.php
<form method = 'POST' action = <?php echo "$_SERVER[PHP_SELF]?isikomentar=iya" ; ?> >
<tr><td>Nama:</td><td><input type=text name=namanya></td></tr>
<tr><td>Email:</td><td><input type=text name=emailnya></td></tr>
<tr><td valign=top>Isinya:</td><td><textarea  rows=6 cols=40 name=isinya></textarea></td></tr>
<tr><td></td><td><input type=submit name=submit value=Kirim
style='color: #000000; border: 1px solid #000000; background-color: #DFDFDF'></td></tr>
</form>
Yang dihasilkan oleh form ini adalah :
variabel $_POST['namanya'] yang diambil dari text box "namanya"
variabel $_POST['emailnya'] yang diambil dari text box "emailnya"
kemudian variabel $_POST['isinya'] yang diambil dari text area dan
variabel $_REQUEST['isikomentar'] yang dihasilkan dari action si form, dalam hal ini
<form method = 'POST' action = <?php echo "$_SERVER[PHP_SELF]?isikomentar=iya" ; ?> >
Kita kembali ke baris ini
if ($_REQUEST['isikomentar'] == "iya" )
    {
    if (ISSET($_POST['isinya']))
        {
        $isikomentarnyaadalah = $_POST['isinya'];
        $namanya = $_POST['namanya'];
        $emailnya = $_POST['emailnya'];
        mysql_query("insert into komentar values ('','$namanya','$emailnya','$isikomentarnyaadalah')");
        header ("location: array.php");
        }
    }
ketika user telah selesai mengisi komentar
if ($_REQUEST['isikomentar'] == "iya" )
dan apabila user telah mempost ( me-submit ) komentarnya
if (ISSET($_POST['isinya']))
maka kenalkan variabel global $_POST['isinya'] sebagai $isikomentarnyaadalah, kemudian jadikan $_POST['emailnya'] sebagai variabel $emailnya.
$isikomentarnyaadalah = $_POST['isinya'];
$namanya = $_POST['namanya'];
$emailnya = $_POST['emailnya'];
kemudian masukkan kedalam database
mysql_query("insert into komentar values ('','$namanya','$emailnya','$isikomentarnyaadalah')");
setelah selesai, lakukan redirect ke halaman array.php
header ("location: array.php");
sehingga user langsung dapat melihat komentar yang baru saja dimasukkan.
Bisa diperhatikan juga kalimat ini
while ($hasil = mysql_fetch_array($jalankanperintahnya))
{
$nama = $hasil['penulis'];
$email = $hasil['email'];
$komentar = strtolower($hasil['isikomentar']);
$isikomentar = explode(" ",$komentar);
$arraykomentar = count($isikomentar)."<br>";
$total_loop = $arraykomentar + $jumlaharray ;
for ( $i = 0; $i < $jumlaharray  ; $i++)
    {
    if(in_array($potongkata[$i],$isikomentar))
        {
        $komentar = "<font color=red><b>no comment</b></font>" ;
        }
    }
echo "Nama : $nama <br>";
echo "Email : $email <br>";
echo "Komentar : <br>$komentar <hr>";
}
Penulis ambil kalimat intinya :
Selama dalam database masih terdapat record, ambil nilainya dan sisipkan kedalam variabel $hasil
while ($hasil = mysql_fetch_array($jalankanperintahnya))
lakukan change case pada isikomentar dalam database menjadi huruf kecil semua ...
$komentar = strtolower($hasil['isikomentar']);
jadikan array dengan memanfaatkan spasi yang ada
$isikomentar = explode(" ",$komentar);
Berapakah jumlah variabel yang terdapat dalam array ?
$arraykomentar = count($isikomentar)."<br>";
Sebuah baris lagi yang perlu dipahami ...
$total_loop = $arraykomentar + $jumlaharray ;
ini terjadi dikarenakan adakalanya saat-saat dimana komentar yang dimasukkan oleh user lebih sedikit dari database kata yang akan diblokir, dan  seringkali database kata yang diblokir itu lebih sedikit jumlah arraynya dibandingkan komentar yang dimasukkan. Sehingga perlu dijumlahkan antara jumlah array pada komentar yang diblokir dengan jumlah array dari komentar yang dimasukkan.
Ini dia kalimat intinya ...
for ( $i = 0; $i < $jumlaharray  ; $i++)
    {
    if(in_array($potongkata[$i],$isikomentar))
        {
        $komentar = "<font color=red><b>no comment</b></font>" ;
        }
    }
lakukan pengulangan sebanyak $jumlaharray kesemuanya.
for ( $i = 0; $i < $jumlaharray  ; $i++)
jika didalam isi komentar terdapat kata-kata yang diblokir.
if(in_array($potongkata[$i],$isikomentar))
maka tampilkan komentar yang ada menjadi no comment
$komentar = "<font color=red><b>no comment</b></font>" ;
selain itu tampilkan seperti adanya.
Contoh lain penggunaan fungsi in_array( ) :
$buah = array ("Mangga", "Jambu", "Pepaya", "Pisang");
if (in_array ("Jambu", $buah))
{
print "Ada buah Jambu euyyy ... ";
}
Jika terdapat Jambu dalam array buah
if (in_array ("Jambu", $buah))
maka tampilkan Ada buah Jambu euyyy ...
print "Ada buah Jambu euyyy ... ";
Dari situ mungkin anda memiliki ide-ide brilian guna diimplementasikan dalam web anda tentunya.
Jadi, silahkan kembangkan imajinasi anda dan tuangkan dalam cangkir source code. :-q
Script tersebut bisa diambil langsung disini
http://www.networkandgame.890m.com/ilmuwebsite/al-k-lebih-dalam-mengenal-array.zip
Greetz to : b_scorpio & phii_ :D, AbuZahra, fadli, safril, ivan, dr.emi, minangmedia dan member ilmuwebsite yang setia mengunjungi situs ini. :D~
Special for : jojo

 

Sumber dari situs Ilmu Website dalam kategori php kuliah

No comments: