CodeIgniter  merupakan PHP framework yang popular untuk saat ini. bagaimana mendapatkan support plugin pada netbean ?
anda bisa mencoba untuk mendownload pada link dibawah ini .


Algoritma kriptografi dibagi menjadi tiga bagian berdasarkan kunci yang dipakainya : 

1. Algoritma Simetri

Algoritma ini sering disebut dengan algoritma klasik karena memakai kunci yang sama untuk kegiatan enkripsi maupun dekripsi. Algoritma ini sudah ada sejak lebih dari 4000 tahun yang lalu. Bila mengirim pesan dengan menggunakan algoritma ini, si penerima pesan harus diberitahu kunci dari pesan tersebut agar bisa mendekripsikan pesan yang terkirim. Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci. Jika kunci tersebut diketahui oleh orang lain maka orang tersebut akan dapat melakukan enkripsi dan dekripsi terhadap pesan. Algoritma yang memakai kunci simetri di antaranya adalah :

  1. Data Encryption Standard (DES), 
  2. RC2, RC4, RC5, RC 6,
  3. International Data Encryption Algorithm (IDEA),
  4. Advanced Encryption Standard (AES),
  5. On Time Pad (OTP),
  6. A5, dan lain sebagainya. 
2. Algoritma Asimetri 

Algoritma asimetri sering juga disebut dengan algoritma kunci public, dengan arti kata kunci yang digunakan melakukan enkripsi dan dekripsi berbeda. Pada algoritma asimetri kunci terbagi menjadi dua bagian, yaitu :
  1. Kunci umum (public key), kunci yang boleh semua orang tahu (dipublikasikan).
  2. Kunci rahasia (private key), kunci yang dirahasiakan (hanya boleh diketahui oleh satu orang).
Kunci-kunci tersebut berhubungan satu sama lain. Dengan kunci public orang dapat mengenkripsi pesan tetapi tidak bisa mendekripsikannya. Hanya orang yang memiliki kunci rahasia yang dapat mendekripsikan pesan tersebut. Algoritma asimetri bisa mengirimkan pesan dengan lebih aman daripada algoritma simetri.
Algoritma yang memakai kunci public di antaranya adalah :
  1. Digital Signature Algorithm (DSA),
  2. RSA,
  3. Diffle-Hellman (DH),
  4. Elliptic Curve Cryptography (ECC),
  5. Kriptografi Quantum, dan lain sebagainya.
3. Fungsi Hash

Fungsi Hash sering disebut dengan funsi satu arah (one-way function), message digest,fingerprint, fungsi kompresi dan message authentication code (MAC), merupakan suatu fungsi matematika yang mengambil masukan panjang variabel dan mengubahnya ke dalam urutan biner dengan panjang yang tetap. Fungsi Hash biasanya diperlukan bila ingin membuat sidik jari dari suatu pesan. Sidik jari pada pesan merupakan suatu tanda bahwa pesan tersebut benar-benar berasal dari orang-orang yang diinginkan.


Kriptografi Klasik
  
Kriptografi klasik merupakan suatu algoritma yang menggunakan satu kunci untuk mengamankan data. Teknik ini sudah digunakan beberapa abad yang lalu. Dua teknik dasar yang biasa digunakan pada algoritma jenis ini adalah sebagai berikut :
  1. Teknik subtitusi, penggantian setiap karakter teks-asli dengan karakter lain.
  2. Teknik transposisi (permutasi), dilakukan dengan menggunakan permutasi karakter. (Dony Arius, 2008)
Salah satu teknik enkripsi menggunakan kunci simetri adalah teknik subtitusi, yaitu mengganti setiap karakter Plaintext dengan karakter lain. Terdapat empat cara dalam menggunakan teknik subtitusi, yaitu :
  1. Monoalphabet, dimana setiap karakter Ciphertext  mengganti  satu macam karakterPlaintext tertentu.
  2. Polialphabet, dimana setiap karakter Ciphertext  mengganti lebih dari satu macam karakter Plaintext.
  3. Monograf/unilateral, dimana satu enkripsi dilakukan terhadap satu karakterPlaintext.
  4. Poligraf/multilateral, dimana satu enkripsi dilakukan terhadap lebih dari satu karakterPlaintext. (Alferd J. Menezes, 1996)
Kriptografi Modern
 
Kriptografi modern merupakan suatu algoritma yang digunakan pada saat sekarang ini, yang mana kriptografi modern mempunyai kerumitan yang sangat komplek, karena dalam pengoperasiannya menggunakan komputer. (Doni Ariyus, 2006)
 
  
ARIYUS, Dony. 2008. Pengantar Ilmu Kriptografi Teori, Analisis, dan Implementasi. Yogyakarta: Penerbit Andi. 

ALFERD J. MENEZES, Paul C. van Oorschot, Scott A. Vanstone. 1996. Handbook of Applied Cryptography. UK: CRC Press.
 
