Mengembangkan Component Joomla Oleh : Garry B.

dokumen-dokumen yang mirip
I. Pengenalan Play Framework

CODEIGNITER 3. Belajar Mandiri. Zamah Sari

Membuat Toko Online dengan Teknik OOP, MVC, dan AJAX

Mengenal Codeigniter (CI) Framework

BERKENALAN DENGAN MODEL CODEIGNITER

PHP dan Framework CodeIgniter

dapat diakses melalui salah satu menu yang berkaitan dengan komponen pada halaman administrator.

FRAMEWORK CODEIGNITER

Framework CodeIgniter Part 1

FRAMEWORK. Dengan framework seorang web programmer dapat membangun aplikasi

BAB II ANALISIS DAN PERANCANGAN. Sistem informasi penjualan dan pembelian Tissue SMART NARENA

PEMROGRAMAN PHP DASAR

Materi 2 E-Commerce Lanjut (CodeIgniter) 3 SKS Semester 7 S1 Sistem Informasi UNIKOM 2015 Nizar Rabbi Radliya

PENERAPAN JAVA SERVER FACES UNTUK DESIGN PATTERN WEB

PRAKTIKUM. Rekayasa Web. Modul 6: Restful API Server & Client Codeigniter. Laboratorium Teknik Informatika Universitas Pasundan

3.1 APLIKASI YANG DITANGANI OLEH CODE GENERATOR

LAPORAN PRAKTIKUM TEKNOLOGI FRAMEWORK PERTEMUAN KE 1

Oleh: Ahmad Syauqi Ahsan

MODUL 8 Insert, Update, & delete

Pemrograman Web Berbasis Framework. Pertemuan 6 : Konsep MVC : Model. Hasanuddin, S.T., M.Cs. Prodi Teknik Informatika UAD

PANDUAN PENGGUNAAN. Joomla! Versi 1.5. Oleh: Anon Kuncoro Widigdo

Penerapan Arsitektur Model View Controller (MVC) Dalam Perancangan Ekstensi Sebuah Content Management System

PERANCANGAN LibraryUMS-CMS MENGGUNAKAN CODEIGNITER

Bab 2 Tinjauan Pustaka

Pemrograman Web Berbasis Framework. Pertemuan 4 : Konsep MVC : Controller. Hasanuddin, S.T., M.Cs. Prodi Teknik Informatika UAD

Oleh: Ahmad Syauqi Ahsan

BAB II ANALISIS DAN PERANCANGAN. pendekatan perancangan sistem berorientasi objek. Perancangan sistem

BAB I PENDAHULUAN. pesat terutama perkembangan internet. Dengan adanya internet dapat

Practical Web Development Using CMS (Joomla)

BAB III ANALISA DAN PERANCANGAN SISTEM. permasalahan yang ada sebagai dasar untuk membuat sebuah solusi yang

Pengguna CMS Joomla Oleh: Herman Dwi Surjono, Ph.D.

Internal Server Error / Website Busy Apa Itu Internal Server Error/Website Busy?

Oleh: Ahmad Syauqi Ahsan

BAB II ANALISIS DAN PERANCANGAN

Advantages. Keunggulan :

BAB IV HASIL DAN UJI COBA

HASIL DAN PEMBAHASAN Investigasi Awal

Mengenal Web Dinamis dan Statis Serta Perbedaanya

WAP (3) Muhammad Zen S. Hadi, ST. MSc. WAP - The Wireless Application Protocol

Implementasi Model View Controller dan Object Relational Mapping pada Content Management System Sistem Informasi Keuangan

BAB 4 IMPLEMENTASI DAN EVALUASI. perangkat keras yang dibutuhkan pengguna maupun pengembang web serta penjelasan

SISTEM MONITORING PERALATAN BENGKEL MENGGUNAKAN METODE WATERFALL DENGAN MVC CODEIGNITER. Andriyani Siyoperman Gea ABSTRAK

Pengantar. Persyaratan Sistem. Cara Menginstall

