Home > Menengah > Web Development > Tutorial PHP > Script Deteksi Resolusi Layar Monitor

.

1 komentar BYAdmin Ilmuwebsite


Sekian lamaaa…. aku menunggu… untuk kedatanganmuuu? :D~? Itu kata bang Ridho Rhoma di lagu yang judulnya Menunggu.:D~. Mohon maaf, lagi-lagi penulis terlambat untuk mempublish artikel terbaru. Seperti biasa, alasan penulis adalah karena banyaknya kesibukan yang merupakan tuntutan kehidupan, penulis juga manusia. :D Mohon maaf.


Ya, baru-baru ini penulis mendapatkan sebuah kasus, seorang staff pada sebuah instansi bertanya kepada penulis, bagaimana caranya mencocokan tampilan website dengan resolusi layar monitor user. Tampilan website yang dibuka menggunakan PDA, Handphone, laptop, maupun PC itu berbeda satu sama lain. Bagaimana membuat tampilan website yang dibuka menggunakan handphone atau mobile tidak selebar ketika seorang user membukanya dengan menggunakan PC, ataupun laptop? Ya semua itu akan dibahas disini. Penulis coba jelaskan serinci mungkin.
Dalam tutorial php kali ini penulis akan memberikan sebuah contoh kasus, yakni tampilan website yang dibuka dengan laptop beresolusi 1280×800 px, berbeda dengan tampilan website ketika dibuka dengan menggunakan PC bersolusi 1024×768 px. Tampilan website yang dibuka dengan laptop beresolusi 1280×800 px sedikit lebih lebar, menyesuaikan resolusi yang ada.

Berikut adalah tampilan website ketika dibuka dengan Laptop beresolusi 1280×800 px.

Dan tampilan website ketika dibuka dengan PC beresolusi 1024×768 px.

Tampilan website yang dibuka dengan laptop beresolusi 1280×800 px sedikit lebih lebar diakibatkan dari script deteksi resolusi layar monitor.

Ya, berikut adalah source code inti dari script deteksi resolusi layar monitor :

<?
session_start();

if (isset($_REQUEST[‘r’]))
{
header(“location: res.php”);
}

echo “<html><head>”;

if(!isset($_SESSION[‘lebarlayar’]))
{
echo “><script language=\”JavaScript\”>
<!–
document.location=\”$PHP_SELF?r=1&width=\”+screen.width+\”&Height=\”+screen.height;
//–>
</script>”;
?? ??? ??? ?
if(isset($_GET[‘width’]) && isset($_GET[‘Height’]))
{
$_SESSION[‘lebarlayar’]? = $_GET[‘width’];
$_SESSION[‘tinggilayar’] = $_GET[‘Height’];
}
}

?
else if (isset($_SESSION[‘lebarlayar’]) && isset($_SESSION[‘tinggilayar’]))
{
if ( $_SESSION[‘lebarlayar’] == 1024 && $_SESSION[‘tinggilayar’] == 768 )
{
echo “<link rel=’stylesheet’ type=’text/css’ href=’./templates/template.1024×768.css’/>”;
}

else if ( $_SESSION[‘lebarlayar’] == 1280 && $_SESSION[‘tinggilayar’] == 800 )
{
echo “<link rel=’stylesheet’ type=’text/css’ href=’./templates/template.1280×800.css’/>”;
}
}
?? ?
else
{
echo “<html><head><script language=\”JavaScript\”>
<!–
document.location=\”$PHP_SELF?r=1&width=\”+screen.width+\”&Height=\”+screen.height;
//–>
</script>”;
}

?>

Sebelum penulis jelaskan baris demi baris source code di atas, perlu diketahui cara kerja script ini adalah sebagai berikut :
Script ini menggunakan fasilitas yang dimiliki oleh javascript dalam mengecek resolusi browser, disini sebetulnya script deteksi resolusi layar monitor ini tidak secara langsung mengecek screen resolution milik sistem operasi yang ada, melainkan script deteksi resolusi layar monitor ini memanfaatkan fasilitas dari java script. Fasilitas tersebut adalah screen.width, dan screen.height. Fasilitas ini dimanfaatkan dengan cara meredirect browser menuju satu url dimana didalam url tersebut terdapat isi dari nilai screen.width.

Syntax javascriptnya seperti ini :
document.location=\”$PHP_SELF?r=1&width=\”+screen.width+\”&Height=\”+screen.height;

maka, hasil dari urlnya akan menjadi seperti ini
http://localhost/index.php?r=1&width=1024&Height=768;

kemudian, nilai dari resolusi layar tersebut diambil dan dijadikan ke dalam variable berikut :
$_GET[‘width’] dan $_GET[‘height’]

Setelah itu variable global $_GET tersebut? diregistrasikan sebagai session untuk dapat diakses diseluruh halaman. Penulis sarankan anda mengimplementasikannya dengan menggunakan cookie, karena session memiliki keterbatasan waktu, defaultnya hanya 15 menit, bergantung dari konfigurasi php.ini masing webhosting, berbeda halnya jika anda memiliki otoritas penuh untuk merubah php.ini seperti pada localhost. Dengan menggunakan cookie anda dapat mensetting waktu deteksi resolusi layar monitor jadi lebih lama, bahkan anda dapat menyetelnya sangat lama sekali. Namun, dalam tutorial kali ini, penulis hanya menjelaskan implementasi deteksi resolusi layar monitor menggunakan session saja….

