Anda di halaman 1dari 24

PEMROGRAMAN TINGKAT LANJUT

STMIK INDONESIA PADANG

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (1)


BAB I
Pengenalan Framework CodeIgniter

Pengantar Web Framework


Web Framework adalah suatu kumpulan kode berupa pustaka (library) dan alat (tool) yang
dipadukan sedemikian rupa menjadi satu kerangka kerja (framework) untuk memudahkan dan
mempercepat proses pengembangan aplikasi web.
Saat ini framework PHP sangat banyak tersedia, tapi pada materi kali ini kita hanya akan
mempelajari framework PHP CodeIgniter. Alasan kenapa memilih CodeIgniter karena framework
ini membutuhkan spesesifikasi yang kecil.
CodeIgniter adalah Kerangka Pengembangan Aplikasi - sebuah toolkit - untuk orang-orang
yang membangun situs web menggunakan PHP. Tujuannya adalah untuk memungkinkan Anda
mengembangkan proyek lebih cepat daripada Anda menulis kode dari awal, dengan menyediakan
kumpulan pustaka yang kaya untuk tugas-tugas yang biasa dibutuhkan, serta antarmuka yang
sederhana dan struktur logis untuk mengakses pustaka ini. CodeIgniter memungkinkan Anda secara
kreatif fokus pada proyek Anda dengan meminimalkan jumlah kode yang diperlukan untuk tugas
yang diberikan.
Untuk bisa menggunakan CodeIgniter maka terlebih dahulu anda harus mempunyai file
master dari CodeIgniternya. Jika anda belum mempunyai maka anda bisa download pada situs
resminya yaitu codeigniter.com

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (2)


Pada saat materi ini dibuat CodeIgniter yang tersedia adalah versi 3.1.9, bisa saja ketika
anda membaca materi ini dan membuka situs resminya anda akan menemukan versi yang lebih
tinggi/berbeda dari yang ada pada materi ini. Itu karena framework CodeIgniter selalu dilakukan
update untuk memperbaiki bug yang ditemukan.
Instalasi Framework CodeIgniter
Setelah anda berhasil download file master CodeIgniter maka anda akan menemukan sebuah
file bernama CodeIgniter-3.1.9.zip. Untuk mulai menggunakan CodeIgniter anda harus install
terlebih dahulu CodeIgniternya, langkah-langkahnya adalah sebagai berikut:
1. Silahkan anda extract terlebih dahulu file CodeIgniter-3.1.9.zip sehingga anda akan
menemukan folder bernama CodeIgniter-3.1.9
2. Silahkan anda copy folder CodeIgniter-3.1.9 tersebut ke dalam folder web server anda
seperti htdocs jika anda menggunakan XAMPP.
3. Jalankan browser anda dan pilihlah folder CodeIgniter-3.1.9 sehingga akan muncul tampilan
welcome to CodeIgniter

4. Jika sudah muncul tampilan Welcome to CodeIgniter itu tandanya ada sudah berhasil
melakukan install framework CodeIgniter.

Struktur Folder dan File Framework CodeIgniter


Sebelum kita memulai membuat aplikasi menggunakan framework CodeIgniter maka
terlebih dahulu kita akan berkenalan dengan file dan folder-folder yang telah disediakan oleh
CodeIgniternya. Ketika anda sudah berhasil install framework CodeIgniter ada akan menemukan
banyak sekali folder dan file, jangan khawatir kita akan pelajari satu per satu secara bertahap.

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (3)


Berikut ini penjelasan folder-folder dalam Framework CodeIgniter:
1. application adalah folder yang berisi semua kode aplikasi. Di dalam folder inilah kita akan
menulis semua kode aplikasi kita.
2. system adalah folder yang berisi kode-kode inti dari CodeIgniter. Jangan mengubah apapun
di dalam direktori ini. Jika kita ingin upgrade versi, kita cukup me-replace folder ini dengan
yang baru.
3. tests adalah folder yang berisi kode untuk melakukan unit testing.
4. user_guide adalah folder yang berisi dokumentasi CodeIgniter. Kita bisa menghapus folder
ini saat web sudah selesai.
5. .editor_config berisi konfigurasi untuk teks editor.
6. .gitignore berisi daftar file dan folder yang akan diabaikan oleh Git.
7. comspoer.json adalah file yang berisi keterangan project dan keterangan library yang
digunakan. File ini dibutuhkan oleh composer.
8. contributing.md adalah file yang berisi penjelasan cara berkontribusi di proyek CI. Kita bisa
menghapus file ini, apabila web sudah selesai.
9. license.text adalah file yang berisi keternagan lisensi dari CI.
10. readme.rst sama seperti file contributing.md file ini berisi penjelasan dan infomrasi tentang
project CI. Kita juga bisa menghapus file ini saat web sudah selesai.
11. index.php adalah file utama dari CI. File yang akan dibuka pertama kali saat kita mengakses
web.