IMPLEMENTASI MVC PADA SITUS PORTAL PENCARIAN UNIVERSITAS DI DAERAH ISTIMEWA YOGYAKARTA. Rionaldi Sugiarto Katon Wijana, Wimmie Handiwidjojo

BAB I PENDAHULUAN 1.1 Latar Belakang

Fungsi Insert Data dalam CRUD (CREATE READ UPDATE DELETE) di Codeigniter

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. sebuah sistem pencarian lokasi kuliner berbasis mobile web untuk wilayah

TUTORIAL CODEIGNITER Langkah Tepat menjadi Web Developer Handal, menguasai CodeIgniter, jalan membuat aplikasi berbasis website lebih mudah

Bab 2 Tinjauan Pustaka 2.1 Penelitian terdahulu

PENERAPAN ARSITEKTUR MODEL VIEW CONTROLLER (MVC) DALAM RANCANG BANGUN SISTEM KUIS ONLINE ADAPTIF

BAB III LANDASAN TEORI

BAB III PERANCANGAN APLIKASI

STMIK DIKTAT SINGKAT MACROMEDIA DREAMWEAVER 8 SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER TASIKMALAYA.

Validasi Form dengan CakePHP

MODUL GET DAN POST

Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle.

UNIVERSITAS KOMPUTER INDONESIA

MODUL 6 REDIRECT, SESSION & COOKIE

BAB IV HASIL DAN PEMBAHASAN

CMS Joomla. Materi Kuliah Rekayasa Web Universitas Budi Luhur. A. Pengenalan Joomla

Memahami Workflow Zend_Controller dalam Zend Framework (Bag 2)

MODUL 5 GET & POST Pemograman Web Teknik Informatika Universitas Pasundan Bandung 2016/2017

RANCANG BANGUN SISTEM INFORMASI INVENTARISASI LAPORAN TUGAS AKHIR MAHASISWA PROGRAM STUDI TEKNIK INFORMATIKA BERBASIS FRAMEWORK CODEIGNITER

BAB IV IMPLEMENTASI DAN PENGUJIAN

Instalasi Joomla 1.7

Tag dasar yang akan kita gunakan untuk membuat form di HTML adalah tag form, input, textarea, select dan option.

BAB IV HASIL DAN UJI COBA

1. Tampilan instalasi Joomla awal. Klik Next. 2. Kemudian menuju langkah ke dua. Klik Next lagi.

MODUL 6 Redirect,Session, dan Cookies

Pengembangan Aplikasi Menggunakan Framework Code Igniter 3 Level Basic. Helmy Faisal Muttaqin, S.Kom, M.T

MODUL 11 PHP&MYSQL UPDATE & SEARCHING

Modul-5 GET & POST. Pemograman Web TEKNIK INFORMATIKA UNIVERSITAS PASUNDAN BANDUNG

Pendahuluan Kajian Pustaka

BAB III LANDASAN TEORI

USER S GUIDE. Menu Dashboard. Blog site - Staffsite. Menu Write. Menu Blog. Pilihan pada Menu: Dashboard, write, manage, comments,

Modul-7 CRUD & Searching. Pemograman Web TEKNIK INFORMATIKA UNIVERSITAS PASUNDAN BANDUNG

ANALISA KEBUTUHAN & SPESIFIKASI. Erick Kurniawan, S.Kom, M.Kom

I.2 Identifikasi Masalah... I-2. I.3 Rumusan Masalah... I-2. I.4 Tujuan... I-3. I.5 Manfaat... I-3. I.6 Batasan Masalah... I-3

Belajar dasar codeigniter framework


DATABASE SERVER WEB SERVER SUBDOMAIN

AJAX. Pemrograman Web 1. Asynchronous JavaScript and XML. Genap

PENGEMBANGAN APLIKASI SISTEM PENGATURAN BASIS DATA SECARA ONLINE. Agustinus Noertjahyana, Rendy Pangestu dan Dwi Budiman

Basis Data 2. Database Client / Server. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

