Saturday, January 7, 2017

Bab 2. PHP/MySQL Untuk Pemula


String



Mengendalikan huruf besar atau huruf kecil
Anda akan memaksa sebuah nilai string menjadi huruf besar atau huruf kecil. Hal ini dilakukan dengan memanfaatkan nilai strtoupper() atau strtolower().

<?php
//kendali_huruf_besar_kecil.php
// mendefinisikan string
$syair = "Aku Mau Mencintai Kekuranganmu";

// mengubah string menjadi huruf besar
// hasil: "AKU MAU MENCINTAI KEKURANGANMU"
$hbstr = strtoupper($syair);
echo $hbstr;

// mengubah string menjadi huruf kecil
// hasil: "aku mau mencintai kekuranganmu"
$hkstr = strtolower($syair);
echo $hkstr;
?>

Untuk kendali lainnya, perhatikan fungsi ucfirst(), yang mengkapitalkan (mengubah menjadi huruf besar) karakter pertama dari sebuah string (baik untuk kalimat), dan fungsi ucwords(), yang mengkapitalkan karakter pertama dari tiap kata di dalam sebuah string (cocok untuk judul). Berikut adalah contohnya:

<?php
//kendali_string.php
// mendefinisikan string
$syair = "aku mau mencintai kekuranganmu";

// mengubah karakter pertama menjadi huruf besar
// dari string
// hasil: "Aku mau mencintai kekuranganmu"
$ucfstr = ucfirst($syair);
echo $ucfstr;

// mengubah karakter pertama menjadi huruf besar
// dari setiap kata
// hasil: "Aku Mau Mencintai Kekuranganmu"
$ucwstr = ucwords($syair);
echo $ucwstr;
?>


Memeriksa nilai string kosong
Menggukan kombinasi dari fungsi isset() dan trim() untuk memeriksa apakah sebuah string memuat karakter-karakter yang valid atau tidak.

<?php
//periksa_string.php
// mendefinisikan string
$str = " ";

// memeriksa apakah string kosong atau tidak
// hasil: "Kosong"
echo (!isset($str) || trim($str) == "") ? "Kosong"
  : "Tidak Kosong";
?>

Anda akan sering menggunakan ini ketika bekerja dengan data form, untuk melihat apakah bidang form yang harus diisi memuat data valid atau tidak. Teknik dasarnya sederhana: gunakan isset() untuk memverifikasi apakah variabel string ada, kemudian gunakan fungsi trim() untuk memotong spasi-putih dari tepi-tepi string, lalu bandingkan dengan string kosong. Jika hasilnya TRUE, maka dapat dipastikan string tidak memuat nilai.


Menghapus karakter dari string
Di sini, Anda akan menghapus n karakter pertama/akhir dari sebuah string. Gunakan fungsi substr() untuk memotong sejumlah karakter yang diinginkan dari awal atau akir string.

<?php
//hapus_karakter.php
//mendefinisikan string
$str = "klaten bersinar";

// menghapus 6 karakter pertama
// hasil: "klaten"
$strBaru = substr($str, 6);
echo $strBaru;

// menghapus enam karakter terakhir
// hasil: "klaten be"
$strBaru = substr($str, 0, -6);
echo $strBaru;
?>


Menghapus spasi-putih dari string
Anda akan menghapus semua atau beberapa karakter spasi-putih dari sebuah string, atau memampatkan beberapa spasi dalam sebuah string.

Gunakan ekspresi reguler untuk menemukan dan mengganti beberapa karakter spasi-putih menjadi satu.

<?php
//hapus_spasi.php
// mendefinisikan string
$str = "  ini     adalah     string     dengan 
  ban yak   spa si   putih   ";

// memotong spasi-putih di akhir sring
// memampatkan spasi-putih di tengah string
// hasil: "ini adalah string dengan ban yak spa si putih"
$strBaru = ereg_replace('[[:space:]]+', ' ', trim($str));
echo $strBaru;
?>


Membalikkan string
Anda akan membalikkan sebuah string. Gunakan fungsi strrev().

