Dasar-dasar Perutean

Dalam Seme Framework ada yang disebut dengan perutean (Routing). Rute ini akan mengarahkan suatu alamat terhadap kelas Controller yang sudah dibuat. Jadi singkat ceritanya, rute ini akan digunakan untuk berpindah halaman.

Dalam tutorial ini, tidak ada praktek ngoding. Hanya ada pembahasan teori bagaimana cara pembuatan halaman di Seme Framework supaya tidak bertanya-tanya bagaimana hubungan antara URL dengan kelas Controller di Seme Framework. Dan juga, dalam tutorial ini akan dibahas bagaimana halaman dapat menerima suatu Nilai dari parameter yang di lewatkan melalui alamat rute.

Setelah berhasil mendownload dan menginstall Seme Framework sehingga dapat dibuka melalui browser dengan alamat http://localhost/seme_framework/. Maka, sudah saatnya kita akan mempelajari kelas apa saja yang dieksekusi oleh Seme Framework ketika browser membuka alamat tersebut.

Mengenal nama lain dari Alamat Rute

Alamat rute di pada ruang lingkup aplikasi berbasis web seringkali diistilahkan dengan URL atau URI. URL atau URI ini merupakan penyebutan nama lain dari Alamat Rute yang digunakan oleh Browser. Tetapi, antara URI dan URL ada bedanya. Berikut ini adalah perbedaanya.

Apa itu URL?

URL atau Uniform Resource Locator adalah alamat yang digunakan oleh browser untuk mengidentifikasi sumber daya yang ada di internet yang dituliskan dalam satu baris teks.

URL merupakan bagian dari URI.

URL menunjuk ke suatu halaman web yang tidak menggunakan scheme dan boleh tanpa menggunakan code fragment.

seme.framework.web.id/id/globals

Apa itu URI?

URI atau Uniform Resurce Identifier digunakan browser untuk mengidentifikasi dokumen tunggal dan dituliskan dalam satu baris teks.

URI digunakan untuk mengidentifikasi suatu resource dengan lokasi atau nama, ataupun keduanya.

URL menunjuk ke suatu halaman web yang menggunakan scheme beserta menggunakan code fragment secara lengkap.

https://seme.framework.web.id/id/globals/#fungsi_base_url

Perutean Standar

Dalam Seme Framework ada perutean standar yaitu kelas Controller Home dan mengeksekusi metode index(). Kelas Home lokasi filenya harus ada di app/controller/home.php.

Apabila nama filenya bukan home.php, atau letak filenya tidak berada di dalam direktori app/controller atau nama kelasnya bukan Home, atau tidak ada metode index() di dalam kelas tersebut. Sudah dipastikan Seme Framework akan ERROR. Entah itu menimbulkan Error 404 Notfound ataupun Error lainnya.

Intinya, rute Seme Framework adalah rute yang dibangun berdasarkan isi dari alamat yang ada di dalam browser.

Pemetaan Rute

Supaya tidak bingung, Seme Framework mempermudah pemetaan rute dengan cara setiap alamat akan dipisahkan dalam beberapa segmen. Pemisahan ini dibatasi dengan penggunaan garis miring (/) yang ada pada alamat browser. Namun, harus hati-hati juga, segmentasi rute ini hanya berpengaruh terhadap alamat yang tertulis setelah base_url . Lihat pengaturan base_url di halaman pengaturan .

Segmentasi Alamat Rute

Diasumsikan nilai dari pengaturan base_url adalah localhost/sf/. Maka, alamat setelah localhost/sf/ akan menjadi dipisah menjadi beberapa segmen. Mari kita lihat contoh alamat URL.

localhost/sf/produk/detail/rolcis_keju_gulung

Dari contoh tersebut akan dapat ditemukan 3 segmen yaitu:

  1. produk.
  2. detail.
  3. rolciz_keju_gulung.

Pemetaan Segmen Alamat terhadap kelas controller

Dari hasil penelaahan alamat segmen, dalam Seme Framework dapat dipetakan menjadi dua kasus alternatif yaitu:

  1. Alternatif ke-1

    Segmen pertama produk akan mengarah kepada kelas Produk yang lokasi filenya berada di app/controller/produk.php.

    Kemudian segmen kedua detail akan mengarah kepada metode detail() yang ada di dalam kelas Produk.

    Dan segmen ketiga rolciz_keju_gulung akan mengarah kepada isi dari parameter metode detail() yang ada di dalam kelas Produk.

     

  2. Alternatif ke-2

    Segmen pertama produk akan mengarah kepada folder atau direktori app/controller/produk/.

    Kemudian segmen kedua detail akan mengarah kepada kelas detail yang berlokasi di app/controller/produk/detail.php.

    Dan segmen ketiga rolciz_keju_gulung akan mengarah kepada metode rolciz_keju_gulung() dari kelas detail.

Baik dari Alternatif ke-1 ataupun Alternatif ke-2, tidak ada yang salah. Seme Framework secara otomatis akan memilih pemetaan yang ada direktorinya terlebih dahulu (Alternatif ke-2). Apabila tidak ada direktori produk di dalam app/controller, maka Seme Framework akan menggunakan pemetaan Alternatif ke-1.

Jadi dalam istilah bahasa pemrogramannya, Seme Framework akan menggunakan Alternatif ke-2 kemudian Alternatif ke-1 akan digunakan sebagai fallback.