Friday, January 31, 2020

Cara Menggunakan Syntax Highlight pada Blog dengan Prettify


Penulis kali ini akan membahas Cara Melakukan Syntax Highlight pada Blog dengan Pretty Print. Syntax Highlight adalah fitur yang biasanya terdapat pada text-editor agar setiap teks maupun kode pemrograman mempunyai warna yang berbeda-beda tergantung pada kategorinya. Namun Syntax Highlight yang Penulis bagikan kali ini ialah syntax highlight pada blog-blog artikel pemrograman. 

Sebagai Blogger yang fokus pada dunia pemrograman tentunya ingin berbagi ilmu dengan pemula-pemula seperti mahasiswa maupun yang lainnya. Terkadang Penulis juga sering kesulitan ketika membuat sebuah project sehingga membutuhkan bantuan petunjuk dari forum maupun blog. Source code yang dibagikan mempunyai jarak pemisah seperti sebuah container terlihat menarik dibanding source code yang polos tidak mempunyai warna dan jarak pemisah dengan kalimat pada blog. Pada artikel-artikel yang terdapat pada Blog ini sendiri belum menggunakan Syntax Highlight, namun Penulis akan menerapkan fitur ini pada artikel-artikel yang akan Penulis bagikan kedepannya.

Syntax Highlighter yang Penulis gunakan sendiri adalah Prettify yang dikembangkan oleh Google. Terdapat berbagai Syntax Highlighter yang dapat digunakan oleh pembaca semua, namun pada postingan kali ini Penulis memilih Prettify dikarenakan dikembangkan oleh Google sehingga Penulis yakin fitur ini bersifat Long Term Supported sehingga tidak perlu mengedit html code pada Blogger dikemudian hari. 

Penggunaannya sendiri sangat mudah, cukup paste cdn.js dibawah ini setelah bagian <head> maupun sebelum </head>. 
<script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script>

Lalu pada bagian sebelum bagian code diberikan syntax <pre class="prettyprint"> dan berikan penutup </pre>

Contoh :
<pre class="prettyprint"> isi source code anda dibagian ini...  </pre>

Sebagai catatan, jika source code yang ingin anda cantumkan didalam syntax highlighter mempunyai tanda maupun maka anda harus mengubah tanda < menjadi &lt; dan tanda > menjadi &gt; dikarenakan ketika syntax highlighter melakukan render, hasilnya menjadi tampilan dari source code tersebut. Anda juga dapat mengunjungi LINK INI jika syntax yang ingin anda ubah terlalu banyak. 

Sekian tutorial kali ini, semoga bermanfaat ya.
Read more

Friday, September 27, 2019

Cara Mendapatkan IP Address Pengguna CodeIgniter 3

Penulis kali ini akan membahas Cara Mendapatkan IP Address Pengguna menggunakan CodeIgniter. Melalui IP Address pengunjung, Anda dapat mengetahui lokasinya juga. Setiap pemilik aplikasi web membutuhkan informasi mengenai pengguna sebagai bahan pertimbangan keputusan termasuk juga data mengenai lokasi dari pengguna.

Jika pemilik web aplikasi mengetahui lokasi pengguna web application yang dibuatnya telah digunakan hingga ke negara lain, pemilik web app bisa membuat web app dengan bahasa tertentu agar pengguna merasa senang dan semakin banyak yang berminat menggunakan web app tersebut.

Semisal aplikasi X yang awalnya hanya menggunakan bahasa indonesia saja juga banyak digunakan di negara Malaysia, maka pemilik web app bisa mencantumkan bahasa Melayu maupun English sebagai bahasa internasional pada web app miliknya. Berikut Cara Mendapatkan IP Address Pengguna :

Buatlah tabel user untuk menyimpan informasi akun pengguna dengan nama tbl_user :
CREATE TABLE tbl_user( id int, email varchar(50), password varchar(100), last_seen datetime,  ip_address text);

Penulis menganggap pembaca telah mengetahui cara untuk menyimpan data user ketik login dan menampilkan menggunakan session. Pada bagian Model Account tambahkan 2 model untuk menyimpan ip address dan last seen :
public function set_ip_address(){
 //untuk mengambil ID User
 $id_user = $this->session->userdata('id_user');

 //untuk mengambil ip address
 $ip = $this->input->ip_address();
 $this->db->set('ip_address', $ip);
 $this->db->where('id_user', $id_user);
 $result = $this->db->update('tbl_user');
}

