Bab III Eksplorasi dan Analisis Perangkat Lunak CMS dan Joomla 3.1 Analisis CMS 3.1.1 Penggunaan CMS Sebelum adanya CMS, sebagian besar perusahaan/organiasi/institusi membuat website dengan hanya mengandalkan HTML dan hanya menampilkan informasi yang bersifat statis, maksudnya tidak ada elemen dari webpages yang bersifat dinamis atau interaktif dimana pengguna bisa memberikan input atau masukan ke web server dan web server bisa memberikan response atau output sesuai dengan masukan dari pengguna. CMS memberikan tools atau fasilitas yang bisa membuat suatu website menjadi bersifat dinamis atau interaktif, misalnya dengan adanya fasilitas polling pada CMS. Penggunaan CMS bisa memberikan keuntungan secara finansial bagi perusahaan atau institusi atau organisasi karena penggunaan CMS dapat menekan biaya operasional website. Hal ini disebabkan antara lain karena setiap kali ada perubahan informasi yang berkaitan dengan konten website perusahaan , pihak manajemen perusahaan tidak perlu menghubungi webmaster karena update terhadap konten website perusahaan tersebut tidak hanya bisa dilakukan oleh webmaster tetapi juga bisa dilakukan oleh orang yang tidak memiliki keahlian dalam HTML atau pemrograman web. Selain itu, perkembangan perusahaan terkadang menuntut adanya perkembangan fasilitas pada website yang dimiliki. Dengan menggunakan CMS terutama CMS yang dapat diperoleh secara gratis, akan dapat meminimalisasi biaya yang harus dikeluarkan untuk pengadaan modul atau komponen tambahan karena sebagian dari modul atau komponen tersebut bisa diperoleh secara gratis dari internet. 29 Dengan menggunakan CMS, keterlambatan penyampaian informasi atau update informasi yang ada dalam suatu website bisa dihindari. Ketika webmaster sedang ada di luar kota atau sedang tidak bisa dihubungi, bisa berdampak pada keterlambatan penyampaian informasi atau update konten website. Dengan memanfaatkan CMS, hal tersebut bisa dihindari karena tidak hanya webmaster yang bisa mengganti konten atau melakukan update terhadap konten dari suatu website. CMS memberikan kemudahan bagi pengguna dalam membangun dan mengelola website. Hal ini antara lain disebabkan adanya fasilitas administrasi website yang bersifat user friendly (mudah dipahami dan digunakan), adanya fasilitas template yang dapat digunakan untuk mengubah tampilan dari suatu website tanpa harus membongkar kembali kode-kode yang menyusun konten dari website tersebut dan tanpa harus mengubah tampilan halaman web tersebut satu per satu. CMS memisahkan antara isi / konten dengan desain sehingga konsistensi tampilan dapat terjaga dengan baik meskipun template atau penampilan dari website diubah-ubah. Selain itu, adanya tool yang menyerupai pengolah kata msword sangat memudahkan pengguna dalam pembuatan konten suatu website. CMS memiliki fasilitas untuk pengaturan hak akses secara fleksibel. Website yang menggunakan CMS tidak hanya bisa dikelola oleh satu orang tetapi bisa dikelola oleh lebih dari satu orang, sehingga memperbesar kesempatan berpartisipasi dari pengguna dalam pengembangan website. Penggunaan sistem hirarki pengguna yang diterapkan CMS dalam hak aksesnya sangat bervariasi sesuai dengan CMS masing-masing. Mulai dari level akses user anggota yang hanya dapat mengirimkan data tertentu berupa komentar, kemudian editor yang dapat mengirimkan suatu artikel / berita hingga level administrator yang memiliki kewenangan terhadap semua fitur yang ada pada CMS. Beberapa hal lain yang melatar belakangi penggunaan CMS sebagai framework dalam pembuatan website diantaranya adalah sebagai berikut : 1. Terlalu banyak informasi yang diproses di dalam website. 30 2. Informasi berubah dengan cepat sehingga menuntut adanya pemrosesan otomatis yang tidak memakan waktu lama. 3. Adanya lebih dari satu publikasi yang harus dibuat di dalam satu basis data konten. 4. Adanya terlalu banyak kontributor konten. 3.1.2 Fungsionalitas dan Manfaat CMS Fungsionalitas dari CMS dapat dibagi ke dalam empat kategori yaitu sebagai berikut : • Pembuatan / penciptaan konten Fungsionalitas ini memungkinkan CMS untuk membuat konten sesuai dengan keinginan pengguna dan dengan cara-cara yang tidak menyulitkan end-user, karena adanya lingkungan penciptaan konten yang didesain menyerupai pengolah kata ms word. • Manajemen konten Fungsionalitas ini memungkinkan CMS untuk melakukan pengelolaan terhadap konten yang telah dibuat. Konten akan disimpan ke dalam tempat penyimpanan (repository) yang terpusat. Bagian ini juga meliputi pengawasan terhadap perubahan konten yang dilakukan oleh pengguna, dalam artian setiap perubahan konten harus dapat dirunut waktu dilakukan perubahan tersebut serta siapa yang melakukan perubahan tersebut. Selain itu pengguna hanya dapat mengubah konten yang telah menjadi haknya. CMS juga meyediakan alur kerja/workflow terhadap peroses penerbitan konten. Ketika sebuah halaman web dibuat, halaman web tersebut akan dikirim terlebih dahulu ke manajer untuk memperoleh persetujuan, lalu dikirim ke tim web untuk peninjauan kembali dan bisa menjalani proses edit (editorial review) dan terakhir ke tim legal untuk mendapat ijin sebelum diterbitkan (di-publish). • Penerbitan / publikasi konten ( publishing) Penerbitan/publishing adalah proses pengiriman konten ke web. Konten yang dikirim diantaranya bisa sebagai dokumen HTML, sebagai e-mail 31 message (pesan surat elektronik) atau sebagai file PDF. Konten yang sudah memasuki tahap final yang tersimpan dalam tempat penyimpanan dapat diterbitkan ke website. CMS memiliki mesin / engine yang memungkinkan menerapkan page layout atau tampilan webpage secara otomatis sebelum webpage tersebut diterbitkan. CMS memungkinkan untuk menerbitkan konten yang sama dalam beberapa situs. Kemampuan publishing pada CMS menjamin webpages yang diterbitkan pada keseluruhan website senantiasa konsisten. • Presentasi konten CMS menyediakan beberapa fitur untuk meningkatkan kualitas dari situs yang berkaitan dengan presentasi/penyajian keseluruhan webpage yang ada dalam situs,misalnya CMS akan membuat suatu navigasi situs secara otomatis. Selain itu CMS juga mendukung multiple browser, maksudnya konten yang sudah diterbitkan dapat diakses di beberapa macam browser. Besarnya manfaat yang dapat diambil dari CMS mengakibatkan semakin banyaknya pengguna dari CMS di internet. Beberapa manfaat dari CMS diantaranya adalah: 1. CMS mampu menyediakan informasi yang konsisten, uptodate dan berkualitas. 2. Adanya kemampuan pemanfaatan kembali konten yang sudah dimiliki (reuse of content). 3. Peningkatan produktivitas karena webmaster dapat fokus ke fungsionalitas situs serta adanya response yang cepat terhadap konten situs. 4. Pembuatan konten yang terdesentralisasi. 5. Adanya alur kerja (workflow) sehingga situs dapat lebih berkembang. 3.1.3 Ekstensi CMS Ekstensi merupakan fasilitas yang disediakan oleh perangkat lunak CMS sebagai sarana untuk memberi kemudahan bagi para pengembang CMS dalam menambah fungsionalitas dari CMS. Jika pada CMS tidak terdapat fasilitas ekstensi, akan 32 timbul kesulitan bagi pengguna CMS yang ingin mengembangkan atau menambah fungsionalitas dari CMS tersebut karena pengguna CMS harus memahami serta membongkar pasang core dari CMS tersebut. Kebutuhan pengguna terhadap suatu website cenderung untuk senantiasa berkembang. Ekstensi dapat mengantisipasi adanya perkembangan kebutuhan pengguna tersebut. Pengembangan aplikasi web atau website dapat dilakukan dengan lebih cepat, mudah dan hemat dengan adanya ekstensi karena di internet terdapat banyak sekali ekstensi baik yang bersifat komersial maupun yang non komersial yang bisa di-download dan diaplikasikan pada website. Salah satu bentuk ekstensi pada CMS adalah komponen. Komponen memungkinkan pengembang CMS menambahkan fungsionalitas pada CMS dengan cara yang lebih mudah, diantaranya karena sudah adanya file-file library yang biasa digunakan untuk aplikasi web, sudah tersedianya basis data yang bisa dimanfaatkan serta toolbar-toolbar yang bisa digunakan. Selain itu pengembang CMS juga tidak perlu memikirkan core code dari CMS. 3.2 3.2.1 Eksplorasi CMS Joomla untuk Pengembangan Komponen Deskripsi Umum Joomla Joomla merupakan open source software dan dikeluarkan (di-release) dibawah naungan atau lisensi GPL (GNU Public Lisence). GPL merupakan lisensi yang dikeluarkan untuk perangkat lunak – pernagkat lunak yang bersifat open source. Karena bersifat open source, setiap orang dapat memodifikasi source code joomla. Selain itu software joomla bisa di-download secara gratis dari internet. Joomla juga memiliki komunitas aktif yang senantiasa berkembang. Sampai saat ini tercatat ada sekitar 150000 user/developer joomla yang aktif. Pada prinsipnya, joomla merupakan perangkat lunak yang digunakan untuk pengelolaan konten dalam suatu website. Joomla dapat digunakan untuk membuat 33 personal website atau website untuk bisnis kecil maupun website profesional skala besar, software/web e-commerce, website organisasi, aplikasi pemerintahan, majalah online, portal dan lain-lain. Joomla merupakan CMS yang ditulis dengan bahasa pemrograman PHP dan mendukung basis data mysql. Joomla dapat digunakan di beberapa sistem operasi diantaranya windows dan linux. Joomla memiliki beberapa ekstensi diantaranya modul dan komponen yang mampu memperkaya fitur dan fungsionalitas joomla. Ekstensi yang dimiliki joomla makin lama makin berkembang seiring dengan perkembangan komunitas joomla. 3.2.2 Fitur dan Keuntungan Joomla Beberapa fitur dan keuntungan joomla yang lain selain yang sudah tersebut dalam sub bab 3.11 diantaranya adalah [CMS08]: 1. Adanya file-file bantuan / help files dan search engine yang sudah built in. 2. Mampu membuat, edit, update, publish konten website dengan mudah. 3. Mampu membuat jadwal penerbitan / publishing sendiri. 4. Adanya fasilitas email, pencetakan, dan trash manager, newsflash, polling, kalender dan forum diskusi. 5. Administrasi joomla memiliki GUI (Graphical User Interface) yang mudah dipahami dan digunakan (user friendly). 6. Memiliki teks editor yang hampir sama dengan wordpad. 7. Menggunakan sistem cache sehingga meningkatkan performansi. 8. Pengelolaan web dapat dilakukan secara jarak jauh dengan menggunakan web browser, jadi tidak harus di console tempat joomla terinstal. 9. Dukungan terhadap teknologi LAMP (linux, apache, mysql dan php). 10. Ketersediaan beberapa macam library untuk pengembangan website. Meskipun memiliki banyak fitur yang menguntungkan, CMS joomla juga tidak terlepas dari beberapa kendala atau kekurangan, namun kekurangan tersebut relatif tidak terlalu berpengaruh terhadap proses pengembangan komponen joomla. Beberapa kekurangan atau kendala yang ada pada joomla adalah : 34 1. Adanya kesulitan dalam mencari guideline untuk pengembangan ekstensi. 2. Belum adanya fasilitas drag dan drop pada konten joomla. 3. Belum adanya fasilitas undo pada fasilitas pembuatan konten joomla. 4. Tidak ada dukungan terhadap pemrograman web dengan modus CGI (Common Gateway Interface). 3.2.3 Joomla Environment CMS joomla memiliki environment yang bisa dikategorikan ke dalam beberapa bagian dimana semua bagian tersebut secara bersama-sama membentuk suatu struktur dari sebuah CMS. Bagian-bagian tersebut adalah : • Antar Muka Depan dan Antar Muka Belakang (Front-End & Back-End) CMS terdiri dari front-end dan back-end. Front-end adalah bagian dari website dimana user dapat mengakses dan melihat tampilannya pada halaman web. Back-end merupakan bagian yang berfungsi sebagai administration layer dari website, yang dapat dimanfaatkan oleh administrator untuk melakukan konfigurasi, maintenance, cleaning, pembuatan konten dan lain-lain. Back-end memiliki URL yang berbeda dengan URL website. • Pengaturan Konfigurasi (Configuration Setting) Configuration setting menentukan semua setting pada keseluruhan website, meliputi teks pada browser window, password untuk search engine dan fungsi-fungsi lain. • Hak Akses (Access Right) Dalam CMS joomla, user memiliki beberapa tingkatan yang memiliki hak akses yang berbeda mulai dari registered user yang memiliki keterbatasan akses sampai pada super administrator yang memiliki kontrol penuh terhadap domain. • Konten (Content) Joomla dapat menangani berbagai jenis konten. Ada beberapa macam konten, diantaranya adalah teks, gambar, link, suatu bagian dari musik atau kombinasi dari beberapa macam jenis konten. 35 • Template Template adalah suatu file yang ditulis dalam bahasa php yang diperlukan mambo/joomla untuk menampilkan “wajahnya” sedemikian rupa seperti gambar latar belakang, warna tabel, jenis huruf, besar kecilnya huruf, warna huruf dan sebagainya sesuai dengan keinginan desainernya. Istilah lain dari template adalah theme atau tema. Dengan template tampilan dari halaman web dapat diubah-ubah. Template merupakan presentation layer dari website joomla. Template dan file-file lain yang berkaitan di-maintained secara terpisah dari konten situs. File-file template ini disimpan di dalam basis data mysql. Instalasi joomla jenis typical menghasilkan dua template yaitu madeyourweb dan rhuk_solaflare_ii. • Ekstensi Kekuatan yang sebenarnya dari joomla khususnya bagi para web developer adalah terletak pada application framework yang memungkinkan para developer dari seluruh dunia untuk membuat aplikasi atau program tambahan pada joomla yang disebut ekstensi (extensions). Suatu ekstensi digunakan untuk menambah kapabilitas joomla dimana kemampuan yang ditambahkan tersebut belum terdapat pada core code (kode sumber) joomla. Beberapa ekstensi diantaranya adalah : - Dynamic form builder - Image galleries - E-commerce engine - Calenders - E-mail newsletter Beberapa ekstensi pada joomla adalah sebagai berikut : Komponen Komponen merupakan elemen dasar (core elements) dari fungsionalitas joomla. Komponen merupakan sekumpulan file yang dapat di-install sebagai add-on (software yang berfungsi untuk menambah fungsionalitas ) pada website joomla. Komponen ini dapat digunakan untuk membuat fitur- 36 fitur baru yang belum terdapat pada instalasi dasar joomla. Biasanya komponen memiliki utilitas konfigurasi back-end yang dapat diakses melalui menu components pada joomla administrator. Komponen ditampilkan dalam bagian utama (main body) dari website template. Kode –kode untuk main body akan tampak di dalam template seperti baris kode berikut : <?php mosMainBody(); ?>. Modul Modul merupakan suatu bagian kecil dari konten yang tampil pada layar dimana dapat ditampilkan di bagian manapun di dalam suatu halaman web sesuai dengan keinginan. Modul memberikan software joomla fungsionalitas yang baru. Contoh modul adalah polls, who’s online. Mambots Mambot merupakan suatu program atau fungsi kecil yang segera dieksekusi sebelum konten dari suatu halaman web ditampilkan pada layar website front end. Mambots dapat digunakan untuk memanipulasi konten. Beberapa mambots yang sudah terdapat dalam core joomla adalah {mospagebreak} dan {mosimage}. 3.2.4 Sistem Administrasi Front-End pada Joomla Pengguna joomla dapat melakukan beberapa aktivitas administrasi dengan melalui front-end joomla. Caranya adalah dengan mengakses menu user. Menu akan ditampilkan setelah pengguna melakukan proses login. Ada beberapa item dalam menu user yaitu sebagai berikut : 1. Your Details Fasilitas untuk mengubah profil keanggotaan yang dimiliki untuk proses login. 2. Submit News Fasilitas untuk memasukkan berita ke suatu situs, dilengkapi dengan fasilitas pengolah kata untuk menulis berita. 37 3. Submit Weblinks Fasilitas untuk menampilkan alamat-alamat alamat alamat situs yang dianggap penting atau menarik untuk ditampilkan pada halaman web. 4. Check In My Item Fasilitas untuk berguna bagi situs – situs tus joomla yang memiliki beberapa admin (portal). ). Fasilitas ini berguna untuk menghindari saling tumpang tindih / overlapped pada proses penyimpanan item/artikel, ketika sebuah artikel diedit oleh lebih dari sati orang admin. 5. Logout Merupakan fasilitas untuk untuk keluar dari halaman administrasi front-end, tetapi belum keluar dari sistem joomla. .5 3.2.5 Perbandingan Joomla dengan CMS Lain Joomla merupakan salah satu CMS yang banyak digunakan digunakan di internet. Gambar 8. menunjukkan perbandingan popularitas antara 2 CMS yang banyak digunakan di internet yaitu joomla dan drupal menurut tool analisis google trends [BUY06]. Gambar 8 Perbandingan popularitas CMS joomla dan CMS Drupal Dari gambar bar di atas terlihat bahwa sejak kemunculan CMS joomla di internet tahun 2005, popularitas joomla terus meningkat sehingga melebihi popularitas dari CMS drupal yang lebih dulu muncul di internet. Menurut Alexa ranking, 3 CMS yang paling populer sepanjang tahun 2007 adalah [ALE08] : wordpress, joomla dan drupal. 38 Joomla sempat meraih penghargaan sebagai Best PHP Open Source CMS atau CMS open source berbasis php yang terbaik pada tahun 2007 dalam Packt Publishing’s 2007 awards. Penghargaan tersebut diraih karena kelebihan joomla dalam front-end untuk administrator maupun untuk end-user. Kelebihan jooomla dibandingkan dengan CMS drupal dan wordpress diantaranya adalah : 1. Kemudahan instalasi dan maintenance. 2. Fasilitas WYSIWYG Editor yang sudah bult in. 3. Joomla lebih fleksibel dalam penanganan layout template. 4. Joomla didukung oleh lebih banyak extension. 5. Adanya dukungan terhadap beberapa bahasa. 3.3 3.3.1 Analisis Komponen pada CMS Joomla Komponen sebagai Ekstensi Joomla Joomla dapat menambah fungsionalitasnya dengan memanfaatkan ekstensi. Hal ini diperlukan karena terkadang fungsi-fungsi yang terdapat dalam core joomla belum sesuai dengan keinginan atau untuk mengakomodasi perubahan sistem dimana menyesuaikan dengan requirement yang bisa berubah. Komponen merupakan ekstensi joomla yang paling kompleks. Komponen dapat dilihat sebagai sebuah aplikasi mini yang terintegrasi dengan joomla. Joomla bagaikan sebuah sistem operasi dan semua komponen merupakan aplikasi desktop. Beberapa fitur core joomla yang disediakan oleh beberapa komponen default diantaranya adalah contacts, newsfeed dan banners. Komponen akan mengelola data, tampilan layar, penyediaan fungsi-fungsi, dan melaksanakan beberapa operasi. Komponen bekerja sama dengan modul dan filefile lain pada core joomla untuk menyediakan bermacam-macam jenis tampilan dan fungsionalitas. Komponen memungkinkan joomla untuk memodifikasi dan mengembangkan CMS joomla. 39 Komponen dalam arsitektur framework joomla terletak pada lapisan yang paling atas yaitu lapisan ekstensi. Pada lapisan ini program-program aplikasi yang langsung digunakan oleh user seperti polling, banner, contact dan lain-lain dieksekusi. Lapisan ini merupakan lapisan yang paling dekat dengan user. Ekstensi merupakan fasilitas joomla bagi para pengguna joomla yang ingin mengembangkan fungsionalitas joomla. Dengan adanya lapisan ekstensi, pengguna joomla akan lebih mudah dalam membangun program aplikasi yang mampu menambah fungsi-fungsi pada core joomla. Komponen yang sudah di-install pada CMS joomla akan dapat menampilkan menu yang bertuliskan nama komponen tersebut pada dropdwon menu components yang terdapat pada layar back-end. Fasilitas ini akan dapat memudahkan administrator e-library nantinya dalam mengkonfigurasi sistem elibrary. Aplikasi e-library yang akan dikembangkan dibuat dengan memanfaatkan ekstensi joomla yang berupa komponen , jadi tidak dibuat secara langsung pada CMS joomla meskipun CMS joomla juga menyediakan beberapa fasilitas yang mampu untuk diterapkan pada aplikasi e-library, seperti fasilitas untuk penyimpanan dan pencarian file serta fasilitas pengklasifikasian file-file atau materi e-library. Hal ini dikarenakan apabila aplikasi e-library dibuat langsung pada CMS joomla, aplikasi e-library tersebut akan mempunyai beberapa keterbatasan akibat keterbatasan yang dimiliki oleh CMS joomla. Beberapa keterbatasan tersebut diantaranya adalah : 1. Tipe-tipe data yang dapat disimpan dalam basis data CMS joomla tidak merliputi tipe-tipe data untuk file-file audio dan video. 2. Pengklasifikasian file-file artikel pada CMS joomla hanya berdasar pada kategori dan tidak meliputi sub kategori. 3. Fasilitas pencarian yang terdapat dalam CMS joomla hanya meliputi pencarian dengan berdasar pada pengarang dan kata kunci yang terdapat di dalam deskripsi suatu artikel. 40 3.3.2 Komponen dalam Arsitektur Framework Joomla Arsitektur framework joomla terbagi ke dalam 3 lapisan sistem , yaitu framework level, application level dan extension level. Komponen Extension Tier Extension JApplication Application Tier Joomla Framework Gambar 9 Framework Tier Komponen dalam Arsitektur Framework Joomla Gambar 9. memperlihatkan arsitektur framework dari joomla. Framework level merupakan lapisan yang paling bawah dalam arsitektur framework jomla. Framework level adalah lapisan core joomla yang berisi program-program inti atau file-file library yang digunakan untuk menjalankan jomla. Lapisan ini berperan untuk memberi dukungan terhadap program-program sistem operasi, web server dan basis data server. Lapisan yang kedua yaitu application level. Lapisan ini juga merupakan lapisan inti (core) dari joomla. Lapisan ini berisi filefile program aplikasi diantaranya aplikasi yang berfungsi untuk pengontrol website. Lapisan ini terdiri dari kelas-kelas Japplication. Terdapat 3 aplikasi utama pada lapisan ini yaitu Jinstallation, Jadministrator dan Jsite. Lapisan ketiga (extension level) merupakan lapisan yang berisi file-file program yang sudah dirancang untuk memberi kemudahan dalam penambahan fungsi–fungsi yang belum terdapat pada core joomla. Lapisan ini disediakan bagi para pengguna atau pengembang joomla yang ingin menambahkan fungsionalitas pada joomla. Pada 41 lapisan ini, semua komponen, modul dan template logic dieksekusi. Komponen elibrary terletak di dalam lapisan ini. Dalam arsitektur framework joomla, komponen yang akan dikembangkan, fasilitas newsflash, polling, kalender dan forum diskusi yang ada pada joomla serta manajemen advertasi serta file-file yang digunakan dalam template terletak pada lapisan extension tier. Sedangkan fasilitas joomla untuk administrasi backend, instalasi, trash manager, teks editor, pembuatan konten, fasilitas bantuan (help), publikasi (publish), GUI (Graphical User Interface), termasuk dalam lapisan application tier. File-file yang memberikan dukungan terhadap teknologi LAMP yaitu teknologi sistem operasi Linux,web server Apache, PHP dan DBMS Mysql terletak pada framework tier. Dukungan terhadap teknologi ini bisa dimanfaatkan untuk pengembangan komponen e-library. 3.3.3 Prinsip Dasar Cara Kerja Komponen Joomla Cara kerja komponen (termasuk komponen e-library) secara garis besar terkait dengan 3 elemen dasar dari joomla yaitu webserver Apache, skrip-skrip PHP dan basis data mysql. Webserver diasumsikan terhubung dengan internet/intranet yang berfungsi sebagai penyedia layanan situs. Skrip PHP terdiri dari kode-kode program dalam bahasa PHP. Basis data digunakan untuk tempat penyimpanan konten. Dalam komponen e-library, data-data pustaka/file-file elektronik disimpan di dalam basis data mysql. Prinsip dasar kerja CMS joomla dapat digambarkan dalam beberapa langkah yaitu sebagai berikut : 1. User melakukan request terhadap suatu webpage joomla, user akan mengeksekusi http request atau URL (Uniform Resource Locator) yang tertera di address bar pada web browser, akibatnya akan terjadi koneksi dengan webserver apache. 42 2. Joomla akan melakukan kontak dengan basis data mysql dan mengambil konten yang tersimpan di dalam tabel yang terdapat di dalam basis data tersebut dengan berdasar pada parameter kontennya 3. File–file php dari komponen akan mengalami interpretasi menjadi file html . 4. Kalau komponen membutuhkan file-file pendukung seperti rmisalnya file gambar atau css, maka file-file tersebut akan diakses dari server untuk kemudian bergabung dengan file komponen. 5. File komponen yang sudah bergabung dengan file-file pendukung akan dikirim ke komputer client. 6. Web browser pada komputer client akan menterjemahkan file-file tersebut menjadi suatu tampilan webpage. Ilustrasi dari prinsip dasar kerja CMS joomla ini dapat dilihat pada gambar 10. Gambar 10 Prinsip Cara Kerja Komponen Joomla 43 3.3.4 Basis Data Joomla dalam Pengembangan Komponen Sebagian besar data-data yang terdapat di dalam joomla tersimpan di dalam basis data. Joomla sudah didesain untuk digunakan dengan basis data mysql. Penggunaan fungsi-fungsi dan sintak-sintak dalam query spesifik untuk basis data mysql. Meskipun demikian, arsitektur joomla memungkinkan untuk implementasi dengan basis data yang lain. Dalam core basis data joomla terdapat beberapa tabel dimana skema dari basis data tersebut bisa dilihat pada lampiran E. Dalam pengembangan komponen elibrary, tidak terlepas dari pemanfaatan beberapa tabel dalam basis data joomla yang terdapat pada core joomla. Beberapa tabel dalam basis data joomla yang digunakan dalam basis data komponen e-library diantaranya adalah tabel jos_users, jos_components, jos_session ,jos_core_acl_aro_group, jos_content, jos_menu, jos_component. Skema basis data CMS joomla secara keseluruhan dapat dilihat pada lampiran E. 3.3.5 Pengembangan Komponen Joomla Komponen memiliki dua bagian utama yaitu bagian administrator dan bagian site. Bagian administrator menyediakan antarmuka untuk dapat melakukan konfigurasi dan manajemen terhadap berbagai aspek dari komponen, dan antarmuka ini dapat diakses melalui aplikasi administrator joomla. Dalam metode pembuatan komponen terdiri atas beberapa hal yang perlu untuk diperhatikan yaitu : 1. Struktur dari komponen joomla 2. Proses eksekusi komponen 3. Registrasi basis data joomla 4. Pembuatan toolbars. 44 3.3.5.1 Struktur Komponen Joomla Joomla menggunakan pola penamaan khusus yang digunakan oleh semua komponen joomla. Tiap-tiap komponen yang ada di dalam sistem memiliki nama yang unik dan pada nama-nama tersebut tidak mengandung spasi. Kode-kode yang menyusun suatu komponen dibagi ke dalam 2 direktori, tiap-tiap direktori mengandung nama komponen yang menggunakan prefik com_. Misalnya nama sebuah komponen adalah reviews, maka untuk pembuatan komponen tersebut dua buah direktori yang harus dibuat adalah : • Sebuah direktori yang dinamakan com_reviews yang diletakkan di dalam direktori yang bernama components untuk keperluan front-end. • Sebuah direktori yang bernama com_reviews yang dibuat di dalam direktori components, dimana direktori components ini terdapat di dalam direktori administrator untuk keperluan back-end. Ketika komponen di-load dari front-end, joomla akan mencari sebuah file yaitu file komponen dimana file komponen tersebut memiliki nama yang unik yang berekstensi .php. Oleh karena itu dibuat file reviews.php (dalam contoh diatas nama komponen adalah reviews).di dalam direktori components/com_reviews. Demikian juga halnya dengan proses menjalankan komponen di back-end memerlukan sebuah file dengan nama yang diawali dengan admin. dan diikuti dengan nama komponen dan akhiran yang berekstensi .php (admin.reviews.php). File admin.reviews.php dibuat di dalam direktori administrator/components /com_reviewes. Kedua file tersebut untuk sementara dibiarkan kosong. 3.3.5.2 Proses Eksekusi Komponen Joomla Semua front-end request dalam joomla ditangani oleh index.php di dalam direktori root. File index.php ini nanti yang akan diakses ketika pengguna akan mengakses situs. Komponen-komponen yang berbeda dapat di-load dengan mengatur setting pada variabel option dalam URL GET string. Jika misalnya instalasi joomla dilakukan pada web server lokal di dalam direktori yang dinamakan joomla, maka URL yang bisa digunakan untuk mengakses situs 45 adalah : http://localhost/joomla/index.php sedangkan komponen front end dapat diakses melalui alamat : http://localhost/joomla/index.php?option=com_reviews melalui internet browser. Jika belum ada penambahan kode pada file reviews.php, tidak akan ada komponen (nama komponen )yang akan ditampilkan pada layar . Untuk dapat menampilkan komponen tersebut pada front-end,, harus dilakukan pengkodean pada reviews.php file yang ada di dalam direktori components/com_reviews/, sedangkan untukdapat menampilkan komponen dalam back-end, harus dilakukan pengkodean pada file admin.reviews.php yang ada dalam direktori administrator/components/com_reviews/. 3.3.5.3 Registasi Komponen ke dalam Basis Data Joomla Meskipun bagian front end dari komponen bisa diakses dengan menggunakan suatu URL misalnya http://localhost/joomla/index.php?option=com_reviews, cara ini tidak akan bisa diterima oleh user. User memerlukan cara yang lebih mudah dipahami, cara yang user friendly. Untuk mengakomodasi hal tersebut diperlukan navigasi. Navigasi ini bisa dilakukan jika komponen telah melakukan registrasi ke dalam basis data joomla. Registrasi ini dilakukan dengan cara menambahkan sebuah baris pada tabel komponen jos_components (dengan asumsi database prefix yang digunakan adalah jos_ ). Registrasi ini dilakukan dengan menggunakan query jika bekerja dengan menggunakan command-line interface dengan contoh sebagai berikut : INSERT INTO jos_components (name, link, admin_menu_link, admin_menu_alt,’option’,admin_menu_img,params) VALUES (‘Restaurant Reviews’,’option=com_reviews’,’Manage Reviews’, ’com_reviews’,’js/ThemeOffice/component.png’,’’) Jika bekerja dengan menggunakan GUI atau web based database manager seperti phpMyAdmin, caranya dengan mengisikan Restaurant Reviews untuk name,option=com_reviews untuk link dan admin_menu_link, Manage Reviews untuk admin_menu_alt, com_reviews untuk option js/ThemeOffice/component.png untuk admin_menu_img.png. Field-field dan yang lain yang terdapat pada tabel jos_components dibiarkan kosong, dimana default 46 untuk field menuid, parent, ordering,iscore adalah 0, sedangkan default untuk enabled adalah 1. Dengan menambahkan record tersebut di atas, sistem akan memperoleh beberapa informasi dasar tentang komponen yang akan ditambahkan. Setelah selesai melakukan registrasi komponen pada basis data joomla, komponen yang akan ditambahkan (dalam contoh di atas adalah Restaurant Reviews )akan tampil pada pulldown menu pada menu Components. Hal ini membuktikan bahwa komponen Restaurant Reviews telah terdaftar, sehingga link untuk front end bisa dibuat. Caranya dengan melalui menu pada bagian administrator joomla,yaitu : pertama klik Menus – Main Menu dan klik New, lalu pilih Restaurant Reviews pada tampilan layar, lalu mengisikan Reviews untuk name. Setelah disimpan dengan klik save, link untuk komponen baru sudah bisa terlihat pada bagian Main Menu pada tampilan layar front end joomla. Setelah melakukan semua proses di atas, coding untuk pembuatan komponen bisa dilakukan. Hal yang perlu menjadi catatan adalah bahwa semua front end request harus melalui http://localhost/joomla/index.php?option=com_reviews sedangkan semua back end request yang dilakukan pengguna harus melalui http://localhost/joomla/administrator/index.php?option=com_reviews. Pengkodean komponen dapat memanfaatkan toolbar, kelas-kelas basis data dan file-file pustaka yang sudah tersedia di dalam joomla. 3.3.5.4 Pembuatan Toolbar Komponen Semua komponen yang terdapat pada core joomla menggunakan toolbar dengan buttons yang sama, misalnya button untuk saving, deleting, editing dan publishing. Button yang sudah disediakan oleh core joomla ini juga dapat dimanfaatkan untuk toolbar pada komponen baru yang akan dibuat. Pembuatan toolbar ini dimulai dengan membuat sebuah file php dengan nama (dalam contoh kasus komponen Restaurant Reviews) yang mengikuti suatu aturan penamaan atau pola tertentu misalnya toolbar.reviews.html.php di dalam direktori administrator/components/com_reviews, lalu gunakan kode-kode dibawah ini : 47 <?php defined( '_JEXEC' ) class or die( 'Restricted access' TOOLBAR_reviews ); { function_NEW() { JToolBarHelper::save(); JToolBarHelper::apply(); JToolBarHelper::cancel(); } function_DEFAULT() { JToolBarHelper::title( JText::_( 'Restaurant Reviews' ), 'generic.png' ); JToolBarHelper::publishList(); JToolBarHelper::unpublishList(); JToolBarHelper::editList(); JToolBarHelper::deleteList(); JToolBarHelper::addNew(); } } ?> File – file yang berisi kode-kode output biasanya diatur di dalam suatu kelas. Misalkan dalam contoh kode diatas terdapat kelas yang bernama TOOLBAR_reviews. Tiap-tiap anggota fungsi yang ada di dalam kelas tersebut mewakili toolbars yang berbeda-beda. Kelas JToolbarHelper berisi fungsi-fungsi yang dapat menghasilkan semua tag HTML yag diperlukan untuk membangun toolbars. Untuk dapat menampilkan toolbar yang sudah ditentukan sebelumnya, perlu menambahkan beberapa kode ke dalam file toolbar.reviews.php di dalam direktori administrator/components/com_reviews. Kode tersebut adalah sebagai berikut : 48 <?php defined( '_JEXEC' ) or die( 'Restricted access' ); require_once( JApplicationHelper::getPath( 'toolbar_html' ) ); switch($task) { case 'edit': case 'add': TOOLBAR_reviews::_NEW(); break; default: TOOLBAR_reviews::_DEFAULT(); break; } ?> Variabel request $task secara otomatis akan teresgitrasi ke dalalm global scope, dan akan digunakan untuk mengarahkan aliran logik di dalam komponen. Jadi, toolbar dasar yang ada pada core joomla dapat dimanfaatkan untuk komponen yang akan ditambahkan dan dapat ditampilkan pada beberapa layar yang berbeda. 49