Membuat CRUD sederhana dengan Php Active Record dengan database mysql

Salaam, dalam tutorial kali ini saya akan membuat crud / create read update delete dengan php active record, keuntungan menggunakan php active record ini adalah kita tidak peru lagi menulis query database satu per satu, cukup dengan sintaks yang simple.

ini adalah foto untuk produk akhirnya, kita juga akan gunakan bootstrap agar tampilan apliaksinya lebih menarik, foto di bawah ini adalah hasil akhir dari project kita

 

Screenshot - 260815 - 20:55:53Screenshot - 260815 - 20:56:18

Oke sebelum kita mulai, hal pertama yang kta akan lakukan adalah mendownload php active record, agar lebih mudah kita bisa gunakan composer, buat sebuah folder web server anda, terus, kita buat file composer.json, lalu copykan ini

{
     "name": "activerecord/activerecord",
     "authors": [
       {
         "name": "zzz",
         "email": "zzz@zzz.com"
       }
     ],
     "require": {
         "php-activerecord/php-activerecord":"dev-master"
      }
}

untuk datanya anda bisa ganti terserah, kecuali bagian require

setelah itu ketikan perintah “composer update”, tunggu hingga prosesnya selesai, setelah selesai maka akan muncul folder vender, jika anda tidak punya composer, anda bisa download di sini http://www.phpactiverecord.org/download, lalu copy kan php active recordnya ke folder project anda, namun saya menyarankan untuk menggunakan composer.

Saatnya kita coding sekarang, pertama, buat susunan folder dan file seperti ini

Screenshot - 260815 - 21:01:00


?php

require_once "vendor/autoload.php";
//require_once "php-activerecord/ActiveRecord.php"; jika anda mengcopy langsung tanpa composer

ActiveRecord\Config::initialize(function($cfg) {

 $cfg->set_model_directory('models'); // isikan nama folder yang akan memuat model yang akan kita gunakan
 $cfg->set_connections(array('development' =>
 'mysql://<username>:<password>@localhost/<nama db>')); // melakukan set host dan database yang digunakan, isi username dan password dataase anda, dan isikan nama database
});

?>

Kode diatas untuk melakukan set folder models, folder models ini akan kita gunakan untuk menyimpan file model kita, model ini berfungsi untuk mewakili tabel dalam suatu database, dalam kasus sekarang, maka Buku.php mewakili tabel buku, lalu pada kode selanjutnya, kta melakukan set username dan password pada database, dan juga nama database yang kita gunakan, lalu sekarang anda buat tabel dengan nama buku, strukturnya seperti ini

Screenshot - 260815 - 17:49:59

setelah itu buat Buku.php lalu simpan di folder models, kodenya seperti di bawah ini

<!- models/Buku.php ->


<?php

 class Buku extends ActiveRecord\Model {

     static $table_name = "buku"; // isikan nama tabel
     static $primary_key = "id"; //isikan colom primary key nya
 }

?>

lalu sekarang kita buat index.php, kita akan melakukan create data dari index.php, dan juga data yang ada akan ditampilkan di sini berupa tabel

<!- index.php ->


<?php


require_once "config.php";

$data = Buku::all();

?>


<!DOCTYPE html>
<html>
<head>
  <title>Php Active Record Sederhana</title>
  <link rel="stylesheet" href="bootstrap/css/bootstrap.css">
</head>
<body>


    <div class="container">
      <h1>Form Add</h1>
    <form action="insert.php" method="post">
      <div class="form-group">
        <label for="exampleInputEmail1">Nama Buku</label>
        <input type="text" class="form-control" id="nama" placeholder="Nama Buku" name="nama" required>
      </div>
      <div class="form-group">
        <label for="exampleInputPassword1">Harga</label>
        <input type="number" class="form-control" id="harga" placeholder="Harga" name="harga" required>
      </div>
      <div class="form-group">
        <input type="submit" class="btn btn-primary" value="Add This">
      </div>
    </form>

    </div>
    <div class="container">
      <h1>Buku</h1>

  <table class="table table-condensed">
    <tr>
      <th>id</th>
      <th>Nama</th>
      <th>Harga</th>
      <th>Edit</th>
      <th>Delete</th>
    </tr>

  <?php
    
    //tabe untuk menampilkan data 
            
    foreach($data as $buku) {

      echo "<tr>";
        echo "<td>" . $buku->id . "</td>";
        echo "<td>" . $buku->nama . "</td>";
        echo "<td>" . $buku->harga . "</td>";
        echo "<td>" . "<a class=\"btn btn-info\" href=\"edit.php?id={$buku->id}\">Edit</a>" . "</td>";
        echo "<td>" . "<a class=\"btn btn-danger\" onclick=\"return confirm('Apakah akan menghapus ini ?')\" href=\"delete.php?id={$buku->id}\">Delete</a>" . "</td>";
      echo "</tr>";

    }

   ?>

 </table>
    </div>