public function logout(){
 $id_user = $this->session->userdata('id_user');
 $this->db->set('last_seen', date('Y-m-j H:i:s'));
 $this->db->where('id_user', $id_user);
 $result = $this->db->update('tbl_user');
}

Selanjutnya pada Controller Account tambahkan syntax 2 baris pada function Logout seperti dibawah ini :
public function logout(){
 if($this->account_model->logged_id()){
  $this->account_model->set_ip_address();
  $this->account_model->logout();
  $this->session->sess_destroy();
  redirect("account");
 } else {
  redirect("");
 }
}

Untuk bagian View Penulis tidak cantumkan karena bagian View hanya berupa link Logout yang mengarah ke Controller Account function Logout diatas. Pada postingan kali ini, Penulis tidak menampilkan cara mengubah IP Address yang didapat menjadi lokasi namun Penulis akan menjawab pada postingan yang akan datang. Sekian Tutorial kali ini , Semoga Bermanfaat ya!
Read more

Wednesday, October 31, 2018

Cara Membuat Dropdown List dari Database CodeIgniter 3

Penulis kali ini akan membahas Cara Membuat Dropdown List dari Database menggunakan CodeIgniter , dimana Dropdown List ini akan berfungsi sebagai input ketika mengisi suatu form. Cara kerjanya hanya menggunakan query select di Model , lalu View menampilkan script foreach untuk looping data dari Database. Sedangkan Controller hanya memanggil fungsi query dari Model. Overall , cara kerja dropdown list sama seperti looping menampilkan data dari database ke suatu tabel. Berikut Cara Membuat Dropdown List :

Model
public function get_category(){
 $query = $this->db->get('tbl_category')->result();
 return $query;
}
Note: Query tersebut menampilkan semua kolom dari table category

View
<div class="form-group row">
 <label class="col-md-3 col-form-label">Category</label>
 <div class="col-md-9">
  <select class="form-control" id="category_name" name="category_name">
   <option selected="0">select..</option>
   <?php foreach($cats as $cat) : ?>
    <option value="<?php echo $cat->cat_id;?>"> <?php echo $cat->cat_name; ?></option>
   <?php endforeach; ?>
  </select>
 </div>
</div>
Note: Terdapat Select Input dengan id category_name dan dengan nama category_name. Opsi yang terpilih adalah select.. awalnya , dan fungsi foreach adalah looping . Query tsb menampilkan cat_id sebagai valuenya , serta menampilkan cat_name (Category Name) dari database.

Controller
public function index(){
 $this->data['cats'] = $this->dish_model->get_category();
 $this->load->view('dish/dishview',$this->data);
}
Note: Controller hanya menghubungkan Model dan View.

Berikut Tampilan dari Form jika sudah disisipkan View diatas :


Dan Ketika di Klik Dropdown nya akan menampilkan data dari database :


Sekian Tutorial kali ini , Semoga Bermanfaat ya!
Read more

Wednesday, September 26, 2018

Cara Login dengan PASSWORD BCRYPT hash CodeIgniter 3



Cara menggunakan Password_BCRYPT dan Password Verify untuk user login . Password Hash yang satu ini merupakan metode hash yang saat ini masih baru dan belum diadopsi secara massal , tidak seperti metode hash MD5 ataupun SHA1 ditambah salt. Cara kerja nya yaitu mengambil password yang dihasilkan dari input user , lalu di hash menjadi kode-kode abstrak yang hanya memiliki 1 kunci seperti :

$2y$12$sQ0Y6ZCtObf.iE52JAPkU.K0HYkgE0zJBeHoCpmzFhzLEiQIJ2pce

Metode ini disebut sebagai "ONE-WAY HASH" . Lalu kode abstrak tersebut disimpan kedalam database , dan ketika user melakukan login , akan dipanggil fungsi password verify yang membalikkan kode abstrak tersebut menjadi password semula ketika sign up (password si user) dan dibandingkan apakah sama atau tidak dengan input type ketika log in .

buatlah database dan table :
CREATE TABLE tbl_user(id int,email varchar(50),password varchar(100),username varchar(50) );