ARIYUS, Dony. 2006. Kriptografi: Keamanan Data dan Komunikasi. Yogyakarta: Graha Ilmu.

Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa mengalami gangguan dari pihak ketiga. Prinsip-prinsip yang mendasari kriptografi yakni : 

  1. Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak penerima / pihak-pihak memiliki ijin). Umumnya hal ini dilakukan dengan cara membuat suatualgoritma matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami. 
  2. Data integrity (keutuhan data) yaitu layanan yang mampu mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau penambahan) data yang tidak sah (oleh pihak lain).
  3. Authentication   (keotentikan)   yaitu   layanan   yang   berhubungan   dengan identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian data/informasi. 
  4. Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal dirinya). (Alferd J. Menezes, 1996)
  
Algoritma Kriptografi 


Definisi terminologi algoritma adalah urutan langkah-langkah logis untuk menyelesaikan masalah yang disusun secara matematis. Sedangkan kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa mengalami gangguan dari pihak ketiga. Algoritma kriptografi merupakan langkah-langkah logis bagaimana menyembunyikan pesan dari orang-orang yang tidak berhak atas pesan tersebut.

Algoritma kriptografi terdiri dari tiga fungsi dasar, yaitu : 
  1. Enkripsi, merupakan hal yang sangat penting dalam kriptografi, merupakan pengamanan data yang dikirimkan agar terjaga kerahasiaannya. Pesan asli disebutPlaintext, yang diubah menjadi kode-kode yang tidak dimengerti. Enskripsi bisa diartikan dengan Cipher atau kode.
  2. Dekripsi, merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi dikembalikan ke bentuk asalnya (tesk-asli), disebut dengan dekripsi pesan. Algoritma yang digunakan untuk dekripsi tentu berbeda dengan algoritma untuk enkripsi.
  3. Kunci, yang dimaksud adalah kunci yang dipakai untu melakukan enkripsi dan dekripsi. Kunci terbagi menjadi dua bagian, kunci rahasia (private key) dan kunci umum (public key).

Keamanan dari algoritma kriptografi tergantung pada bagaimana algoritma itu bekerja. Oleh sebab itu algoritma semacam ini disebut dengan algoritma terbatas. Algoritma terbatas merupakan algoritma yang dipakai sekelompok orang untuk merahasiakan pesan yang mereka kirim. Jika salah satu dari anggota itu keluar dari kelompoknya maka algoritma yang dipakai diganti dengan yang baru. Jika tidak maka hal itu bisa menjadi masalah di kemudian hari.

Keamanan dari kriptografi modern didapat dengan merahasiakan kunci yang dimiliki dari orang lain, tanpa harus merahasiakan algoritma itu sendiri. Kunci memiliki fungsi yang sama dengan password. Jika keseluruhan dari keamanan algoritma tergantung pada kunci yang dipakai maka algoritma ini bisa dipublikasikan dan dianalisis oleh orang lain. Jika algoritma yang telah dipublikasikan bisa dipecahkan dalam waktu yang singkat oleh orang lain maka algoritma tersebut tidaklah aman untuk digunakan. (Dony Ariyus, 2008)


Ariyus, Dony. 2008. Pengantar Ilmu Kriptografi Teori, Analisis, dan Implementasi. Yogyakarta: Penerbit Andi.

20 JavaScript Frameworks Worth Checking OutThe number of web applications being created and used has grown rapidly since the new millenium. And importantly, so has the sheer complexity of them — specially on the front end. No more static pages, no sir!
You have a ton of sections each interacting with each other and the server and yes, it’s as complicated as it sounds and just as hard to pull off. Today, I’d like to talk about a few, choice JavaScript frameworks that aim to simplify front end application development.


 

Why We Need Frameworks Like These

If you think jQuery is the answer, you lose a cookie and get an F grade!
Creating responsive, fluid, and maintainable interfaces for web apps isn’t as easy as one would imagine — there is data to be sent back to the server and the results parsed, data stores to be updated, views to be re-rendered and so much else that needs to be done in the background. Desktop developers have it much easier with robust tools and well defined workflows. Us, poor web devs? We’ve been twiddling DOM elements, creating models by hand and pulling our hair out trying to keep everything synched.
The monstrous rise in the number of web apps being built recently has really made it apparent that we need better tools and frameworks and the devs have responded with a staggering amount of solutions. Today, we’re going to go over just a few of these. A couple of these are quite old but I’m certain you can learn a lot from perusing their code base.
Sure, a few of these may be a little old but their code bases have lots of lessons to teach.

Sproutcore

Nettuts+ -- JavaScript Frameworks
Sproutcore powers a lot of high profile apps including MobileMe amongst others. Sproutcore has a steeper learning curve compared to the other options but makes up for it with developer productivity once he/she has learned the ropes.
This framework boasts a UI framework, the market standard MVC architecture and well written documentation.
Related links:

Cappuccino

