mumunotes

  • Home
  • Contact Us

Wednesday, 20 May 2015

Aplikasi Yii 2 dengan database

 mumunotesss     15:17     Yii, Yii2     No comments   

Selamat sore guys, menyambung tutorial sebelumnya. Kali ini kita akan membuat aplikasi dan menghubungkannya dengan database. Tapi untuk saat ini, kita hanya menampilkan data dari database ke aplikasi. Untuk menampilkan data kita perlu konfigurasi database, dan untuk memanipluasi data kita gunakan ActiveRecord. Oke langsung saja.

Berkerja dengan Database

Sesi ini menjelaskan bagaimana membuat halaman baru yang menampilkan data negara yang diambil dari database table country. Untuk itu, kamu akan mengkonfigurasi koneksi database, membuat class Active Record(http://www.yiiframework.com/doc-2.0/guide-db-active-record.html), mendefinisikan Action, dan membuat view. Dengan tutorial ini, kamu akan mempelajari bagaimana:
  1. Mengkonfigurasi Koneksi DB.
  2. Mendefinisikan Class Active Record.
  3. Meng-query data menggunakan class Active Record.
  4. Menampilkan data di view dengan per halaman.
Perlu diketahui untuk menyelesaikan sesi ini, kamu harus mempunyai pengetahuna basic dan pengalaman menggunakan database. Nyatanya, kamu harus tau bagaimana membuat sebuah database, dan bagaimana mengeksekusi SQL menggunakan DB client tool.

Menyiapkan Database

Untuk memulai, buat database dengan nama "yii2basic", dari database tersebut kamu akan mengambil data dan ditampilkan ke view. Kamu boleh menggunakan databse SQLite, MySQL, PostgreSQL, MSSQL atau Oracle, dan Yii dibuat mendukung banyak aplikasi database. Untuk mudahnya, diasumsikan MySQL yang akan digunakan kali ini.

Lanjut, buat tabel country di database, dan masukkan beberapa contoh data. Kamu bisa menjalan query berikut :
CREATE TABLE `country` (     
 `code` CHAR(2) NOT NULL PRIMARY KEY,     
 `name` CHAR(52) NOT NULL,     
 `population` INT(11) NOT NULL DEFAULT '0'   
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `country` VALUES ('AU','Australia',18886000);   
INSERT INTO `country` VALUES ('BR','Brazil',170115000);   
INSERT INTO `country` VALUES ('CA','Canada',1147000);   
INSERT INTO `country` VALUES ('CN','China',1277558000);   
INSERT INTO `country` VALUES ('DE','Germany',82164700);   
INSERT INTO `country` VALUES ('FR','France',59225700);   
INSERT INTO `country` VALUES ('GB','United Kingdom',59623400);   
INSERT INTO `country` VALUES ('IN','India',1013662000);   
INSERT INTO `country` VALUES ('RU','Russia',146934000);   
INSERT INTO `country` VALUES ('US','United States',278357000);
Point ini, kamu sudah mempunyai database yii2basic, dan tabel country dengan 3 kolom, berisi 10 data.

Konfigurasi Koneksi Database

Sebelum memulai, cek dulu sudah terinstal PDO PHP Extension dan driver PDO untuk database yang kamu gunakan (contoh : pdo_mysql untuk MySQL). Ini merupakan kebutuhan dasar jika aplikasimu membutuhkan database.
Dengan terinstalnya ini, buka file "config/db.php" dan rubah prameter sesuai databasemu. Secara default, ikuti config berikut :
'yii\db\Connection',       
    'dsn' => 'mysql:host=localhost;dbname=yii2basic',       
    'username' => 'root',       
    'password' => '',       
    'charset' => 'utf8',   
];
File config/db.php merupakan alat konfigurasi disini. File konfigurasi membutuhkan parameter dan inisialisasi yii\db\Connection yang bisa kamu gunakan untuk menggunakan query SQL di database tersebut. Konfigurasi koneksi di atas dapat di akses pada kode aplikasi dengan ekspresi Yii::$app->db.

Membuat Active Record

Untuk menampilkan dan menangkap data di tabel country, buat sebuah class Active Record dengan nama Country, dan simpan di models/Country.php.
namespace app\models;
use yii\db\ActiveRecord;
class Country extends ActiveRecord{   

}
Class Country meng-ekstend dari yii\db\ActiveRecord. Kamu tidak perlu menulis kode didalamnya! Dengan kode di atas, kamu akan menghubungkan tabel dari nama class.
use app\models\Country;

$countries = Country::find()->orderBy('name')->all();   
$country = Country::findOne('US');  
echo $country->name;
$country->name = 'U.S.A.';   
$country->save();
Menggunakan class Country, kamu dapat dengan menudah memanipulasi data di tabel country, seperti yang ditunjakan di bawah :
   
Info : Active Record merupakan jalan cara paling ampuh untuk mengakses dan memanipulasi database di object-oriented. Kamu dapat mempelajari lebih detail di sesi Active Record. Cara lain, kamu boleh juga interaksi dengan database menggunakan lower-level data dengan mengakses method yaitu Data Access Objects.

Membuat Action

Untuk menampilkan data country ke user, kamu butuh untuk membuat action baru. Dari pada membuat acton baru di SiteController seperti ayng kita pelajari sebelumnya, sebaiknya buat controller baru untuk semua action yang berhubungan dengan data country. Buat dengan nama CountryController, dan buat action index di dalamnya, seperti berikut :
namespace app\controllers;
use yii\web\Controller;
use yii\data\Pagination;
use app\models\Country;
    class CountryController extends Controller
    {
        public function actionIndex()
        {
            $query = Country::find();
            $pagination = new Pagination([
                'defaultPageSize' => 5,
                'totalCount' => $query->count(),
            ]);
            $countries = $query->orderBy('name')
                ->offset($pagination->offset)
                ->limit($pagination->limit)
                ->all();
            return $this->render('index', [
                'countries' => $countries,
                'pagination' => $pagination,
            ]);
        }
    }
Simpan kode di atas pada file controllers/CountryController.php.
Action index memanggil Country::find(). Method Active Record membuat query dan menghasilkan semua data dari tabel country. Untuk melimit hasil query, query di di pagination menggunakan objek yii\data\Pagination.

Membuat View

Di dalam direktori views, pertam buat sub direktori dengan nama country. Direktori ini digunakan untuk menghandle semua view yang dirender oleh controller country. Di direktori views/country, buat file dengan nama index.php dan isi dengan kode berikut :
<?php
use yii\helpers\Html;
use yii\widgets\LinkPager;
?>
<h1>Countries</h1>
<ul>
<?php foreach ($countries as $country): ?>
    <li>
        <?= Html::encode("{$country->name} ({$country->code})") ?>:
        <?= $country->population ?>
    </li>
<?php endforeach; ?>
</ul>

<?= LinkPager::widget(['pagination' => $pagination]) ?>

Hasil

Untuk melihat hasil, akses url berikut menggunakan browser
    http://hostname/index.php?r=country/index
   
 
Sekian tutorial kali ini, semoga bermanfaat bagi semuanya...:D

 
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook
Newer Post Older Post Home

0 comments:

Post a Comment

About Me

mumunotesss
View my complete profile

Popular Posts

  • Change password with validation and repeat password on Yii2
    Hello everybody. I could not post an article because I didn't have new knowledge to share. Ok, this day I will share about "...
  • Import Data from CSV File to Database Without Extension in Yii2
    Hello everybody, Assalamualaikum Wr. Wb. Nearly 1 month I don't publish article. Now, I publish an article about " Import Data fro...
  • Membuat login Yii2 dengan Database
    Selamat pagi guys. Sorry beberapa hari kamaren sibuk. Jadi belum sempet update blog lagi. Mumpung kali ini sempet, hari ini mau berbagi te...
  • Membuat fungsi CRUD dengan Gii Yii2
    Selamat pagi guys. Setelah kemaren kita membuat login dari database, hari ini kita akan membuat CRUD (create, read, update, delete) dengan ...

Blog Archive

  • ▼  2015 (16)
    • ►  November (1)
    • ►  September (1)
    • ►  August (1)
    • ►  June (8)
    • ▼  May (5)
      • Aplikasi Yii 2 dengan database
      • Hello World Yii 2
      • Menginstal Yii versi 2
      • Menginstal aplikasi Yii versi 1
      • Mengenal Framework Yii

Translate

Copyright © mumunotes
Distributed By My Blogger Themes | Blogger Theme By NewBloggerThemes