Mengintegrasikan Segala Template UI dengan CodeIgniter (Material Dashboard)
Di Posting Oleh : wandi
Kategori : CodeIgniter PHP Programming
UI adalah singkatan dari User Interface yang berarti tampilan antarmuka yang menjembatani antara sistem dengan pengguna. di era yang semakin maju teknologi tampilan UI semakin lebih baik pula dan juga semakin mudah untuk digunakan, tentu kita sebagai Programmer atau Web Designer selalu memaksimalkan tampilan UI pada aplikasi.

Untuk artikel kali ini, saya akan memberikan suatu tips mengintegrasikan segala macam template UI dengan CodeIgniter. UI yang akan kita gunakan adalah suatu template dari Creative Tim yang paling populer saat ini yaitu Material Dashboard.
Saya tulis "Segala template" pada judul, karena kita tidak hanya implementasi kode, melainkan juga mempelajari konsepnya

Sementara CodeIgniter seperti kita tahu adalah sebuah framework untuk PHP yang paling banyak digunakan di tahun 2018 ini,
Metode pengintegrasian ini, tidak hanya menyambungkan keduanya melainkan mempelajari trik agar dapat bekerja cepat dan efisien saat proses pembuatan aplikasi.
Sebelum anda memasuki langkah ini, untuk diperhatikan saya membuat langkah-langkah ini beserta penjelasan untuk membantu anda agar dapat memahami. Arti memahami dalam konteks ini adalah Tidak hanya copy-paste melainkan tahu konsepnya.
Mari kita kumpulkan bahan bahannya dulu
Menyiapkan Lembar Kerja
Mohon maaf sekali tidak dapat menjelaskan kode yang satu ini. kode ini bertugas sebagai engine yang mengatur URL.
Menganalisa Template (Perencanaan)
Proses
Proses Mengintegrasikan Template
Penjelasan
Penjelasan
Penjelasan
Selesai, Sekarang membuat contoh halaman
Mau liat atau download source code aplikasi premium bisa disini.
Di Posting Oleh : wandi
Kategori : CodeIgniter PHP Programming
UI adalah singkatan dari User Interface yang berarti tampilan antarmuka yang menjembatani antara sistem dengan pengguna. di era yang semakin maju teknologi tampilan UI semakin lebih baik pula dan juga semakin mudah untuk digunakan, tentu kita sebagai Programmer atau Web Designer selalu memaksimalkan tampilan UI pada aplikasi.
Untuk artikel kali ini, saya akan memberikan suatu tips mengintegrasikan segala macam template UI dengan CodeIgniter. UI yang akan kita gunakan adalah suatu template dari Creative Tim yang paling populer saat ini yaitu Material Dashboard.
Saya tulis "Segala template" pada judul, karena kita tidak hanya implementasi kode, melainkan juga mempelajari konsepnya