Konsep MVC (Model View Controller)


MVC adalah sebuah pola desain arsitektur pengembangan aplikasi yang memisahkan dan
mengelompokan beberapa kode sesuai dengan fungsinya.
MVC membagi aplikasi ke dalam tiga bagian fungsional:
1. Model adalah bagian kode yang digunakan untuk berkomunikasi atau memanipulasi
database. Seperti (insert, update, delete, select, dan lain-lain).
2. View adalah bagian kode yang digunakan untuk menampilkan data.

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (4)


3. Controller adalah bagian kode yang digunakan untuk mengatur hubungan antara bagian
model dengan bagian view atau bagian-bagian yang lainnya.

Alur kerjanya:
1. Mulai
2. User mengirim request ke web
3. file yang pertama kali dieksekusi adalah index.php
4. lalu dari index.php, request akan diteruskan oleh routers.php
5. routers.php akan mencari cache di server, apabila terdapat cache maka cache itu yang akan
dikirim sebagai balasan (response). Apabila tidak ada cache barulah request diteruskan ke
controller.
6. Controller akan bertangungjawab untuk mengambil data dari model dan me-rendernya ke
dalam view dengan menggunakan library, plugin, dan helper yang ada.
7. Hasil render (view) dikirim ke pengguna dan disimpan dalam cache, apabila fitur cache aktif
8. selesai.

Memahami router pada codeigniter


Router pada codeigniter bertugas untuk menentukan controller dan method/fungsi yang akan
dieksekusi. Ketika kita membuka, http://localhost/CodeIgniter-3.1.9/ maka fungsi yang akan
dieksekusi adalah fungsi index() yang berada di dalam controller welcome.

class Welcome extends CI_Controller {


public function index()
{
$this->load->view('welcome_message');
}
}

ini terjadi karena konfigurasi router defaultnya adalah controller welcome. Coba saja buka pada file
config/routers.php

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (5)


Method index() adalah fungsi yang akan dieksekusi saat kita mengakses controller welcome.
Sekarang coba buka http://localhost/CodeIgniter-3.1.9/index.php/welcome/index, maka kita akan
mendapatkan hal yang sama seperti membuka http://localhost/CodeIgniter-3.1.9/.

Membuat Beberapa Router


sebagai latihan, coba tambahkan route /about/ dan /contact/ di dalam controller welcome
dengan method ini:

public function about()


{
// fungsi untuk me-load view about.php
$this->load->view('about');
}

public function contact()


{

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (6)


// fungsi untuk me-load view contact.php
$this->load->view('contact');
}

setelah itu tambahkan dua buah file view di dalam folder views dengan isi sebagai berikut:

 views/about.php
h1>About Us</h1>
<p>Ini adalah halaman about</p>

 views/contact.php
<h1>Contact Us</h1>
<p>Ini adalah halaman Contact</p>

Silahkan coba diakses http://localhost/CodeIgniter-3.1.9/index.php/welcome/about

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (7)


silahkan coba diakses http://localhost/CodeIgniter-3.1.9/index.php/welcome/contact

Apabila kita membuka http://localhost/CodeIgniter-3.1.9/index.php/contact, maka akan


terjadi error 404 not found.

Ini karena route yang baru saja kita buat, belum didaftarkan ke dalam routers.php. Sekarang
buka filder config/routers.php, lalu tambahkan kode berikut:

$route['about'] = 'welcome/about';
$route['contact'] = 'welcome/contact'

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (8)


hasilnya:

Kita tidak harus menambahkan route pada routers.php di setiap pembuatan route baru,
karena CI juga mampu mendeteksi otomatis route berdasarkan nama controller dan method yang
dibuat.

