konfigurasi awal codeigniter

44
Konfigurasi Awal CodeIgniter Selanjutnya, untuk konfigurasi awal, ada beberapa hal yang harus di perhatikan. Konfigurasi di C:\xampp\htdocs\codeigniter\application\config\ config.php ada beberapa baris yang harus diperhatikan ? 1 2 3 $config['base_url'] = 'http://localhost/codeigniter '; $config['encryption_key'] = 'isikanSesuaiKeinginanAndaIniAdalahEncryptionKeyDanAndaTid Konfigurasi di C:\xampp\htdocs\codeigniter\application\config\database.php Silakan sesuaikan dengan konfigurasi database anda, di sini saya menggunakan database dengan nama codeigniter, username dan password masih default atau bawaan dari XAMPP. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 $active_group = 'default'; $active_record = TRUE; $db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'root'; $db['default']['password'] = ''; $db['default']['database'] = 'codeigniter'; $db['default']['dbdriver'] = 'mysql'; $db['default']['dbprefix'] = ''; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ''; $db['default']['char_set'] = 'utf8'; $db['default']['dbcollat'] = 'utf8_general_ci'; $db['default']['swap_pre'] = ''; $db['default']['autoinit'] = TRUE; $db['default']['stricton'] = FALSE;

Upload: a-ropei-ropei

Post on 29-Dec-2015

53 views

Category:

Documents


0 download

DESCRIPTION

codeingiter

TRANSCRIPT

Konfigurasi Awal CodeIgniter

Selanjutnya, untuk konfigurasi awal, ada beberapa hal yang harus di perhatikan.

Konfigurasi di C:\xampp\htdocs\codeigniter\application\config\config.php ada beberapa baris

yang harus diperhatikan

?123

$config['base_url'] = 'http://localhost/codeigniter';

 $config['encryption_key'] = 'isikanSesuaiKeinginanAndaIniAdalahEncryptionKeyDanAndaTidakPerluMengingatnya';

Konfigurasi di C:\xampp\htdocs\codeigniter\application\config\database.php

Silakan sesuaikan dengan konfigurasi database anda, di sini saya menggunakan database dengan

nama codeigniter, username dan password masih default atau bawaan dari XAMPP.

?123456789101112131415161718

$active_group = 'default';$active_record = TRUE;

 $db['default']['hostname'] = 'localhost';$db['default']['username'] = 'root';$db['default']['password'] = '';$db['default']['database'] = 'codeigniter';$db['default']['dbdriver'] = 'mysql';$db['default']['dbprefix'] = '';$db['default']['pconnect'] = TRUE;$db['default']['db_debug'] = TRUE;$db['default']['cache_on'] = FALSE;$db['default']['cachedir'] = '';$db['default']['char_set'] = 'utf8';$db['default']['dbcollat'] = 'utf8_general_ci';$db['default']['swap_pre'] = '';$db['default']['autoinit'] = TRUE;$db['default']['stricton'] = FALSE;

Konfigurasi di C:\xampp\htdocs\codeigniter\application\config\autoload.php

Konfigurasi di autoload.php ini digunakan ketika kita ingin mempersingkat coding, yakni kita tidak

perlu memanggil library tertentu ketika memanggil fungsi di dalam CodeIgniter karena telah di

panggil di file autoload ini.

Untuk saat ini konfigurasi di bawah belum dibutuhkan, namun tidak masalah jika di setting sekarang,

$autoload['libraries'] = array(‘database’) berarti anda akan memanggil library database CodeIgniter,

sehingga anda dapat menggunakan fungsi-fungsi database seperti $this->db->query(); dan

sebagainya.

?12345

$autoload['libraries'] = array('database', 'session', 'image_lib', 'table');

 $autoload['helper'] = array('url', 'form', 'text');

 $autoload['model'] = array('berita_model', 'kategori_model');

Ini hanyalah konfigurasi awal Codeigniter, selanjutnya kita akan membuat fungsi-fungsi website

menggunakan codeigniter.

Desain Database Codeigniter

Database yang digunakan di dalam tutorial ini tidak terlalu rumit karena hanya menggunakan data

dummy yang selanjutnya dapat anda modifikasi sendiri.

Sebagai awal, database yang dibuat adalah untuk menyimpan data user seperti nama, alamat, dan