Oleh: Ahmad Syauqi Ahsan

II.3.5 Statechart Diagram... II-14 II.3.6 Activity Diagram... II-15 II.3.7 Component Diagram... II-16 II.3.8 Deployment Diagram... II-16 II.3.

MANAJEMEN INTERNET CONTENT DAN INTEGRASI APLIKASI UNTUK MENDUKUNG ENTERPRISE INFORMATION PORTAL EKSEKUTIF

Mengenal Framework Codeigniter

BAB III ANALISIS DAN PERANCANGAN SISTEM

PRAKTIKUM. Rekayasa Web. Modul 2: CRUD CodeIgniter Part I. Laboratorium Teknik Informatika Universitas Pasundan

BAB IV ANALISIS DAN PERANCANGAN SISTEM. permasalahan dari suatu sistem informasi. Hasil akhir dari analisis sistem

BAB 3 LANDASAN TEORI

BAB III LANDASAN TEORI

BAB 1 PENDAHULUAN 1.1. Latar Belakang

BAB IV HASIL DAN PEMBAHASAN

PENERAPAN TEKNOLOGI MASHUP PADA APLIKASI PARIWISATA BERBASIS WEB NUSANTARAVIEW: MODUL AKOMODASI

E-trik Ajax. Database MySQL. Dedi Alnas

BAB I PENDAHULUAN LATAR BELAKANG CONTOH KASUS. Diktat Mata Kuliah Aplikasi Teknologi Online Oleh : Andri Heryandi

BAB III ANALISA DAN PERANCANGAN SISTEM

Transkripsi:

Mengembangkan Component Joomla Oleh : Garry B. # Prologue Joomla terkenal sebagai salah satu platform Content Management System (CMS) untuk mempublikasi ke World Wide Web ataupun dalam intranet. Tetapi selain terkenal sebagai CMS, sebenarnya dia juga terkenal sebagai framework Modelview-controller (MVC) Web Application Development. Diktat ini akan meringkas mengenai pembuatan Component untuk Joomla dengan menggunakan Joomla- Framework. Versi yang dipakai sekarang adalah Joomla! 1.5. Tetapi seharusnya juga masih tetap sama strukturnya di versi 1.6 (tapi entahlah, saya belum mencobanya di versi itu) # Sekilas Mengenai MVC MVC sudah lazim bagi para pengembang web, entah orang yang mengerti maupun yang kagak ngerti, semua selalu mengelu-elukan struktur MVC ini. Saya sebenarnya tidak berani mengatakan pemahaman MVC saya sudah sempurna. Oleh karenanya saya akan meringkas/menerjemah dari website doc.joomla.org. MVC merupakan pola perancangan software yang digunakan untuk mengorganisir code sedemikian rupa sehingga business logic dan data presentation dipisahkan. Alasan pendekatan ini dikarenakan jika business logic dikelompokkan menjadi satu bagian, maka tampilan(interface) dan interaksi user yang bergantung pada data dapat direvisi ataupun diubah tanpa harus memprogram ulang business logic-nya. MVC aslinya dikembangkan untuk memetakan fungsi tradisional input, output dan proses pada arsitektur GUI logikal. Berikut ini merupakan tiga utama dari Joomla MVC(oleh karenanya mungkin akan berbeda dengan MVC framework lain). Model Model merupakan bagian dari komponen yang berhubungan dengan data. Model biasanya berupa class yang berfungsi mengambil, menambah, mengubah dan menghapus informasi dalam database. Model lah yang biasanya berhubungan dengan data. Makanya kalau misalnya sistem kita berganti dari sistem penyimpanan berbasis file ke penyimpanan berbasis database, kita hanya perlu mengganti coding model, tanpa perlu ubah controller ataupun view. View View merupakan bagian dari komponen yang berfungsi me-render data dari model sehingga sesuai untuk interaksi. Untuk aplikasi berbasis web, umumnya view akan berupa halaman HTML. View yang akan menarik data dari model (sebetulnya ditarik di Controller

