author Ahmad Muhardian

Pertemuan pertama praktikum bebas, belajar framework Yii


Pagi tadi, pertemuan pertama praktikum bebas dimulai. Praktikum ini diadakan oleh STMIK Bumigora Mataram secara cuma-cuma. Praktikum ini bertujuan untuk mengembangkan keterampilan mahasiswa dalam memrogram. Pada praktikum ini, kita mempelajari framework yii.

Persiapan senjata praktikum

Sebelum memulai praktikum, pastikan sudah memasang apache, php, dan mysql versi terbaru yang mendukung framework Yii. Di praktikum ini saya menggunakan Linux (Xubuntu). Sedikit informasi server web lokal yang sedang berjalan di laptop saya.


$ php -v
HP 5.5.12-2ubuntu4.1 (cli) (built: Oct 29 2014 12:06:09)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies

$ apache2ctl --version
Server version: Apache/2.4.10 (Ubuntu)
Server built: Jul 25 2014 10:23:32

$ mysql -v
mysql Ver 14.14 Distrib 5.5.40, for debian-linux-gnu (i686) using readline 6.3

Framework Yii yang digunakan adalah Yii versi 2.0.2. Pastikan menggunakan php versi 5.4 ke atas. Framework yii dapat diunduh di situs resminya yiiframework.com. Kita akan memakai yii advenced di praktikum ini.

berkas master framework yii

Menaruh Yii di server lokal

Rencananya kita akan membuat aplikasi PMB (Penerimaan Mahasiswa Baru). Aplikasi ini nantinya mampu menangani proses pendaftaran mahasiswa secara online. Untuk memulai proyek ini, buatlah sebuah direktori baru di /var/www/html bernama pmb.

Ekstrak semua berkas yang berada di dalam direktori advenced pada paket yii-advanced-app-2.0.2.tgz ke direktori yang telah dibuat.

Selanjutnya, buka browser, arahkan ke alamat http://localhost/pmb

Bila yang tampil seperti pada tangkapan layar di atas, maka kita telah berhasil menaruh yii di server.

Menjalankan Yii

walaupun yii sudah ditaruh di server, yii belum dapat kita nikmati, karena belum dijalankan. Untuk menjalankan yii, kita harus mengeksekusi berkasinit.bat, bagi pengguna Windows; atau berkas init bagi pengguna linux. Mari kita buka terminal, lalu berpindah ke direktori tempat yii tersimpan. Kemudian ketik perintah di bawah ini untuk menjalankan yii di server linux.

php init

Maka akan muncul pilihan lingkungan, Development atau Production. Kita pilih yang development, karena kita akan mengembangkan aplikasi. Sedangkan production dipakai saat aplikasinya sudah siap mengudara di internet. Tekan 0 untuk memilih [0] Development.

Kemudian akan tampil pertanyaan "Initialize the application under 'Development' environment? [yes|no]", jawab saja yes.

Initialize the application under 'Development' environment? [yes|no] yes

Start initialization ...

generate common/config/params-local.php
generate common/config/main-local.php
generate frontend/config/params-local.php
generate frontend/config/main-local.php
generate frontend/web/index-test.php
generate frontend/web/index.php
generate yii
generate console/config/params-local.php
generate console/config/main-local.php
generate backend/config/params-local.php
generate backend/config/main-local.php
generate backend/web/index-test.php
generate backend/web/index.php
generate cookie validation key in backend/config/main-local.php
generate cookie validation key in frontend/config/main-local.php
chmod 0777 backend/runtime
chmod 0777 backend/web/assets
chmod 0777 frontend/runtime
chmod 0777 frontend/web/assets
chmod 0755 yii

... initialization completed.

Sekarang, mari kita buka browser. Arahkan ke alamat http://localhost/pmb/frontend/web/. Bila mendapatkan tampilan seperti tangkapan layar di bawah, maka kita telah berhasil mempersiapkan atau menjalankan yii

Coba juga membuka yang backend, url-nya http://localhost/pmb/backend/web/. Halaman backend ini untuk halaman admin. Kita akan diminta login bila mengakses halaman ini.

Membuat database untuk proyek yii

Mari kita buat database di mysql untuk proyek PMB ini. Kita dapat membuatnya melalui phpmyadmin, tapi saya lebih senang membuatnya melalui terminal. Bukalah mysql melalui terminal.

mysql -h localhost -u root -p

Buatlah sebuah database baru bernama pmb

CREATE DATABASE pmb;

Dibawah ini tangkapan layar saat membuat database di terminal.

Menghubungkan Yii dengan database

Kita perlu mengonfigurasi Yii agar dapat terhubung dengan database. Bukalah berkas main-local.php yang terletak di direktori common/config/.

Ubahlah dbname=yii2advanced menjadi dbname=pmb. Ubah juga username serta password, bila server mysql yang digunakan memiliki password.

Sekarang buka terminal lagi, jalankan perintah ini:

php yii migrate

Maka akan keluar pertanyaan "Apply the above migration? (yes|no) [no]:", jawab saja yes.