dan table session nya :
CREATE TABLE tbl_session(id varchar(40),email ip_address(45),timestamp int(10),data blob );

CodeIgniter menggunakan metode MVC , untuk view register:


untuk view login:


lalu untuk controller function register :
public function register(){
 $data = new stdClass();
 //Validation Rules
 $this->form_validation->set_rules('name_user', 'Full Name', 'trim|required|min_length[3]');
 $this->form_validation->set_rules('email_user', 'E-mail', 'trim|required|is_unique[tbl_user.email_user]', array('is_unique' => 'This username already exists. Please choose another one.'));
 $this->form_validation->set_rules('pass_user', 'Password', 'trim|required|min_length[8]');
 $this->form_validation->set_rules('conf_pass', 'Confirm Password', 'trim|required|min_length[8]|matches[pass_user]' , array('matches' => 'Password does not match.'));
 if ($this->form_validation->run() == false) {
  $this->load->view('registerview', $data);
 } else {
  $email_user= $this->input->post('email_user');
  $pass_user = $this->input->post('pass_user');
  $name_user = $this->input->post('name_user');
  if ($this->user_model->create_user($email_user, $pass_user, $name_user)) {
   redirect('indexpage');
  } else {
   redirect('register');
  }
 }
}

untuk controller function login :
public function login(){
 if($this->user_model->logged_id()){
  //jika memang session sudah terdaftar
  redirect('account/home');
 } else {
  $this->form_validation->set_rules('email_user', 'E-mail', 'required');
  $this->form_validation->set_rules('pass_user', 'Password', 'required');
  //jika session belum terdaftar
  if ($this->form_validation->run() == false) {
   $this->load->view('index');
  } else {
   $email_user= $this->input->post('email_user');
   $pass_user = $this->input->post('pass_user');
   $checking = $this->user_model->check_login($email_user,$pass_user);
   if ($checking == true) {
    foreach ($checking as $apps) {
     $session_data = array(
     'id_user' => $apps->id_user,
     'email_user' => $apps->email_user,
     'pass_user' => $apps->pass_user,
     'name_user' => $apps->name_user
    );
    $this->session->set_userdata($session_data);
    redirect('account/home');
   }
  } else {
   $this->load->view('index');
  }
 }
}

Kedua controller digabung menjadi 1 file account.php

dan yang terakhir adalah modelnya :
class user_model extends CI_Model {
 public function logged_id(){
 return $this->session->userdata('id_user');
}

//fungsi check login public function check_login($email_user,$pass_user){
 $this->db->where('email_user', $email_user);
 $query = $this->db->get('tbl_user');
 if ($query->num_rows() == 1) {
  $hash = $query->row('pass_user');
  if (password_verify($pass_user,$hash)){
   return $query->result();
  } else {
   echo "Wrong Password. Try again.";
  }
 } else {
  echo "Account is not existed.";
 }
}
public function create_user($email_user, $pass_user, $name_user) {
 $data = array(
  'email_user' => $email_user,
  'pass_user' => $this->hash_password($pass_user),
  'name_user' => $name_user,
  'created_at' => date('Y-m-j H:i:s'),
 );
 return $this->db->insert('tbl_user', $data);
}
private function hash_password($pass_user) {
 return password_hash($pass_user, PASSWORD_BCRYPT);
}

untuk file nya project masih dalam tahap pengerjaan sehingga tidak lengkap homepage dll
LINK DISINI

Read more

Wednesday, December 27, 2017

Bergabung dengan Bitcoin Indonesia


Pengguna bitcoin pada tahun depan bisa terus bertambah. Jika saat ini trader mata uang kripto (cryptocurrency) itu mencapai sekitar 700 ribu orang, tahun depan angkanya bisa naik berlipat menjadi 2 juta orang. Peningkatan jumlah trader itu wajar karena belum ada larangan secara resmi dari pemerintah Indonesia untuk aktivitas trading bitcoin.
Tawaran mesin penambang cryptocurrency itu memang semakin banyak. Pemerintah Indonesia sendiri tidak melarang satu pun penggunaan dari tawaran penambang tersebut. Pemerintah beberapa waktu lalu justru memberi pernyataan bahwa teknologi blockchain sebenarnya memberikan manfaat pada transparansi transaksi. Namun, untuk bitcoin, pemerintah memang tidak akan mengakuinya untuk masuk sistem pembayaran nontunai.
Bitcoin semakin popular saat bursa perdagangan komoditas berjangka di AS menerimanya sebagai salah satu perdagangan derivative yang diakui. Bitcoin baru-baru ini dapat diperdagangkan di bursa Chicago Mercantile Exchange (CME). Hal tersebut mendorong rally harga bitcoin. Peningkatan dan penurunan harga bitcoin semakin cepat dan tak terkendali.
Menurut Bhima, terbatasnya persediaan bitcoin di lapangan menjadi salah satu hal yang melambungkan harga bitcoin. Meski semakin berisiko, hal tersebut di sisi lain justru menjadi daya tarik bagi bitcoin. Di samping itu, peminat bitcoin juga mulai melirik cryptocurrency lain yang masih jauh dari titik jenuh. Misalnya, etherium dan litecoin. Harga bitcoin pun pernah naik 100 persen dalam sehari, lalu anjlok 200 persen beberapa minggu kemudian. Saat ini 1 BTC setara Rp 257.425.000.
Untuk itu , bagi Anda yang tertarik untuk ikut berinvestasi , ikutlah trading Bitcoin di Bitcoin Indonesia . Bitcoin Indonesia merupakan tempat trading Bitcoin dan Altcoin terbesar di Indonesia. Terdapat lebih dari 800ribu pengguna yang ikut trading di website ini. Dengan modal 100ribu , Anda sudah dapat bertransaksi . Sebagai contoh , Penulis yang sedang iseng menggunakan modal 500ribu , tepat 5 hari setelahnya Penulis telah mendapat untung kurang lebih 50% dari itu. Link registrasi terdapat di SINI , maupun di sidebar sebelah kanan Anda 
Read more

Thursday, April 13, 2017

ComboBox SelectedItem kedalam Database Access

Cara memasukkan Item ComboBox yang sudah dipilih kedalam Database melalui Microsoft Access . Penulis menggunakan VisualStudio 2015 dan Microsoft Access 2013, untuk versi yang dibawah software tersebut tentu codingannya akan berbeda . Berikut caranya :

1. Buat Database dengan tabel ContohCB , dengan isi 3 field , masing-masing tipe data berupa Short Text

2. Buat Project baru dengan template "Windows Form Application"
3. Buat tampilan form seperti dibawah ini :
4. Click tombol Button1 sebanyak 2 kali dan isi codingan berikut :
Dim sqltambah As String = "INSERT INTO ContohCB(cb,cb2,cb3) VALUES ('" & ComboBox1.Text & "','" & ComboBox2.Text & "','" & ComboBox3.Text & "')"
        Dim perintah As New OleDbCommand(sqltambah, access)
        perintah.ExecuteNonQuery()
        MessageBox.Show("Item telah bertambah")
        ComboBox1.Text = ""
        ComboBox2.Text = ""
        ComboBox3.Text = ""
5.Click Form1 sebanyak 2 kali dan isi codingan berikut :
        ComboBox1.Items.Add("Mouse")
        ComboBox1.Items.Add("Keyboard")
        ComboBox1.Items.Add("CPU")
        ComboBox2.Items.Add("Mouse")
        ComboBox2.Items.Add("Keyboard")
        ComboBox2.Items.Add("CPU")
        ComboBox3.Items.Add("Mouse")
        ComboBox3.Items.Add("Keyboard")
        ComboBox3.Items.Add("CPU")

6. Selanjutnya kita memberi function didalam form tersebut , lokasi database tergantung penempatan Anda . Disini Penulis menggunakan LocalDisk D , didalam folder database1 :
Public modul = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\database1\database1.accdb;Persist Security Info=False;"
    Public Function access() As OleDbConnection
        Dim conect As New OleDbConnection(modul)
        conect.Open()
        Return conect
    End Function

7. Di codingan paling awal , diberi statement imports :
Imports Data.System.OleDb

Codingan secara menyeluruh seperti ini :

Output yang dihasilkan dapat dilihat didalam Access Anda.

Program dapat Anda download DISINI

Sekian Tutorial kali ini , Semoga Bermanfaat ya!

Read more