Rabu, 31 Agustus 2016

Cerpen Seram: TULIS


TULIS oleh Maria Kajiwa
SUDAH beberapa hari hati Qiah berdebar-debar. Setiap kali matanya terpandang mengenai tawaran untuk menulis cerita seram dari sebuah rumah penerbitan, perasaannya melonjak-lonjak. Dia rasa tak senang duduk. Malah tidur pun tak berapa lelap. Dia asyik terbayang namanya dipaparkan di atas muka hadapan buku dan juga kehidupan yang berubah selepas itu.
Dia juga terbayangkan populariti dan sanjungan pembaca yang tidak putus-putus. Selain membayangkan duit yang akan mengalir masuk ke dalam akaun bank dan apa yang dia mampu beli dengan duit itu. Oleh itu kali ini dia nekad untuk mencuba nasib.
“Engkau buat apa tu, Qiah? Dari tadi menghadap laptop.” Zarin yang baru siap membasuh baju di dapur menegur. Dia hairan kerana mulai awal pagi tadi lagi Qiah tak henti-henti menekan papan kekunci. Mandi tidak. Makan pun tidak. Keluar dari bilik pun tidak. Asyik dengan laptop.
“Jangan kacaulah. Aku tulis cerita ni.” Qiah rasa marah. Bebelan Zarin membuatkan tumpuannya terjejas.
“Cerita?” Suara Zarin mati setakat itu. Jawapan Qiah amat mengejutkan. Setahu dia selama ini Qiah tak pernah menulis cerita. Setakat menulis mesej dalam WhatApps memang pernah. Itu pun typho setiap lima huruf.
“Kenapa? Engkau ingat aku tak boleh tulis cerita seram? Belum cuba belum tahu.” Sikap Zarin semakin menaikkan kemarahan Qiah. Semangatnya semakin berkobar-kobar untuk menyiapkan cerita seram yang ditulis sejak pagi tadi. Kalau orang lain boleh tulis, dia pun boleh juga; itulah fikirnya.
“Engkau tulis cerita seram?” Suara Zarin semakin kuat. Hampir hendak memekik. Dia fikirkan Qiah tulis cerita cinta macam dalam novel-novel yang banyak bertimbun di ruang tamu rumah sewa mereka. Rupanya cerita seram.
Qiah ketawa kecil. Hati semakin berbangga. Baru Zarin tahu keupayaan dia.
“Engkau tak takut ke tulis cerita macam tu?”
Dahi Zarin berkerut-kerut. Dia terbayangkan beberapa novel seram yang pernah dilihat di kedai-kedai buku. Semua kisahnya melibatkan syaitan, jin, iblis dan hantu.
“Ish! Jadi penulis cerita seram mana boleh takut? Hati kena sado, beb. Kalau takut... macam mana nak tulis?” balas Qiah. Matanya masih terpaku ke skrin. Jari-jemarinya laju menekan papan kekunci meskipun banyak typho. Pedulilah. Janji siap.
“Berani engkau ya? Engkau tahu ke benda apa yang engkau tulis ni? Engkau tak takut ke benda ni datang kacau engkau balik?”
Qiah ketawa mendengar pertanyaan Zarin.

“Menulis cerita seram ni bukan untuk orang yang penakut macam engkau. Orang yang berani aje boleh tulis. Nanti dia datang duduk sebelah engkau, baru engkau tahu.” Qiah mengusik Zarin.

Selasa, 30 Agustus 2016

New Pallapa Karaban Pati Full Album 2016




New Pallapa Live Karaban Pati Full Album mp3 adalah salah satu album terbaru live OM New Pallapa yang berisi 20 lagu Dangdut koplo yang dinyanyikan oleh Tasya Rosmala, Lilin Herlina, Gerry Mahesa dan lain sebagainya.

Sebenarnya 20 lagu yang dinyanyikan oleh artis-artis New Pallapa dalam live di Karaban Pati yang diselenggarakan oleh KAPOEK Community ini sudah sering muncul, sudah sering

Senin, 29 Agustus 2016

Cara Membuat Aplikasi Stateless (Restful Web Service) dengan Yii2 dan Single Page (Frontend)