<?php
//balik_string.php
// mendefinisikan string
$kartu = "Visa, MasterCard and American Express
  diterima";

// membalikkan string
// hasil: "amiretid sserpxE naciremA dna
  draCretsaM ,asiV"
$sdrac = strrev($kartu);
echo $sdrac;
?>


Mengulang string
Anda akan mengulang sebuah string sebanyak n kali. Gunakan fungsi str_repeat().

<?php
//ulang_string.php
// mendefinisikan string
$ketawa = "ha ";

// mengulangi string
// hasil: "ha ha ha ha ha ha ha ha ha ha "
$ketawa_ulang = str_repeat($ketawa, 10);
echo $ketawa_ulang;
?>

Fungsi str_repeat() dapat berguna ketika Anda ingin menampilkan garis batas di halaman keluaran. Untuk melihat kegunaannya, amati keluaran dari kode berikut dengan browser Anda yang menampilkan karakter-karakter Ø pada halaman.

<?php
//garis_batas.php
// mendefinisikan string
$spesial = "&Oslash;";

// mengulang string
$ulang_spesial = str_repeat($spesial, 62);
echo $ulang_spesial;
?>


Memotong string
Anda akan memotong suatu string yang panjang sehingga string tersebut memiliki panjang tertentu, dan mengganti karakter-karakter yang dipotong dengan karakter tertentu.

Gunakan fungsi substr() untuk memotong string menjadi panjang tertentu, dan menempelkan karakter placeholder pada string yang terpotong.

<?php
// potong_string.php
function potongString($str, $karMaks=40,
  $holder="...") {
    // memeriksa panjang string
    // memotongnya jika diperlukan
    if (strlen($str) > $karMaks) {
        return trim(substr($str, 0, $karMaks)) .
          $holder;
    } else {
        return $str;
    }
}

// mendefinisikan string yang panjang
$str = "Anda akan memotong suatu string yang panjang
  sehingga string tersebut memiliki panjang tertentu,
  dan mengganti karakter-karakter yang dipotong dengan
  karakter tertentu.";

// memotong dan menampilkan string
// hasil: "Anda akan memotong suatu string yang pan..."
echo potongString($str);

// memotong dan menampilkan string
// hasil: "Anda akan memotong s >>>"
echo potongString($str, 20, " >>>");
?>


Konversi kode dan karakter ASCII

Anda dapat membaca kode ASCII (American Standard Code for Information Interchange) yang berkaitan dengan karakter tertentu, atau sebaliknya.

<?php
// konversiASCII.php
// mendefinisikan karakter
$kar = "\r";

// membaca kode ASCII
// hasil: 13
$asc = ord($kar);
echo $asc;
?>

Anda bisa menggunakan fungsi chr() untuk mendapatkan karakter yang berkaitan dengan kode ASCII tertentu:

<?php
// karakterASCII.php
// mendefinisikan kode ASCII
$asc = 65;

// membaca karakter
// hasil: "A"
$kar = chr($asc);
echo $kar;
?>

Anda dapat menggunakan fungsi chr() untuk menghasilkan semua daftar alfabet, sebagai berikut:

<?php
// seluruh_alfabet.php
// hasil: "abcd...xyz"
for ($a=97; $a<(97+26); $a++) {
  echo chr($a);
}
?>




Memecah string
Pada kasus ini, Anda akan memecah sebuah string yang panjang menjadi segmen-segmen yang lebih kecil, dimana tiap segmen memiliki panjang tetap.

Anda menggunakan fungsi str_split() untuk memecah string menjadi segmen-segmen dengan panjang tetap:

<?php
// pecah_string.php
// mendefinisikan string
$str = "Jogja kota budaya dan simbol keberagaman,
meskipun akhir-akhir ini ada kelompok tertentu
yang mengusik kebhinekaannya";

// mendefinisikan ukuran segmen/chunk
$ukuranChunk = 21;