email dimana fungsi untuk melakukan insert, update, dan delete data di dalam database tersebut

akan dibahasa satu per satu di tutorial selanjutnya.

Pertama buatlah sebuah database baru dengan nama codeigniter, dilanjutkan dengan membuat

tabel dengan nama user.

Di dalam tabel user ada 6 column, yaitu:

id_user (INT, AI, primary key)

nama_lengkap (VARCHAR, 100)

username (VARCHAR, 100)

password (VARCHAR, 100)

email (VARCHAR, 100)

alamat (VARCHAR, 300)

Berikut ini adalah tampilan struktur dari database yang baru saja dibuat.

Tabel User

Sebenarnya, username harus bersifat unik, karena tidak mungkin ada username yang duplikat.

Tetapi karena ini hanyalah latihan, maka tidak masalah, yang penting anda dapat mengerti

bagaimana membuat aplikasi web menggunakan Codeigniter.

Selanjutnya kita akan membuat fungsi insert database dengan menggunakan Codeigniter.

Insert Data Menggunakan Codeigniter

Di dalam tutorial ini tidak dibahas mengenai alur berpikir darimana anda membuat fungsi tersebut,

melainkan  langsung dibahas best  practices nya saja.

Setiap programmer memiliki style nya sendiri dalam melakukan coding, jadi terserah anda ingin

memulainya dari folder controller, model, atau view. Saya akan menuliskan source code berurutan

dari folder controller, model, dan view.

Controller

Pertama buatlah file user_controller.php di dalam direktori application/controller dan isikan source

berikut:

user_controller.php

?

1

2

3

4

<?php

class User_controller extends CI_Controller{

    function __Construct()

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

    {

        parent ::__construct();

    }

    function user()

    {

        $data['judul'] = 'Insert Data User';

        $this->load->view('user', $data);

    }

    function simpan_user()

    {  

        $this->load->model('user_model');

        $this->user_model->simpan_user();

        $data['notifikasi'] = 'Data berhasil disimpan';

        $data['judul']='Insert Data Berhasil';

        $this->load->view('notifikasi', $data);

    }

}

Nb: di dalam codeigniter tidap perlu menggunakan tag php penutup

Model

Selanjutnya bualah file user_model.php di dalam direktori application/model dan isikan source

berikut:

Perhatikan bahwa kita akan menggunakan libraries database dari Codeigniter, maka dari itu bukalah

file autoload di application/config/autoload.php dan tambahkan database di autoload libraries.

?

1 $autoload['libraries'] = array('database');

user_model.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<?php

class User_model extends CI_Model{

    function simpan_user()

    {

        $simpan_data=array(

            'nama_lengkap' => $this->input->post('nama_lengkap'),

            'username' => $this->input->post('username'),

            'password' => md5($this->input->post('password')),

            'email' => $this->input->post('email'),

            'alamat' => $this->input->post('alamat')

       );

        $simpan = $this->db->insert('user', $simpan_data);

        return $simpan;

    }

}

Views

Terakhir, buatlah file sebagai view dan notifikasi ketika data berhasil di simpan. Di sini saya

membuat dua buah file yaitu user.php dan notifikasi.php di dalam direktori application/view

user.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

<html>

    <head>

        <title><?php echo $judul; ?></title>

    </head>

    <body>                       

    <h1>Insert Data User</h1>

    <form action="simpan_user" method="post">

        <table>

            <tr>

                <td>Nama Lengkap</td>

                <td><input type="text" name="nama_lengkap"/></td>

            </tr>

            <tr>

                <td>Username</td>

                <td><input type="text" name="username"/></td>

            </tr>

            <tr>

                <td>Password</td>

                <td><input type="password" name="password"/></td>

            </tr>

            </tr>

                <td>Email</td>

                <td><input type="text" name="email"/></td>

            </tr>

            <tr>

                <td>Alamat</td>

25

26

27

28

29

30

31

32

33

34

35

                <td><textarea name="alamat" style="height: 80px;"></textarea></td>

            <tr>

                <td></td>

                <td><input type="submit" value="Simpan"/></td>

            </tr>

        </table>

    </form>

    </body>

</html>

notifikasi.php

?

1

2

3

