Haduh.. :( tinggal dua hari lagi nih menuju sidang, semoga aja di sidang saya memberikan kesan yang berguna pada program saya, agar wawasan saya di dunia web semakin bertambag dan terus bertambah.
berawal dari modal nekatzzz untuk menghasilkan sebuah program maksimal, sampai sakit, tidak tidur, jarang makan, dll demi skripsi ini. Hal hasil badan makin kurus udah kurus tambah kurus, wkakaka... Ditambah lagi bulan puasa (bukan alesan) mangkinan aja, sampe2 badan turun 2kilo waduhhhh... tapi tetap semangat dan terus optimis demi bisa membahagiakan ORANG TUA, waduh jadi curhat nih :) inti nya bukan itu sih saya cuma ingin memperkenalkan program yang saya buat, saya membuat SKRIPSI website dan saya beri dengan judul APLIKASI BERBASIS WEB MENGGUNAKAN FRAMEWORK CODEIGNITER
web ini saya buat mengunakan (CI) CODEIGNITER waw baru deger aja saya langsung kaget mahluk apaan nih hehehe... tapi pas saya pelajarin dan terus pelajarin cukup lumaya menegang kan, sampe 2 bulan saya belum mengerti saya terus cari tutoriar mengenai (CI) waduh masih jarang ternyata buku nya di internet juga tidak cukup banyak, pas saya liat di forum CI waw semua hal2 tentang CI distu banyak, tapi emang dasar oarang indonesia, kalo tulisan bahasa inggris ga bisa (itu sih saya nya aja yang ga ngrti b.ing) saya mulai cari nama2 orang indonesia dan mendapatkan banyak teman distu lalu saya di bantu untuk mencarikan sebuah solusi dan di ajarin apa sih CI itu ?
lumayan asik juga yah biar pun masih kurang paham.. tapi akan saya coba gambarkan CI buatan saya ini.
Inti dari CI yaitu MVC dan Framework apa sih? MVC dan frame work itu saya curhat lagi.
MVC : terdiri dari tiga bagian yaitu M (models) V (views) C (controller).
Controller : adalah controller berupa class yang diturunkan dari class controller. Penggunaan penurunan class ini, dimaksudkan agar semua class yang dibuat mempunyai kemampuan-kemampuan (method dan behavior) yang diperlukan tanpa harus menulis ulang kode tersebut. Sedangkan urutan menjalankan berkas controller sebagaimana dibawah ini.
1.Melakukan pengecekan apakah class, dan method yang dipanggil melalui URL telah dibuat pemrogram. Jika class dan method tersebut tidak ada, maka akan menampilkan halaman 404 yaitu halaman yang ditampilkan jika halaman yang diminta tidak ditemukan. Jika ditemukan, maka proses akan berlanjut ke tahap berikutnya.
2.Karena berupa class yang diturunkan, maka hal yang pertama dilakukan pada constructor (method yang pertama dipanggil ketika object dibuat) adalah menginisialisasi class induknya, untuk memastikan semua method dan behavior yang dimiliki induk berhasil dimuat oleh controller tersebut.
3.Selanjutnya adalah menginisialisasi variabel dan konstanta yang akan digunakan pada class tersebut. Variabel dan konstanta yang bisa dimuat, bukan hanya berupa tipe data primitif seperti string, integer, dan floating point, namun juga bisa berupa objek hasil inisialisasi class pustaka, helper, dan model.
4.Setelah semua persiapan inisialisasi selesai, yang dilakukan selanjutnya adalah menjalankan method yang diminta.Pada tahap ini juga dimungkinkan adanya pemuatan variabel dan konstanta yang bersifat lokal (variabel lokal) selain dari variabel dan konstanta yang telah diinisialisasi sebelumnya (variabel global).
5.Pada tahap 3 dan 4 terdapat proses pemuatan helper, pustaka, model, dan skrip. Keempat elemen tersebut mempunyai cara yang berbeda dalam pemuatannya.
6.Proses selanjutnya adalah memuat halaman presentasi yang berada pada direktori view. Proses ini meliputi menyiapkan variabel dan hasil dari proses sebelumnya, memuat halaman presentasi yang berupa desain template kosong, dan memasukkan hasil kedalam template sehingga membentuk halaman yang siap ditampilkan pada layar pengguna.
7.Setelah terbentuk halaman yang siap ditampilkan, maka proses akhir yang juga merupakan tahap akhir dari rangkaian proses framework adalah mengirimkan halaman tersebut pada sisi klien untuk ditampilkan oleh perambah.
Models : adalah Proses yang ada pada Model mempunyai alur yang hampir sama dengan Controller, hanya saja pada controller hasilnya bisa langsung ditampilkan pada halaman views dan siap ditampilkan pada perambah klien. Sedangkan pada Model, hasilnya dikirimkan pada Controller termasuk
pesan kesalahan yang dikembalikan oleh method pada class tersebut. Lebih jelasnya proses tersebut sebagaimana di bawah ini.
1.Seperti pada controller, model juga melakukan pengecekan terhadap eksistensi class dan method yang dipanggil oleh controller sebelum manjalankan tugas selanjutnya.Jika tidak ditemukan, maka model akan memberikan pesan kesalahan yang diteruskan pada controler untuk ditangani.
2. Jika ditemukan, maka seperti layaknya class yang lain, model melakukan inisialisasi class induk yaitu class model yang ada pada direktori "library", untuk memastikan fungsionalitas yang ada dapat dijalankan dengan baik.
3. Setelah melakukan inisialisasi class induk, selanjutnya juga melakukan variabel dan konstanta yang digunakan pada class tersebut. Pada model variabel yang dapat digunakan hanya tipe data primitif dan juga class pustaka yang ada pada model. Helper dan class model yang lain tidak dapat dipanggil melalui class model.
4. Model adalah class utama yang digunakan untuk berkomunikasi dengan basis data, komunikasi yang dilakukan meliputi Create, Read, Update, Delete (CRUD). Untuk berkomunikasi dengan basis data, ada dua cara yang digunakan model, yaitu cara konvensional menggunakan bahasa query (SQL) atau menggunakan ActiveRecord. Untuk penggunaan yang lebih simple dan juga penulisan kode yang lebih aman disarankan menggunakan ActiveRecord, karena kode SQL yang dituliskan menggunakan ActiveRecord dirancang untuk menghindari kesalahan.
5. Setelah menjalankan perintah query, hasilnya disimpan pada variabel dan dikirimkan ke controller.
Views : adalah berkas model juga ditulis oleh programmer dengan meng-extend dari class model yang telah disediakan.
Berkas view berisi kode HTML dan bahasa lain untuk membentuk tampilan presentasi yang akan disajikan pada pengguna akhir (end user). Semua berkas tersebut berada pada direktori ini dan akan dimuat oleh controller.
Framework : adalah Berdasarkan hasil perancangan yang telah dibahas sebelumnya, implementasi Framework ke dalam bahas pemrograman PHP adalah sebagaimana dijelaskan di bawah ini. Ada dua jenis implementasi pemrograman yang digunakan, yaitu pemrograman yang dibuat sendiri dengan menuliskan kode pemrograman baru seperti pada penulisan core engine-nya, dan yang kedua adalah adaptasi pustaka pemrograman yang sudah ada seperti adaptasi pustaka database abstraction dan juga penggunaan jQuery.ui.
Struktur Direktori Framework
Struktur direktori merupakan hal yang penting dalam suatu framework, ini berhubungan dengan pola perancangan yang akan digunakan dan juga routing alamat URL yang akan dipakai. Selain itu susunan direktori juga menentukan seberapa mudah programmer menemukan berkas yang diperlukan, dan apakah berkas tersebut berada pada alamat yang konsisten.
Pada Framework ini, secara garis besar, struktur folder dipecah menjadi dua bagian yaitu folder system engine dan folder aplikasi. Folder system engine merupakan inti dari Framework, semua pustaka dan perintah yang mengatur jalannya sistem berada pada folder ini. Diperlukan hanya satu direktori system engine untuk banyak proyek aplikasi, karena direktori ini hanya menyimpan pustaka inti saja, sedangkan konfigurasi dan berkas pekerjaan semua ada pada direktori aplikasi. Sedangkan folder aplikasi adalah folder tempat kita bekerja menuliskan kode pemrograman yang sudah diatur pada system engine, direktori aplikasi ini bisa digandakan sebanyak mungkin sesuai dengan jumlah proyek yang dikerjakan dengan menggunakan formework ini. Lebih jelasnya struktur global kedua folder tersebu.
Struktur dan Fungsi Direktori pada System
Assets : adalah Menyimpan beberapa pustaka bahasa pemrograman lain (non PHP). Pustaka Blueprint CSS dan jQuery serta jQuery.ui yang merupakan pustaka CSS dan Java cript secara default, berada pada direktori ini. Pengguna yang terbiasa menggunakan pustakan lain seperti YAML (YetAnother Multiple Layout) untuk CSS atau MooTools untuk Javascript,dapat memasukkannya ke dalam satu folder pada direktori tersebut
Models : adalah Pustaka database abstraction, database driver, dan juga pustaka active record ada pada direktori ini. Secara default pustaka yang digunakan adalah pustaka database dari CodeIgniter, bila diperlukaan juga bisa diganti dengan Object Relational Mapping (ORM) yang lain seperti
Doctrine atu Propel.
Engine : adalah Direktori tersebut merupakan inti dari Framework, pada folder ini terdapat berkas yang juga dimuat secara langsung oleh berkas bootstrap index.php. Berkas pada direktori ini tidak boleh dirubah dengan alasan apapun, karena akan merusak jalannya sistem.
Helpers : adalah Helper adalah pustaka kecil yang digunakan untuk membantu tugas-tugas tertentu seperti penulisan kode HTML dengan lebih cepat [20], misalkan FormHelper digunakan untuk membantu penulisan kode form yang
terintegrasi dengan validasi dengan lebih cepat.
Language : adalah Direktori tersebut merupakan direktori untuk menyimpan berkas yang berhubungan dengan dukungan bahasa. Tiap bahasa disimpan dalam satu direktori dan dapat
dikonfigurasi melalui berkas konfigurasi proyek.
Libraries : adalah Sesuai dengan namanya dalam direktori ini tersimpan pustaka pemrograman PHP dengan fungsionalitas tertentu. Base Class untuk Model dan Controller yang nantinya akan
di-extend pada direktori aplikasi juga ada di direktori ini
Direktori inti yang kedua adalah direktori aplikasi. Sebagaimana terlihat pada direktori aplikasi terdapat satu berkas yang bernama index.php. Berkas tersebut merupakan bootstrap atau berkas awal dan satu- satunya yang akan diakses secara langsung oleh pengunjung website. Berkas ini harus berada pada webroot pada tiap aplikasi dan akan memuat semua konfigurasi yang akan digunakan pada aplikasi.
Pada direktori aplikasi juga terdapat satu direktori lagi yang bernama "ruang kerja", direktori ini berisi direktori dan berkas konfigurasi dan juga pekerjaan yang digunakan untuk proyek tertentu. Untuk mengembangkan perangkat lunak menggunakan InTheKost Framework, programmer hanya perlu
berurusan dengan direktori ini, kecuali untuk kasus tertentu seperti untuk mengganti pustaka database abstraction dengan ORM yang diinginkan. Secara rinci, fungsi masing-masing direktori pada "ruang_kerja"
Cache :adalah Pustaka database abstraction dari CI menyediakan fasilitas
caching result, yaitu menyimpan hasil query kedalam suatu berkas, sehingga nanti bila diperlukan memuat query yang sama tinggal memuat cache yang ada untuk meningkatkan performa. Fungsi dari direktori cache ini untuk menyimpan
berkas cache tersebut.
Config : adalah Kegunaan dari direktori config adalah menyimpan semua konfigurasi yang berhubungan dengan proyek tertentu
yang sedang dikerjakan, seperti konfigurasi basis data yang digunakan, letak dari system engine, bahasa yang
digunakan, dan lain sebagainya.
Controllers : adalah Controller adalah penghubung antara antarmuka pengguna dengan logika bisnis. Pada controller dijalankan validasi inputan dan juga mengubah data model ke dalam tampilan presentasi. Berkas controller inilah yang dikerjakan oleh programmer dengan meng-extend dari class controller
yang ada dan disimpan pada direktori ini.
Eror : adalah Direktori ini berfungsi untuk menyimpan jejak kesalahan yang terjadi saat perangkat lunak dijalankan. Jejak kesalahan ini bermanfaat untuk menganalisis kesalahan inputan pengguna dan juga kemungkinan pengguna
mencari titik lemah yang menimbulkan kesalahan.
helpers : adalah Seperti pada direktori helper yang ada pada system engine, direktori ini juga digunakan untuk menyimpan helper. Direktori ini memungkinkan programmer memasukkan helper khusus pada suatu perangkat lunak
Libraries : adalah Sama dengan fungsi dari direktori helper, direktori ini berfungsi untuk menyimpan pustaka tambahan yang diperlukan pada perangkat lunak tertentu.
Models : adalah Model merupakan logika dari perangkat lunak, mengambil data dari penyedia basis data, atau juga mengubah basis data, dan mengirimkan hasilnya pada controller. Semua berkas model juga ditulis oleh programmer dengan meng-extend dari class model yang telah disediakan
Views : adalah Berkas view berisi kode HTML dan bahasa lain untuk membentuk tampilan presentasi yang akan disajikan pada pengguna akhir (end user). Semua berkas tersebut berada pada direktori ini dan akan dimuat oleh controller.
Pustaka Database Abstraction
Database Abstraction adalah pustaka yang digunakan untuk membungkus pustaka asli dari bahasa pemrograman (PHP) untuk tujuan tertentu. Tujuan tertentu antara lain meringkas penulisan, memastikan keamanan bahasa query, portabilitas kode untuk digunakan banyak DBMS, dan alasan lainnya. Pustaka database abstraction yang digunakan pada InTheKost Framework adalah database abstraction dari CodeIgniter. Penggunaan pustaka tersebut dengan pertimbangan kelebihan yang dimiliki yaitu [22]:
1. Mampu mendukung banyak jenis database yang digunakan di pasaran yaitu MySQ, MsSQL, ODBC, Postgree, SQLite, dan Oracle.
2. Mendukung penggunaan transaction untuk query yang lebih aman.
3. Mempunyai Active Record untuk penulisan SQL secara otomatis namun juga tetap mendukung penulisan SQL secara manual.
4. Menggunakan caching untuk menyimpan hasil query, sehingga dapat dipanggil lebih cepat bila ada permintaan yang sama.
5. Database Forge untuk memanipulasi struktur tabel dan juga database, seperti menggunakan Data Defnition Language (DDL) dalam SQL.
6. Performa yang lebih tinggi dibandingkan dengan Object Relational
Mapping (ORM) seperti Propel, Doctrine, bahkan juga AdoDB.
Untuk pustaka database abstraction, karena mempunyai banyak berkas yang harus dimuat untuk menjalankan fungsinya, maka ditempatkan pada direktori khusus yaitu pada direktori "database" pada direktori "system", tidak seperti pustaka lain yang ditempatkan pada direktori "libraries".
Karena perbedaan direktori tersebut juga memerlukan method khusus pada pustaka loader (loader.php), namun untuk memudahkan penggunaan, pemrogram menggunakan cara yang sama dengan pemanggilan pustaka yang lain.
Pustaka JavaScript dan CSS
Keduanya merupakan skrip yang berjalan pada sisi klien. Pustaka CSS digunakan untuk mempermudah mengatur tampilan halaman website pada browser dan juga pada perangkat lain (proyektor, printer, dan lain sebagainya) dengan menggunakan teknik GridLayout. Adapun Pustaka JavaScript diberikan untuk mempermudah penulisan skrip pemrograman sisi klien dengan manipulasi DOM HTML untuk perancangan antarmuka Rich Internet Application (RIA).
Pustaka CSS yang digunakan adalah BluePrintCSS yang menekankan pada pengaturan tata letak berbasis GridLayout dengan menggunakan nama class. BluePrintCSS mempunyai tiga berkas inti yang dimuat untuk dapat menjalankan fungsinya yaitu "screen.css", "ie.css", dan "print.css". Sedangkan bila diperlukan dapat juga ditambahkan beberapa berkas lain untuk memberikan variasi pada tampilan, antara lain fancy-type, buttons, dan liquid.
Sedangkan pustaka JavaScript yang digunakan adalah jQuery untuk inti JavaScript-nya dan juga jQuery.ui untuk penggunaan widget berbasis klien dan juga efek seperti dialog, calendar, tabs layout, drag & drop, pulsate, highlight, dan lain sebagainya. Sedangkan khusus untuk menampilkan text editor berbasis JavaScript menggunakan pustaka TinyMCE.
"jquery.js" yang merupakan berkas inti dari jQuery dan merupakan satu- satunya berkar yang menyediakan fungsi-fungsi javascript untuk code binding,
DOM manipulation, event handling, CSS wrapping, basic effect, dan Ajax management. Sedangkan jQuery.ui mempunyai banyak berkas yang digunakan untuk fungsi tertentu, misalkan untuk menampilkan datepicker maka yang perlu dipanggil hanya berkas "ui.datepicker.js", sedangkan untuk menampilkan kotak dialog yang dapat diatur ulang besar kecilnya serta dapat dipindahkan posisinya perlu memanggil berkas "ui.dialog.js", "ui.draggable.js", dan "ui.resizable.js".
Bersambung dulu yah .. lagi mau baca-baca lagi buat sidang nanti biar ga kaku :)
02 September, 2010
APLIKASI BERBASIS WEB MENGGUNAKAN FRAMEWORK CODEIGNITER
diterbitkan oleh
BLOGG_GUNTUR
Langganan:
Posting Komentar (Atom)
0 pesan-pesan yang ingin disampaikan:
Posting Komentar