Sementara CodeIgniter seperti kita tahu adalah sebuah framework untuk PHP yang paling banyak digunakan di tahun 2018 ini,
Metode pengintegrasian ini, tidak hanya menyambungkan keduanya melainkan mempelajari trik agar dapat bekerja cepat dan efisien saat proses pembuatan aplikasi.
Sebelum anda memasuki langkah ini, untuk diperhatikan saya membuat langkah-langkah ini beserta penjelasan untuk membantu anda agar dapat memahami. Arti memahami dalam konteks ini adalah Tidak hanya copy-paste melainkan tahu konsepnya.
Mari kita kumpulkan bahan bahannya dulu
CodeIgniter 3, ~2,7Mb
Material Dashboard Template, ~1,5Mb
Daftar Isi
- Menyiapkan Lembar Kerja
- Menganalisa Template (perencanaan)
- Proses Mengintegrasikan Template
- Selesai, sekarang membuat contoh halaman
Menyiapkan Lembar Kerja
- Instalasi
- Install server seperti XAMPP atau WAMP
- Buat folder project, (pada artikel ini: "Materialdashboard") di
folder htdocs untuk server XAMPP atau
folder www untuk server WAMP - Extract isi file codeigniter dan taruh di folder project tersebut
- Jalankan server, coba akses folder project (localhost/materialdashboard), pastikan muncul halaman welcome CodeIgniter
- Menghilangkan Index.php pada URL
- Pada kondisi default CodeIgniter, URL yang dimasukkan harus ada index.php, contohnya: localhost/materialdashboard/index.php/welcome. Kita harus mengetikkan index.php pada kolom url untuk memanggil controller Welcome
- Tambahkan file .htaccess pada folder project. Struktur folder seperti berikut
- Didalam file .htaccess tersebut, tambahkan kode berikut
RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Mohon maaf sekali tidak dapat menjelaskan kode yang satu ini. kode ini bertugas sebagai engine yang mengatur URL.
- Buka file project > application > config > config.php. Edit menggunakan text editor. Saran saya, gunakan text editor "Sublime Text".
- Atur parameter bawaan CodeIgniter seperti dibawah.
Untuk kotak merah yang pertama (base_url), itu adalah alamat project anda
- Setelah diatur parameternya, jika anda mengakses dengan URL "http://localhost/materialdashboard/welcome" maka muncul halaman welcome bawaan codeigniter
- Menambahkan helper
- Tambahkan helper url pada autoload.php di applications/config/autoload.php, karena nantinya kita banyak menggunakan site_url() untuk mengambil url project CodeIgniter
- Untuk menganalisa, kita perlu membuka halaman template. Extract template ke folder lain
- Karena file statis, buka dengan double klik pada file html
Konsep Dasar
Konsep pengintegrasian cukup mudah, simak alur berikut ini:
- Cari elemen yang sekiranya dapat berubah-ubah (Elemen dinamis). Misalnya: Link navigasi, Title halaman, Judul.
- Bagian script yang memiliki konten dinamis dipisahkan pada file view tersendiri. Sehingga kita cukup memanggilnya saja.
- Kemudian nilai elemen-elemen dinamis tersebut di tetapkan dari controller. Contoh skenario: Judul diambil dari database (yang berarti lewat controller juga), Link navigasi berdasarkan level user yang login dan lain sebagainya.
- Elemen sudah ditentukan, mari kita analisa dibagian source code / codingannya.
Jika terlalu kecil, klik kanan gambar dibawah, kemudian klik open link in new tab agar bisa di zoom
- Pada gambar diatas, 1 file html ini dipecah menjadi beberapa bagian, posisi kita coding berada pada kontennya.php dan yang lainnya kita panggil dari sini (nama file bisa yang lainnya, misal buku.php)
- Oke, kita sudah dapat gambaran templatingnya. Sekarang langkah awal pada sistem CodeIgniter adalah membuat folder assets. Template UI membutuhkan file external pendukung seperti file JS, CSS. File tersebut diletakkan di folder assets. Buat folder assets didalam folder project
- Agar lebih rapi buat folder lagi didalam folder assets dan beri nama materialdashboard untuk mendefinisikan nama plugin. Jaga-jaga jika nantinya ada file pendukung / plug-in lain, kita bisa taruh di folder assets ini.
- Buka file html di template tadi dengan text editor. Nantinya kita akan copy-paste perbagian yang telah dipecah tadi ke file view di CodeIgniter
- Pada folder project masuk ke folder application/views buat folder template kemudian buat 4 file tadi (header.php, footer.php, js_script.php, navigation.php) didalam folder template
- kita kerjakan file header.php terlebih dahulu, Copy-paste dari file html template tadi sesuai dengan pembagian yang direncanakan. Sehingga isinya seperti berikut
<!doctype html>
<html lang="en"> <head> <meta charset="utf-8" /> <link rel="apple-touch-icon" sizes="76x76" href="assets/img/apple-icon.png"> <link rel="icon" type="image/png" href="assets/img/favicon.png"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <title> <?=$ui_title?> </title> <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no' name='viewport' /> <!-- Fonts and icons --> <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Roboto+Slab:400,700|Material+Icons" /> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css"> <link rel="stylesheet" href="<?=site_url('assets/custom/css/default.css)?>"> <!-- CSS Files --> <link href="<?=site_url('assets/materialdashboard/css/')?>material-dashboard.css?v=2.1.0" rel="stylesheet" /> <?php foreach ($ui_css as $css) { ?> <link rel="stylesheet" type="text/css" href="<?=site_url('assets/' .$css)?>"> <?php } ?> </head> <body class=""> <div class="wrapper">
Penjelasan
- pada elemen dinamis, buat kode php untuk menampilkan variabel. misal pada elemen <title> saya tampilkan variabel $ui_title. $ui_title ini nantinya ditetapkan pada controller
- Sedikit berbeda dengan bagian CSS, karena variabel css dapat berisi lebih dari satu / array. Maka ditampilkan menggunakan foreach
- kemudian kita akan melanjutkan navigation.php, Isi kode sesuai dengan bagian diatas tadi
<div class="sidebar" data-color="purple" data-background-color="white"> <!-- Tip 1: You can change the color of the sidebar using: data-color="purple | azure | green | orange | danger" Tip 2: you can also add an image using data-image tag --> <div class="logo"> <a href="<?=base_url()?>" class="simple-text logo-normal"> <?=$ui_app_name?> </a> </div> <div class="sidebar-wrapper"> <ul class="nav"> <?php foreach ($ui_sidebar_nav as $nav) { $nav = explode('|', $nav); $class = ''; if ($nav[0] == $ui_sidebar_active) { $class = 'active'; } else { $class = ''; } ?> <li class="nav-item <?=$class?>"> <a class="nav-link" href="<?=$nav[2]?>"> <i class="material-icons"><?=$nav[1]?></i> <p><?=$nav[0]?></p> </a> </li> <?php } ?> </ul> </div> <div class="sidebar-background" style="background-image: url('<?=site_url('assets/materialdashboard/img/sidebar-1.jpg')?>') "></div> </div> <div class="main-panel"> <nav class="navbar navbar-expand-lg navbar-transparent navbar-absolute fixed-top "> <div class="container-fluid"> <div class="navbar-wrapper"> <a class="navbar-brand" href="#pablo">Dashboard</a> </div> <button class="navbar-toggler" type="button" data-toggle="collapse" aria-controls="navigation-index" aria-expanded="false" aria-label="Toggle navigation"> <span class="sr-only">Toggle navigation</span> <span class="navbar-toggler-icon icon-bar"></span> <span class="navbar-toggler-icon icon-bar"></span> <span class="navbar-toggler-icon icon-bar"></span> </button> <div class="collapse navbar-collapse justify-content-end"> <ul class="navbar-nav"> <?php foreach ($ui_top_nav as $top_nav) { $nav_top = explode('|', $top_nav); $nav_top_title = $nav_top[0]; $nav_top_icon = $nav_top[1]; $nav_top_link = $nav_top[2]; if ($ui_top_nav_active == $nav_top_title) { $nav_top_class = 'active'; } else { $nav_top_class = ''; } ?> <li class="nav-item <?=$nav_top_class?>"> <a class="nav-link" href="<?=$nav_top_link?>"> <i class="material-icons"><?=$nav_top_icon?></i> <?=$nav_top_title?> </a> </li> <?php } ?> </ul> </div> </div> </nav> <div class="content">
- Ada 3 elemen dinamis pada file ini, yaitu judul, navigasi sidebar, navigasi atas.
- Judul ditampilkan dengan mudah dengan variabel $ui_app_name
- Berbeda dengan kedua navigasi, terdapat data lebih dari 1, dan memiliki atribut seperti Teks, ikon dan linknya. Untuk mengatasi ini saya gunakan formatting pada setiap isi array menjadi array("Teks|Ikon|Link")
- Pada navigasi Material Dashboard juga terdapat status Active, maka saya buat juga variabel dari controller yang mendefinisikan mana item navigasi yang sedang aktif.
- untuk mencari mana navigasi yang aktif, saya tambahkan pengkondisian (IF) disetiap perulangan link. Jika sama, link itulah yang aktif.
- File js_script.php. file ini hanya berisi konten dinamis load script javascript. jika tadi kita bisa load css lewat controller, maka kita juga bisa me-load file javascript juga, inilah fungsi dari file ini. Mengapa tidak kita satukan dengan footer.?, karena ada kemungkinan kita menulis script embedded (seperti jquery) di setiap halaman yang berbeda. dan suatu script embedded harus terletak setelah load script. Maka pada halaman konten, kita bisa menulis script js embedded setelah kita memanggil js_script.php.
- oh iya, pada script ini kita akan menutup tag div wrapper juga karena tidak ada file konten lagi setelah file ini kurang lebih isi dari file js_script seperti berikut:
</div> <!-- Penutup dari div.content --> </div> <!-- Penutup dari div.main-panel --> </div> <!-- Penutup dari div.wrapper --> <!-- Core JS Files --> <script src="<?=site_url('assets/materialdashboard/')?>/js/core/jquery.min.js" type="text/javascript"></script> <script src="<?=site_url('assets/materialdashboard/')?>/js/core/popper.min.js" type="text/javascript"></script> <script src="<?=site_url('assets/materialdashboard/')?>/js/core/bootstrap-material-design.min.js" type="text/javascript"></script> <script src="<?=site_url('assets/materialdashboard/')?>/js/plugins/perfect-scrollbar.jquery.min.js"></script> <!-- Chartist JS --> <script src="<?=site_url('assets/materialdashboard/')?>/js/plugins/chartist.min.js"></script> <!-- Notifications Plugin --> <script src="<?=site_url('assets/materialdashboard/')?>/js/plugins/bootstrap-notify.js"></script> <!-- Control Center for Material Dashboard: parallax effects, scripts for the example pages etc --> <script src="<?=site_url('assets/materialdashboard/')?>/js/material-dashboard.min.js?v=2.1.0" type="text/javascript"></script> <?php foreach ($ui_js as $js) { ?> <script type="text/javascript" src="<?=site_url('assets/' .$js)?>"></script> <?php } ?>
- kita ganti src dari script bawaan template karena CodeIgniter membutuhkan helper site_url(lokasi/filejs)
- kemudian kita menggunakan variabel array $ui_js yang nantinya kita isi di controller, variabel tersebut di keluarkan pada file ini menggunakan perulangan foreach
- File Footer.php, File footer hanya berisi akhiran dokumen seperti </body></html>. file ini dipisahkan dengan js_script karena ada kemungkinan kita menuliskan embedded js script diantara 2 file tersebut. file tersebut berisi seperti berikut
</body> </html>
- membuat controller pada CI.
sebagai contoh, kita akan membuat data buku. pada applications/controllers/ buat file bernama Data.php (karena aturan pembuatan kelas ci harus huruf kapital)
- buat method / fungsi buku. pada fungsi ini kita menyiapkan atribut ui yang telah kita buat tadi. pada templating yang kita buat, kita sudah mendefinisikan variabel berikut:
- $ui_app_name (Judul Aplikasi di atas sidebar)
- $ui_title (title pada head / judul tab)
- $ui_css (berupa array, mendefinisikan css yang akan kita gunakan)
- $ui_js (berupa array, mendefinisikan js yang akan kita gunakan)
- $ui_sidebar_nav (berupa array, mendefinisikan link-link sidebar)
- $ui_sidebar_active (adalah nav yang sedang aktif)
- $ui_top_nav (berupa array, mendefinisikan link-link nav atas)
- $ui_top_nav_active (mendefinisikan nav yang sedang aktif)
- tinggal kita isi saja, isi controller-nya seperti berikut:
<?php class Data extends CI_Controller { public function buku() { $data['ui_app_name'] = 'Perpus-Sys'; $data['ui_title'] = 'Perpus-Sys - Data Buku'; $data['ui_css'] = array('custom/css/default.css'); $data['ui_js'] = array(); // ---------------------------- // format penulisan: array( // 'Teks|ikon|alamat_link', // ); // ---------------------------- $data['ui_sidebar_nav'] = array( 'Data Buku|book|' .site_url('data/buku'), 'Data Siswa|face|' .site_url('data/siswa'), ); $data['ui_top_nav'] = array( 'Buku|book|' .site_url('data/buku'), 'Pegawai|face|' .site_url('data/Pegawai') ); $data['ui_sidebar_active'] = 'Data Buku'; $data['ui_top_nav_active'] = 'Pegawai'; $this->load->view('data/buku/daftar', $data); } } ?>
- controller sudah jadi, tinggal kita buat view. pada kode controller diatas kita sudah tulis load view ke data/buku/daftar. berarti kita tinggal buat saja filenya di applications/views/
- tinggal kita panggil saja file file tersebut berdasarkan template aslinya. anda bisa memulai membuat tata letak sesuai dengan kebutuhan anda. untuk membuat UI silahkan baca dokumentasi dari template ini. contoh seperti saya dibawah sedang membuat daftar buku yang memuat tabel saja seperti dibawah:
<?php $this->view('template/header.php')?> <?php $this->view('template/sidebar.php')?> <div class="content"> <div class="row"> <div class="col-sm-12"> <div class="card"> <div class="card-header card-header-primary"> <h4 class="card-title">Daftar Buku Tersedia</h4> </div> <div class="card-body"> <div class="table-responsive"> <table class="table table-striped table-hover"> <thead> <tr> <th>No</th> <th>Judul</th> <th>Penulis</th> <th>Stok</th> <th>Penerbit</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>HTML Dasar</td> <td>Badar Wildanie</td> <td>12</td> <td>BLogspot</td> </tr> <tr> <td>2</td> <td>Webmastering dalam 1 bulan</td> <td>Seseorang</td> <td>551</td> <td>Elexmedia</td> </tr> <tr> <td>3</td> <td>Belajar Google Adsense</td> <td>Seseorang Juga</td> <td>22</td> <td>Elexmedia</td> </tr> </tbody> </table> </div> </div> </div> </div> </div> <?php $this->view('template/js_script.php') ?> <script type="text/javascript"> // Script Javascript DISINI </script> <?php $this->view('template/footer.php')?>
- semua sudah selesai tinggal kita akses lewat browser.
Link Project
Material Dashboard (Sudah diperbarui), ~4 MB
bisa simpulkan dari trik diatas, bahwa kita tidak harus menuliskan elemen-elemen berulang kali.
misal menuliskan link sidebar berulang kali, menuliskan judul aplikasi disetiap view yang kita tulis. Namun kita cukup memanggil file view saja yang memuat elemen-elemen berulang tersebut dan dapat diatur secara dinamis langsung dari controller.
Hal ini memungkinkan kita saat mengerjakan suatu project hanya berfokus kepada konten-konten utama tanpa harus meladeni elemen tersebut. Sehingga kita hanya fokus tentang halaman CRUD dan logic sistemnya pada controller dan model.
Anda juga dapat bereksperimen lebih jauh lagi, seperti membuat konfigurasi, yang datanya tersimpan pada database dengan menerapkan cara diatas.
Saya harap anda dapat mengerti dengan trik yang saya tuliskan diatas. dan juga semoga bisa bermanfaat untuk anda. sebagai informasi saja, saya menggunakan teknik ini, hasilnya dapat mengurangi durasi project 1 orang (sistem inventory dan penjualan) yang awalnya 1 bulan menjadi 15 hari saja. Namun tidak dengan trik ini saja, Ada banyak trik yang saya gunakan, maka dari itu
Stay Tune, Bookmark laman ini, karena saya akan terus menuliskan pada artikel selanjutnya.
Sekian.
Saya harap anda dapat mengerti dengan trik yang saya tuliskan diatas. dan juga semoga bisa bermanfaat untuk anda. sebagai informasi saja, saya menggunakan teknik ini, hasilnya dapat mengurangi durasi project 1 orang (sistem inventory dan penjualan) yang awalnya 1 bulan menjadi 15 hari saja. Namun tidak dengan trik ini saja, Ada banyak trik yang saya gunakan, maka dari itu
Stay Tune, Bookmark laman ini, karena saya akan terus menuliskan pada artikel selanjutnya.
Sekian.
Mau liat atau download source code aplikasi premium bisa disini.
This blog provides a comprehensive guide on integrating various UI templates with CodeIgniter, focusing on the popular Material Dashboard template from Creative Tim. The article outlines the steps involved in the integration process and emphasizes understanding the concepts rather than mere copy-pasting.For More UI Templates Visit Iqonic Design.
ReplyDelete