Bab III Eksplorasi dan Analisis Perangkat Lunak CMS dan Joomla

advertisement
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
Download