Tutorial

Memahami Link Absolute dan Link Relative Pada Web Address

Sebelum mendiskusikan perbedaan antara absolute dan relative path/link pada web address, akan kita bahas terlebih dahulu perbedaan antara keduanya pada sistem operasi.

Sistem operasi Linux

Absolute path di Linux
/home/user/f/friedegg/public_html/cgi-bin

Non-absolute path (relative path) di Linux
public_html/cgi-bin

Pada contoh diatas, absolute path menyertakan path yang utuh mulai dari root (/) hingga /cgi. Karena banyak pengguna yang merasa tidak perlu menyertakan path yang utuh dan panjang maka path dapat dipersingkat menjadi public_html/cgi-bin (relative path). Untuk melihat absolute path bisa menggunakan command pwd.

Sistem Operasi Windows

Absolute path di Windows
C:\Windows\notepad.exe

Non-absolute path (relative path) di Windows
notepad.exe

Pada contoh sistem operasi Windows jika anda sedang berada pada folder yang didalamnya tidak memiliki notepad.exe (Contoh: C:\Program Files) maka anda akan mendapatkan pesan error, sedangkan jika anda menggunakan absolute path (C:\Windows\notepad.exe) maka anda bisa membuka aplikasi notepad.exe meskipun anda sedang berada di folder yang berbeda.

Sudah mulai sedikit memiliki gambaran mengenai absolute dan relative path? belum? tidak apa-apa, penjelasan diatas memang bukan diperuntukan untuk kaum yang tidak familiar dengan command line interface dan barangkali anda sendiripun tidak tahu apa itu command line interface.

Mulai dari sini akan saya jelaskan menggunakan analogi saja untuk mempermudah anda karena mempermudah sesama akan banyak pahalanya (amin).

Istilah absolute dan relative path adalah istilah yang … kalau bisa dibilang adalah istilah keren saja, karena pada kehidupan sehari-hari kita mungkin pernah menggunakannya untuk memberikan instruksi pada seseorang, masih belum jelas? jadi begini ceritanya …

Anda meminta tolong pada abang ojek untuk mengantarkan paket, anda menjelaskan pada si abang “Bang, ntar abang dari rumah saya ini lurus aja ketemu pasar, lurus terus ampe ketemu kantor polisi, nanti di depan kantor polisi ada gang, namanya gang potlot, abang masuk ke dalam gang cari rumah di sebelah kiri pagar putih, yang punya rumah namanya mas Ari”

Dari cerita di atas, anda memberitahukan dengan jelas dan terperinci kepada abang ojek jalur pasti (absolute path) yang harus dilaluinya untuk menemukan mas Ari, oleh karena itu bagaimanapun juga si abang ojek pasti akan bertemu dengan mas Ari. Jika cerita barusan diterjemahkan ke sistem path pada Web Address maka akan kita dapatkan “ojek://darirumah/pasar/kantor-polisi/gang-potlot/pagar-putih/mas-ari”.

Yang dimaksud absolute path adalah jalur pasti, jalur penuh (contoh: http://www.nuxid.com/index.html), yang harus ditempuh untuk bisa mengakses file yang anda mau. anda memberikan perintah pada browser mulai dari protokol apa yang digunakan (http), hostname (www.nuxid.com) dan nama file (index.html).

Bagaimana dengan relative path? jika kita teruskan cerita diatas, anggap saja si abang ojek sudah melaju dengan percaya diri menuju rumah mas Ari, namun sesampainya di depan mall perjalan si abang terhenti karena ada razia, setelah diperiksa kelengkapan dan diperbolehkan lewat si abang pun melaju kembali, namun ada satu permasalahan, dia lupa jalan …

Si abang pun menelepon anda, lalu anda menanyakan dimana posisinya, setelah mengetahui si abang di depan mall anda pun menyadari si abang ternyata salah jalan. Agar si abang bisa sampai ke rumah mas Ari anda mengarahkan si abang dari awal lagi, yang menjadi patokan adalah rumah anda , jadi bisa kita tuliskan “/pasar/kantor-polisi/gang-potlot/pagar-putih/mas-ari”, (garis miring pertama mewakili rumah anda), dalam sistem path pada Web Address penjelasan anda yang menggunakan rumah (kembali ke awal) sebagai patokan disebut site-root-relative path.

Keuntungan dari site-root-relative path, tidak masalah seberapa dalam sebuah file berada dalam hirearki folder, garis miring pada di awal menjamin web server akan mulai mencari dari urutan paling atas/dari awal.

Sebagai contoh, jika anda memiliki Absolute Path http://nuxid.com/2016/09/index.html dan anda ingin file index.html pada /09 memiliki link ke folder http://nuxid.com/2015/index.html maka kita bisa mengabaikan protokol dan hostname lalu menggunakan site-root-relative path, yaitu /2015/index.html.

Kembali menggunakan analogi abang ojek, jika anda menjelaskan kepada abang ojek yang terlanjur nyasar ke mall, menggunakan patokan dari lokasi si abang berada (di depan mall) menuju ke rumah mas Ari maka ini disebut document-relative path, yang menjadi patokan adalah document atau file, bukan root (/).

Mari kita kaji rute si abang mulai dari awal lagi.

Absolute: ojek://darirumah/pasar/kantor-polisi/gang-potlot/pagar-putih/mas-ari
site-root-relative path: /pasar/kantor-polisi/gang-potlot/pagar-putih/mas-ari
document-relative path: ../../kantor-polisi/gang-potlot/pagar-putih/mas-ari

Apa maksud dari titik-titik pada document-relative-path? jadi begini, ternyata sesampainya di pasar si abang malah belok, bukannya lurus sesuai arahan anda, jadi jalur nyasar si abang adalah, ojek://darirumah/pasar/boulevard/mall sehingga untuk sampai ke rumah mas Ari si abang harus balik lagi ke pasar, ini di tulis ../../kantor-polisi/gang-potlot/pagar-putih/mas-ari.

Sekarang sedikit banyaknya anda sudah memahami perbedaan antara sistem file path, kita akan diskusi lebih lanjut kaitannya dengan Command include pada bahasa scripting PHP.

Ada saatnya pada suatu ketika anda membuat sebuah website anda membutuhkan pertolongan bahasa scripting PHP. Umumnya untuk bagian website yang nyaris selalu ada pada setiap webpage. umpamanya Header atau Footer. Code di dalam file Header dan Footer biasanya menggunakan Command include, sekarang perhatikan.

Meskipun command include pada PHP sendiri tidak mengerti site-root-relative path, link di dalam include file (link di dalam header.php atau footer.php) normalnya adalah site-root-relative path. Pada umumnya file include berada dimana-mana pada hirearki web folder sehingga document-relative path seperti css dan javascript yang berada dalam file include akan terputus (broken link).

Hal ini biasanya dalam PHP akan kita jumpai error seperti ini:

Warning: include(code/header.php): failed to open stream: No such file or directory in C:\wamp64\www\friedegg\mypan\pan.php on line 4

Warning: include(): Failed opening 'code/header.php' for inclusion (include_path='.;C:\php\pear') in C:\wamp64\www\friedegg\mypan\pan.php on line 4

Untuk memperbaiki error ini, anda harus mengubah semua document-relative path yang berada pada file include(header) atau include(footer) menjadi site-root-relative path.

Memahami bagaimana sistem file path bekerja akan sangat membantu anda menghemat waktu dan pikiran di masa yang akan datang, karena itu luangkan sedikit waktu anda untuk benar-benar memahami konsepnya. Semoga bermanfaat untuk anda dan silahkan tinggalkan komentar jika masih ada yang belum dimengerti

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.