4

5

6

7

8

<html>

<head>

    <title><?php echo $judul; ?></title>

</head>

<body>

    <p><?php echo $notifikasi; ?></p>

</body>

</html>

Oke, sekarang fungsi tersebut telah selesai, anda dapat mencoba menjalankannya di browser

dengan URL http://localhost/codeigniter/index.php/user_controller/user

Setelah anda klik Simpan, data yang anda isikan akan tersimpan di dalam database.

Source code dapat di download di: insert_data_codeigniter

Menampilkan Data dari Database Menggunakan Codeigniter

Berikut ini adalah source code yang ada di controller, model, dan view. Meskipun nama file di tutorial

ini sama seperti tutorial sebelumnya, tetapi isi dari source code sudah berbeda. Jadi jangan asal

copas ketika anda ingin menggabungkan tutorial ini dengan tutorial sebelumnya.

Controller

Buatlah sebuah file dengan nama user_controller.php dan isikan code sebagai berikut:

user_controller.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<?php

class User_controller extends CI_Controller{

    function __Construct()

    {

        parent ::__construct();

    }

    function user()

    {

        $this->load->model('user_model');

        $data['judul'] = 'Menampilkan Data dari Database Menggunakan Codeigniter';

        $data['daftar_user'] = $this->user_model->get_user_all();

        $this->load->view('daftar_user', $data);

    }

15

16}

Model

Buatlah sebuah file dengan nama user_model.php dan isikan code sebagai berikut:

?

1

2

3

4

5

6

7

8

9

<?php

class User_model extends CI_Model{

    function get_user_all()

    {

        $query=$this->db->query("SELECT * FROM user ORDER BY id_user DESC");

        return $query->result();

    }

}

Views

Buatlah sebuah file dengan nama daftar_user.php dan isikan code sebagai berikut:

?

1

2

3

4

5

6

7

<html>

<head>

    <title><?php echo $judul; ?></title>

</head>

<body>

    <h1>Daftar User</h1>

    <table border="1">

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

        <thead>

        <tr>

            <th>Nama Lengkap</th>

            <th>Username</th>

            <th>Email</th>

            <th>Alamat</th>

        </tr>

    </thead>

    <tbody>

            <?php

                foreach($daftar_user as $user){

        ?>

                <tr>

            <td><?php echo $user->nama_lengkap; ?></td>

            <td><?php echo $user->username; ?></td>

            <td><?php echo $user->email; ?></td>

            <td><?php echo $user->alamat; ?></td>

        </tr>

           <?php } ?>

    </tbody>

    <tfoot>

        <tr>

            <th>Nama Lengkap</th>

            <th>Username</th>

            <th>Email</th>

            <th>Alamat</th>

        </tr>

    </tfoot>

33

34

35

36

37

38

    </table>

</body>

</html>

Sekarang cobalah untuk menjalankan URL

http://localhost/codeigniter/index.php/user_controller/user melalui browser.

Jika code yang anda masukkan benar, maka seluruh data di dalam tabel user akan muncul.

Source code: menampilkan_data_database_codeigniter

Delete Record Menggunakan Codeigniter

Berikut ini adalah source code untuk membuat delete record menggunakan Codeigniter. Seperti

biasa saya menuliskan source code berurutan dari controller, model, dan terakhir di bagian views.

Controller

Perlu diperhatikan bahwa dari source code di bawah kita menggunakan URL helper dari

Codeigniter. Oleh karena itu pastikan anda menyertakan helper URL di folder

application/config/autoload.php

?

1 $autoload['helper'] = array('url');

Tambahkan source code di user_controller.php menjadi seperti berikut:

user_controller.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<?php

class User_controller extends CI_Controller{

    function __Construct()

    {

        parent ::__construct();

    }

    function user()

    {

        $this->load->model('user_model');

        $data['judul'] = 'Delete Record Menggunakan Codeigniter';

        $data['daftar_user'] = $this->user_model->get_user_all();

        $this->load->view('daftar_user', $data);

    }

    function delete_user($id_user)

    {

        $this->load->model('user_model');

        $username = $this->user_model->delete_user($id_user);

        redirect('user_controller/user');

20

21

22

23

    }

}

Model