</body>
</html>


Mungkin bagi yang bingung, pada baris kode

href=\”edit.php?id={$buku->id}\”

ini maksudnya kita akan membuka (GET method) edit.php dengan variable get berupa id, dengan value sesuai $buku->id, untuk lebih jelasnya, anda bisa googling mengenai variable get.

Sekarang kita buat insert.php ,  file ini bertugas untuk menyimpan data dari index.php, ketika kita klik submit button, maka akan dilakukan post ke insert.php


<?php

  require_once "config.php";

  $nama = $_POST['nama'];
  $harga = $_POST['harga'];

  $buku = new Buku; //melakukan inisiasi pada class Buku yang kita buat tadi di folder models
  $buku->nama = $nama; //properti nama di sini sesuai dengan nama kolom yang berada di tabel buku, kita hanya cukup memberikan nilai
  $buku->harga = $harga;
  $buku->save(); /melakukan save

  header('Location: index.php'); //setela melakukan save, maka akan diredirect kembali ke index.php, dan data yang yang dibuat akan langsung ditampilkan
?>


Sekarang kita buat edit.php, digunakan untuk mengedit data, kodenya seperti di bawah ini


<?php

require_once "config.php";


if (isset($_POST['nama']) && isset($_POST['harga']) && isset($_POST['id'])) {

  $id = $_POST['id'];
  $nama = $_POST['nama'];
  $harga = $_POST['harga'];

  $buku = Buku::find($id); // mencari record sesuai id yang ada di dalam hidden input
  $buku->nama = $nama; // memasukan data pada kolom nama
  $buku->harga = $harga;
  $buku->save();

  header('Location: index.php'); // redirect ke index.php

}

$id = $_GET['id']; //ketika anda 

$buku = Buku::find($id);



?>

<!DOCTYPE html>
<html>
<head>
  <title>Php Active Record Sederhana</title>
  <link rel="stylesheet" href="bootstrap/css/bootstrap.css">
</head>
<body>


    <div class="container">
      <h1>Form Edit</h1>
    <!-- actionnya ke file ini sendiri -->     
    <form action="edit.php" method="post">
      <div class="form-group">
    <!-- input ini tidak terlihat, dan menyimpan value id, yang nanti juga akan dipostkan -->
        <input class="form-control" value="<?php echo $buku->id; ?>" name="id" type="hidden"> 
        <label for="exampleInputEmail1">Nama Buku</label>
        <input type="text" class="form-control" value="<?php echo $buku->nama; ?>" placeholder="Nama Buku" name="nama" required>
      </div>
      <div class="form-group">
        <label for="exampleInputPassword1">Harga</label>
        <input type="number" class="form-control" value="<?php echo $buku->harga; ?>" placeholder="Harga" name="harga" required>
      </div>
      <div class="form-group">
        <input type="submit" class="btn btn-primary" value="Edit This">
      </div>
    </form>

    </div>

</body>
</html>





Pada edit.php, terdapat hidden input yang value-nya adalah id dari data yang akan kita edit, begitu kita klik submit, maka kode yang ada di dalam if di atas akan dijalankan, pada awalnya akan dicari dulu record berdasar $id, nilai dari $id ini didapat dari hidden input tadi, begitu ketemu, maka data aka disimpan berdasar name dan harga.

Sekarang, bagian terakhir, delete.php


<?php

require_once "config.php";

$id = $_GET['id']; //mengambl variable get id,  lalu dimasukan ke $id

$buku = Buku::find($id); //mencari record sesuai $id

$buku->delete(); //hapus record

header('Location: index.php'); //redirect ke index.php 

?>

delete.php sangat pendek sekali, jadi $id didapatkan dari variable get id (coba anda lihat di index.php, bagian delete), lalu mencari berdasar id, setelah ketemu langsung delete