Ini formatnya:
http://example.com/ [controller-class] / [controller-method] / [arguments]
Penambahan route pada routers.php dibutuhkan saat kita ingin membuat custom route untuk
controller tertentu.
Hanya menggunakan controller
controller merupakan komponen utama yang berperan sebagai pemroses permintaan dari
user. Secara extrim, suatu aplikasi berbasis MVC bisa saja dibuat tanpa menggunakan komponen
model maupun view, tapi tidak mungkin tanpa menggunakan komponen controller.
Silahkan buat file controller/Latihan.php

hasilnya : silahkan akses http://localhost/CodeIgniter-3.1.9/index.php/latihan atau


http://localhost/CodeIgniter-3.1.9/index.php/latihan/index

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (9)


Menggunakan controller dan model
aplikasi juga dapat dibuat hanya dengan menggunakan komponen controller dan model,
tanpa view, meskipun pada praktiknya hal ini seharusnya tidak dilakukan.
Silahkan update file controller/Latihan.php

Buat file model/M_latihan.php

hasilnya : silahkan akses http://localhost/CodeIgniter-3.1.9/index.php/latihan

Menggunakan controller dan view


Silahkan buat file controller/Latihan.php

Silahkan buat file view/Latihan.php

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (10)


hasilnya : silahkan akses http://localhost/CodeIgniter-3.1.9/index.php/latihan

Koneksi ke database
Untuk bisa berkomunikasi dengan database CodeIgniter sudah menyediakan library yang
bisa kita gunakan, kita cukup melakukan konfigurasi pada library yang sudah disediakan. Untuk
melakukan konfigurasi silahkan buka file database.php. File database.php ada di dalam folder
config.

Isi file Config/database.php

Di dalam file database.php terdapat banyak sekali tulisan/perintah. Tidak perlu khawatir
yang jadi perhatian kita adalah pada baris 78 sampai 82 yaitu hostname, username, password,
database dan dbdriver. Karena bagian itulah yang akan kita konfigurasi. Jika anda menggunakan
paket webserver seperti xampp dan tanpa melakukan konfigurasi pada database server maka
username yang anda isikan adalah root, sedangkan passwordnya adalah kosongkan saja, untuk
database diisikan dengan nama database yang sudah anda buat contohnya disini nama databasenya
adalah perusahaan, maka dibagian database diisikan dengan nama perusahaan.

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (11)


Silahkan buat tabel dengan nama produk dengan rincian field sebagai berikut:
• kdprd varchar 10 primary key kode produk
• nmprd varchar 30 nama produk

Setelah tabel produk selesai dibuat, selanjutnya kita entrikan 2 buah record pada tabel
produk.

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (12)


BAB 2
CRUD

Setiap aplikasi yang dibuat tidak pernah lepas dari CRUD (Create, Read, Update, Delete).
Apa itu CRUD?
• C (Create) adalah suatu mekanisme bagaimana caranya agar data yang diinputkan oleh user
tersimpan kedalam database.
• R (Read) adalah suatu mekanisme menampilkan data yang sudah tersimpan didalam
database.
• U (Update) adalah suatu mekanisme untuk mengubah data yang sudah tersimpan didalam
database.
• D (Delete) adalah suatu mekanisme untuk menghapus data yang sudah tersimpan didalam
database.

Framework CodeIgniter menyediakan dua mekanisme untuk melakukan CRUD :


1. Standar Query adalah sebuah pola yang biasa digunakan untuk mengkases database.
Contohnya : SELECT * from nama_tabel
2. Query Builder adalah sebuah pola yang disediakan oleh CodeIgniter untuk mengakses
database.
Contohnya: $this->db->get(‘nama_table’);

2.1. CRUD dengan Standar Query


A) Menampilkan data dari tabel produk (Read)
*) controller
Silahkan buat file controller baru dengan nama Produk.php

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (13)


