Berkenalan Dengan Gii
Hallo, maaf, beberapahari ini saya tidak sempat membuat lajutan dari seri ini, dikarenakan beberapa kesibukan. Ok kita langsung saja. Kali ini kita akan membahas Gii, modul ajaib yang sangat membatu kita.
Menurut Dokumen Yii, Gii adalah kode generator otomatis yang berguna untuk mengimplementasikan kode-kode yang secara umum digunakan dalam sebuah web site. biasanya kode-kode tersebut merupakan implementasi dari CRUD.
Sesuai judul, pada pembahasan kita kali ini, kita akan membahas beberapa topik yang berhubungan dengan Gii:
Membuat Databas beserta tabel-tabel yang diperlukan.
Menghubungkan Yii dengan Database.
Membuat Model, Controller dan View menggunakan Gii.
Membuat database
Pada bahasan sebelumnya kita sudah melihat class diagram ( Lebit tepatnya ERD karena saya dalam menggambarnya menggunakan MySqlWorkbench, selain itu jika penggambaran class diagram tanpa method-method dari class tersebut penggambaranya akan sangat serupa dengan ERD) dari aplikasi sederhana yang akan kita buat, beserta beberapa deskripsinya ( jika terlewat bisa melihat di link Yuk Belajar Yii Part 4 ). kali ini kita akan mengimplementasikan class diagram tersebut ke dalam database. untuk itu kita bisa membuat tabel sesuai file ini atau dengan sql dibawah ini :
CREATE TABLE `dosen` (
`id` int(11) NOT NULL,
`nama` varchar(45) NOT NULL,
`tanggal_lahir` varchar(45) NOT NULL,
`alamat_rumah` varchar(45) DEFAULT NULL,
`foto` varchar(145) DEFAULT NULL,
`user_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `jadwal` (
`id` int(11) NOT NULL,
`matakuliah_id` int(11) NOT NULL,
`ruang_kelas_id` int(11) NOT NULL,
`hari` smallint(6) DEFAULT NULL,
`jam` time DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `jadwal_mahasiswa` (
`id` int(11) NOT NULL,
`jadwal_id` int(11) NOT NULL,
`mahasiswa_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `mahasiswa` (
`id` int(11) NOT NULL,
`nama_mahasiwa` varchar(45) NOT NULL,
`tanggal_lahir` date NOT NULL,
`user_id` int(11) NOT NULL,
`alamat_rumah` tinytext,
`foto` varchar(145) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `matakuliah` (
`id` int(11) NOT NULL,
`dosen_id` int(11) NOT NULL,
`nama_matakuliah` varchar(45) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `role` (
`id` int(11) NOT NULL,
`role_akses` varchar(45) NOT NULL,
`nama` varchar(45) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `ruang_kelas` (
`id` int(11) NOT NULL,
`lantai` smallint(1) NOT NULL,
`no_ruang` smallint(3) NOT NULL,
`jenis_ruang` smallint(6) NOT NULL,
`projector` smallint(6) NOT NULL,
`pendingi_ruang` smallint(6) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`role_id` int(11) NOT NULL,
`username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`auth_key` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
`access_token` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`created_at` date NOT NULL,
`updated_at` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Jika malas untuk membuatnya bisa mengunduh File Mysql Workbench dan menjalankanya. untuk pembahasan cara mebuat database dan tabelnyatidak akan di bahas detai disini.
Koneksi Yii Dengan Database
Sebelum menggunakan Gii kita perlu menghubungkan aplikasi Yii dengan database, untuk itu kita bisa perlu memodifikasi file db.php yang terletak di dalam folder config. Contohnya seperti dibawah ini :
<?php
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=tutorial',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
// Schema cache options (for production environment)
//'enableSchemaCache' => true,
//'schemaCacheDuration' => 60,
//'schemaCache' => 'cache',
];
Keterangan
class' => 'yii\db\Connection' memberitahukan file config bahwa kita menggunakan classs Connection.php terletak pada Vendor/yiisoft/yii2/db yang merupakan extend dari class componen.php yang artinya dbConnectin inimerupakan componen dalam Yii
'dsn' => 'mysql:host=localhost;dbname=tutorial', memberitahukan bahwa kita menggunakan mysql di server localhost dengan nama database tutorial, nilai/isi dari variable ini tergantung seting masing masing.
'username' => 'root', user name dari database kita.
'password' => 'root', password dari database kita.
setelah semuanya selesai, cara paling mudah untuk mengecek koneksi aplikasi kita adalah langsung melalui Gii.
untuk memulai Gii caranya dengan mengarahkan browser ke halaman :
jika belum mengatur Pretty URL : http://yii2campus.test/index.php?r=gii
Atau halaman ini jika sudah mengatur Pretty URL http://yii2campus.test/gii
Jika belum mengatur Pretty URL bisa melihat pada part 03, Sebaiknya kita mengaturnya terlebih dahulu karena akan memudahkan kita ketika mencoba halaman yang kita buat.
Kita tidak membahas bagai mana cara seting Gii, karena secara default Gii sudah dapat berjalan pada Yii2. Tetapi jika ada masalah bisa langsung melihat panduan lengkapnya pada link dibawah ini : https://www.yiiframework.com/doc/guide/2.0/en/start-gii
Membuat Model, Controller dan View Menggunakan Gii.
Pertama kali membuka link dari Gii akan muncul halaman seperti di bawah ini,
selanjutnya yang pertama kita perlu buat adalah model, untuk itu kita klik start pada Model Generator. yang akan menampilkan halaman seperti ini,
untuk memastikan apakah Yii terhubung dengan database bisa di coba dengan mengklik pada field Table Name. Jika dalam Dropdown muncul nama table kita maka artinya database telah terhubung.
Jika semuanya telah siap ( koneksi dengan database telah terhubung, tabel telah dibuat ), maka bisa langsung bisa melakukan proses code generator.
Model Generator
Model Generator adalah modul pertama dari Gii yang akan kita buka, karena class pertama yang kita harus buat adalah class model, karena modul CRUD Generator sangat bergantung pada model.
- Role
Model pertama yang akan kita buar adalah model Role, selain karena model ini sangat simple tetapi model ini juga tidak bergantung dengan model lain.
Langkahnya adalah seperti :
Tabel Name : Role
Model Class Name : Role
Standardize Capitals : beri tanda Cek
yang lainya abaikan saja, sesuai dengan aturan standar
Contohnya akan seperti gambar, di bawah ini :
Setelah semuanya sesuai kita bisa mengklik tombol Preview, untuk melihat code hasil dari Model Generatr seperti di bawah, kita bisa mengklik model/Role.php di dalam box Code File :
Jika semua sudah ok kita bisa mengklik tombol Generat untuk menulis Kode ke dalam file.
- User
Karena model User.php adalah model bawaan dari Yii2dan sudah ada di dalam folder model, Sebaiknya kita tidak meng-overide model tersebut.
Tetapi karena akan ada sedikit perubahan dari model aslinya, maka kita akanmelakukan penyesuaian pada model secara manual. Masalah ini akan kita bahas pada bagian lain dari diskusi kita.
- Dosen
Pada Diskusi sebelumnya kita Sudah membuat model Dosen.php, tetapi kali ini kita tetap akan membuat model Dosen.php lagi dengan Gii. Perbedaanya dengan saat membuat model Role.php hanya pada bagian box Code File, jika pada model Role.php akan ada kotak ceklis dengan option Create untuk model dosen option dari kotak cek listnya akan berupa overide.
Untuk membuat model Dosen.php dari Tabel Dosen sama saja dengan cara membuat model Role.php dari tabel Role, dan begitu juga dengan model lainya akan sama.
Setelah membahas langkah lankah membuat model Role dan Dosen, dengan meggunakan Gii kita tidak akan membahas cara membuat model lainya. Tetapi untuk tetap dapat mengikuti diskusi ini diharapkan kita sudah membuat sebuat class dari model yang ada pada diagram dari diskusi kita pada part 4.
Contoller dan View Menggunakan CRUD Generator
Setelah sebelumnya kita membuat model dengan Model Generator, maka sekaran kita akan membuat Controller beserta viewnya, untuk keperluan ini kita dapat menggunakan CRUD Genetator.
Mengunakan CRUD Generatorakan sedikit berbeda dari saatkita menggunakan Model Generator. Pada CRUD Generator kita perlu mengetahui namespace dari model yang ingin kita Generate Controllernya.
Namesace umumnya sesuai dengan nama folder, jika kita punya model Dosen.php di dalam folder models, maka namespacenya akan menjadi app\models. Jika kita perlu model Dosen dalam Controllers maka kita akan memanggil dengan use app\models\Dosen.
- RoleController dan Viewnya
Seperti sebelumnya yang pertama akan kita buat adalah Role, langkahnya adalah sebagai berikut :
Model Class : app\models\Role
Search Model Class :
Controller Class : app\controllers\RoleController
View Path :
Untuk Search Model Class dan View Path kita kosongkan saja, jika kosong artinya kita mengikuti Default dari Gii.
Setelah kita mengisi field field yang diperlukan, selanjutnya kita tinggal mengklik tombol preview kemudian jika udah sesuai kita tinggal menglik tombol Generate.
- UserController Dan Viewnya
Jika dalam proses Model Generator tadi kita tidak membuat model User.php tetapi untuk UserController dan viewnya belum disediakan secara default oleh Yii. Jadi kitateta pelu membuatnya. langkahnya sama dengan point sebelumnya.
- Controller Lainya
Seperti sebelumnya Controller lainya tetap kita buat, meskipun langkahnya tidak kita bahas disini.
Kesimpulan
Pada Diskusi kali ini, kita banyak membahas membuat model, controller dan view menggunakan fasilitas dari Yii yang bernama Gii. Fasilitas ini sangat membantu kita dalam membuat code program, tetapi code program yang dibuat oleh Gii mungkin masih belum memenuhi kebutuhan yang diperlukan oleh kita. Meskipun mungkin kirang sempurna tetapi Gii memberikan kita kerangka dasar dari program yang akan kita bangun.
Dalam Diskusi selanjutnya kita akan membahas tuning atau update kode program yang telah kita create menggunakan Gii. Hingga hasilnya sesuai dengan keperluan kita.
Top comments (0)