Kode dalam tutorial ini memiliki banyak sekali kekurangan, contohnya adalah jika ada orang yang memanggil edit.php dengan id record yang tidak ada (misal : edit.php?id=1000), maka akan terjadi error, karena record dengan id=1000 tidak ada, jadi kode ini hanya untuk pembelajaran saja, masih banyak yang harus diperbaiki, dan saya hanya membuat tutorial untuk membuat crud sederhana saja. oke sekian dulu tutorial dari saya, semoga berguna.

Jika anda ingin bertanya sesuatu, anda bisa komen dibawah, untuk source codenya anda bisa download di https://github.com/akiu/crud-with-php-Active-Record

Iklan

PHP Basic : Multi dimensional Array

Multi dimensional Array adalah data tipe data array yang memiliki array di dalamnya.

<?php

$teman = array(‘cowok’ => array(‘sukarmin’, ‘sukarman’, ‘suratno’, ‘suritmin’),

‘cewek’ => array(‘sukarmi’, ‘surti’, ‘sukarti’, ‘sunarmi’)

);

?>

Contoh di atas simple, anda masih bisa menambahkan array lagi, sesuai keperluan.

Sekarang, kita akan melakukan loop ke array di atas

<?php

foreach($teman as $a_items => $b_items){

echo “<strong> . “$a_items . “</strong>” . “<br />”;

foreach($b_items as $c_items){

echo $c_items . “<br />”;

}

}

?>

Output

cowok
sukarmin
sukarman
suratno
suritmin
cewek
sukarmi
surti
sukarti
sunarmi

Referensi :

Melakukan installasi CMS Easyii di Virtual Host ubuntu 14.10 : LocalHost

a9d49fc2736a1afb54fb66fed125231eEasyii CMS adalah sebuah CMS yang dibangun menggunakan Yii2, merupakan kumpulan module yang sudah siap pakai, ada bermacam-macam module mulai dari shop, catalog, articles, news, shop cart, dll, sangat mempermudah kita dalam mendevelop website, kita tinggal memanfaatkan API yang tersedia, untuk mendevelop website dengan cms ini dibutuhkan kemampuan programming dan juga dasar-dasar OOP, jadi tidak seperti cms lain, seperti WordPress atau Joomla.

Dalam pertama melakukan installasi CMS ini saya mengalami kesulitan, namun kesulitan ini bisa teratasi, dan saya akan menuliskan cara installasinya, sehingga anda tidak mengalami kesulitan yang sama, mungkin bagi programer senior, artikel ini gak begitu perlu, khusus newbie.. 🙂

Easyii CMS memerlukan module mod_rewrite terinstall di Server Apache, karena pada Easyii ini prettyUrl-nya diaktifkan, jadi pertama anda harus mengaktifkannya terlebih dahulu

$ sudo a2enmod rewrite

lalu restart apache

$ sudo service apache2 restart

untuk memastikan apakah mod_rewrite ini sudah aktif apa belum, kita bisa membuat sebuah file info.php, buat filenya dengan isi

<?php

phpinfo();

?>

lalu buka di browser

jjbbjjbjbLihat, mod_rewrite sudah ter-load.

Sekarang anda buat sebuah virtual host di apache, kita tidak akan menginstall easyii di /var/www/html , untuk bagaimana caranya membuat virtual host, anda bisa membaca tutor yang saya buat di

https://indonesialinuxnoob.wordpress.com/2015/06/21/membuat-virtual-host-di-apache2-ubuntu-14-10-localhost/

Cuman kita akan tambahkan pada file configurasinya, /var/apache2/sites-avaible/<namadomain>.conf , dalam contoh ini

file saya /var/apache2/sites-avaible/shop.bit.conf , configurasi file nya sesuaikan dengan kemauan anda, lalu diantara tag <VirtualHost *:80> dan </VirtualHost> tambahkan baris ini


<Directory “/var/www/<namadomain>/public_html”>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>


Setelah itu anda bisa install file Easyii, anda bisa download file-nya di

http://easyiicms.com/docs/install

Anda bisa ambil easyii-shop atau easyii-start, copykan ke public_html tanpa folder, lalu rubah file configurasi di /app/config/web.php , isikan pada