Nettuts+ -- JavaScript Frameworks
Cappuccino was created by the 280North team, now owned by Motorola. This framework gained significant coverage with the release of the 280Slides — built completely with Cappuccino.
This framework varies dramatically from the others in that a developers doesn’t need to understand or work with any of the front end trifecta — HTML, CSS or the DOM. All you need to master is the framework!
Related links:

JavaScriptMVC

Nettuts+ -- JavaScript Frameworks
Built on jQuery, JavaScriptMVC is a veteran in the front end frameworks battlefield, dating back to 2008. Featuring a familiar, and obvious, MVC architecture, this framework is quite full featured with support for code generators, testing and dependency management.
Related links:

Asana Luna

Nettuts+ -- JavaScript Frameworks
Luna is one of those hush-hush private frameworks that people have been talking about. And for good reason, I must admit.
The framework features a lot of niceties including an evolved MVC architecture, pubsub, caching, routing and authentication.
Related links:

Backbone.js

Nettuts+ -- JavaScript Frameworks
Backbone supplies structure to JavaScript-heavy applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing application over a RESTful JSON interface.
Related links:

qooxdoo

Nettuts+ -- JavaScript Frameworks
qooxdoo is a universal JavaScript framework that enables you to create applications for a wide range of platforms. With its object-oriented programming model you build rich, interactive applications (RIAs), native-like apps for mobile devices, light-weight traditional web applications or even applications to run outside the browser.
Related links:

Spine

Nettuts+ -- JavaScript Frameworks
Spine is a lightweight framework for building JavaScript web applications. Spine gives you a MVC structure and then gets out of your way, allowing you to concentrate on the fun stuff, building awesome web applications.
Related links:

ActiveJS

Nettuts+ -- JavaScript Frameworks
ActiveJS is a JavaScript application framework that provides local and REST based data modeling and pure DOM view construction with back button and history support along with framework agnosticm and lack of external dependencies.
Related links:

Eyeballs

Nettuts+ -- JavaScript Frameworks
eyeballs.js is a slim javascript library designed to sit on top of a javascript framework, such as jQuery or Prototype. eyeballs.js can sit on top of an already implemented web app with a well thought out object model. It can also be used to build standalone javascript apps, backed by HTML5 local storage or something like CouchDB.
Related links:

Sammy

Nettuts+ -- JavaScript Frameworks
Sammy.js is a tiny JavaScript framework developed to ease the pain and provide a basic structure for developing JavaScript applications.
Sammy tries to achieve this by providing a small ‘core’ framework and an ever-growing list of plugins for specific functionality.
Related links:

Choco

Nettuts+ -- JavaScript Frameworks
Choco brings the MVC to the client side! A Choco app consists of only one HTML page, all the interactions are managed by Javascript. Your UI only uses HTML and CSS!
Related links:

Agility

Nettuts+ -- JavaScript Frameworks
Agility.js is an MVC library for Javascript that lets you write maintainable and reusable browser code without the verbose or infrastructural overhead found in other MVC libraries. The goal is to enable developers to write web apps at least as quickly as with jQuery, while simplifying long-term maintainability through MVC objects.
Related links:

Angular

Nettuts+ -- JavaScript Frameworks
Angular supports the entire development process, provides structure for your web apps, and works with the best JS libraries. With angular, the view and data model are always in sync — there is no need for manual DOM manipulation.
Angular is small, weighing in at 60kb, is compatible with all modern browsers and works great with jQuery.
Related links:

ExtJS

Nettuts+ -- JavaScript Frameworks
Ext JS 4 brings a whole new way to build client applications, by introducing the popular model-view-controller pattern to Ext JS. By allowing the separation of data management, logic and interface elements, Ext JS 4 makes it easier for even large development teams to work independently without worrying about stepping on each other’s toes. Ext JS 4 ships with a helpful MVC guide to get started.
Related links:

Knockout

Nettuts+ -- JavaScript Frameworks
Knockout is a JavaScript library that helps you to create rich, responsive display and editor user interfaces with a clean underlying data model. Any time you have sections of UI that update dynamically (e.g., changing depending on the user’s actions or when an external data source changes), KO can help you implement it more simply and maintainably.
Related links:

Jamal

Nettuts+ -- JavaScript Frameworks
Jamal is a set of conventions and small javascript libraries to archieve a complete separation of html, css and javascript in your web application. Jamal is built on jQuery and inspired by MVC frameworks like Ruby on Rails, CakePHP and its derivatives.
Related links:

PureMVC

Nettuts+ -- JavaScript Frameworks
PureMVC is a lightweight framework for creating applications based upon the classic Model, View and Controller concept.
Based upon proven design patterns, this free, open source framework which was originally implemented in the ActionScript 3 language for use with Adobe Flex, Flash and AIR, is now being ported to all major development platforms.
Related links:

TrimJunction

Nettuts+ -- JavaScript Frameworks
The open source Junction framework is a conventions-over-configuration, synchronizing web MVC framework for JavaScript. TrimPath Junction is a clone or port of the terrific Ruby on Rails web MVC framework into JavaScript.
Related links:

CorMVC