"Membuat Web Jual Beli Barang Bekas Online (BarBek) dengan Yii2  dan Riot.Js" yang akan dipublish setiap (insyaAlloh) minimal seminggu sekali di blog ini.
Baiklah, tanpa banyak basa basi lagi, saya akan coba jelaskan projek apa yang akan dibuat, tujuan membuat projek ini, arsitektur aplikasi yang digunakan, tools /software yang akan digunakan, dan untuk siapa tutorial ini ditujukan.

1. Mau buat apa sih sebenrnya anda ini ?

Ya itu tadi, dalam tutorial ini kita akan membuat sebuah aplikasi web yang memungkinkan pengguna untuk menjual barang bekas mereka.

2. Tujuan buat projek semacam ini?

Yang jelas, saya berharap dengan membuat projek ini dapat memberikan gambaran secara menyeluruh tentang bagaimana membuat sebuah aplikasi web kekinian dari nol menggunakan Yii2 sebagai Web Service/API dan juga  menggunakan Riot.JS sebagai aplikasi disisi browser (frontend).


3. Arsitektur Aplikasi BarBek

Jadi, aplikasi yang akan dibuat kita sebut sebagai BarBek oke! Yang kurang setuju boleh deh kasih usulan nama lain di komentar. Lanjut ke topik yang dibahas, diatas saya menyebut "aplikasi web kekinian", emangnya kaya gimana sih yang kekinian tuh? Well, mungkin pengguna tak akan peduli seberapa kekinian kah arsitektur aplikasi yang kita kembangkan, namun untuk kita sebagai developer tentu hal ini sangat penting dan perlu dipertimbangkan secara matang. Berikut ini adalah ciri-ciri dari aplikasi web kekinian menurut hasil penelusuran saya dari berbagai sumber.

a. Stateless

Ciri pertama sebuah aplikasi web kekinian adalah stateless (istilah apa lagi ini?). Memang agak sedikit sulit mencari definisi dari stateless application ini di mbah Google (Coba aja sendiri). Namun secara sederhana sebuah aplikasi bisa dikatakan stateless jika aplikasi tersebut tidak lagi menyimpan informasi untuk mengenali pengguna dengan menyimpannya didalam session (disisi server) atau cookies (disisi browser). Lihat contoh code PHP dibawah ini, mungkin saja menjelaskan dengan code akan lebih mudah difahami:


<?php 
// Contoh stateful

session_start();

// Dapatkan informasi username dari query parameter kemudian simpan di session
// Request pertama kita mengirimkan informasi username melalui query paramater 
// http://localhost:8080/stateful.php?username=ydatech
// Dalam request kedua dan seterusnya kita tidak perlu lagi mengirimkan info username 
// melalui query parameter karena sudah tersimpan di session
// http://localhost:8080/stateful.php

function whoAmI(){
  
  if(isset($_GET['username'])){
      $_SESSION['username'] = $_GET['username'];
  }
  
  if(isset($_SESSION['username'])){
    $username = $_SESSION['username'];
    
    echo $username;
  }else{
    
    throw new Exception("I don't know who you are");
  }

}

whoAmI();
?>

<?php // Contoh StateLess function whoAmI(){ // Dapatkan informasi username dari query parameter // Setiap kali kita ingin mengakses program ini maka kita harus mengirim informasi username // melalui query parameter disetiap request yang dilakukan // Contoh http://localhost:8080/stateless.php?username=ydatech if(isset($_GET['username'])){ $username = $_GET['username']; echo $username; }else{ throw new Exception("I don't know who you are"); } } whoAmI(); ?> - See more at: http://www.yudasukmana.web.id/2016/08/membangun-aplikasi-stateless-restful.html#sthash.DDm65GZc.dpuf

Diatas adalah contoh perbedaan program stateless dan stateful, bentuk nyata dari aplikasi stateless ini adalah Restful Web Service/API dimana session tidak lagi digunakan untuk mengautentikasi pengguna, dan sebagai penggantinya developer akan menggunakan autentikasi berbasis token yang dikirim setiap kali melakukan request baik itu melalui query parameter ataupun HTTP Header. Konon katanya dengan menggunakan arsitektur seperti ini, akan mempermudah dan mempermurah proses horizontal scaling dari apikasi yang kita kembangkan. 

Dalam tutorial ini kita akan membuat API menggunakan sebuah PHP framework bernama Yii2 dan basisdata MySql. b. Single Page Ciri kedua sebuah aplikasi web kekinian adalah mengusung arsitektur single page untuk bagian frontend-nya. Artinya, aplikasi tidak perlu memuat ulang seluruh halaman untuk mengakses atau berpindah dari halaman satu kehalaman yang lainnya. Menurut saya istilah single page ini sudah cukup popular dan bahkan dapat diterapkan di aplikasi stateful sekalipun.