components’ => [
‘request’ => [
// !!! insert a secret key in the following (if it is empty) – this is required by cookie validation
‘cookieValidationKey’ => ‘<isi random string di sini>‘,
],


lalu di /app/config/db.php , isikan nama DB dan username dan password


<?php

return [
‘class’ => ‘yii\db\Connection’,
‘dsn’ => ‘mysql:host=localhost;dbname=<nama db>‘,
‘username’ => ‘<username>‘,
‘password’ => ‘<password>‘,
‘charset’ => ‘utf8’,
‘tablePrefix’ => ”,
‘enableSchemaCache’ => true,
];

?>


Setelah itu buka domain yang anda buat tadi, klik install , isikan password root, email dan sebagainya, klik install, selesai, anda sudah bisa memulai mendevelop website dengan easyii

mmkkkmTampilan admin panel Easyii

Membuat Virtual Host di Apache2 Ubuntu 14.10 : Localhost

Untuk membuat sebuah virtual host di Ubuntu 14.10, maka pertama kali kita buat folder root untuk virtual hostnya, kita buat di /var/www/<namadomain>/public_html,  lalu kita copy file /etc/apache2/sites-avaible/000-default.conf , lalu anda rubah namanya menjadi nama domain yang anda inginkan misal abc.com.conf, 123.com.conf, terserah, sesuai kemauan anda, simpan di folder yang sama.

Buka file yang sudah anda rubah namanya tadi, lalu isikan sesuai teks di bawah ini


ServerAdmin admin@<namadomain.com>
ServerName <namadomain.com>
ServerAlias <www.namadomain.com>
DocumentRoot /var/www/<namadomain>/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined


Teks di atas harus diantara tag <VirtualHost *:80> dan </VirtualHost> .

Sekarang kita enable-kan domain yang kita buat tadi dengan perintah :

$ sudo a2ensite <namadomain>.conf

Sesuaikan dengan nama file yang anda buat tadi.

Sekarang kita restart Apache server-nya

$ sudo service apache2 restart

Sekarang kita edit file /etc/hosts , tambahkan baris seperti ini

127.0.0.1 <namadomain>

Sekarang anda bisa taruh file .php di /var/www/<namadomain>/public_html , lalu coba ketikan nama domain anda di browser

zzzzz

Lihat. aku buat domain di localhost bernama akiu.bit, bisa terbuka.

Referensi :

https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-14-04-lts

PHP Dasar : trim, ltrim, rtrim

# trim

Menghilangkan karakter dari sisi kanan dan kiri

contoh :

$str = “nama saya adalah doraemon”;
echo trim($str, “naon”);

output :

ma saya adalah doraem

# ltrim

Menghilangkan karakter dari sisi kiri

contoh :

$str = “nama saya adalah doraemon”;
echo ltrim($str, “nama”);

output :

saya adalah doraemon

#rtrim

Menghilangkan karakter dari sisi kanan

contoh :

$str = “nama saya adalah doraemon”;
echo rtrim($str, “emon”);

output :

nama saya adalah dora

Dasar PHP : Magic method __set dan __get

Mari kita lihat kode dibawah ini

{
if(!property_exists($this, $property))
{
echo “maaf, tidak ada property dengan nama {$property}” . ”
“;
}
}

public function __set($property, $value)
{

echo “anda melakukan set {$property} dengan value {$value}”;

}

}

$obj = new Sinchan;

$obj->mama;

$obj->caca = “xexexexe”;

?>

Output :

maaf, tidak ada property dengan nama mama
anda melakukan set caca dengan value xexexexe

To be continued.. 🙂

Cara membuat address Bitcoin offline di Ubuntu

Salaam … 😀

Dalam tutorial kali ini saya akan memberikan cara membuat address Bitcoin yang offline, address ini sama sekali tidak terkonek ke internet, jadi akan sangat aman sekali, tidak seperti web wallet seperti di Blockchain.info yang sudah beberapa kali terbobol oleh cracker, address ini sangat cocok jika anda punya rencana untuk menyimpan Bitcoin untuk waktu yang lama.

Baiklah, pertama-tama kita harus install dulu wallet Bitcoin, kita akan pakai Bitcoin Core, di Ubuntu cara installnya :

$ sudo apt-add-repository ppa:bitcoin/bitcoin

Kita menambahkan repo dari Bitcoin, tekan enter jika ditanya, lalu

$ sudo apt-get update

Kita update sistem kita, tunggu proses selesai

$ sudo apt-get update install bitcoin-qt

Kita install bitcoin wallet nya, tunggu hingga proses install selesai, setelah selesai, putuskan koneksi internet anda, putuskan semua koneksi jaringan yang ada, lalu ketik perintah di terminal

$ bitcoin-qt

akan terbuka tampilan wallet bitcoin gui

Selection_006