// memecah string menjadi chunk-chunk
// hasil: [0] => Jogja kota budaya dan [1] => simbol keberagaman,
// [2] => meskipun akhir-akhi [3] => r ini ada kelompok te
// [4] => rtentu yang mengusik [5] => kebhinekaannya
$arrayChunck = str_split($str, $ukuranChunk);
print_r($arrayChunck);
?>


Memecah string
Di sini, Anda akan membandingkan bunyi dari dua string untuk melihat kesamaannya.

Anda menggunakan fungsi metaphone() untuk menguji apakah bunyi kedua string sama atau tidak.

<?php
// banding_string.php
// membandingkan string-string
// hasil: "Kedua string sama"
echo (metaphone("rest") == metaphone("reset")) ?
"Kedua string sama" : "Kedua string tidak sama";

// hasil: "Kedua string sama"
echo (metaphone("deep") == metaphone("dip")) ?
"Kedua string sama" : "Kedua string tidak sama";

// hasil: "Kedua string tidak sama"
echo (metaphone("fire") == metaphone("higher")) ?
"Kedua string sama" : "Kedua string tidak sama";
?>

Fungsi metaphone(), yang merupakan versi yang lebih akurat dari fungsi soundex(), adalah salah satu fungsi string PHP yang sangat unit. Fungsi ini menghasilkan sidik untuk tiap bunyi string; jadi, string dengan bunyi sama akan menghasilkan sidik yang sama.


Mengekstrak string ke dalam array
Pada kasus ini, Anda akan mengekstrak elemen-elemen individual dari sebuah daftar dimana elemen-elemennya dipisahkan oleh tanda koma.

<?php
// dekomposisi_string.php
// dekomposisi string
// mendefinisikan daftar dengan tiap elemen dipisahkan koma
$string_bumbu = "cabe, bawang merah, garam, bawang puting, merica, ketumbar";

// mendekomposisi string ke dalam array
// menggunakan koma sebagai delimiter
$array_bumbu = explode(", ", $string_bumbu);

// beriterasi menjelajah array
// menampilkan elemen-elemen array individual
foreach ($array_bumbu as $i) {
    print $i . "\r\n";
}
?>

Fungsi explode() memiliki proses satu-langkah dalam memecah string-string (yang dipisahkan koma) dan menempatkannya ke dalam sebuah string.


Mengekstrak URL
Di sini, Anda akan mengekstrak protokol, nama domain, path, dan komponen lain dari sebuah URL.

Anda akan menggunakan fungsi parse_url() untuk secara otomatis memecah URL menjadi bagian-bagian konstituennya.

<?php
// dekomposisi_URL.php
// mendefinisikan URL
$url = "http://www.algoritma.com:80
/komunitas/kolom/baris/artikel.php?id=79 &hal=2";

// mendekomposisi URL menjadi array
$data = parse_url($url);

// menampilkan komponen-komponen URL
foreach ($data as $k=>$v) {
  echo "$k: $v \n";
}
?>



Menghitung kata dalam sebuah string
Pada kasus ini, Anda akan menghitung jumlah kata dalam sebuah kalimat atau paragraf.

Anda bisa menggunakan sebuah pola dalam mengidentifikasi kata-kata dalam suatu string, dan kemudian menghing berapa kali pola tersebut terjadi.

<?php
//hitung_kata.php
// mendefinisikan string
$teks = "Pada kasus ini, Anda akan menghitung jumlah kata dalam sebuah kalimat atau paragraf. Anda bisa menggunakan sebuah pola dalam mengidentifikasi kata-kata dalam suatu string,dan kemudian menghing berapa kali pola tersebut terjadi.";

// mendefinisikan string menjadi array kata
$kata = preg_split('/[^0-9A-Za-z\']+/', $teks, -1, PREG_SPLIT_NO_EMPTY);

// menghitung jumlah kata (elemen) dalam array
// hasil: "33 kata"
echo count($kata) . " kata";
?>

Cara alternatif adalah menggunakan fungsi str_word_count() untuk melakukan pekerjaan ini.

