Contoh Projek Sederhana CodeIgniter 3 CRUD & Cetak Laporan

Pada postingan ini saya akan sharing sebuah projek sederhana yang menggunakan framework CodeIgniter versi 3. Dalam projek ini terdapat proses insert, update dan delete dan menggunakan 3 buah tabel. selain itu, pada projek ini merupakan implementasi dari sebuah aplikasi penjualan.

Namun perlu diingat lagi bahwa projek ini masih teramat sangat sederhana karena yang ditekankan pada projek ini adalah bagaimana alur pemrosesan data pada codeigniter bukan kecanggihan tau fitur aplikasinya. Adapun beberapa hal yang ada di projek ini adalah sebagai berikut :

1. Menggunakan Codeiniter versi 3.1.5
2. Menggunakan 3 buah tabel pada database
3. Terdapat proses Insert, Update Delete
4. Terintegrasi FPDF & dapat mencetak laporan menjadi PDF
5. Menggunakan Plugin DataTable
6. Terdapat proses Login dan Logout.
7. Templating
Contoh Projek Sederhana CodeIgniter 3 CRUD & Cetak Laporan

Dengan menggunakan projek ini teman-teman akan belajar banyak hal yang salah satunya sudah saya sebutkan pada paragraf pertama diatas. Contoh screen shotnya seperti gambar diatas.

Pada projek sederhana ini teman-teman dapat belajar bagaimana mengintegrasikan dan menggunakan Class FPDF kedalam framework Codeiniter;

Pada projek sederhana ini teman-teman akan belajar bagaimana proses login dan logout pada codeigniter;

Pada projek sederhana ini teman-teman akan belajar menggunakan plugin datatable pada codeigniter;

Pada projek sederhana ini teman-teman akan belajar bagaiamana alur dan proses pembuatan templating pada codeigniter;

Pada projek sederhana ini juga teman-teman akan belajar bagaimana memasang template admin (bootstrap) pada framework codeigniter.

Silahkan Download Projek dan Databasenya Disini.

Aplikasi Kirim SMS dengan PHP dan Gammu

SMS Gateway saat ini bisa dikatakan sudah menjadi sebuah kebutuhan dalam sebuah aplikasi. Lihat saja facebook, twitter, line, whatsapp, gmail dan aplikasi-aplikasi sosial media yang lain hampir semua menggunakan nomor handphone dan media sms untuk melakukan pendfaftaran dan verifikasi pendaftaran. Hal ini memeang lebih efektif karena kepemilikan sebuah Handphone yang sifatnya personal. Selain aplikasi sosmed, Aplikasi internet banking juga menggunakan media sms untuk memvalidasi transaksi yang dilakukan nasabahnya, Anggap saja seorang nasabah ingin melakukan transfer, maka kode mToken akan dikirimkan melalui sms ke nomor handphone nasabah yang bersangkutan. Pemberitahuan/Notifikasi juga dikirimkan melalui sms.

Aplikasi SMS Gateway saat ini sudah banyak dikembangkan oleh developer. salah satunya implementasinya yang cukup dikenal orang adalah Gammu. Gammu merupakan sebuah aplikasi yang dikembangkan oleh michal chihar, aplikasi ini dapat digunakan untuk mengelola fungsi-fungsi yang ada pada modem, handphone dan perangkat sejenis lainnya. Adapun fungsi yang dapat dikelola diantaranya adalah fungsi pengiriman sms, manajemen kontak dan sebagainya. Kita dapat memanfaatkan gammu untuk berkomunikasi dengan perangkat pengirim sms. Gambar dibawah ini adalah cara kerja gammu.

Aplikasi Kirim SMS dengan PHP dan Gammu