Banyak framework yang dapat kita gunakan untuk mempermudah membuat single page application contohnya Angular, React, Ember, Backbone, Vue, Riot, dan banyak lagi sampai suka bingung mau pake framework yang mana ini teh. Dalam tutorial ini saya akan menggunakan Riot.Js, alasanya karena saya sangat nyaman dengan fiturnya yang minimalis dan ukuran filenya yang sangat kecil dibanding dengan framework lain, namun lengkap dan sangat mumpuni untuk membangun single page, serta yang terpenting adalah mudah untuk dipelajari. Selain itu, biar semakin kekinian saya juga akan menggunakan Redux dan Webpack untuk mendukung Riot.JS dalam membangun aplikasi frontend dari BarBek ini. Untuk sementara dua dulu aja ciri-ciri aplikasi web kekiniannya, nanti kalau nemu lagi inspirasi saya tambahin lagi deh. Jadi, jika saya buat diagram (ceritanya) inilah arsitektur aplikasi yang akan digunakan untuk aplikasi BarBek

Cara Membuat Aplikasi Stateless (Restful Web Service) dengan Yii2 dan Single Page (Frontend)

4. Tools/Software/Library/Framework yang akan digunakan
Tutorial ini akan kita bagi kedalam dua bagian besar yaitu, pertama membuat Restful Web Services dengan Yii2 dan MySQL dan kedua Membuat aplikasi single page menggunakan Riot.js dan Redux. Jadi, development tools atau software atau  library yang digunakan pasti akan berbeda.

a. Umum (Dipake di bagian pertama dan kedua)
   1.  Laptop atau PC + Sistem Operasi (sebenarnya ini gak usah disebutin)
   2.  Code Editor (saya rekomendasikan Visual Studio Code)
   3.  Git dan GitHub
   4.  Terminal / CMD/ PowerShell
   5.  Akses Internet

b. Bagian Pertama (Membuat Restful Web Services/APIs)
   1.  PHP 5.4 ( atau yang lebih baru)
   2.  MySQL
   3.  Composer
   4.  Yii2
   5.  Libraries /Extentions pendukung lainnya jika dibutuhkan dari Packagist
   6.  Postman (Chrome App)

c. Bagian Kedua (Membuat Single Page Applicaiton)
   1. Node.JS
   2. NPM
   3. Express JS
   4. Webpack
   5. Riot JS
   6. Redux
   7. Bootstrap
   8. Library pendukung lainnya yang tersedia di NPM
   9. Web Browser

5. Untuk siapa tutorial ini ditujukan?
Untuk kamu yang lagi baca postingan ini dan yang mau belajar bersama-sama di blog ini. Secara spesifik untuk bagian pertama ditujukan untuk Backend Developer, bagian kedua untuk Frontend Developer, dan keduanya untuk kalian Full Stack Developer. Terutama yang berada di level pemula hingga menengah. Untuk para mastah yang tidak sengaja membaca postingan ini terimakasih telah bersedia membaca sampai baris sini mohon koreksinya jika ada yang belum/kurang tepat. 
Sourcehttp://www.yudasukmana.web.id/2016/08/membangun-aplikasi-stateless-restful.html#sthash.0Ha88uvn.dpuf

Bagaiamana caranya nampilin data join di Gridview pada PHP Script Mysql

Cara Menampilkan Isi tabel Database PHP. Cara menambilkan isi tabel pada sebuah database sangat mudah. Salah satunya adalah dengan menggunakan fungsi yang sebelumnya saya pernah posting yaitu mysql_query.  Dan untuk tutorial cara agar field database dapat tampil menggunakan fungsi tambahan yaitu mysql_fetch_array. Cara menampilkan database dengan php berikut ini saya buat untuk menyelesaikan projek sistem informasi pemasangan iklan yang sedang saya bangun.

Pada tutorial kali ini contoh yang saya ambil adalah menampilkan tabel user pada database yang saya bangun. Isi field yang terdapat pada tabel ini yaitu:
  • Id_user
  • Username
  • Password
  • Level