Nettuts+ -- JavaScript Frameworks
CorMVC is a jQuery-powered Model-View-Controller (MVC) framework that can aide in the development of single-page, web-based applications. CorMVC stands for client-only-required model-view-controller and is designed to be lowest possible entry point to learning about single-page application architecture.
Related links:

batman

Nettuts+ -- JavaScript Frameworks
batman.js is a full-stack microframework extracted from real use and designed to maximize developer and designer happiness. It favors convention over configuration, template-less views, and high performance by simply not doing very much. It all adds up to blazingly fast web apps with a great development process; it’s batman.js.
Related links:

Tujuan: Membuat form beserta validasinya dengan CodeIgniter.
Kebutuhan: CodeIgniter PHP Framework baik versi 2 maupun versi 3, bisa didownload di sini. Dan Webserver Package seperti Xampp pada link ini.
Kebutuhan User : Kemampuan PHP, kemampuan Mysql, Kemampuan HTML, dan (sedikit saja cukuplah) kemampuan CodeIgniter.

Dalam men-develop sebuah aplikasi berbasis web, mau tidak mau pasti kita akan sering menggunakan form. Form sangat berguna untuk membuat antarmuka penginputan data ke dalam database. Untuk mem-prevent agar data input yang masuk ke database benar, atau sesuai dengan yang diinginkan, maka diperlukan suatu validasi. Pada bahasa pemrograman PHP, pada umumnya validasi dibuat dengan menggunakan fungsi ereg, dengan memanfaatkan regular expression (regex). Dan percayalah, kalau regex ini sangat rumit. Hahahah
Dengan menggunakan CodeIgniter, validasi jauh lebih mudah dibuat apabila dibandingkan dengan php biasa.
Ohya, ini adalah sebuah validasi server-side. Jelasnya, validasi dilakukan dari sisi server sehingga secara otomatis sistem validasi ini akan lebih aman dibandingkan dengan client-side validation (biasanya dibuat dengan javascript)
Okay, langsung praktikum…
Step 1 : Konfigurasi CI
  1. Buka file config.php yang berada dalam folder system-application-config-config.php
  2. Ubah base url, sesuaikan dengan lokasi dimana folder CI-mu berada (tempat ekstrak-an tadi). Contoh : Folder CI anda berada dalam folder www/ci maka ubah baris $config['base_url']="http://example.com/";
    dengan
    $config['base_url'] = "http://localhost/ci/";
  3. Setting database. Buka file database.php yang berada dalam folder yang sama dengan config.php. Ubah hostname, username, password, dan nama database. Sesuaikan dengan pengaturan mysql anda. Contoh : $db['default']['hostname'] = "localhost";
    $db['default']['username'] = "root";
    $db['default']['password'] = "";
    $db['default']['database'] = "db_code";
Step 2 : Siapkan database
  1. Buat database dengan nama db_code (via phpmyadmin)
  2. Siapkan tabel dengan nama tb_student (untuk strukturnya, lihat gambar dibawah ini)

    tb_student's structure
  3. Database selesai.
Step 3 : Membuat Controller
  1. Ketikkan script dibawah ini dengan teks editor kesukaan anda,
  2.  <?php  
     class Student extends Controller {function Student(){  
     parent::Controller();  
     $this->load->library(array('table','validation'));  
     $this->load->helper('url');  
     }  
     function index() {  
     $this->_set_fields();  
     $data['title'] = 'Add New Student';  
     $data['message'] = '';  
     $data['action'] = site_url('student/addStudent');  
     $this->load->view('addStudent_view', $data);  
     }  
     function addStudent(){  
     $data1['title'] = 'Add New Student';  
     $data1['action'] = site_url('student/addStudent');  
     $this->_set_fields();  
     $this->_set_rules();  
     // menjalankan validasi  
     if ($this->validation->run() == FALSE){  
     $data['message'] = '';  
     }else{  
     // menyimpan data  
     $data= array('id' => $this->input->post('id'),  
     'nama' => $this->input->post('nama'),  
     'email' => $this->input->post('email')  
     );  
     $this->db->insert('tb_student', $data);  
     $data1['message'] = 'Sukses';  
     }  
     // load view  
     $this->load->view('addStudent_view', $data1);  
     }  
     function _set_fields(){  
     $fields['id'] = 'id';  
     $fields['nama'] = 'nama';  
     $fields['email'] = 'email';  
     $this->validation->set_fields($fields);  
     }  
     // berikut adalah rule-rule untuk validasi  
     function _set_rules(){  
     $rules['id'] = 'trim|required|numeric';  
     $rules['nama'] = 'trim|required';  
     $rules['email'] = 'trim|required|valid_email';  
     $this->validation->set_rules($rules);  
     $this->validation->set_message('required', '* harus diisi');  
     $this->validation->set_message('numeric', '* hanya boleh diisi dengan angka');  
     $this->validation->set_message('valid_email', '* email tidak valid');  
     $this->validation->set_error_delimiters('<p>', '</p>');  
     }  
     }  
     ?>  
    
  3. Simpan dalam folder system-application-controllers, dengan nama student.php