<?php
// hitung_kata2.php
// mendefinisikan string
$teks = "Pada kasus ini, Anda akan menghitung jumlah kata dalam sebuah kalimat atau paragraf. Anda bisa menggunakan sebuah pola dalam mengidentifikasi kata-kata dalam suatu string, dan kemudian menghing berapa kali pola tersebut terjadi.";

// menghitung jumlah kata (elemen) dalam array
// hasil: "32 kata"
$jumKata = str_word_count($teks);
echo $jumKata . " kata";
?>



Mengidentifikasi duplikasi
Pada kasus ini, Anda akan mengidentifikasi kata-kata yang muncul lebih dari sekali di dalam sebuah string.

Anda melakukannya dengan mendekomposisi string menjadi kata-kata, dan kemudian menghitung jumlah kemunculan dari tiap kata.

<?php
// duplikasi_kata.php
// mendefinisikan string
$str = " danau    toba  danau  teridah ";

// memotong spasi-putih di tiap ujung string
$str = trim($str);

// memampatkan spasi-putih di tengah string
$str = ereg_replace('[[:space:]]+', ' ', $str);

// mendekomposisi string ke dalam array "kata"
$kata = explode(' ', $str);

// beriterasi di dalam array
// menghitung kemunculan tiap kata
// dan menyimpan hasilnya di array lain
foreach ($kata as $w) {
    $statKata[strtolower($w)]++;
}

// menampilkan semua kata yang muncul lebih dari sekali
// hasil: "danau"
foreach ($statKata as $k=>$v) {
    if ($v >= 2) { print "$k \r\n"; }
      }
?>


Melakukan pencarian
Di sini, Anda akan melakukan pencarian suatu pola atau substring di dalam sebuah string. Anda akan menggunakan ekspresi reguler dengan fungsi PHP ereg().

<?php
// cari_string.php
// mendefinisikan string
$html = "Saya <b>capek</b> jadi saya <b>harus</b> pulang ke <a href='http://domain'>rumah</a> sekarang";

// memeriksa kecocokan
// hasil: "Cocok"
echo ereg("<b>(.*)+</b>", $html) ? "Cocok" : "Tidak cocok";
?>


Menghitung kemunculan dalam string
Di sini, Anda akan mengetahui berapa kali suatu pola tertentu terjadi dalam sebuah string. Anda bisa menggunakan fungsi PHP preg_match() untuk melakukannya.

<?php
// cocok_string.php
// define string
$html = "Saya <b>capek</b> jadi saya <b>harus</b>
pulang ke <a href='http://domain'>rumah</a> sekarang";

// menghitung jumlah kemunculan dari teks tebal di dalam string.
// hasil: "2 kemunculan"
preg_match_all("/<b>(.*?)<\/b>/i", $html, $cocok);
echo sizeof($cocok[0]) . " kemunculan";
?>


Mengganti pola dalam string
Di sini, Anda akan mengganti semua/beberapa kemunculan pola atau substring di dalam sebuah string dengan pola/substring lain.

Anda menggunakan ekspresi reguler yang dikombinasikan dengan fungsi PHP str_replace() (untuk pola-pola yang sederhana).

<?php
// ganti_string.php
// mendefinisikan string
$str = "Selamat pagi siang sore malam";

// mengganti semua semua kemunculan "sore" dengan "petang"
// hasil: "Selamat pagi siang petang malam"
$strBaru = str_replace("sore", "petang", $str);
echo $strBaru;
?>

Untuk pola yang lebih kompleks, Anda bisa menggunakan ekspresi reguler yang dikombinasikan dengan fungsi preg_replace():

<?php
// ganti_string2.php
// mendefinisikan string
$html = "Saya <b>capek</b> jadi saya <b>harus</b> pulang ke <a href='http://domain'>rumah</a> sekarang";

// mengganti semua teks tebal dengan teks miring
// hasil: Saya <i>capek</i> jadi saya <i>harus</i> pulang ke
// <a href='http://domain'>rumah</a> sekarang"
$strBaru = preg_replace("/<b>(.*?)<\/b>/i", "<i>\\1</i>", $html);
echo $strBaru;
?>