Berikut ini script php untuk membuat tabel dari database. Untuk membuatnya cukup simpel dan mudah simak panduan berikut dengan seksama. Saya akan jelaskan kepada Anda bagaimana cara dan langkah-langkah yang bisa dikatakan mudah berikut ini.

Bagaiamana caranya  nampilin data join di Gridview pada PHP Script Mysql

Cara Menampilkan Isi tabel Database PHP

Berikut ini membuat tabel dengan isi database. Pada sistem informasi penggunaan tabel sebagai informasi untuk menampilkan data sangat sering dan mutlak. Untuk itu berikut script untuk menampilkan isi tabel database kedalam sebuah tabel menggunakan php.


<?php
 
$server = "localhost" ;
$username = "root" ;
$password = "" ;
$database = "sipi";
 
//Koneksi dan memilih database di server
mysql_connect($server,$username,$password) or die ("Koneksi database gagal");
mysql_select_db($database) or die ("Database tidak tersedia");
 
echo '<h3>Data User</h3>
<table>
<tr>
<th>No</th>
<th>Username</th>
<th>Password</th>
<th>Nama</th>
<th>Level</th>
</tr>
<tr>';
 
$i=0; //inisialisasi untuk penomoran data
//perintah untuk menampilkan data, id_brg terbesar ke kecil
$tampil = "SELECT * FROM user ORDER BY id_user DESC";
//perintah menampilkan data dikerjakan
$sql = mysql_query($tampil);
 
//tampilkan seluruh data yang ada pada tabel user
while($data = mysql_fetch_array($sql))
 {
 $i++;
 
echo "
 <td>".$i."</td>
 <td>".$data[username]."</td>
 <td>".$data[password]."</td>
 <td>".$data[nama]."</td>
 <td>".$data[level]."</td>
 </tr>";
 }
echo '</table>';
 
?>

Langkah-langkah diatas penjelasannya sebagai berikut:


1. Pertama buatlah database dengan nama sipi. Kemudian buat tabel user seperti pada database tersebut sesuai dengan gambar berikut. JIka tidak tahu ini ada panduan cara membuat database.

2. Selanjutnya tempatkan scrpt diatas pada sebuah file dengan ekstensi php. Kemudian runninglah pada server pada computer Anda. Kalau saya pakai servernya xamp jadi pada server ini saya letakkan pada folder sipi di dalam folder htdoc.

Pada script diatas terdapat fungsi php mysql_fetch_array. Fungsi ini berguna untuk menampilkan data pada database sesuai dengan tabel. Dengan artian membentuknya menjadi array terlebih dahulu. Kemudian menampilkannnya kedalam sebuah tabe dengan menggunakan pengulangan while. Pengulangan while ini berfungsi untuk membuat baris tabel secara otomatis membentuk sendiri jika terdapat banyak baris pada database  tersebut.

Minggu, 28 Agustus 2016

CARA Trik Dari Berga Theme 2 MEMBUAT REST CLIENT MENGGUNAKAN CODEIGNITER

Rest Client yang saya maksud dinisi adalah sebuah aplikasi yang mengakses data dari sebuah API/ Rest Server, misalnya aplikasi Facebook mobile yang mengakses API ( Application Programming Interface ) dari facebook, nah aplikasi mobile ini bisa disebut sebagai aplikasi client. yang menarik disini adalah dengan ada nya API tersebut maka aplikasi lintas platform bisa menggunakan data tersebut dengan batasan tertentu tanpa perlu mengakses database secara langsung. 

CARA Trik Dari Berga Theme 2 MEMBUAT REST CLIENT MENGGUNAKAN CODEIGNITER

Installasi & Konfigurasi Codeigniter


Sebelum melakukan instalasi pastikan anda sudah mempersiapkan web server untuk menyimpan aplikasi yang akan kita bangun nantinya karena kita menggunakan codeigniter, jika belum punya anda sangat saya sarankan untuk membaca postingan dibawah ini terlebih dahulu :

jika anda sudah menginstall xampp atau yang menggunakan program lain seperti wampp maka sekarang kita akan mulai tahapan menginstall codeigniter terlebih dahulu.

  • Silahkan download codeigniter pada situs resminya www.codeigniter.com
  • kemudia extrack/ unzip file CodeIgniter-3.1.0.zip.
  • setelah itu silahkan rename folder CodeIgniter-3.1.0 menjadi rest_client
  • pindahkan folder rest_client tersebut ke folder C:\xampp\htdocs.
  • sekarang silahkan bukan web browser anda dan masukan http://localhost/rest_client/ pada web address maka akan muncul seperti ini :