Bukalah file user_model.php dan tambahkan fungsi untuk melakukan delete record seperti pada

source berikut:

user_model.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<?php

class User_model extends CI_Model{

    function get_user_all()

    {

        $query=$this->db->query("SELECT * FROM user ORDER BY id_user DESC");

        return $query->result();

    }

    function delete_user($id_user)

    {

        $query=$this->db->query("DELETE FROM user WHERE id_user='$id_user'");

    }

}

Views

Bukalah daftar_user.php dan sesuaikan dengan source code berikut ini:

daftar_user.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

<html>

<head>

    <title><?php echo $judul; ?></title>

</head>

<body>

    <h1>Daftar User</h1>

    <table border="1">

        <thead>

        <tr>

            <th>Nama Lengkap</th>

            <th>Username</th>

            <th>Email</th>

            <th>Alamat</th>

            <th>Action</th>

        </tr>

    </thead>

    <tbody>

            <?php

            foreach($daftar_user as $user){

            ?>

        <tr>

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

            <td><?php echo $user->nama_lengkap; ?></td>

            <td><?php echo $user->username; ?></td>

            <td><?php echo $user->email; ?></td>

            <td><?php echo $user->alamat; ?></td>

            <td><?php echo '<a href="'.base_url().'index.php/user_controller/delete_user/'.$user->id_user.'" onclick="return confirm(\'Anda yakin akan menghapus '.$user->username.'?\')">Delete</a>'?></td>

        </tr>

           <?php } ?>

    </tbody>

    <tfoot>

        <tr>

            <th>Nama Lengkap</th>

            <th>Username</th>

            <th>Email</th>

            <th>Alamat</th>

            <th>Action</th>

        </tr>

    </tfoot>

    </table>

</body>

</html>

Cobalah untuk menjalankan aplikasi tersebut dengan

URL http://localhost/codeigniter/index.php/user_controller/user

Ketika anda klik delete, maka akan muncul peringatan yang jika di OK maka database akan dihapus

dari dalam database.

 

Delete Record

Source code: delete_record_codeigniter

Update Database dengan Codeigniter

Seperti biasa saya akan menulisakan urutan source cara membuat fungsi update database dengan

codeigniter ini secara berurutan dari controller, model, dan views.

Jika anda telah membaca tutorial sebelumnya, yaitu membuat fungsi delete record database,

sebenarnya konsep yang ada tidak berbeda jauh.

Controller

Fungsi di dalam controller ini cukup banyak, karena kita harus menampilkan data yang ada di dalam

database, kemudian memberikan fungsi untuk update, dan terakhir membuat fungsi untuk

menyimpan update tersebut.

user_controller.php

?

1

2

3

<?php

class User_controller extends CI_Controller{

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

    function __Construct()

    {

        parent ::__construct();

    }

    function user()

    {

        $this->load->model('user_model');

        $data['judul'] = 'Daftar User';

        $data['daftar_user'] = $this->user_model->get_user_all();

        $this->load->view('daftar_user', $data);

    }

    function edit_user($id_user)

    {

        $data['judul']='Update Data User';

        $this->load->model('user_model');

        $data['edit']=$this->user_model->edit_user($id_user);

        $this->load->view('edit_user', $data);

    }

    function simpan_edit_user()

    {

        $id_user = $this->input->post('id_user');

        $nama_lengkap = $this->input->post('nama_lengkap');

        $username = $this->input->post('username');

        $password = $this->input->post('password');

29

30

31

32

33

34

35

36

37

38

39

40

        $email = $this->input->post('email');

        $alamat = $this->input->post('alamat');

        $data['judul'] = 'Update Data Codeigniter';

        $this->load->model('user_model');

        $data['edit'] = $this->user_model->simpan_edit_user($id_user, $nama_lengkap, $username, $password, $email, $alamat);

        $data['notifikasi'] = 'Data telah berhasil disimpan';

        $this->load->view('notifikasi', $data);

    }

}

Model

Sama seperti controller, fungsi di dalam model juga cukup banyak, tetapi saya rasa tidak perlu untuk

menjelaskannya satu persatu. Anda dapat memahaminya dengan membaca nama fungsinya.

user_model.php

?

1

2

3

4

5

6

7

<?php

class User_model extends CI_Model{

    function get_user_all()