Mengekstrak kalimat dari sebuah parapgraf
Anda akan mengekstraksi kalimat pertama atau kalimat terakhir dari sebuah paragraf. Anda bisa menggunakan fungsi strtok() untuk memecah paragraf menjadi kalimat-kalimat, dan kemudian mengekstraksi kalimat yang diinginkan.

<?php
// ekstraksi_kalimat.php
// mendefinisikan string
$text = "Anda akan mengekstraksi kalimat pertama atau
kalimat terakhir dari sebuah paragraf. Anda bisa
menggunakan fungsi strtok() untuk memecah paragraf
menjadi kalimat-kalimat, dan kemudian mengekstraksi
kalimat yang diinginkan.";

// ekstraksi kalimat pertama
// hasil: "Anda akan mengekstraksi kalimat pertama atau
// kalimat terakhir dari sebuah paragraf"
$kalimatPertama = strtok($text, ".?!");
echo $kalimatPertama;

// ekstraksi kalimat terakhir
// hasil: "Anda bisa
// menggunakan fungsi strtok() untuk memecah paragraf
// menjadi kalimat-kalimat, dan kemudian mengekstraksi
// kalimat yang diinginkan"
$kalimatTerakhir = strrev(strtok(strrev(trim($text)), ".?!"));
echo $kalimatTerakhir;
?>


Menghasilkan sidik hash dari string
Anda akan menggunakan fungsi md5() atau sha1() untuk mendapatkan sidik hash dari sebuah string.

<?php
// hash_string.php
// mendefinisikan string
$str = "dua meter ke kiri, empat meter ke kanan";

// mendapatkan hash MD5 dari string
// hasil: "29a2b877f32c50256feebb42bfca6d99"
$md5 = md5($str);
echo $md5;

// mendapatkan hash SHA1 dari string
// hasil: "2a00199e73e5e013c6fa43595d044176ae582d55"
$sha1 = sha1($str);
echo $sha1;
?>


Mengenkripsi string (satu-arah)
Di sini, Anda akan mengenkripsi sebuah string menggunakan enkripsi satu-arah. Anda akan menggunakan fungsi PHP crypt().

<?php
// enkripsi_string.php
// mendefinisikan string password
$password = "tebakaku";

// mendefinisikan salt
$salt = "rosebud";

// mengenkripsi string
// hasil: "roBnOKfA7uI5Q"
$cipher = crypt($password, $salt);
echo $cipher;
?>

Fungsi PHP crypt() menerima dua parameter: string yang akan dienkripsi dan kunci (salt) yang akan dipakai untuk enkripsi. Fungsi ini kemudian mengenkripsi string menggunakan kunci yang disediakan dan menghasilkan cipherteks (string hasil enkripsi).

Karena fungsi crypt() menggunakan enkripsi satu-arah, maka tidak dimungkinkan untuk mendapatkan string asli dari string cipherteks. Anda mungkin bertanya-tanya apa kegunaannya, untuk apa mengenkripsi dan hasilnya tidak bisa didekripsi. Tetapi, enkripsi ini ada gunanya yaitu untuk memverifikasi password. Contoh ini diilustrasikan pada kode berikut:

<?php
// enkripsi_string2.php
// mendefinisikan string password
$password = "tebakaku";

// mendefinisikan salt/kunci
$salt = "rosebud";

// mengenkripsi string
$cipher = crypt($password, $salt);

// mengasumsikan pengguna memasukkan ini
$masukan = "tebakacak";

// mengenkripsi masukan pengguna
// mengujinya dengan password yang terenkripsi
// hasil: "Password tidak cocok"
echo ($cipher == crypt($masukan, $salt)) ?
"Password cocok" : "Password tidak cocok";

// sekarang asumsi pengguna memasukkan ini
$masukan = "tebakaku";

// mengenkripsi masukan pengguna
// mengujinya dengan password yang terenkripsi
// hasil: "Password cocok"
echo ($cipher == crypt($masukan, $salt)) ?
"Password cocok" : "Password tidak cocok";
?>



No comments:

Post a Comment