Step 4 : Membuat View
  1. Ketikkan script dibawah ini,
  2.  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
     <html xmlns="http://www.w3.org/1999/xhtml">  
     <head>  
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  
     <title>Form Validation CI</title>  
     </head>  
     <body>  
     <h1><?php echo $title; ?></h1>  
     <?php if (isset($message)) echo $message; ?>  
     <form method="post" action="<?php echo $action; ?>">  
     <table>  
     <tr>  
     <td valign="top">ID*</td>  
     <td><input type="text" name="id" value="<?php echo $this->validation->id; ?>"/>  
     <span style="color:red;"> <?php echo $this->validation->id_error; ?></span></td>  
     </tr>  
     <tr>  
     <td valign="top">Nama<span style="color:red;">*</span></td>  
     <td><input type="text" name="nama" value="<?php echo $this->validation->nama; ?>"/>  
     <span style="color:red;"> <?php echo $this->validation->nama_error; ?></span></td>  
     </tr>  
     <tr>  
     <td valign="top">Email<span style="color:red;">*</span></td>  
     <td><input type="text" name="email" value="<?php echo $this->validation->email; ?>"/>  
     <span style="color:red;"> <?php echo $this->validation->email_error; ?></span></td>  
     </tr>  
     <tr>  
     <td>&nbsp;</td>  
     <td><input type="submit" value="Save"/></td>  
     </tr>  
     </table>  
     </form>  
     </body>  
     </html>  
    
  3. Simpan dalam folder system-application-views, dengan nama addStudent_view.php
Step 5 : Testing Code
  1. Buka browser, pergi ke http://localhost/namaFolderCIKamu/student
  2. Anda akan melihat tampilan seperti berikut,

    Input Form
  3. Coba isi form dengan input salah (contoh, ID : AAA; Nama : (kosongi saja); Email : AAA)

    Wrong Input (example)
  4. Pilih Save. Maka anda akan melihat eror ditampilkan seperti gambar dibawah,

    Validation Confirmation
  5. Sekarang coba dengan isian benar, seperti pada gambar dibawah, lalu Save. Anda akan melihat konfirmasi sukses :D Cek juga database anda, seharusnya anda akan melihat data yang baru saja anda masukkan di dalam tb_student :D

    Correct Input (example)
    [caption id="attachment_842" align="aligncenter" width="233" caption="Success Confirmation"]
    [/caption]

Pada dasarnya, MVC menggunakan model, tapi hal tersebut merupakan optional untuk memudahkan kita dalam melakukan koding, agar lebih terstruktur pastinya. Contohnya $this->db->insert('tb_student', $data); dapat di letakkan pada controller.



Studi Kasus : Membuat Pagination dalam CodeIgniter
Kebutuhan : Webserver Package, already installed. CodeIgniter Bundle.
Jika anda tidak familiar dengan istilah “pagination”, pagination merujuk pada link yang berguna untuk navigasi dari page ke page, seperti gambar dibawah ini,

Pagination dalam CI sangat mudah digunakan, tutorial ini akan memberikan contoh membuat pagination dalam aplikasi CI.
Okay then, prepare for a cup of tea :)


Step 1 : Konfigurasi CI
  1. Buka file config.php yang berada dalam folder system-application-config-config.php
  2. Ubah base url, sesuaikan dengan lokasi dimana folder CI-mu berada (tempat ekstrak-an tadi). Contoh : Folder CI anda berada dalam folder www/ci
    maka ubah baris $config['base_url']="http://example.com/";
    dengan
    $config['base_url'] = "http://localhost/ci/";
  3. Setting database. Buka file database.php yang berada dalam folder yang sama dengan config.php. Ubah hostname, username, password, dan nama database. Sesuaikan dengan pengaturan mysql anda. Contoh :
    $db['default']['hostname'] = "localhost";
    $db['default']['username'] = "root";
    $db['default']['password'] = "";
    $db['default']['database'] = "db_tutorial";
Step 2 : Siapkan Database
  1. Buat database dengan nama db_tutorial (via phpmyadmin)
  2. Siapkan tabel dengan nama tb_book (untuk strukturnya, lihat gambar dibawah ini)
  3. Insertkan beberapa sample data, sebagai contoh insertkan data seperti tabel dibawah ini.
  4. Ok, we’re done with database !