selamat sampai pada tahap ini anda sudah berhasil menginstall codeigniter, tahap selanjutnya adalah melakukan konfigurasi dasar, silahkan buka file config.php yang ada dalah folder application/config/config.php menggunakan IDE kesayangan anda. silahkan cari script berikut ini :


$config['base_url'] = '';

dan ubah menjadi seperti ini :

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

Install Library codeigniter curl


library codeigniter curl adalah sebuah library yang dibuat oleh phil sturgeon yang berasal dari brooklyn, walapun menurut info dari halaman github bahwa library ini udah deprecated tapi masih tetap bisa digunakan jika anda memenggunakan PHP Versi 5. untuk melakukan instalasi library ini silahkan ikuti tahapan berikut :
  • download library melalui repository github codeigniter-curl
  • extrack file codeigniter-curl-master.zip dan copykan file Curl.php yang ada dalam folder library ke C:\xampp\htdocs\rest_client\application\libraries
langkah selanjutnya kita akan meload beberapa library dan helper yang sering digunakan nantinya, coba buka file autoload.php yang ada dalam folder C:\xampp\htdocs\rest_client\application\config, lalu load library nya dengan cara berikut :

$autoload['libraries'] = array('curl','session');
$autoload['helper'] = array('form','url');

Membuat Controller


langkah selanjutnya adalah membuat controller dengan nama Mahasiswa.php dan tulis lah script berikut ini :

<?php
Class Mahasiswa extends CI_Controller{
    
    var $API ="";
    
    function __construct() {
        parent::__construct();
        $this->API="http://localhost/rest_server/index.php";
    }
    
    // menampilkan data mahasiswa
    function index(){
        $data['mahasiswa'] = json_decode($this->curl->simple_get($this->API.'/mahasiswa'));
        $this->load->view('mahasiswa/list',$data);
    }
    
    // insert data mahasiswa
    function create(){
        if(isset($_POST['submit'])){
            $data = array(
                'nim'       =>  $this->input->post('nim'),
                'nama'      =>  $this->input->post('nama'),
                'id_jurusan'=>  $this->input->post('jurusan'),
                'alamat'    =>  $this->input->post('alamat'));
            $insert =  $this->curl->simple_post($this->API.'/mahasiswa', $data, array(CURLOPT_BUFFERSIZE => 10)); 
            if($insert)
            {
                $this->session->set_flashdata('hasil','Insert Data Berhasil');
            }else
            {
               $this->session->set_flashdata('hasil','Insert Data Gagal');
            }
            redirect('mahasiswa');
        }else{
            $data['jurusan'] = json_decode($this->curl->simple_get($this->API.'/jurusan'));
            $this->load->view('mahasiswa/create',$data);
        }
    }
    
    // edit data mahasiswa
    function edit(){
        if(isset($_POST['submit'])){
            $data = array(
                'nim'       =>  $this->input->post('nim'),
                'nama'      =>  $this->input->post('nama'),
                'id_jurusan'=>  $this->input->post('jurusan'),
                'alamat'    =>  $this->input->post('alamat'));
            $update =  $this->curl->simple_put($this->API.'/mahasiswa', $data, array(CURLOPT_BUFFERSIZE => 10)); 
            if($update)
            {
                $this->session->set_flashdata('hasil','Update Data Berhasil');
            }else
            {
               $this->session->set_flashdata('hasil','Update Data Gagal');
            }
            redirect('mahasiswa');
        }else{
            $data['jurusan'] = json_decode($this->curl->simple_get($this->API.'/jurusan'));
            $params = array('nim'=>  $this->uri->segment(3));
            $data['mahasiswa'] = json_decode($this->curl->simple_get($this->API.'/mahasiswa',$params));
            $this->load->view('mahasiswa/edit',$data);
        }
    }
    
    // delete data mahasiswa
    function delete($nim){
        if(empty($nim)){
            redirect('mahasiswa');
        }else{
            $delete =  $this->curl->simple_delete($this->API.'/mahasiswa', array('nim'=>$nim), array(CURLOPT_BUFFERSIZE => 10)); 
            if($delete)
            {
                $this->session->set_flashdata('hasil','Delete Data Berhasil');
            }else
            {
               $this->session->set_flashdata('hasil','Delete Data Gagal');
            }
            redirect('mahasiswa');
        }
    }
}