    {

        $query=$this->db->query("SELECT * FROM user ORDER BY id_user DESC");

        return $query->result();

    }

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

    function edit_user($id_user)

    {

        $q="SELECT * FROM  user WHERE id_user='$id_user'";

        $query=$this->db->query($q);

        return $query->row();

    }

    function simpan_edit_user($id_user, $nama_lengkap, $username, $password, $email, $alamat)

    {

        $data = array(

            'id_user' => $id_user,

            'nama_lengkap' => $nama_lengkap,

            'username' => $username,

            'password' => $password,

            'email' => $email,    

            'alamat' => $alamat

        );

        $this->db->where('id_user', $id_user);

        $this->db->update('user', $data);   

    }

}

Views

Di dalam views ini terdapat dua halaman view, yang pertama adalah untuk menampilkan halaman

awal, kemudian yang kedua digunakan untuk melakukan edit data, dan terakhir adalah notifikasi

bahwa data berhasil disimpan.

Views yang pertama adalah daftar_user.php yang digunakan untuk menampilkan seluruh data yang

ada di dalam database.

daftar_user.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<html>

<head>

    <title><?php echo $judul; ?></title>

</head>

<body>

    <h1>Daftar User</h1>

    <table border="1">

        <thead>

        <tr>

            <th>Nama Lengkap</th>

            <th>Username</th>

            <th>Email</th>

            <th>Alamat</th>

            <th>Action</th>

        </tr>

    </thead>

    <tbody>

            <?php

            foreach($daftar_user as $user){

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

            ?>

        <tr>

            <td><?php echo $user->nama_lengkap; ?></td>

            <td><?php echo $user->username; ?></td>

            <td><?php echo $user->email; ?></td>

            <td><?php echo $user->alamat; ?></td>

            <td><?php echo '<a href="'.base_url().'index.php/user_controller/edit_user/'.$user->id_user.'">Edit</a>'?></td>

        </tr>

           <?php } ?>

    </tbody>

    <tfoot>

        <tr>

            <th>Nama Lengkap</th>

            <th>Username</th>

            <th>Email</th>

            <th>Alamat</th>

            <th>Action</th>

        </tr>

    </tfoot>

    </table>

</body>

</html>

Views yang kedua adalah edit_user.php yang digunakan untuk mengedit inputan record yang telah

tersimpan di dalam database.

edit_user.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<html>

    <head>

        <title><?php echo $judul; ?></title>

    </head>

    <body>                       

    <h1>Update Data User</h1>

    <?php

        $att = array('id' => 'biodata-form');

        echo form_open('user_controller/simpan_edit_user', $att);

        echo form_hidden('id_user',$edit->id_user);

    ?>

        <table>

            <tr>

                <td>Nama Lengkap</td>

                <td><input type="text" name="nama_lengkap" value="<?php echo $edit->nama_lengkap; ?>"/></td>

            </tr>

            <tr>

                <td>Username</td>

                <td><input type="text" name="username" value="<?php echo $edit->username; ?>"/></td>

            </tr>

            <tr>

                <td>Password</td>

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

                <td><input type="password" name="password" value="<?php echo $edit->password; ?>"/></td>

            </tr>

            </tr>

                <td>Email</td>

                <td><input type="text" name="email" value="<?php echo $edit->email; ?>"/></td>

            </tr>

            <tr>

                <td>Alamat</td>

                <td><textarea name="alamat" style="height: 80px;"><?php echo $edit->alamat; ?></textarea></td>

            <tr>

                <td></td>

                <td><input type="submit" value="Simpan"/></td>

            </tr>

        </table>

    </form>

    </body>

</html>

Views terakhir adalah untuk notifikasi.php untuk memberikan informasi bahwa data telah berhasil

diupdate. Sebenarnya notifikasi tersebut dapat digabungkan dengan daftar_user.php, tetapi sengaja

saya pisahkan agar tidak membingungkan bagi anda yang baru pertama kali belajar php maupun

Codeigniter.

notifikasi.php

?

1

2

3

4

5

6

7

8

<html>

<head>

    <title><?php echo $judul; ?></title>

</head>

<body>

    <p><?php echo $notifikasi; ?></p>

</body>

</html>