Step 3 : Membuat Controller
  1. Ketikkan script berikut,
    <?php
    class Buku_con extends Controller {
    public function Buku_con()
    {
    parent::__construct();
    $this->load->model('buku_model');
    $this->load->library('pagination'); //call pagination library
    }
    function getBuku() {
    //count the total rows of tb_book
    $this->db->select('*');
    $this->db->from('tb_book');
    $getData = $this->db->get('');
    $a = $getData->num_rows();
    $config['base_url'] = base_url().'index.php/Buku_con/getBuku/'; //set the base url for pagination
    $config['total_rows'] = $a; //total rows
    $config['per_page'] = '2'; //the number of per page for pagination
    $config['uri_segment'] = 3; //see from base_url. 3 for this case
    $config['full_tag_open'] = '<p>';
    $config['full_tag_close'] = '</p>';
    $this->pagination->initialize($config); //initialize pagination
    $data['title'] = 'menampilkan isi buku';
    $data['detail'] = $this->buku_model->getBuku($config['per_page'],$this->uri->segment(3));
    $this->load->view('buku_view', $data);
    }
    }
    ?>
  2. Simpan dengan nama buku_con dalam folder system-application-controllers
  3. Penjelasan : function getBuku() akan mengambil isi dari tb_book via model. Dalam controller ini, pagination diinisialisasi dan diatur settingannya seperti pada script diatas (lihat komentar pada script untuk keterangannya).
Step 4 : Membuat Model
  1. Ketikkan script berikut,
    <?php
    class Buku_model extends Model {
    function Buku_model()
    {
    parent::Model();
    }
    function getBuku($perPage,$uri) { //to get all data in tb_book
    $this->db->select('*');
    $this->db->from('tb_book');
    $this->db->order_by('id','DESC');
    $getData = $this->db->get('', $perPage, $uri);
    if($getData->num_rows() > 0)
    return $getData->result_array();
    else
    return null;
    }
    }
    ?>
  2. Simpan dalam folder system-application-models, dengan nama buku_model.php
Step 5 : Membuat View
  1. Ketikkan script berikut,

    <h4>Book Data</h4>
    <?php if(count($detail) > 0) { ?>
    <table border="1">
    <tr>
    <th>ID</th>
    <th>Title</th>
    <th>Author</th>
    </tr>
    <?php
    foreach($detail as $rows) {
    echo "<tr>";
    echo "
    <td>". $rows['id']."</td>
    <td>". $rows['title'] ."</td>
    <td>". $rows['author'] ."</td>
    "; } ?>
    </table>
    <?php } ?>
    <div> <?php echo $this->pagination->create_links(); ?> </div>
  2. Simpan dalam folder system-application-views, dengan nama buku_view.php
  3. Penjelasan : $detail didapatkan dari controller, variabel ini berisi data dari tb_book (hasil dari model). Kemudian data ditampilkan dalam bentuk arrays.
Step 6 : Testing Code
  1. Buka browser, pergi ke http://localhost/namaFolderCIKamu/buku_con/getBuku
  2. Anda akan melihat tampilan seperti berikut,
  3. Klik pada link pagination ke halaman 2, maka anda akan melihat tampilan seperti dibawah

http://itx.web.id/php/membuat-pagination-dalam-codeigniter/
CodeIgniterCourtesy Image : www.icpep.org
Studi Kasus : Instalasi sampai Akses Database dengan Code Igniter
Kebutuhan : Paket Webserver (AppServ, XAMPP, EasyPHP, dll) & Code Igniter
Codeigniter (CI) merupakan sebuah PHP framework, katakanlah, untuk orang yang ingin membangun website dengan menggunakan PHP. Dengan menggunakan arsitektur model-view-controller yang memisahkan antara bagian logic dan tampilan dari program, CI cukup “menyenangkan” untuk digunakan. Tidak sulit. Cukup siapkan 2 gelas kopi panas untuk mulai mempelajarinya :)
Step 1 : Instalasi
  1. Ekstrak bundle CodeIgniter yang telah anda download dalam direktori root web server anda.
  2. Anda akan melihat banyak folder…. oke, jangan cemas. Masuk ke dalam folder system-application.
  3. Nah.. bagian dalam folder application inilah yang akan sering anda “bongkar” entar :)
Step 2 : Konfigurasi
  1. Buka file config.php yang berada dalam folder system-application-config-config.php
  2. Ubah base url, sesuaikan dengan lokasi dimana folder CI-mu berada (tempat ekstrak-an tadi). Contoh : Folder CI anda berada dalam folder www/ci
    maka ubah baris $config['base_url']="http://example.com/";
    dengan
    $config['base_url'] = "http://localhost/ci/";
    Mengapa localhost? Karena dalam tutorial ini kita akan membangun CI dalam server lokal kita :)
  3. Setting database. Buka file database.php yang berada dalam folder yang sama dengan config.php. Ubah hostname, username, password, dan nama database (database akan kita buat entar, untuk sementara siapkan namanya dulu saja) sesuaikan dengan pengaturan mysql anda. Contoh :
    $db['default']['hostname'] = "localhost";
    $db['default']['username'] = "root";
    $db['default']['password'] = "";
    $db['default']['database'] = "db_ci";