Membuat ViewScreenshot_1

CARA Trik Dari Berga Theme 2 MEMBUAT REST CLIENT MENGGUNAKAN CODEIGNITER


langkah selanjutnya kita akan membuat view untuk menampilkan informasi yang di ambil dari web service dan dikirimkan melalui controller mahasiswa di atas. namun agar file nya terorganisir dengan baik semua view ini nantinya akan kita tampung dalam satu folder yang akan kita beri nama mahasiswa

<?php echo $this->session->flashdata('hasil'); ?>
<table>
    <tr><th>NIM</th><th>NAMA</th><th>ID JURUSAN</th><th>ALAMAT</th><th></th></tr>
    <?php
    foreach ($mahasiswa as $m){
        echo "<tr>
              <td>$m->nim</td>
              <td>$m->nama</td>
              <td>$m->id_jurusan</td>
              <td>$m->alamat</td>
              <td>".anchor('mahasiswa/edit/'.$m->nim,'Edit')."
                  ".anchor('mahasiswa/delete/'.$m->nim,'Delete')."</td>
              </tr>";
    }
    ?>
</table>

CARA Trik Dari Berga Theme 2 MEMBUAT REST CLIENT MENGGUNAKAN CODEIGNITER

selanjutnya adalah view create.php ini berfungsi untuk menampilkan form yang menjadi interface bagi pengguna dalam meng input data baru, scriptnya seperti ini :


<?php echo form_open('mahasiswa/create');?>
<table>
    <tr><td>NIM</td><td><?php echo form_input('nim');?></td></tr>
    <tr><td>NAMA</td><td><?php echo form_input('nama');?></td></tr>
    <tr><td>JURUSAN</td><td>
            <select name="jurusan">
            <?php
            foreach ($jurusan as $j){
                echo "<option value='$j->id_jurusan'>$j->nama_jurusan</option>";
            }
            ?>
            </select>
        </td></tr>
    <tr><td>ALAMAT</td><td><?php echo form_input('alamat');?></td></tr>
    <tr><td colspan="2">
        <?php echo form_submit('submit','Simpan');?>
        <?php echo anchor('mahasiswa','Kembali');?></td></tr>
</table>
<?php
echo form_close();
?>

CARA Trik Dari Berga Theme 2 MEMBUAT REST CLIENT MENGGUNAKAN CODEIGNITER

lalu yang terakhir adalah view edit.php yang akan digunakan sebagai media untuk menampilkan data yang akan di edit kedalam sebuah form, scriptnya adalah sebagai berikut :

<?php echo form_open('mahasiswa/edit');?>
<?php echo form_hidden('nim',$mahasiswa[0]->nim);?>
 
<table>
    <tr><td>NIM</td><td><?php echo form_input('',$mahasiswa[0]->nim,"disabled");?></td></tr>
    <tr><td>NAMA</td><td><?php echo form_input('nama',$mahasiswa[0]->nama);?></td></tr>
    <tr><td>JURUSAN</td><td>
            <select name="jurusan">
            <?php
            foreach ($jurusan as $j){
                echo "<option value='$j->id_jurusan' ";
                echo $mahasiswa[0]->id_jurusan==$j->id_jurusan?'selected':'';
                echo ">$j->nama_jurusan</option>";
            }
            ?>
            </select>
        </td></tr>
    <tr><td>ALAMAT</td><td><?php echo form_input('alamat',$mahasiswa[0]->alamat);?></td></tr>
    <tr><td colspan="2">
        <?php echo form_submit('submit','Simpan');?>
        <?php echo anchor('mahasiswa','Kembali');?></td></tr>
</table>
<?php
echo form_close();
?>

CARA Trik Dari Berga Theme 2 MEMBUAT REST CLIENT MENGGUNAKAN CODEIGNITER


Download Source Code + Ebook Membangun Web Service Dengan Codeigniter Dan SQL Server 2008

Begini CARA Berga Theme 2 MEMBUAT FITUR OTP DENGAN LAYANAN SMS API