Anda dapat mencoba source code yang telah selesai dibuat dengan cara mengetikkan URL pada

browser: http://localhost/codeigniter/index.php/user_controller/user

Daftar User

Update Data

Kemudian cobalah untuk melakukan edit data dan klik Simpan.

Jika source anda ketikkan dengan benar, maka data di dalam database akan berhasil di update.

Source code update_database_codeigniter.

Validasi Form Codeigniter

Membuat form validation menggunakan Codeigniter tidaklah sulit, sebab Codeigniter memiliki class

bernama Form Validation yang memudahkan anda untuk menggunakan validasi form Codeigniter.

Kita hanya perlu memanggil class tersebut dan menggunakannya di source code yang kita buat.

Anda tidak perlu membuat script dan semacamnya.

Di tutorial ini kita tidak menggunakan database, sehingga kita hanya akan coding di Controller dan

Views.

Controller

Buatlah file yang bernama form_controller.php dan ketikkan source code sebagai berikut:

form_controller.php

?

1

2

3

4

5

6

7

8

<?php

class Form_controller extends CI_Controller {

    function index()

    {

        $this->load->helper(array('form', 'url'));

        $this->load->library('form_validation');

        $this->form_validation->set_rules('username', 'Username', 'required');

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

        $this->form_validation->set_rules('password', 'Password', 'required');

        $this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');

        $this->form_validation->set_rules('email', 'Email', 'required');

        if ($this->form_validation->run() == FALSE)

        {

            $this->load->view('form_input');

        }

        else

        {

            echo 'validasi sukses!';

        }

    }

}

Perhatikan code ketika memanggil helper dan library:

?

1

2

$this->load->helper(array('form', 'url'));

$this->load->library('form_validation');

Anda perlu menuliskan dua baris code tersebut untuk memanggil helper form dan URL  serta library

form validation yang digunakan untuk melakukan validasi.

Selain menuliskannya pada controller, anda juga dapat menambahkannya di autoload.php

Views

Form yang digunakan untuk menginput data kita beri nama dengan form_input.php

form_input.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<html>

<head>

<title>Input Data</title>

</head>

<body>

    <?php echo form_open('form_controller'); ?>

    <h4>Username</h4>

    <?php echo form_error('username'); ?>

    <input type="text" name="username" value="<?php echo set_value('username'); ?>" size="30"

    <h4>Password</h4>

    <?php echo form_error('password'); ?>

    <input type="text" name="password" value="<?php echo set_value('password'); ?>" size="30"

    <h4>Password Confirm</h4>

    <?php echo form_error('passconf'); ?>

    <input type="text" name="passconf" value="<?php echo set_value('passconf'); ?>" size="30"

    <h4>Email Address</h4>

    <?php echo form_error('email'); ?>

    <input type="text" name="email" value="<?php echo set_value('email'); ?>" size="30"

24

25

26

27

28

29

30

    <div><input type="submit" value="Submit" /></div>

    </form>

</body>

</html>

Cobalah untuk menjalankan URL http://localhost/codeigniter/index.php/form_controller pada

browser. Jika form anda biarkan kosong, maka akan muncul peringatan bahwa form harus diisi.

Sedangkan jika form sudah terisi, maka akan muncul validasi sukses!

Validasi Form Codeigniter

Perhatikan bahwa validasi form tersebut hanya untuk form tidak boleh kosong, anda harus

memodifikasi rule yang ada jika ingin melakukan pengecekan terhadap inputan user seperti

password harus sama, email harus benar, dan sebagainya.

Sebagai contoh, anda dapat memodifikasi beberapa baris code  di form_controller.php menjadi

seperti berikut:

?

1

2

3

4

$this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[4]');

$this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[4]|max_length[32]');

$this->form_validation->set_rules('passconf', 'Password Confirmation', 'trim|required|matches[password]');

$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');

Source code: validasi_form_codeigniter

Membuat Halaman Login CodeIgniter

Melanjutkan tutorial sebelumnya, kali ini kita akan mulai berurusan dengan coding.

Post kali ini membahas mengenai bagaimana membuat halaman form login.

Catatan: pada tutorial kali ini dan selanjutnya, minimal anda harus mengetahui konsep dasar MVC di