Selesai dengan instalasi dan konfigurasi, next step siapkan database yang akan kita gunakan dalam praktikum kali ini (praktikum ha ha, please dont imagine like we’re done something biology okay J )
Step 3 : Siapkan database
  1. Buat database dengan nama db_ci melalui phpmyadmin anda (saya asumsikan anda sudah terbiasa menggunakan tool hebat ini).
  2. Siapkan tabel dengan nama tb_buku (field : id_buku, judul_buku, stok_buku).
    CREATE TABLE IF NOT EXISTS `tb_buku` (
    `id_buku` varchar(10) NOT NULL,
    `judul_buku` varchar(50) DEFAULT NULL,
    `stok_buku` year(4) DEFAULT NULL,
    PRIMARY KEY (`id_buku`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  3. Insert-kan beberapa sample data ke dalam tb_buku.
    INSERT INTO `tb_buku` (`id_buku`, `judul_buku`, `stok_buku`) VALUES
    ('1', 'Mencari Tombol Tab', 2003),
    ('2', 'Guna Guna dari Raja', 2033);
  4. Ok, we’re done with database !
Step 4 : Bekerja dengan CI
  1. Membuat model. Ketikkan script berikut ini
    <?php
    class Buku_model extends Model {
    function Buku_model()
    {
    parent::Model();
    }
    db->select('*');
    $this->db->from('tb_buku');
    $this->db->order_by('id_buku','DESC');
    $data = $this->db->get('');
    return $data;
    }
    }
    ?>
  2. Simpan dengan nama buku_model.php. Simpan dalam folder system-application-models
  3. Membuat Controller. Ketikkan script berikut ini,
    <?php
    class Buku_con extends Controller {


    public function Buku_con()
    {
    parent::__construct();
    $this->load->model('buku_model');
    }

    public function getBuku () {
    $data['title'] = 'menampilkan isi buku';
    $data['detail'] = $this->buku_model->getBuku();
    $this->load->view('buku_view', $data);
    }
    }
    ?>
  4. Simpan dengan nama buku_con.php. Simpan dalam folder system-application-controller
  5. Membuat View. Ketikkan script,
    <h4>Data Buku</h4>
    <?php foreach($detail->result() as $rows) :
    echo $rows->id_buku; echo "<br>";
    echo $rows->judul_buku; echo "<br>";
    echo $rows->stok_buku; echo "<br>";
    endforeach
    ?>
  6. Simpan dengan nama buku_view.php. Simpan dalam folder system-application-view
  7. Nah. Kita sudah membuat sebuah fungsi untuk menampilkan data dari database dengan controller, model, dan view. Sekarang masuk ke browser anda.
  8. Ketikkan http://localhost/ci/buku_con/getBuku/. Dan… TADAAAA
  9. Data Buku dari Database
  10. Anda sudah boleh tidur setelah melihat gambar seperti diatas J
Step 5 : Menyiapkan kopi ketiga dan membuka Yahoo! Messenger

http://itx.web.id/php/bermain-dengan-code-igniter-full-instalasi-hingga-akses-database/
Studi Kasus : Membuat form combobox dengan isian dinamis dari database (mysql)
Kebutuhan : Webserver Packages, already installed.
Combobox merupakan salah satu element form yang sering digunakan dalam aplikasi – aplikasi pendaftaran, pada umumnya combobox digunakan untuk memilih salah satu option dimana terdapat banyak option yang ada. Value dalam combobox sebenarnya dapat ditulis langsung dalam html, namun, bagaimana jika data yang ingin ditampilkan sangat banyak atau tergantung pada kondisi tertentu?
Misalkan, kita ingin menampilkan pilihan kota – kota yang ada dalam negara Indonesia, maka kota yang ditampilkan juga merupakan kota yg berada dalam Indonesia.
Misalkan, user ternyata berasal dari Inggris, maka kota yang ditampilkan juga merupakan kota yg berada dalam negara Inggris.
Kita memerlukan combobox dinamis.
Ok, langsung praktik saja.
Step 1 : Persiapkan Database
  1. Buat database dengan nama db_tutorial
  2. Siapkan tabel dengan nama tb_kota, dengan struktur tabel seperti gambar dibawah ini.
  3. Insert kan beberapa sample data, seperti gambar dibawah
  4. Done!
Step 2 : Persiapkan Folder Kerja
  1. Buat folder dengan nama tutorphp dalam document root anda
  2. Simpan semua file dalam tutorial ini dalam folder tersebut.
Step 3 : Membuat script koneksi ke Database
  1. Ketikkan script berikut,
    <?php
    $host = "localhost";
    $user = "root";//adjust according to your mysql setting
    $pass = ""; //adjust according to your mysql setting, i use no password here
    $dbName = "db_tutorial";
    mysql_connect($host, $user, $pass);
    mysql_select_db($dbName)
    or die ("Connect Failed !! : ".mysql_error());
    ?>
    
  2. simpan dengan nama connect.php
Step 4 : Membuat form combobox dinamis
  1. Ketikkan script berikut,
    <form name='form' method='post' action='prosescombo.php'>
    <h3> Choose Your City</h3>
    <select name="kota">
    <option value=0 selected>- city -</option>
    <?php
    include 'connect.php';
    $q = mysql_query("select * from tb_kota where negara = 'Indonesia' "); //choose the city from indonesia only
    
    while ($row1 = mysql_fetch_array($q)){
      echo "<option value=$row1[kota]>$row1[kota]</option>";
    }
    ?>
    </select>
    <input type="submit" name="submit" value="Submit">
    </form>
    
  2. simpan dengan nama formcombo.php
Step 5 : Membuat menampilkan pilihan

  1. Ketikkan script berikut,
    <?php
    $kota = $_POST['kota'];
    
     if ($kota == '0') {
      echo "anda belum memilih";
     } else
      echo "anda memilih ".$kota;
    ?>
    
  2. simpan dengan nama prosescombo.php
Step 6 : Testing Code
  1. Pergi ke http://localhost/tutorphp/formcombo.php. Anda akan melihat form seperti dibawah. Pilih salah satu option (Disini saya memilih Solo)
  2. Klik Submit dan anda akan melihat hasilnya

Source : http://itx.web.id/php/membuat-form-combobox-dinamis-dari-database-mysql-dengan-php/
Studi Kasus : Membuat script untuk pencarian data dalam database
Kebutuhan : Webserver Packages, already installed.
Searching, merupakan fasilitas yang hampir selalu ada dalam setiap aplikasi, baik aplikasi berbasis web ataupun desktop. Setiap halaman web/ blog juga akan ditemukan fasilitas ini. Tutorial berikut akan memberikan konsep dasar dari searching, dengan melakukan pencarian pada data terstruktu (database).
Ok, langsung praktik saja.
Step 1 : Persiapkan Database
  1. Buat database dengan nama db_tutorial
  2. Siapkan tabel dengan nama tb_student, dengan struktur tabel seperti gambar dibawah ini.
  3. Insert-kan beberapa sample data, misal seperti gambar dibawah,
  4. Done with the database!
Step 2 : Persiapkan Folder Kerja
  1. Buat folder dengan nama searching dalam document root anda
  2. Simpan semua file dalam praktikum ini dalam folder tersebut.
Step 3 : Membuat script koneksi ke DB
  1. Ketikkan script berikut,
    <?php
    $host = "localhost";
    $user = "root";
    $pass = "";
    $dbName = "db_tutorial";
    mysql_connect($host, $user, $pass);
    mysql_select_db($dbName)
    or die ("Connect Failed !! : ".mysql_error());
    ?>
    
  2. simpan dengan nama connect.php
  3. Penjelasan : Script ini akan digunakan untuk menghubungan aplikasi kita dengan database db_tutorial. Sesuaikan username dan password dengan setting-an mysql anda.
Step 4 : Membuat form pencarian
  1. Ketikkan script berikut,
    <html>
    <head>
    <title> Halaman Pencarian </title>
    </head>
    <body>
    <form name="formcari" method="post" action="search_exe.php">
    <table width="330" border="0" align="center" cellpadding="0">
    <tr bgcolor="orange">
    <td height="25" colspan="3">
    <strong> Student Searching ! </strong>
    </td>
    </tr>
    <tr> <td>  Name </td>
    <td> <input type="text" name="name"> </td>
    </tr>
    <td></td>
    <td> <input type="SUBMIT" name="SUBMIT" id="SUBMIT" value="search" > </td>
    </table>
    </form>
    </body>
    </html>
    
  2. simpan dengan nama formsearching.php
  3. Penjelasan : script diatas adalah HTML script biasa yang akan menampilkan form. Perhatian bagian action="search_exe.php", bagian ini dimaksudkan bahwa form akan diproses oleh script search_exe.php
Step 5 : Membuat script pemrosesan dan menampilkan hasil searching

  1. Ketikkan script berikut,
    <?php
    include "connect.php";
    $name= $_POST['name']; //get the nama value from form
    $q = "SELECT * from tb_student where name like '%$name%' "; //query to get the search result
    $result = mysql_query($q); //execute the query $q
    echo "<center>";
    echo "<h2> Hasil Searching </h2>";
    echo "<table border='1' cellpadding='5' cellspacing='8'>";
    echo "
    <tr bgcolor='orange'>
    <td>No</td>
    <td>Nama Mahasiswa</td>
    <td>Alamat</td>
    </tr>";
    while ($data = mysql_fetch_array($result)) {  //fetch the result from query into an array
    echo "
    <tr>
    <td>".$data['no']."</td>
    <td>".$data['name']."</td>
    <td>".$data['address']."</td>
    </tr>";
    }
    echo "</table>";
    ?>
    
  2. simpan dengan nama search_exe.php
  3. Penjelasan dapat dilihat di script comment
Step 6 : Testing Code
  1. Pergi ke http://localhost/searching/formsearching.php. Anda akan melihat form seperti dibawah,
  2. Masukkan nama pada field nama (misal nama yang telah diinsert ke DB, yaitu june)
  3. Klik tombol search dan anda akan melihat hasilnya
Source : http://itx.web.id/php/tutorial-searching-pencarian-data-dengan-php-dan-mysql/