Perhatikan barisan source code berikut :

Jika session yang menangani lebar layar belum di registrasikan …
if(!isset($_SESSION[‘lebarlayar’]))
{

maka lakukan redirect browser si user menuju url yang didalamnya telah terdapat? 2 buah variable yang nilai kedua variable itu telah di isi screen.width dan screen.height
echo “><script language=\”JavaScript\”>
<!–
document.location=\”$PHP_SELF?r=1&width=\”+screen.width+\”&Height=\”+screen.height;
//–>
</script>”;

Statement intinya sebetulnya hanya :
document.location=\”$PHP_SELF?r=1&width=\”+screen.width+\”&Height=\”+screen.height;

yang jika dijalankan dilocalhost, maka akan menghasilkan :
http://localhost/index.php?r=1&width=1024&Height=768;

kemudian ambil nilai ke dua variable dalam url tersebut menggunakan $_GET.
if(isset($_GET[‘width’]) && isset($_GET[‘Height’]))
{

Registrasikan variable-variable tersebut sebagai session agar dapat diakses di seluruh halaman website (di sini anda dapat menggunakan cookie)
$_SESSION[‘lebarlayar’]? = $_GET[‘width’];
$_SESSION[‘tinggilayar’] = $_GET[‘Height’];
}
}

Kemudian perhatikan kembali barisan berikutnya :

Jika session dari lebarlayar, dan tinggilayar telah diregistrasikan,
else if (isset($_SESSION[‘lebarlayar’]) && isset($_SESSION[‘tinggilayar’]))
{

Dan jika lebarlayar yang dihasilkan oleh screenwidth itu adalah 1024, dan tinggilayar yang dihasilkan oleh screen.height itu adalah 768,
if ( $_SESSION[‘lebarlayar’] == 1024 && $_SESSION[‘tinggilayar’] == 768 )
{

Jadikan ./templates/template.1024×768.css sebagai tampilannya,
echo “<link rel=’stylesheet’ type=’text/css’ href=’./templates/template.1024×768.css’/>”;
}

Begitu juga jika lebarlayar yang dihasilkan oleh screenwidth itu adalah 1280px, dan tinggilayar yang dihasilkan oleh screen.height itu adalah 800px,
else if ( $_SESSION[‘lebarlayar’] == 1280 && $_SESSION[‘tinggilayar’] == 800 )
{

Maka jadikan ./templates/template.1280×800.css sebagai tampilannya,
echo “<link rel=’stylesheet’ type=’text/css’ href=’./templates/template.1280×800.css’/>”;
}

Tentunya banyak sekali perbedaan, anda bukan hanya dapat mengganti templatenya saja melainkan keseluruhan tampilan website, baik itu bentuk form, ataupun banner, dalam bentuk css yang table less maupun table sekalipun. Dan terakhir lihat di paling atas source code tersebut :

Sebetulnya barisan code ini hanya berfungsi untuk menangani redirect browser, agar url website disetiap halaman tidak kotor. Karena script deteksi resolusi layar monitor ini akan selalu memiliki url seperti :
http://localhost/index.php?r=1&width=1024&Height=768;

Oleh karena itu untuk penanganannya adalah menggunakan barisan code dibawah ini :
if (isset($_REQUEST[‘r’]))
{
header(“location: res.php”);
}

Ya, penulis rasa cukup jelas ya. Selanjutnya penulis akan bawakan penggunaan cookie dalam script deteksi resolusi layar monitor dan tentunya implementasinya dibuat agak sedikit kompleks. Source code tersebut dapat didownload di sini …
download script deteksi resolusi layar monitor

Untuk melihat hasil dari script tersebut …
http://www.kmmpt.com/zineilmuwebsite/tutorial/deteksi/res-detect.php

Selamat mencicipi. :D

Greetz : b_scorpio, abuzahra, peterpanz, kandar, phii_, syahrilrohman, ivan, dr.emi, safril, nadjwa, xfreecode, minang-media, safril, Lapak-online Team!

DVD Video Tutorial : Kursus Web Development Komplit Bangun 5 Project Aplikasi Website - Membuat CMS Sendiri Dari Nol, Blog, Portal Berita, Ecommerce, Web Komunitas dengan CodeIgniter 3 JQuery AJAX Bootstrap

Video Tutorial Kursus Web Development Komplit Bangun 5 Project Website ini merupakan ‘penunjuk arah’ agar Anda yang sedang maupun baru akan terjun ke dalam dunia web development yang lebih mendalam memiliki peta perjalanan pembelajaran yang lebih terarah menuju web developer professional. (Disertai pembelajaran dasar HTML CSS, JQuery, PHP & MySQL, CodeIgniter) Dibuat oleh praktisi yang memiliki pengalaman lebih dari 10 tahun di bidang web development (Pemesanan bisa SMS/WA ke 0813 1167 5785, atau bisa pesan secara online di sini)



One Response

  1. agung

    Trims banyak buat infonya.. Ini sangat berharga.
    Tp, yg masih tdk saya ngerti tu pada baris:
    header(”location: res.php”);

    File res.php itu asalnya dari mana n isinya apa?


eXTReMe Tracker