CodeIgniter dan setidaknya anda telah membaca User Guide dari CodeIgniter supaya tidak terlalu

kebingungan ketika membaca dokumentasi berikut ini. Di sarankan anda juga mengerti atau minimal

mengetahui sedikit tentang PHP, HTML dan CSS.

Untuk membuat halaman login, anda dapat melihat code berikut sebagai referensi:

untuk CSS tidak ditampilkan, tetapi anda dapat melihat tutorial saya sebelumnya di Membuat Form

Login HTML dan CSS

C:\xampp\htdocs\simatik\application\controllers\login.php

?

1

2

3

4

5

<?php

class Login extends CI_Controller{

    public function index()

    {

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

        $data['judul'] = 'Web Portal › SIMATIK';

        $this->load->view('login', $data);   

    }

    function validate_login(){

        $this->load->model('user_model');

        $query = $this->user_model->validate();

        if($query){

            $data = array(

                'username' => $this->input->post('username'),

                'is_logged_in' => TRUE          

            );

            $this->session->set_userdata($data);

            redirect('site/home');     

        }else{

            $this->index();                 

        }  

    }

}

Bagian view untuk tampilan form login adalah sebagai berikut

C:\xampp\htdocs\simatik\application\views\login.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<!DOCTYPE html

  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

        <title><?php echo $judul;?></title>

        <link href="<?php echo base_url();?>css/login.css" rel="stylesheet" type="text/css"/>

        <link href="<?php echo base_url();?>favicon.ico" rel="icon"/>

    </head>

        <body>

        <div id="wrapper">

            <div id="spacer"> 

            </div>

            <div id="konten">

                <div id="left-side">

                    <?php $this->load->view('includes/left-side-login');?>

                </div>

                <div id="right-side">

                        <h1>SEKOLAH MENENGAH ATAS STATISTIK</h1>

                        <br/><br/><br/>

                        <h2>Login</h2>

                        <p><?php if(isset($notifikasi)) echo $notifikasi;?></p>

                        <?php

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

                        $attributes = array('id' => 'login-form');

                        echo form_open('login/validate_login', $attributes);

                        ?>

                            <table id="log-tabel">

                                <tr>

                                    <td>Username</td>

                                    <td><input type="text" name="username" class="log-form"

                                </tr>

                                <tr>

                                    <td>Password</td>

                                    <td><input type="password" name="password" class="log-form"

                                </tr>

                                <tr>

                                    <td></td>

                                    <td><input type="submit" value="" class="login-button"/></td>

                                </tr>

                            </table>

                        <?php

                        echo form_close();

                        ?>

                        <p>Jika anda belum mempunyai username dan password silahkan aktifkan akun anda terlebih dahulu dengan menghubungi admin</p>

                </div> 

            <div id="footer">

                <div id="footer-p">

                    <?php $this->load->view('includes/footer-login');?>

49

50

51

52

53

54

55

56

57

58

                </div>

            </div>

        </div>

        </div>       

    </body>

</html>

Selanjutnya untuk bagian modelC:\xampp\htdocs\simatik\application\models\user_model.php

?

1

2

3

4

5

6

7

8

9

10

11

12

<?php

class User_model extends CI_Model{

    function validate()

        {

            $this->db->where('username', $this->input->post('username'));

            $this->db->where('password', md5($this->input->post('password')));

            $query = $this->db->get('user');

            if($query->num_rows == 1)

            {

                return TRUE;

            }

13

14

15

    }

}

Dari model tersebut akan diarahkan ke controller lain yaitu site.php dengan fungsi home C:\xampp\

htdocs\simatik\application\controllers\site.php

?

1

2

3

4

5

6

7

8

9

<?php

class Site extends CI_Controller{

    function home()

    {

        $data['judul'] = 'SIMATIK › Home';

        $data['main_content'] = 'main_content/home';

        $this->load->view('template', $data);

    }

}

Dan terakhir adalah bagian viewC:\xampp\htdocs\simatik\application\view\main_content\

home.php

Halaman home.php dapat anda buat halaman dummy terlebih dahulu.

Membuat Insert Post Web Menggunakan CodeIgniter

Melanjutkan tutorial sebelumnya mengenai CodeIgniter. Pada post kali ini adalah dokumentasi

mengenai cara membuat insert post menggunakan CodeIgniter.

