About Me

Hai, saya Rosihan Ari Yuana. Saya sehari-hari adalah mengajar di Universitas Sebelas Maret.

Bidang riset saya tentang adaptive learning, computer aided learning, dan datascience

Selain itu, saya juga seorang penulis buku dan blogger.

More about me...

  • Home
  • /
  • PHP
  • /
  • Penggunaan USER AGENT Untuk Konten Mobile
PHP

Penggunaan USER AGENT Untuk Konten Mobile

Blog ini telah dilengkapi dengan tampilan mobile friendly bagi pengunjung setia yang sering mengakses via handphone. Secara otomatis blog ini akan mengarahkan (redirecting) tampilan ke mode mobile friendly bila sedang diakses via handphone. Bila Anda perhatikan, tampilan blog dalam mode mobile friendly ini lebih sederhana dibandingkan tampilan sebenarnya. Anda bisa lihat seperti apa tampilan blog ini via handphone. Dengan mode mobile friendly ini, file size yang diakses via handphone akan lebih kecil sehingga pulsa yang diperlukan untuk akses internet juga sedikit. Konsep yang sama juga diterapkan oleh Detik.com.

Contoh lain, pernahkah Anda mengunjungi situs waptrik.com? Situs tersebut menyediakan free software aplikasi handphone Anda. Apabila Anda mencoba mengunjungi situs tersebut via browser di komputer Anda, maka situs tersebut tidak bisa diakses. Mengapa? karena situs tersebut hanya bisa diakses oleh handphone saja. Hebatnya lagi.. begitu Anda akses situs tersebut dengan handphone, maka secara otomatis akan muncul list software-software yang kompatible terhadap handphone Anda. Sebagai contoh misalkan Anda menggunakan Nokia, maka akan muncul list software yang support dengan Nokia, dst.

Nah.. yang menjadi pertanyaan, bagaimana cara mendeteksi bahwa seorang pengunjung situs kita atau secara umum pengakses script yang kita taruh ke dalam server hosting itu menggunakan handphone atau tidak? atau kalau perlu kita bisa mendeteksi merek handphone yang sedang digunakan visitor. Konsep ini nantinya kita gunakan untuk membuat konten mobile. Pertanyaan tersebut dapat terjawab dengan membaca user agent dari visitor.

Apa itu user agent? user agent adalah suatu aplikasi di sisi client (pengakses) yang secara otomatis mengirim informasi berupa string kepada server pada layanan web. String informasi ini bisa berisi OS yang digunakan, software vendor browsernya, versi software dll.

Salah satu bentuk string informasi user agent adalah sbb:

Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8

Dari string di atas tampak informasi bahwa terdapat client yang sedang mengakses menggunakan OS Windows, dan menggunakan Firefox sebagai browsernya, serta versinya yaitu 3.5.8.

Nah… lantas bagaimana bentuk string user agent yang berasal dari handphone? ini dia contohnya untuk Nokia N90

NokiaN90-1/5.0607.7.3 Series60/2.8 Profile/MIDP-2.0 Configuration/CLDC-1.1

Anda bisa lihat bentuk-bentuk user agent untuk jenis handphone yang lain di Wikipedia.

Dari keterangan di atas tampak bahwa untuk handphone, di dalam user agent nya terdapat informasi jenis handphone serta serinya. Dengan demikian kita tinggal olah user agent tersebut untuk membangun konten mobile seperti yang diharapkan.

OK.. sekarang bagaimana cara membaca user agent dengan PHP? Caranya sangat mudah, yaitu dengan menggunakan perintah $_SERVER['HTTP_USER_AGENT']

Berikut ini contoh script PHP untuk mendeteksi merek handphone apa yang sedang digunakan user untuk mengakses script.

<?php

$listMerk = array('Nokia', 'iPhone', 'iPod', 'BlackBerry', 'HTC', 'LG', 'Nokia', 'Samsung', 'SonyEricsson');

$agent = $_SERVER['HTTP_USER_AGENT'];

foreach ($listMerk as $merk)
{
   $count = substr_count($agent, $merk);
   if ($count > 0) $merkDigunakan = $merk;
}

echo "Anda menggunakan HP berjenis ".$merkDigunakan;

?>

Konsep dari script di atas adalah, pertama kita list dulu merek handphone yang ada di pasaran. Di sini saya hanya mencontohkan beberapa jenis saja. Selanjutnya setelah itu kita baca user agent nya. Proses berikutnya adalah mengecek apakah user agent nya memuat string berisi merek handphone yang sudah kita list tadi? Di sini saya menggunakan function subtr_count() untuk menentukan ada tidaknya nama merek yang sudah kita list di dalam user agent nya. Function substr_count() berfungsi untuk menghitung jumlah subtring dalam suatu string. Untuk menentukan ada tidaknya suatu substring yang terdapat dalam string cukup dengan melihat jumlahnya. Jika jumlahnya lebih besar dari 0, maka berarti substring itu ada dalam string.

Kemudian.. ini ada contoh script lain yang otomatis mendirect ke halaman tertentu yang khusus menampilkan konten mobile jika diakses melalui aplikasi mobile, dan akan mendirect ke halaman tertentu yang khusus menampilkan konten aslinya (non mobile content) jika diakses lewat PC (selain aplikasi mobile).

<?php

$listMerk = array('Nokia', 'iPhone', 'iPod', 'BlackBerry', 'HTC', 'LG', 'Nokia', 'Samsung', 'SonyEricsson');

$agent = $_SERVER['HTTP_USER_AGENT'];

$cek = 0;
foreach ($listMerk as $merk)
{
   $count = substr_count($agent, $merk);
   if ($count > 0) $cek = 1;
}

if ($cek == 0) header("Location: http://situsanda/scriptkontenbiasa");
else if ($cek == 1) header("Location: http://situsanda/scriptkontenmobile");

?>

Ide dari script di atas adalah memberi nilai awal $cek = 0. Nilai 0 diartikan bahwa script diakses oleh aplikasi non mobile. Selanjutnya dilakukan proses pengecekan browser User Agent nya. Jika ternyata user agent terdapat dalam array, maka nilai $cek berubah menjadi 1 yang berarti bahwa script diakses oleh aplikasi mobile. Sedangkan jika user agent tidak terdapat dalam array, maka nilai $cek akan tetap 0 yang berarti bahwa script diakses oleh aplikasi non mobile. Untuk mendirect ke halaman tertentu, Anda bisa menggunakan function header("Location: http://...").

Untuk melihat tampilan dari script di atas, silakan upload ke server hosting lalu akses script tersebut via handphone Anda. Jangan Anda taruh di localhost lho ya ! 🙂

OK.. selamat mencoba dan silakan berkreasi sendiri. Mudah-mudahan artikel ini berguna bagi Anda yang ingin belajar mengembangkan konten web untuk mobile.

 

Bagikan artikel ini jika bermanfaat !

Saya seorang dosen dan peneliti di Universitas Sebelas Maret. Bidang penelitian saya tentang: adaptive learning, datascience, dan computer aided learning. Selain itu saya juga seorang blogger, serta penulis buku tentang pemrograman, dan matematika.

Leave a Reply