Belajar CodeIgniter 3 : Tutorial membuat Blog Berita Sederhana Untuk Pemula

Belajar CodeIgniter 3 : Tutorial membuat Blog Berita Sederhana Untuk Pemula


Hai senang sekali rasanya bisa menulis artikel lagi, Alhamdulillah sekarang sudah mulai semangat dan konsisten dalam belajar menulis, hitung - hitung latihan nulis buat bentar lagi mau skripsi.Kalau pada tutorial sebelumnya sudah membahas tentang Tutorial Codeigniter 3 : Panduan Installasi Codeigniter 3 Dengan Mudah. Kali ini akan langsung membuat sesuatu biar lebih memahami codeignier dan konsep MVC. artikel ini akan membahas mengenai Tutorial membuat Blog Berita Sederhana Untuk Pemula. yang mempunyai fungsi Create, Read, Update. Baiklah tanpa berlama - lama langsung saja perhatikan dan praktekkan saja langkah - langkahnya.

Sebelumnya extract file Codeigniter 3.1.8 (versi terakhir) ke folder htdocs di Xampp , lalu berinama sesuai dengan hati kalian misal berita_blog Namanya. Dan kemudia drag folder ke Sublime text.

1.       Database , Buat sebuah database bernama berita_database seperti kode dibawah ini
CREATE TABLE news (
        id int(11) NOT NULL AUTO_INCREMENT,
        title varchar(128) NOT NULL,
        slug varchar(128) NOT NULL,
        text text NOT NULL,
        PRIMARY KEY (id),
        KEY slug (slug)
);
2. Model-Buatlah sebuah Model dan beri nama news_model.php di application/models/berita_model.php

class News_model extends CI_Model {

        public function __construct()
        {
                $this->load->database();
        }
}
Function Construct : digunakan sebagai function atau methode yang dijalankan untuk pertama kali.

Tambahkan sebuah function get_news DI Model
public function get_news($slug = FALSE)
{
        if ($slug === FALSE)
        {
                $query = $this->db->get('news');
                return $query->result_array();
        }

        $query = $this->db->get_where('news', array('slug' => $slug));
        return $query->row_array();
}

Function get_news  : digunakan untuk mendapatkan / mengeload dari database.

3. Membuat sebuah Controller di application/controller/news.php

<?php
class News extends CI_Controller {

        public function __construct()
        {
                parent::__construct();
                $this->load->model('news_model');
                $this->load->helper('url_helper');
        }

        public function index()
        {
                $data['news'] = $this->news_model->get_news();
        }

        public function view($slug = NULL)
        {
                $data['news_item'] = $this->news_model->get_news($slug);
        }
}
Tambah kode  view pada function index, seperti dibawah ini
     public function index(){
        $data['news'] = $this->news_model->get_news();
        $data['title'] = 'News archive';

        $this->load->view('templates/header', $data);
        $this->load->view('news/index', $data);
        $this->load->view('templates/footer');
      }
Tambahkan kode untuk mengeload sebuah view, seperti kode dibawah
public function view($slug = NULL)
{
        $data['news_item'] = $this->news_model->get_news($slug);

        if (empty($data['news_item']))
        {
                show_404();
        }

        $data['title'] = $data['news_item']['title'];

        $this->load->view('templates/header', $data);
        $this->load->view('news/view', $data);
        $this->load->view('templates/footer');
}
4. Buat sebuah tampilan untuk menampilkan berita di views application/views/news/index.php
<h2><?php echo $title; ?></h2>

<?php foreach ($news as $news_item): ?>

        <h3><?php echo $news_item['title']; ?></h3>
        <div class="main">
                <?php echo $news_item['text']; ?>
        </div>
        <p><a href="<?php echo site_url('news/'.$news_item['slug']); ?>">View article</a></p>

<?php endforeach; ?>
Buat sebuah view baru bernama view.php di application/views/news/view.php
<?php
echo '<h2>'.$news_item['title'].'</h2>';
echo $news_item['text'];
Melakukan sebuah routing di application->config->routes
$route['news/(:any)'] = 'news/view/$1';
$route['news'] = 'news';
$route['(:any)'] = 'pages/view/$1';
$route['default_controller'] = 'pages/view';
Sekerang kita sudah bisa menampilkan data dari database , selanjutnya kita akan melakukan operasi insert, update dan delete

5. Membuat sebuah form input di application/views/create.php
<h2><?php echo $title; ?></h2>

<?php echo validation_errors(); ?>

<?php echo form_open('news/create'); ?>

    <label for="title">Title</label>
    <input type="input" name="title" /><br />

    <label for="text">Text</label>
    <textarea name="text"></textarea><br />

    <input type="submit" name="submit" value="Create news item" />

</form>
6. Sekarang kembali lagi ke Controller untuk membuat sebuah Function baru bernama Function create
public function create()
{
    $this->load->helper('form');
    $this->load->library('form_validation');

    $data['title'] = 'Create a news item';

    $this->form_validation->set_rules('title', 'Title', 'required');
    $this->form_validation->set_rules('text', 'Text', 'required');

    if ($this->form_validation->run() === FALSE)
    {
        $this->load->view('templates/header', $data);
        $this->load->view('news/create');
        $this->load->view('templates/footer');

    }
    else
    {
        $this->news_model->set_news();
        $this->load->view('news/success');
    }
}

7. Buat sebuah function set_news di Model dengan kode seperti dibawah ini
$route['news/create'] = 'news/create';
$route['news/(:any)'] = 'news/view/$1';
$route['news'] = 'news';
$route['(:any)'] = 'pages/view/$1';
$route['default_controller'] = 'pages/view';
8. sekarang kita melakukan routing lagi untuk menambahkan beberapa variable
$route['news/create'] = 'news/create';
$route['news/(:any)'] = 'news/view/$1';
$route['news'] = 'news';
$route['(:any)'] = 'pages/view/$1';
$route['default_controller'] = 'pages/view';
Nah sekarang kita sudah bisa membuat blog sederhana yang terdapat menu create, update , delete. cukup mudah bukan. terima kasih telah berkunjung , jangan lupa komentar jika ada yang ingin ditanyakan.



2 Comments


EmoticonEmoticon