Skenario dari fungsi insert ini adalah, ada sebuah form yang akan diisi dengan artikel tertentu dan

ketika di klik tombol submit, maka form tersebut akan menyimpan ke dalam database.

Jika artikel berhasil di simpan, maka muncul peringatan bahwa post berhasil di simpan, begitu juga

sebaliknya.

Tutorial ini adalah bagian dari dokumentasi  Membuat Website Menggunakan CodeIgniter.

Fungsi Insert

Untuk mempermudah dalam berpikir, pertama kita buat terlebih dahulu bagian view nya:

tambah_berita.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<h1>Tambah Berita</h1>

<form id="biodata-form" action="simpan_berita" method="post" enctype="multipart/form-data">

    <table id="tabel-biodata">

        <tr>

            <td>Judul</td>

            <td><input type="text" name="judul_berita" class="biodata" value="" maxlength="1024"/></td>

        </tr>

        <tr>

            <td></td>

            <td><input type="hidden" name="uploader" class="biodata" value="<?php echo $this->session->userdata('username');?>"

        </tr>

        <tr>

            <td>Kategori</td>

            <td>

                <?php

                $attributes = 'class = "biodata"';

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

                $pilih = '';

                echo form_dropdown("id_kategori", $opt_kategori, $pilih, $attributes);

                ?>                                       

            </td>

        </tr>

        <tr>

            <td>Status</td>

            <td>

                <select name="status" class="biodata">

                    <?php if ($status==1){?>

                            <option value="1" selected="selected">Aktif</option>

                            <option value="0" >Nonaktif</option>

                    <?php }else{?>

                            <option value="1" >Aktif</option>

                            <option value="0" selected="selected">Nonaktif</option>

                    <?php }?>

                </select>

            </td>

        </tr>

        <tr>

            <td></td>

            <td style="text-align: right;">Isi Artikel</td>

        </tr>

        <tr>

            <td colspan="2"><textarea name="isi_berita" class="biodata" value="" style="height: 500px; width: 600px"></textarea></td>

        </tr>

        <tr>

42

43

44

45

46

47

48

49

            <td></td>

            <td style="text-align: right;"><br /><input type="submit" value="Simpan" class="button"/></td>

        </tr>

    </table>

</form>

Selanjutnya dari form submit akan menuju ke bagian controller, yaitu: berita_admin dengan fungsi

simpan_berita

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<?php

class Berita_admin extends CI_Controller{

function __Construct()

{

    parent ::__construct();

    $this->is_logged_in();  

}

function berita()

{

    $total = $this->berita_model->hitung_berita();

    $data['judul'] = 'SIMATIK &rsaquo; Pengaturan Berita';

    $data['main_content'] = 'admin/berita';

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

    $data['berita'] = $this->berita_model->get_berita();

    $this->load->view('admin_template', $data);

}

function simpan_berita()

{  

    $judul_berita = $this->input->post('judul_berita');

    $id_kategori = $this->input->post('id_kategori');

    $isi_berita = $this->input->post('isi_berita');

    $uploader = $this->input->post('uploader');

    $status = $this->input->post('status');

    $this->berita_model->simpan_berita($judul_berita, $id_kategori, $isi_berita, $uploader, $status);

    redirect('berita_admin/berita');

}

}

Di dalam fungsi simpan_berita, model simpan_berita yang ada di berita_model.php akan diakses,

jika berhasil, maka controller akan melakukan redirect ke halaman akhir dan memberikan notifikasi

bahwa berita berhasil disimpan.

?

1

2

3

4

<?php

class Berita_model extends CI_Model{

    function get_berita()

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

    {

        $array_keys_values = $this->db->query("SELECT k.nama_kategori, b.* FROM kategori k, berita b WHERE k.id_kategori = b.id_kategori ORDER BY tanggal DESC");

        return $array_keys_values;

    }

    function simpan_berita($judul_berita, $id_kategori, $isi_berita, $uploader, $status)

    {

        $data = array(

            'judul_berita' => $judul_berita,

            'id_kategori' => $id_kategori,

            'isi_berita' => $isi_berita,

            'uploader' => $uploader,

            'status' => $status

            );

        $this->db->insert('berita', $data);

    }

}