one-time password (OTP) adalah salah satu teknik untuk perlindungan dan keamanan akun dalam sebuah layanan. Otp telah banyak digunakan di berbagai sistem layanan di internet, contohnya internet banking, tokopedia dan lainya. dengan adanya OTP maka proteksi terhadap akun kita menjadi lebih kuat karena ketika kita akan menggunakan layanan tersebut harus memasukan Kode OTP yang dikirimkan ke NO HP yang sudah kita daftarkan.

pada postingan kali ini kita akan belaajr bagaimana caranya membuat fasilitas OTP sederhana, anda bisa meggexplore lebih jauh lagi setelah memperlajari konsep dasar ini.

1 – Persiapan Membuat Database Dan Tabel


Langkah Pertama yang akan kita lakukan adalah membuat tabel member untuk menyimpan data member yang yang akan menggunakan layanan ini nantinya.

Begini CARA Berga Theme 2 MEMBUAT FITUR OTP DENGAN LAYANAN SMS API

Jika malas membuat manual maka anda bisa menggunakan sintaks Query berikut ini :


2 – Integrasi Layanan API SMS


untuk layanan API sms kita akan menggunakan gampsms milik guru saya pak Rosihan Ari Yuana, tidak ada alasan khusus kenapa saya menggunakan layanan API ini kecuali selama 1 tahun saya berlangganan untuk sms notofikasi pengiriman No RESI pelanggan saya merasa puas.

untuk bisa menggunakan layanan API ini ada beberapa langkah yang harus kita lakukan terlebih dahulu yaitu :

  • Silahkan Lakukan Pendaftaran Disini.
  • Selanjutnya login menggunakan akun yang sudah anda daftarkan tadi.
  • Catat API Username dan API Key anda, ini diperlukan untuk konfigurasi nantinya.
Begini CARA Berga Theme 2 MEMBUAT FITUR OTP DENGAN LAYANAN SMS API


  • Silahkan download Documentation yang ada dibawah info API Username Dan API Key tadi, file ini berisi secript yang digunakan untuk bisa menggunakan layanan SMS API nantinya.
  • Extrack http-sms-api-pro.zip dan pindahkan folder api-module ke folder project anda
  • Buka file apiconfig.php yang ada dalam folde api-module tadi dan silahkan isikan ApiUsername Dan apiKey sesuai dengan catatan anda pada langkah 3 :
<?php
// isikan API username dan API key Anda
$apiUsername = '...';
$apiKey      = '...';
?>

3 – Konsep Dan Membuat Form Login


Sebelum melakukan tahapan coding, kita akan buat konsep nya terlebih dahulu. jadi konsepnya adalah ketika member berhasil melakukan proses login lalu sistem akan mengirimkan SMS kode OTP ke no hp member tersebut. kode OTP ini akan di input pada tahap ke 2 setelah login berhasil.

silahkan buat sebuah file baru dengan nama koneksi.php, file ini akan digunakan untuk menyimpan konfigurasi agar bisa konek ke database pada web server.

<?php
// konfigruasi koneksi
$host       = "localhost";
$user       = "root";
$password   = "";
$database   = "latihan";
$koneksi = mysqli_connect($host,$user,$password,$database);
?>

Selanjutnya kita akan membuat sebuah file baru dengan nama library.php, file ini akan kita gunakan untuk menyimpan function yang akan menggenerate kode OTP nantinya.

<?php
function randomString($length = 6) {
$str = "";
$characters = array_merge(range('A','Z'), range('a','z'), range('0','9'));
$max = count($characters) - 1;
for ($i = 0; $i < $length; $i++) {
$rand = mt_rand(0, $max);
$str .= $characters[$rand];
}
return $str;
}
?>

silahkan buat sebuah file baru dengan nama form-login.php, file ini akan diakses oleh member ketika mereka akan melakukan proses login.

  <table>
        <tr><td>Email</td><td><input type="email" name="email"></td></tr>
        <tr><td>Password</td><td> <input type="password" name="password"></td></tr>
        <tr><td></td><td><button type="submit" name="submit">Login</button></td></tr>
    </table>
</form>
 