kemudian dilempar ke View) dan memberikan data ke template (template yang akan ditampilkan ke user) View tidak pernah mengubah data, hanya menampilkan data yang diambil dari model. Controller Controller bertanggung jawab atas kegiatan user. Khusus di aplikasi web maka berupa page request (misalnya $_POST ataupun $_GET). Controller menentukan request apa yang diminta user dan meresponnya dengan memicu model untuk mengubah data dan mengirim model ke view supaya view mampu menampilkan data. Dalam Joomla untuk mengimplementasikan MVC kita menggunakan 3 kelas : JModel, JView dan JController Gambar samping merupakan bentuk sederhana component dal am Joomla Selain terdapat Model, View dan Controller juga terdapat yang dikenal dengan Entry Point (bulatan kecil) serta Template. # Mulai Membuat Component Kita akan membuat sebuah component bernama datadiri. Component ini untuk menampilkan biodata orang yang tersimpan dalam database. Berikut ini merupakan file yang harus dibuat: com_datadiri/datadiri.php Inilah entry point untuk menuju component com_datadiri/controller.php ini merupakan file dasar controller. com_datadiri/views/biodatas/view.html.php File ini menarik data yang dianggap penting kemudian melemparnya ke template. com_datadiri/views/biodatas/tmpl/default.php Inilah file template yang merupakan output. datadiri.xml XML ini yang menentukan bagaimana Joomla menginstall component kita. Yang harus diketahui: Nama entry point harus sama dengan nama component. Underscore memiliki makna khusus dalam Joomla, sehingga hindari

penggunaan underscore dalam nama. # Membuat Entry Point Joomla selalu akses melalui entry point : index.php untuk site biasa dan administrator/site.php untuk halaman administrator. Aplikasi akan me-load component yang diperlukan sesuai dengan nilai dari 'option' dalam URL ataupun dalam data POST. Untuk URL akan berupa seperti : index.php?option=com_datadiri. Contoh isi file com_datadiri/datadiri.php : defined ('_JEXEC') or die('restricted accessed'); require_once (JPATH_COMPONENT.DS.'controller.php'); $controller = new DatadiriController(); //buat objek dari DatadiriController $controller->execute(jrequest::getvar('task')); //jalankan controller. Kalau $task nilainya NULL maka otomatis jalankan yang di $ default Baris awal, defined ('_JEXEC') or... merupakan statement untuk pengecekan keamanan. JPATH_COMPONENT merupakan path absolut ke component sekarang, dalam kasus ini components/com_datadiri. DS merupakan directory separator yang merupakan '/' kalau tidak '\'. Ini otomatis sesuai server OS. JRequest::getVar() untuk mengambil data baik dari $_POST[] maupun dari $_GET[]. Misalnya URL nya index.php?task=insert, maka kita dapat menulis JRequest::getVar('task') untuk mendapatkan nilai task. Base controller terletak pada com_datadiri/controller.php. Jika misalnya suatu saat perlu controller tambahan, maka buat controller tambahan seperti 'DatadiriControllerxxx' di com_datadiri/controllers/xxx.php. Standar penamaan controller tambahan : {Nama Component{Controller{Nama Controller defined ('_JEXEC') or die ('Restricted accessed'); jimport('joomla.application.component.model'); # Pembuatan Model Biasanya class DatadiriModelBiodatas kita mulai desain dari extends Model. JModel{ Berikut contoh coding (com_datadiri/models/biodatas.php) function getbiodata(){ $db = & JFactory::getDBO(); $query = "SELECT nama, nilai FROM jos_datadiri"; $db->setquery($query); $hasil = $db->loadrowlist(); return $hasil;