Dalam contoh gambar saya di atas, wallet saya masih terkoneksi ke internet, tapi gak masalah, ini hanya contoh, kalau anda, anda harus memutuskan koneksi internet, wallet hanya akan kita gunakan untuk membuat address baru dan kita gunakan untuk mendapatkan private key dari address tersebut

Sekarang anda pilih file, lalu pilih receiving address, akan muncul address yang digunakan untuk menerima Bitcoin

Selection_007

Untuk membuat address, klik pada tombol new, lalu isikan label dari address-nya, nanti akan muncul address baru, setelah itu klik kanan pade address yang anda buat pilih ‘copy address’

Sekarang anda pilih ‘help’, lalu pilih ‘debug window’, lalu pilih tab ‘console’, akan keluar text input untuk rpc command,  seperti ini

Selection_008

sekarang klik pada input text-nya, lalu ketikan

dumpprivkey <bitcoin address>

contoh :

dumpprivkey 16AcrDmXmiyQ1fED6BEVKA3fi58YXb9eKk

Nanti akan muncul private key dari address tersebut

Selection_009

Private key dari address saya di atas adalah L33Zs6ejq8Hk6vUU35iT72jg1FdQySCBn4k8dXuVaqKnC2Je8mtX

simpan pada notepad, pasangan dari address dan private key yang anda buat

Sekarang kita akan membuat qrcode dari pasangan address dan private key yang kita buat tadi, kita akan gunakan program ‘qrencode’ , kalau anda lebih suka menyimpan file text tadi juga gak masalah, jika anda simpan hanya dalam bentuk file saja di flash disk, tapi jika flash disk anda rusak maka Bitcoin anda akan hilang, kalau anda print text filenya, maka anda harus mengetikan satu-satu barisan huruf yang panjang tadi, akan sangat merepotkan.

Tujuan dari qrcode ini agar kita bisa lebih cepat dan simple, jika kita akan me-load wallet kita, jika anda belum punya program qrencode, maka anda bisa install

$ sudo apt-get install qrencode

Setelah terinstall, lalu kita buat qrcode sekarang, dengan sintaks

$ qrencode -o <namafile.png> -s <ukuran pizel> ‘address/private_key’

contoh, nanti sesuaikan dengan address dan private key anda sendiri

$ qrencode -o private1.png -s 10 ‘L33Zs6ejq8Hk6vUU35iT72jg1FdQySCBn4k8dXuVaqKnC2Je8mtX’

$ qrencode -o address1.png -s 10 ’16AcrDmXmiyQ1fED6BEVKA3fi58YXb9eKk’

Jika anda ingin ukuran pixel dari gambar lebih besar, masukan angka yang  lebih besar setelah option ‘-s’

Selection_010

ini adalah hasilnya, anda bisa transfer Bitcoin ke address-nya lalu anda bisa print qrcode nya, lalu anda simpan di tempat yang aman, dilaminating jika perlu, agar gak kena air, atau masukin plastik.

Sekarang anda harus menghapus .dat file, wallet.dat file ini adalah file yang menyimpan private key di wallet Bitcoin Core tadi, wallet.dat file nya tersimpan di

/home/<nama>/.bitcoin/wallet.dat

folder .bitcoin tersembunyi, jadi anda harus tekan ctrl + h , untuk memunculkannya.

Cara untuk spend Bitcoin

Setelah cara bagaimana membuat address offline, sekarang bagaimana cara untuk spend Bitcoin-nya jika sewaktu-waktu diperlukan untuk membayar sesuatu, kita akan melakukan spend di web wallet Blockchain.info, jadi anda harus punya akun di websitenya

Selection_011

Sekarang anda pilih ‘import/export’,  jika ada warning, klik aja tombol ‘i understand’, lalu jika ditanya password, ketikan passwordnya

Selection_012

pilih import, jika anda masih punya text nya, bisa anda langsung copy-kan text private key ke inputan ‘Import Private Key’, lalu anda tekan ‘add private key’

Selection_013

Lah lihat, address yang kita buat di Bitcoin Core tadi sudah bisa di load ke web wallet Blockchain.info, kalau anda pilih import direcly, maka address nya akan ter-load di web wallet anda, kalau anda pilih sweep key, maka balance dari address nya akan di transfer ke address di web wallet anda.

Selection_014

Prosesnya sama jika anda menggunakan qrcode, pilih ‘scan with webcam’ lalu tunjukan qrcode yang kita print tadi, nanti textnya akan ter-load, dan anda tinggal tekan ‘add private key’, dan anda bisa spend Bitcoinnya.

Sekian.. 😀