keterangan:
• baris 2 => untuk mendeklarasikan nama class. Nama class dibuat sama dengan nama file,
pada contoh diatas nama filenya adalah Produk.php, maka nama classnya juga diberi nama
Produk.
• Baris 3 => membuat fungsi dengan nama index. Fungsi index adalah fungsi yang pertama
kali dibaca dalam controller.
• Baris 4 => karena akan berhubungan dengan database maka perlu file model, bagian ini
digunakan untuk memanggil file model dengan nama Mproduk.php. Dalam pemanggilan di
controller tidak perlu menambahkan extensi .php karena CodeIgniter sudah bisa mengetahui
bahwa yang dimaksud adalah Mproduk.php.
• Baris 5 => memanggil fungsi read yang ada dalam file model Mproduk, setelah itu datanya
disimpan dalam variabel bernama tampil_produk.
• Baris 6 => memanggil file vproduk, untuk menampilkan data yang sudah diambil dari file
model.

*) model
Silahkan buat file model baru dengan nama Mproduk.php

keterangan:
• baris 2 => untuk mendeklarasikan nama class. Nama class dibuat sama dengan nama file,
pada contoh diatas nama filenya adalah Mproduk.php, maka nama classnya juga diberi nama
Mproduk.
• Baris 3 => membuat fungsi dengan nama index. Fungsi index adalah fungsi yang pertama
kali dibaca dalam controller.
• Baris 4 => memanggil library database, yang berfungsi sebagai penghubung/koneksi antara
aplikasi dengan database.

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (14)


• Baris 5 => untuk menjalankan query/perintah. Pada kali ini perintah yang diberikan adalah
SELECT * FROM produk yang artinya menampilkan semua record yang ada dalam tabel
produk.
• Baris 6 => untuk menangkap hasil query/perintah dalam bentuk objek

*) view
Silahkan buat file view baru dengan nama vproduk.php

keterangan:
• Baris 2 => menampilkan data dalam bentuk objek.
• Baris 3 => menyimpan data yang terdapat pada field kdprd ke dalam variabel bernama kode.
• Baris 4 => menyimpan data yang terdapat pada field nmprd ke dalam variabel bernama
nama.
• Baris 5 => menampilkan data yang sudah di simpan dalam variabel kode dan variabel nama.
Sedangkan <br> adalah baris berikutnya. Jika tidak diberikan <br> maka antara record yang
satu dengan yang lainnya akan saling menyatu menjadi satu baris.

Hasilnya:
untuk melihat hasilnya silahkan anda buka browser dan ketikan http://localhost/CodeIgniter-
3.1.9/index.php/produk

Metode yang bisa digunakan untuk menangkap hasil query sebagai berikut:
1. Metode result() => metode yang berguna untuk menangkap hasil dari perintah SELECT
dalam bentuk objek. Contoh penggunaannya: $baris->nama;

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (15)


2. Metode result_array() => metode yang berguna untuk menangkap hasil dari perintah
SELECT dalam bentuk array. Contoh penggunaannya : $baris[‘nama’];
3. Metode row() => metode yang berguna untuk menangkap hasil dari perintah SELECT
dimana hanya akan mengambil baris data pertama. Contoh penggunaannya : $query->row();
4. Metode row_array() => metodenya pada prinsipnya memiliki cara kerja yang sama dengan
metode row(), perbedaannya, row_array() memberikan hasil dalam bentuk array bukan
objek.
5. Metode num_fields() => metode ini digunakan untuk memperoleh jumlah kolom/field dari
hasil yang dikembalikan oleh perintah SELECT.
6. Metode num_rows() => metode ini digunakan untuk memperoleh jumlah record/data dari
hasil yang dikembalikan oleh perintah SELECT.

B) Menambah Data ke Dalam Tabel Produk (Create)


Sebelum melanjutkan pembuatan create, maka terlebih dahulu kita akan membuat url
aplikasi yang kita buat menjadi lebih bersih tanpa adanya tambahan index.php sebelum nama
controller. Untuk bisa melakukan hal itu maka kita perlu menambahkan sebuah file .htaccess yang
berfungsi untuk merewrite/menulis ulang url yang kita buat.
Silahkan buat file dengan nama .htaccess di dalam folder utama

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (16)


Untuk memudahkan dalam pemanggilan nama folder maka nama folder yang sebelumnya
CodeIgniter-3.1.9 diubah menjadi perusahaan.

Configurasi base_url
Fungsi dari base_url adalah menghasilkan sebuah url dasar berdasarkan konfigurasi yang
diisi pada file config.php

Silahkan buka file config.php yang terdapat dalam folder config

*) controller untuk menampilkan data


Silahkan buka file Produk.php di dalam folder controller.

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (17)