jimport merupakan fungsi yang tujuannya sama dengan include php tetapi dengan beberapa kelebihan. Misalnya kita perlu include file joomla/application/component/model.php, maka kita dapat menulisnya dengan jimport(joomla.application.component.model) dimana tanda '/' diganti dengan tanda titik (.) dan pada bagian belakan.php tidak perlu ditulis. Sistem penamaan Model : {Nama Component{Model{Nama Model Jika kita ingin mengakses database maka kita harus menulis $db = & JFactory::getDBO(); Kita menggunakan tanda & supaya hanya me-reference. Karena jika kita tidak menggunakannya maka dia akan memindahkan seluruh data ke dalam variabel, dan itu sangat memakan waktu. Untuk melakukan query Select kita menggunakan $db->setquery() Untuk melakukan query Insert, Update ataupun Delete maka kita harus menggunakan $db->execute() Untuk mengambil hasil query terdapat berbagai cara yakni $db- >loadresult(), $db->loadrowlist() dan lain-lain. $db->loadrowlist() untuk mengambil semua baris hasil query. # Pembuatan View Berikut contoh coding (com_datadiri/views/biodatas/view.html.php) : defined ('_JEXEC') or die ('Restricted Accessed'); jimport ('joomla.application.component.view'); class DatadiriViewBiodatas extends JView{ //cari di alamat template script yg tersimpan $tpl. //kalo $tpl kosong otomatis cari alamat default function display($tpl=null){ $model = & $this->getmodel(); $biodatas = $model->getbiodata(); $this->assignref('biodatas', $biodatas); //panggil fungsi display()-nya JView parent :: display($tpl);

Fungsi default dari View adalah display() Di bagian $model = & $this->getmodel(); mungkin agak membingungkan mengapa kita hanya tulis getmodel tanpa menyebutkan model apa yang ingin kita ambil(normalnya model bisa lebih dari satu). Itu karena nantinya di class Controller nanti kita akan setmodel() untuk kelas View, jadi disini kita tinggal getmodel(). Perhatikan class Controller untuk lebih jelasnya. $this->assignref() adalah fungsi untuk melemparkan nilai variabel ke template. Misalnya kita menulis $this->assignref('biodatas',$biodatas) maka untuk mengaksesnya di template nantinya kita cukup tulis $this- >biodatas # Membuat Template Template/layout Joomla merupakan file PHP biasa yang digunakan untuk menampilkan data dari View. Variabel yang diset JView::assignRef dapat diakses dengan menggunakan $this->{namaproperty. Berikut contoh coding : defined ('_JEXEC') or die ('Restricted Accessed'); <strong> List of Biodatas </strong> <ol> defined ('_JEXEC') or die('restricted accessed'); jimport('joomla.application.component.controller'); foreach($this->biodatas as $row){ class DatadiriController echo extends JController{ "<li>".'<strong>'.$row[0].'</strong>'.'=>'.$row[1]."</li>"; function display(){ //mendapatkan view $view = &$this->getview('biodatas', 'html'); //mendapatkan model # Membuat Controller $model = &$this->getmodel('biodatas'); Berikut contoh coding (com_datadiri/controller.php) : //cek error if(!jerror::iserror($model)) { //setmodel untuk $view supaya ntar di view.html.php bisa akses //model. kan didalam class datadiriviewbiodatas ada getmodel $view->setmodel($model, true); //set the template and display $view->setlayout('default'); $view->display();

Constructor JController pasti selalu akan mendaftarkan fungsi display() sebagai default kecuali kita menspesifikasikan fungsi lain dengan menggunakan method registerdefaulttask(). Controller yang melakukan load class View dan class Model. Untuk meload View, menggunakan $this->getview({nama_view,'html' Untuk meload Model, menggunakan $this->getmodel({nama_module $view->setlayout() merupakan fungsi menentukan Layout, yakni bagaimana View menampilkan data-nya. Untuk menampilkan View yang sudah kita buat, kita harus menulis $view- >display() # Prologue Yang dipaparkan dalam diktat masih hanya konsep dasar MVC dengan menggunakan Joomla dan diterapkan pada Site(halaman front-end, yang dilihat pengunjung). Kalau misalnya ingin menggunakannya pada Administrator (halaman back-end, bagian admin) sebetulnya sama saja, dengan catatan folder component-nya diletakkan dalam folder administrator