Gammu, dapat diintegrasikan dengan berbagai bahasa pemrograman termasuk PHP, Java, Python, Pascal/Delphi atau VB karena pada dasarnya Gammu adalah sebuah service pada komputer yang berjalan dibalik layar untuk berkomunikasi dengan perangkat. Jadi untuk dapat menggunakan gammu dengan maksimal anda harus memiliki perangkat pengirim sms yang sudah terhubung ke komputer. saya menyarankan anda menggunakan modem. pada contoh ini saya menggunakan modem huaweii. Sebelum kita mulai mengkonfigurasi gammu, silahkan download gammu disini. dan databasenya disini. Setelah selesai silahkan install gammu dikomputer anda.

Sampai langkah ini, kita sudah berhasil menginstall gammu di windows. kita perlu melakukan sedikit konfigurasi agar gammu dapat berjalan dengan baik. Pastikan modem anda sudah terhubung ke komputer.

1. Edit File gammurc yang ada di c:\gammu\gammurc

; isikan nomor port di bawah ini (lihat di device manager PORTS (COM & LPT))
port = com9: 

; isikan jenis connection di bawah ini (lihat di website gammu (http://wammu.eu/phones/))
connection = at

Lakukan pengujian dengan mengetikan gammu identify. Hal ini bertujuan untuk mengetes koneksi perangkat pengirim sms dengan gammu. jika tampilan yang muncul seperti dibawah ini, maka gammu sudah terhubung dengan modem.

Aplikasi Kirim SMS dengan PHP dan Gammu

2. Buat sebuah database lalu import database gammu yang sudah download sebelumnya. Pada contoh disini yang akan digunakan adalah mysql.

3. Langkah berikutnya adalah mengedit konfigurasi smsdaemon. Hal ini bertujuan untuk konfiguasi gammu dengan database yang telah dibuat pada step 2. isi file konfigurasi file c:\gammu\smsdrc adalah sebagi berikut.

[gammu]
# isikan no port di bawah ini
port = com9:
# isikan jenis connection di bawah ini
connection = at 

# -----------------------------
# Konfigurasi SMS Daemon
# -----------------------------

[smsd]
service = mysql
logfile = smsdlog
debuglevel = 0
phoneid = PonselGammu
commtimeout = 10
sendtimeout = 10
deliveryreport = no
PIN = 1234

# -----------------------------
# Konfigurasi koneksi ke MySQL
# -----------------------------
pc = localhost
# isikan user untuk akses ke MySQL
user = root
# isikan password user untuk akses ke MySQL
password = 
# isikan nama database untuk Gammu
database = gammu

Sampai langkah ini kita sudah selesai melakukan konfigurasi gammu. Sebenarnya dengan konfigurasi ini saja, kita sudah bisa mengirim sms menggunakan gammu teknik ini disebut dengan sms inject. anda dapat mengujinya dengan menggunakan perintah sebagai berikut pada command prompt. 

gammu sendsms TEXT 087765927xxx -text "ISI SMSNYA"

Berbekal informasi tersebut, dengan menggunakan PHP, Perintah gammu tersebut dapat kita terapkan menggunakan fungsi exec(), shell_exec(). contohnya menggunakan source code sederhana ini. 

<form method="post" action="">
No. HP Tujuan : <input type="text" name="hp" value="+62"><br>
Pesan : <textarea name="pesan"></textarea><br>
<input type="submit" name="kirim" value="Kirim SMS">
</form>

<?php
if (isset($_POST['kirim'])){
$hp = $_POST['hp'];
$pesan = $_POST['pesan'];
exec('c:gammugammu sendsms TEXT '.$hp.' -text "'.$pesan.'"');
}

?>

Selain menggunakan teknik sms inject diatas, ada cara lain untuk mengirim sms menggunakan gammu yaitu dengan menginputkan data ke tabel outbox. namun demikian, hal ini dapat berjalan dengan baik hanya jika service gammu sudah berjalan. Untuk manajemen service gammu termasuk menginstall, uninstall, menjalankan dan menghentikan digunakan perintah dibawah ini. Jalankan perintah dibawah ini menggunakan command prompt didalam direktori gammu

; Install Service
gammu-smsd -c smsdrc -i

; Jalankan Service
gammu-smsd -c smsdrc -s

; Uninstall Service
gammu-smsd -u

; Stop Service
gammu-smsd -k

Seperti yang telah saya jelaskan diatas, bahwa jika smsdaemon sudah berjalan (service gammu), maka setiap sms yang masuk ke nomor yang ada dimodem/handphone akan otomatis dipindahkan ke tabel inbox database gammu, sedangkan untuk mengirim sms, dilakukan dengan menginputkan data ke tabel outbox. Jika source code kirim sms dengan teknik sms inject diatas dimodifikasi maka kurang lebih hasilnya seperti berikut

<?php 
$link = mysqli_connect("localhost","root","password","namadb");
?>
<form method="post" action="">
No. HP Tujuan : <input type="text" name="hp" value="+62"><br>
Pesan : <textarea name="pesan"></textarea><br>
<input type="submit" name="kirim" value="Kirim SMS">
</form>

<?php
if (isset($_POST['kirim'])){
$hp = $_POST['hp'];
$pesan = $_POST['pesan'];
mysqli_query($link,"INSERT INTO outbox (DestinationNumber,TextDecoded) VALUES ('".$hp."','".$pesan."')");
}

?>

Untuk melihat sms terkirim silahkan lihat di tabel sentitems, untuk melihat sms masuk cek di tabel inbox. Mari Berdiskusi jika masih ada yang kurang jelas. happy coding. :)

Memahami Alur Pemrosesan Data Pada Codeigniter

Aplikasi website dibangun dan dikembangkan untuk menyederhanakan dan memudahkan setiap proses yang masih dikerjakan secara manual. Sebut saja aplikasi pengurusan KRS Online dan semacamnya. Dalam sebuah aplikasi website, baik dibangun menggunakan gaya prosedural, OOP atau menggunakan framewrok, pasti terdapat minimal sebuah aksi untuk melakukan pemrosesan data. Alur pemrosesan data tentu saja berbeda pada setiap teknik yang digunakan. Hal ini yang kadang-kadang membuat programmer yang terbiasa dengan teknik prosedural malas untuk mempelajari sebuah framework karena kebanyakan framework menggunakan teknik Objek Oriented Programming.

Berbicara tentang framework, saat ini banyak sekali framework yang dikembangkan oleh developer. Semua tentu saja memiliki kelebihan dak kekurangan masing-masing. Salah satu framework yang cukup terkenal adalah codeigniter atau yang juga akrab dipanggil ci. Menurut kebanyakan orang, framework ini tergolong mudah untuk digunakan, mendukung banyak library dan helper yang siap digunakan sehingga framework ini kerap menjadi pilihan. Untuk mendapatkan Codeigniter anda dapat mendownloadnya disini.

Memahami Alur Pemrosesan Data Pada Codeigniter

Codeigniter adalah framework yang menggunakan teknik MVC dalam pemrosesan data. MVC merupakan singkatan dari Model View Controller. Secara sederhana, dalam penerapannya, Model adalah Class yang bertugas untuk berkomunikasi dengan database, View merupakan Layout dari halaman website pada View inilah tampilan halaman website diatur, sedangkan Controller merupakan Class yang bertugas untuk menghandel setiap aksi yang dilakukan oleh user. Ambil contoh, seorang pengguna website mengisi form dan mengklik tombol simpan pada sebuah halaman website. Maka alur pemrosesannya adalah sebagai berikut (pastikan anda sudah mengatur config, database, routes dan autoload) :

1. Tampilan Halaman Website diatur oleh View Termasuk tombol close dan form input. pada halaman View ini diberikan sebuah aksi yang akan mengarah ke Controller. berikut adalah contoh source codenya. view ini kita simpan didalam folder view dengan nama belajar

<form method="post" action="<?php echo base_url();?>index.php/belajar/simpan">
  <p><input type="text" name="nama"/></p>
  <p><input type="text" name="email"/></p>
  <p><input type="submit" name="simpan" value="Simpan"/></p>
  </form>

Dari Source code diatas, dapat kita baca maksudnya bahwa terdapat sebuah form yang berisi input nama dan email, form tersebut memiliki sebuah tombol simpan yang jika diklik akan diarahkan ke controller belajar dan fungsi simpan. adapun base_url() adalah alamat url website yang dikonfigurasi dari config.

2. Controller bertugas untuk menangani setiap aksi dari user. pada contoh diatas aksi yang akan dilakukan oleh user adalah mengklik tombol simpan. Berikut adalah contoh source code dari controller yang menangani proses simpan dari form diatas. 

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class belajar extends CI_Controller {
 
 function __construct(){
  parent ::__construct();
  $this->load->model("msimpan");
 }

 public function index(){
  $this->load->view('belajar');
 }
 
 function simpan(){
 $nama = $this->input->post('nama'); 
 $email = $this->input->post('email'); 
 $simpan = $this->msimpan->simpan($nama, $email);
  if ($simpan){
   echo "Data Tersimpan";
  } else {
   echo "Data Gagal Disimpan";
  }
 }
}

Perhatikan bahwa code diatas adalah class yang akan menangangi aksi simpan dari form view diatas. adapun nama classnya adalah belajar. Pada class tersebut terdapat tiga buah fungsi yaitu construct yang ditujuan untuk meload class model pada contoh diatas model yang akan diload adalah msimpan. selanjutnya fungsi index. fungsi ini digunakan untuk meload view belajar dan fungsi simpan yang bertugas untuk berkomunikasi dengan fungsi simpanmodel dengan mengirimkan parameter berupa data yang akan disimpan ke database.

3. Model adalah class yang bertugas untuk berkomunikasi dengan database entah itu melakukan perintah query termasuk simpan, update, delete dan semacamnya. pokoknya tugas model hanya berkomunikasi dengan database. contoh model untuk menyimpan data adalah sebagai berikut.  

<?php defined('BASEPATH') OR exit('No Direct Script Access Allowed');

class msimpan extends CI_Model{
 
 function simpanmodel($nama,$email){
 $data = array(
   'nama'=>$nama,
   'email'=>$email,
   );
   
 $query = $this->db->insert('coba',$data);
 
 if (!$query){
  
  return FALSE;
 
 } else {
 
 return TRUE;
 
 }
 
 }
}

Dari Source code diatas, dapat kita pahami maksudnya bahwa class tersebut bernama msimpan dan memiliki sebuah fungsi simpanmodel dengan dua buah parameter yaitu nama dan email adapun nilai parameter ini diperoleh dari controller. parameter tersebut selanjutnya disimpan kedalam variabel array. perhatikan bahwa pada array tersebut string selain nilai parameter harus sama dengan field tabel database. Kemudian proses simpan data dilakukan ke tabel coba dengan data array. Jika proses simpan berhasil dilakukan maka return value bernilai TRUE, sebaliknya bernilai FALSE. Nilai inilah yang ditangkap oleh Codeigniter.

Jika ada yang masih kurang jelas, mari berdiskusi. Postingan ini akan saya lanjutkan untuk dapat menampilkan, mengubah dan menghapus data. Stay Tune. Happy Coding. 

Membuat Laporan dari Database dengan mPDF PHP

Bisa dikatakan adanya sebuah laporan pada aplikasi berbasis database adalah sebuah keharusan. Baik pada aplikasi desktop, website atau client server. Fasilitas Laporan pada aplikasi merupakan sebuah utilitas yang digunakan sebagai bentuk penyampaian informasi yang ada pada database ataupun aplikasi. Ambil contoh pada aplikasi penjualan yang tentu saja memiliki data barang, data transaksi penjualan dan sebagainya. Dengan menambahkan fasilitasi laporan seorang pengguna aplikasi tentu saja dapat melihat informasi data barang atau data transaksi penjualan berdasarkan tanggal tertentu yang tentu saja dapat dicetak jika diperlukan.

Membuat Laporan dari Database dengan mPDF PHP

Setiap bahasa pemrograman memiliki tool tersendiri dalam membuat report atau laporan. Tool yang untuk membuat laporan di bahasa pemrograman A tentu saja tidak akan dapat digunakan pada bahasa pemrograman B kecuali menggunakan tool pihak ketiga. Dalam PHP sendiri, tersedia banyak class dan library untuk membuat laporan kedalam bentuk PDF salah satunya adalah class mPDF. Class ini disediakan gratis dan open source. anda dapat mendownloadnya disini.

Seperti penjelasan di situs resminya, penggunaan mPDF sangatlah mudah, extrack dan copy ke htdocs/www jika anda menggunakan localhost. Bahkan untuk penggunaanyapun terdapat beberapa contoh yang sudah ada didalam folder example. dari contoh-contoh tersebut terlihat bahwa cara kerja mpdf ini adalah dengan mendefinisikan tag html pada variabel php kemudian menyisipkan string tersebut kedalam file pdf. Pada contoh disini saya akan membuat sebuah laporan dari tabel database menggunakan mPDF. Terlihat data pada tabel database saya seperti berikut ini :

Membuat Laporan dari Database dengan mPDF PHP

Data pada tabel siswa tersebut tersimpan didatabase saya dan akan saya tampilkan kedalam laporan data siswa yang dibuat menggunakan mPDF. Source code yang saya gunakan adalah sebagaimana dibawah ini. Hasilnya kurang lebih seperti gambar pertama diatas.

<?php

require_once("koneksi.php");

$html = '
<h2 style="text-align:center; ">Membuat Laporan Dari Database Menggunakan mPDF</h2>
<h4 style="margin-top: 10pt; text-align:center; margin-collapse:collapse;">Laporan Data Siswa</h4>

<table style="width:100%" class="bpmTopicC">
 <!-- Ini Header Tabelnya -->
 <thead>
 <tr style="text-align:left" class="headerrow">
 <th>NIS Lokal</th>
 <th>NISN</th>
 <td>Nama Siswa</td>
 <td>Tempat Lahir</td>
 <td>Tgl Lahir</td>
 <td>Kelamin</td>
 <td>No KK</td>
 </tr>
 </thead>
 <!-- Ini Body Tabelnya -->
 <tbody>';
 // Tampilkan Data Dari Tabel Siswa
 $no=1;
 $sql = mysql_query("select * from siswa");
 while ($data = mysql_fetch_array($sql)){  
  $html .= '<tr class="'; if (($no % 2) == 0){ $html.="evenrow"; } else { $html.="oddrow"; } $html.='">';
  $html .= '<th>'.$data['nis_lokal'].'</th>';
  $html .= '<th>'.$data['nisn'].'</th>';
  $html .= '<th>'.$data['nama_siswa'].'</th>';
  $html .= '<th>'.$data['tempat_lahir'].'</th>';
  $html .= '<th>'.$data['tanggal_lahir'].'</th>';
  $html .= '<th>'.$data['jenis_kelamin'].'</th>';
  $html .= '<th>'.$data['no_kk'].'</th>';
  $html .= '</tr>';
 $no++;
 }
$html .= '</tbody></table>';

include("mpdf/mpdf.php");
$mpdf = new mPDF('c','A4','','',32,25,27,25,16,13); 
$mpdf->SetDisplayMode('fullpage');
$mpdf->list_indent_first_level = 0; 
$stylesheet = file_get_contents('mpdf/mpdfstyletables.css');
$mpdf->WriteHTML($stylesheet,1);
$mpdf->WriteHTML($html,2);
$mpdf->Output('laporan-dengan-mpdf.pdf','I');
exit;

?>

Show Hide Div Berdasar ID atau CLASS Menggunakan JQuery

Dalam dunia pemrograman website, seorang programmer dituntut untuk mengerti paling tidak dua bahasa pemrograman yaitu client side scripting dan server side scripting. keduanya sangat diperlukan untuk menjadikan aplikasi website menjadi lebih interaktif. Untuk client side scripting yang banyak digunakan oleh programmer adalah Javascript.

Saya ingin mengajak teman-teman untuk melihat contoh kasus website yang dibangun murni menggunakan bahasa server side (PHP/JSP/ASP) atau penggabungan server side dan client side. Untuk membedakannya mudah saja. Untuk website yang murni menggunakan pemrograman server side, akan memerlukan reload/refresh halaman untuk melakukan setiap aksinya, seperti pemrosesan data jika button simpan diklik dan semacamnya. berbeda dengan website yang dibangun dengan  menggabungkan pemrograman server side dan client side scripting. Pemrosesan data tanpa melakukan refresh halaman sangat mungkin dilakukan. Maka dari itu, saya tertarik untuk membahas bagaimana menyembunyikan dan memunculkan div menggunakan Jquery karena hal ini tidak pernah lepas guna menjadikan website yang kita bangun menjadi lebih interaktif.

Show Hide Div Berdasar ID atau CLASS Menggunakan JQuery

JQuery adalah library javascript yang dapat digunakan untuk menangani event handling, animasi dan manipulasi element HTML, pemrosesan data pada database menggunakan dapat menggunakan JQuery AJAX dan tentu saja tanpa refresh halaman. Disini saya akan mencontohkan penggunaan JQuery untuk menyembunyikan (hide) Div berdasarkan ID atau class nya serta bagaimana memunculkannya. Sebagai contoh berikut adalah coding sederhana untuk menghilangkan dan memunculkan DIV atau tag html lain berdasarkan ID atau classnya.

<html>
<head>
 <title>Show Hide DIV</title>
 <!-- 1. Meload JQuery -->
 <script src="jquery.js" type="text/javascript"></script>
</head>
 
 <!-- 2. Element HTML yang akan dipanggil menggunakan ID dan CLASS -->
 
 <input type="button" value="Hilangkan" id="hilangkan">
 <input type="button" value="Munculkan" class="munculkan">
 
 <div id="hilang">
  <p>Ini akan hilang jika anda mengklik tombol hilangkan di bawah dan akan muncul kembali
     jika anda mengklik tombol munculkan dibawah ini </p>
 </div>
 
 <!-- 3. Javascript untuk memunculkan dan menghilangkan -->
 <script type="text/javascript">
 
 $(document).ready(function(){
 
  $("#hilang").hide(); // Menyembunyikan Div Hilang berdasarkan ID
  $("#hilangkan").hide(); // Menyembunyikan Div Hilang berdasarkan ID
  
  // Jika tombol hilangkan diklik dipanggil berdasarkan ID
  $("#hilangkan").click(function(){
   $("#hilang").hide();
   $("#hilangkan").hide();
   $(".munculkan").show();
  });
  
  // Jika tombol munculkan diklik dipanggil berdasarkan CLASS
  $(".munculkan").click(function(){
   $("#hilang").show();
   $("#hilangkan").show();
   $(".munculkan").hide();
  });
 
 });
 </script>
</html>

Dari Source code diatas, ada beberapa yang sudah saya tandai menggunakan nomor. hal tersebut adalah penting agar script dapat berjalan sesuai keinginan. Tanda pertama adalah meload file JQuery yang kebetulan berada didalam folder yang sama dengan file source code diatas. jika anda belum memiliki jquery anda dapat mendownloadnya disini. Tanda kedua adalah membuat tag-tag HTML yang akan dihilangkan dan digunakan untuk menghilangkan dan memunculkan.

Terakhir adalah Script untuk menghilangkan dan memunculkan element HTML. Jika kita perhatikan baris code diatas (nomor 3 kebawah). Element HTML dengan id hilang dan hilangkan akan disembunyikan terlebih dahulu menggunakan fungsi hide(). Tombol hilangkan dipanggil berdasarkan IDnya untuk menghilangkan div hilangkan dan tombol munculkan dipanggil menggunakan CLASSnya untuk memunculkan div yang sudah disembunyikan. Pertahikan bahwa perbedaan dalam pemanggilannya terletak pada tanda yang digunakan yaitu menggunakan karakter pagar (#) untuk memanggil id dan titil (.) untuk memanggil class.   

Insert, Update dan Delete Dengan MSQLI PHP

Tidak ada kata sempurna pada karya manusia oleh karenanya pengembangan terus dilakukan selama itu diperlukan. lebih-lebih dibidang teknologi informasi. telah berkembang sangat pesat. dalam hal ini, kita dapat mengambil contoh pada teknologi yang ada seperti bahasa server side Hypertext Processor atau yang lebih dikenal dengan nama PHP. Dari waktu ke waktu terus dikembangkan oleh para developer seluruh dunia bersama-sama secara terus menerus merilis versi yang lebih baru. hal ini dimaksudkan untuk tetap menjaga stabilitas dan melengkapi kekurangan-kekurangan yang ada.

Sejak pertama kali dirilis oleh sang pendiri Rasmus Lerdorf, sampai saat ini telah mengalami banyak perbaikan dan perubahan. sehingga suatu misal jika seorang developer telah mengembangkan aplikasi beberapa tahun lalu menggunakan versi PHP yang lama dan hendak dijalankan menggunakan PHP Interpreter yang lebih baru, bisa saja akan terdapat banyak error karena ada fungsi yang dihapus atau diganti dengan yang lebih baru.

Begitu juga dengan fungsi-fungsi yang khusus untuk berkomunikasi dengan database MYSQL, menurut website resmi PHP, ada beberapa fungsi yang akan segera berstatus Deprecated (Usang) atau tidak dikembangkan lagi. sehingga saya sangat menyarankan anda untuk segera migrasi ke yang lebih baru agar source code anda nantinya dapat berjalan di PHP yang baru. Berikut akan saya contohkan penggunaan fungsi mysqli() yang akan menggantikan fungsi mysql().

Menurut situs resminya, penulisan code mysqli, dapat dilakukan dengan 2 cara yaitu secara prosedural dan secara OOP (Objek Oriented Programming). Sama saja. Hal ini tergantung kenyamanan seorang programmer dan gaya penulisan code yang digunakan. saya sendiri lebih suka menggunakan gaya prosedural. adapun penulisan code mysql() dengan mysqli() tidaklah jauh berbeda, hanya menambahkan huruf i setelah kata mysql. sehingga setiap fungsinya kurang lebih akan menjadi seperti berikut ini. 

$host = "localhost";
$user = "root";
$pass = "";
$db = "nama_db";
$sql = "SELECT * FROM data";

mysql_connect($host,$user,$pass); berubah menjadi $con = mysqli_connect($host,$user,$pass,$db);
mysql_select_db($db); tidak perlu menggunakan ini di mysqli
$query = mysql_query($sql); berubah menjadi $query = mysqli_query($con, $sql);
mysql_num_rows($sql); berubah menjadi mysqli_num_rows($con, $sql);
mysql_fetch_array($query); berubah menjadi mysqli_fetch_array($query, MYSQLI_BOTH);

Jika kita perhatikan terdapat beberapa perubahan disana yaitu penambahan parameter pada setiap
fungsi yaitu 

1. Fungsi mysqli_connect() : penambahan parameter nama database sehingga tidak perlu lagi menggunakan fungsi mysql_select_db()
2. Fungsi mysqli_query() dan mysqli_num_rows() : penambahan parameter variabel koneksi didepan string query
3. Fungsi mysqli_fetch_array() : penambahan parameter MYSQLI_ASSOC/MYSQLI_BOTH sebagai pendefinisian dengan apa data pada tabel database akan dipanggil apakah dengan nama field, nomor field atau keduanya

Saya kira sampai disana anda sudah memiliki gambaran. sebeneranya masih banyak fungsi-fungsi mysqli yang lain yang tidak dapat saya jelaskan satu persatu disini. tapi inti dari perubahan pada fungsi-fungsi yang sering kita gunakan sudah saya jelaskan diatas. Meski begitu, rasanya kurang afdol jika tanpa contoh studi kasus source code langsung. jadi mari kita mulai. Pada DBMS MySQL saya memiliki sebuah database dengan nama mysqli_belajar dengan sebuah tabel biodata sebagai berikut

Insert, Update dan Delete Dengan MSQLI & PHP

Selanjutnya, dengan informasi terbesut saya akan membuat sebuah proses input, update dan delete kedalam tabel database menggunakan PHP dan MYSQLI. Pertama-tama saya buat dulu file koneksinya sebagai berikut.

<?php 
$host = "localhost";
$user = "root";
$pass = "";
$db = "mysqli_belajar";

$con = mysqli_connect($host,$user,$pass,$db); 

if ($con->connect_error){
 die("Koneksi Ke MySQL GAGAL!");
}

?>

Kemudian saya membuat sebuah form input yang akan digunakan oleh user untuk mengisikan biodatanya lalu mengklik tombol simpan untuk proses penyimpanan, tombol update untuk proses edit data. pada halaman ini juga data akan ditampilkan untuk dapat di edit dan dihapus oleh user. adapun source code lengkapnya adalah sebagai berikut. 

<title>INSERT UPDATE & DELETE dengan FUNGSI MYSQLI</title>

<?php 
require_once("koneksi.php"); 
// Jika Edit diklik 
if (isset($_GET['id'])){
 $id = $_GET['id'];
 $sql = mysqli_query($con,"SELECT * FROM biodata WHERE id='".$id."'"); 
 if ($sql){
  $dataid = mysqli_fetch_row($sql);
  $button = "update";
  $nama = $dataid[1];
  $pass = $dataid[2];
 }
 } else {
  $button = "simpan"; 
  $nama = "";
  $pass = "";
 }
 
// Jika Hapus diklik
if (isset($_GET['hapus'])){
 $id = $_GET['hapus'];
 $sql = mysqli_query($con,"DELETE FROM biodata WHERE id='".$id."'"); 
 if ($sql){
  echo "<script>alert('DATA BERHASIL DIHAPUS'); window.location.href='index.php';</script>";
 } else {
  echo "<script>alert('DATA GAGAL DIHAPUS'); history.go(-1);</script>";
 } 
}
?>

<form method="post" action="">
 <input type="text" name="user" value="<?php echo $nama; ?>"/> </br>
 <input type="password" name="pass" value="<?php echo $pass; ?>" /> </br>
 <input type="submit" name="<?php echo $button; ?>" Value="SIMPAN"/> </br> </br>
</form>

<?php 
// Proses Simpan
if (isset($_POST['simpan'])){
$user = htmlentities($_POST['user']);
$pass = htmlentities($_POST['pass']);
$sql = mysqli_query($con,"INSERT INTO biodata (id,user,pass) VALUES ('','".$user."','".$pass."')"); 
 if ($sql){
  echo "DATA BERHASIL DISIMPAN";
 } else {
  die("GAGAL GAGAL DISIMPAN");
 } 
} 
// Proses Update
else if (isset($_POST['update'])){
$user = htmlentities($_POST['user']);
$pass = htmlentities($_POST['pass']);
$id = htmlentities($_GET['id']);
$sql = mysqli_query($con,"UPDATE biodata SET user='".$user."',pass='".$pass."' WHERE id='".$id."'"); 
 if ($sql){
  echo "DATA BERHASIL DIPERBARUI";
 } else {
  die("DATA GAGAL DIPERBARUI");
 } 
} ?>

<?php
// Proses MENAMPILKAN Data  
$sql = mysqli_query($con,"SELECT * FROM biodata"); 
 
 if ($sql){
  echo "<table border='1px'>";
  echo "<tr><td>No</td><td>Nama</td><td>Password</td><td>Aksi</td></tr>";
  while ($tampil = mysqli_fetch_row($sql)){
  echo "<tr><td>$tampil[0]</td><td>$tampil[1]</td><td>$tampil[2]</td><td><a href='index.php?id=$tampil[0]'>Edit</a> | <a href='index.php?hapus=$tampil[0]'>Hapus</a></td></tr>"; 
  }
  echo "</table>";
 } else {
  die("GAGAL MENAMPILKAN DATA");
 }
 
 ?>