<?php
include 'koneksi.php';
include 'library.php';
include 'api-module/apifunction.php';
if (isset($_POST['submit'])) {
    $email = $_POST['email'];
    $password = md5($_POST['password']);
    $sql = mysqli_query($koneksi, "select * from member where email='$email' and password='$password'");
    $result = mysqli_num_rows($sql);
    if($result>0){
        // kirim OTP
        $new_otp = randomString(6);
        // insert ke database
        $member = mysqli_fetch_array($sql);
        mysqli_query($koneksi, "UPDATE  member SET kode_otp='$new_otp'");
        // kirim sms
        $message = "KODE OTP ANDA ADALAH : $new_otp";
        $send = sendsms($member['no_hp'], $message);
        // aktifkan session
        session_start();
        $_SESSION['member_id']=$member['member_id'];
        if($send){
            $_SESSION['hasil'] = "KODE OTP SUDAH DIKIRIM KE NO HP ANDA";
        }else{
            $_SESSION['hasil'] = "GAGAL MENGIRIMKAN KODE OTP, SILAHKAN COBA LAGI";
        }
        // redireck ke halaman step 2
        header("location:step2.php");
    }else{
        header("location:form-login.php");
    }
}
?>

Begini CARA Berga Theme 2 MEMBUAT FITUR OTP DENGAN LAYANAN SMS API

langkah selanjutnya adalah membuat file untuk tahapan langkah selanjutnya, pada tahapan ini penggunaka akan diminta untuk memasukan kode OTP yang dikirimkan ke No HP nya, jika kode OTP yang dimasukan sesuai dengan Kode OTP yang terdapat pada akun nya maka sistem akan mengredirect halaman pengguna ke halaman utama, tapi jika berbeda maka pengguna masih tetap akan di halaman ini, oke sekarang  buatlah sebuah file baru dengan nama step2.php dan ketiklah script berikut ini :

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
    <input type="text" name="kode_otp" placeholder="Masukan OTP">
    <button type="submit" name="proses">Proses</button>
</form>
 
<?php
include 'koneksi.php';
if(isset($_POST['proses'])){
    session_start();
    $kode_otp   = $_POST['kode_otp'];
    $member_id  = $_SESSION['member_id'];
    // chek
    $sql = mysqli_query($koneksi, "SELECT * FROM member where member_id='$member_id' and kode_otp='$kode_otp'");
    $chek = mysqli_num_rows($sql);
    if($chek>0){
        $_SESSION['status_login']=TRUE;
        header("location:index.php");
    }else{
        echo "KODE OTP SALAH";
    }
}
?>

Begini CARA Berga Theme 2 MEMBUAT FITUR OTP DENGAN LAYANAN SMS API

langkah terkahir adalah membuat halaman utama ( index.php), halaman ini diproteksi secara sederhana sehingga tidak bisa di akses kalau belum login. silahkan ketikkan script berikut :

<?php
session_start();
if($_SESSION['status_login']==FALSE){
    header("location:form-login.php");
}else{
    echo "selamat datang pengguna";
}
?>

4 – Tahap Pengujian


pada tahap ini kita akan melakukan pengujian terhadap proses yang sudah kita buat tadi, saya sudah berhasil melakukan login  dan sekarang sms yang berisi kode OTP sudah masuk Ke No HP saya.

Begini CARA Berga Theme 2 MEMBUAT FITUR OTP DENGAN LAYANAN SMS API


Jangan Berhenti Di Tengah Badai

Jangan Berhenti Di Tengah Badai Cerita Motivasi dan Inspirasi Nomor 1

Pada suatu hari, ada seorang anak yg sedang berkendara dengan ayahnya , spt biasanya mereka bekendaraan menuju ke suatu tempat. Dan si anak yg mengemudikan mobil .

Setelah beberapa puluh kilometer, tiba? awan hitam datang bersama angin kencang.

Langit menjadi gelap. Kulihat beberapa kendaraan mulai menepi & berhenti.

"Bagaimana Ayah? Kita berhenti?", si anak bertanya.

"Teruslah mengemudi!", kata sang Ayah.

si anak tetap menjalankan mobil mengikuti perintah ayahnya.

Langit makin gelap, angin bertiup makin kencang. Hujanpun turun dg derasnya .

Beberapa pohon besar bertumbangan, bahkan ada pohon2 kecil yg diterbangkan angin.

Suasana nya sangat menakutkan.

Banyak kendaraan? besar juga mulai menepi & berhenti.

"Ayah...?"

"Teruslah mengemudi, tingkatkan perhatian dan ekstra hati-hati!" kata sang Ayah sambil terus melihat ke depan.

Si Anak tetap mengemudi dgn bersusah pa
... baca selengkapnya di Jangan Berhenti Di Tengah Badai Cerita Motivasi dan Inspirasi Nomor Satu