Setelah itu, cobalah lihat ke database yang telah dibuat. Akan tercipta dua tabel baru, yaitu migration dan user.

Mendaftarkan pengguna baru

Mari kita membuat atau mendaftarkan pengguna baru aplikasi web ini. Pengguna ini akan berperan sebagai admin yang mengelola web. Untuk membuatnya masuk ke http://localhost/pmb/frontend/web/ lalu klik Signup. Isilah datanya dengan lengkap dan benar. Password minimal 6 karakter.

Bila berhasil mendaftarkan pengguna, maka akan mendapatkan tampilan seperti pada tangkapan layar berikut.

Membuat tabel jurusan

Rencananya, kita akan membuat banyak tabel di proyek ini. Ada tabel jurusan, mahasiswa, nilai, dan sebagainya. Di pertemuan pertama ini, kita cukup belajar satu tabel saja. Mari kita membuat tabel jurusan di database pmb.

CREATE TABLE jurusan(
kode_jurusan int(5),
nama_jurusan varchar(32),
PRIMARY KEY(kode_jurusan)
);

Tabel jurusan ini memiliki dua kolom, yaitu kode_jurusan dan nama_jurusan. Dibawah ini, tangkapan layar saat pembuatan tabel.

Membuat Model

MVC (Model View Controller), itulah konsep kerja dari Framework Yii. Model, berkaitan dengan database. Controller, di sini tempat mengatur routing dan logika aplikasi. View, berkaitan dengan bagaimana aplikasi web tersbut ditampilkan.

Sekarang kita akan membuat model untuk tabel jurusan yang sudah dibuat tadi. Kita tidak perlu menulis kode php untuk membuatnya; Framework Yii sudah menyediakan fitur ajaib untuk membuatnya. Mari kita masuk ke http://localhost/pmb/frontend/web/?r=gii untuk membuat model. Setelah itu klik tombol Start di bagian Model Generator

Isilah data mode dengan benar, perhatikan penggunaan huruf kecil dan huruf kapitalnya.

Table Name: jurusan
Model Class: Jurusan
Namespace: backend\models

Salah satu fungsi Namespcae, untuk menentukan tempat pembuatan model. Bila mengisi dengan backend\models maka model akan dibuat di dalam direktori backend/models.

Setelah itu gunling ke bawah, kemudian klik tombol Preview. Bila mendapatkan tampilan seperti tangkapan layar di bawah, maka kita telah berhasil mengisi data untuk pembuatan model.

Selanjutnya, klik tombol Generate untuk membuat berkas model Jurusan.php. Jika muncul pesan seperti di bawah ini, itu tandanya kita telah berhasil membuat model.

Generating code using template "/var/www/html/pmb/vendor/yiisoft/yii2-gii/generators/model/default"...
generated /var/www/html/pmb/backend/models/Jurusan.php
done!

Seperti inilah isi berkas model Jurusan.php

<?php

namespace backend\models;

use Yii;

/**
* This is the model class for table "jurusan".
*
* @property integer $kode_jurusan
* @property string $nama_jurusan
*/
class Jurusan extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'jurusan';
}

/**
* @inheritdoc
*/
public function rules()
{
return [
[['kode_jurusan'], 'required'],
[['kode_jurusan'], 'integer'],
[['nama_jurusan'], 'string', 'max' => 32]
];
}

/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'kode_jurusan' => 'Kode Jurusan',
'nama_jurusan' => 'Nama Jurusan',
];
}
}

Membuat CRUD

CRUD (Create, Read, Update, Delete), kegiatan yang sering dilakukan di database: membuat atau mengisi, membaca, mengubah, dan menghapus. Di framework Yii, sudah disediakan fitur ajaib untuk membuat CRUD. Tidak perlu repot-repot menulis kode CRUD. Kita dapat membuatnya hanya dengan beberapa klik. Masuk ke http://localhost/pmb/backend/web/?r=gii, di bagian CRUD Generator klik tombol start. Lalu isilah datanya sebagai berikut,

Model Class: backend\models\Jurusan
Controller Class: backend\controllers\JurusanController

Guling ke bawah, klik tombol Preview; kemudian klik tombol Generate. Bila berhasil, aka keluar pesan seperti di bawah ini.

Generating code using template "/var/www/html/pmb/vendor/yiisoft/yii2-gii/generators/crud/default"...
skipped controllers/JurusanController.php
generated views/jurusan/_form.php
generated views/jurusan/create.php
generated views/jurusan/index.php
generated views/jurusan/update.php
generated views/jurusan/view.php
done!

Sekarang, mari kita uji coba CRUD yang sudah dibuat. Masuk ke http://localhost/pmb/backend/web/index.php?r=jurusan, isilah data dengan menglik tombol Create jurusan.

----- bersambung -----

Tulisan ini sebagai catatan praktikum bebas yang saya ikuti. Pembahasannya tidak terlalu mendalam, hanya sebagai pengingat; kalau kelak saya lupa. Mudah-mudahan tulisan ini bermanfaat.