Keterangan:
• baris 4 => memanggil library helper bernama url.
*) view
silahkan buka file vproduk.php didalam folder view.

Keterangan:
• Baris 3 => Membuat variabel bernama tambah dimana variabel ini menyimpan data berisi
link menuju controller bernama produk dan mengakses fungsi tambah pada controller
produk.
• Baris 9 => a href adalah sebuah perintah yang digunakan untuk menuju link lain.
*) controller untuk tampil form tambah data
Silahkan buka file Produk.php di dalam folder controller dan tambahkan coding berikut.

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (18)


Keterangan:
• Baris 11 => memanggil library helper bernama url. Untuk library helper lainnya akan
dibahas pada bab terpisah.
• Baris 12 => memanggil file view bernama vtambahproduk.php di dalam folder view
*) view untuk tampil form tambah data
silahkan buat file dengan nama vtambahproduk.php di dalam folder view.

Keterangan:
• Baris 3 => variabel yang digunakan untuk menyimpan link menuju controller produk dan
mengakses fungsi bernama simpan.
• Baris 4 => akan menjalankan isi dari variabel $simpan ketika user klik tombol simpan.
Dengan menggunakan metode pengiriman data post.
Hasilnya ketika di klik tombol tambah maka akan muncul form tambah data :

*) controller untuk simpan data


Silahkan buka file Produk.php di dalam folder controller dan tambahkan coding berikut.

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (19)


Keterangan:
• Baris 18 => $this→security→xss_clean digunakan untuk mencegah terjadinya penyerangan
dalam bentuk xss. Pembahasan mengenai security akan dibahas pada bab terpisah.
*) model untuk simpan data
Silahkan buka file Mproduk.php di dalam folder model dan tambahkan coding berikut

C) Menghapus data yang ada pada tabel produk (Delete)


*) controller untuk hapus data
Silahkan buka file Produk.php di dalam folder controller dan tambahkan coding berikut.

*) model untuk hapus data


Silahkan buka file Mproduk.php di dalam folder model dan tambahkan coding berikut.

D) Mengubah data yang ada pada tabel produk (Update)


*) view
Silahkan buka file vproduk.php didalam folder view dan tambahkan coding berikut.

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (20)


*) Controller untuk menampilkan form ubah data
Silahkan buka file Produk.php di dalam folder controller dan tambahkan coding berikut.

*) Model untuk mengambil data yang akan ditampilkan ke form ubah data
Silahkan buka file Mproduk.php di dalam folder model dan tambahkan coding berikut ini.

*) View untuk menampilkan form ubah berserta data


Silahkan buat file vubahproduk.php di dalam folder view.

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (21)


*) Controller untuk menyimpan data
Silahkan buka file Produk.php di dalam folder controller dan tambahkan coding berikut ini.

*) Model untuk menyimpan data


Silahkan buka file Mproduk.php di dalam folder model dan tambahkan coding berikut ini.

2.2. CRUD dengan Query Builder


Untuk membuat CRUD dengan query builder yang perlu kita ubah hanyalah coding
dibagian model saja, sedangkan coding di bagian controller dan view masih tetap tidak ada
perubahan. Terjadinya perubahan pada coding model karena dibagian model terjadi interaksi ke
dalam database.

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (22)


A) Read
Pada coding yang sebelumnya sudah kita buat untuk menampilkan data dengan
menggunakan fungsi read() yang terdapat dalam file model dengan nama Mproduk.php.

berubah menjadi

B) Create
Pada coding yang sebelumnya sudah kita buat untuk menambahkan dengan menggunakan
fungsi insert() yang terdapat dalam file model dengan nama Mproduk.php.

berubah menjadi

C) Delete
Pada coding yang sebelumnya sudah kita buat untuk menambahkan dengan menggunakan
fungsi delete() yang terdapat dalam file model dengan nama Mproduk.php.

Berubah menjadi

D) Update
Pada coding yang sebelumnya sudah kita buat untuk menambahkan dengan menggunakan
fungsi read_data() dan update() yang terdapat dalam file model dengan nama Mproduk.php.

Berubah menjadi

Pemrograman Tingkat Lanjut STMIK Indonesia Padang (23)


Pemrograman Tingkat Lanjut STMIK Indonesia Padang (24)

Anda mungkin juga menyukai