menu

Engine UBUNTU - Crontab backup database


Crontab merupakan sebuah sistem otomatis pada ubuntu yang dapat kita manfaatkan untuk menjalankan script terminal secara otomatis dan berkala.

Pada perusahaan-perusahaan start-up, data-data perusahaan seperti data user, data client dan lain-lain selalu dibackup untuk diolah dan untuk menjaga jika suatu ketika developer melakukan kesalahan.

Sehingga sistem crontab pada ubuntu ini sangatlah berguna untuk permasalahan tersebut.

Sistem crontab dapat mengatur suatu engine untuk dijalankan secara berkala misalkan setiap hari jam 6 pagi database perusahaan akan dibackup secara otomatis sehingga developer tidak perlu lagi membackup database secara manual.

Tutorial kali ini akan mengajarkan cara membuat engine crontab tersebut.
Sangat disarankan telah mengikuti tutorial pada website ini tentang PHP sampai pada CRUD delete non framework karena kita akan membackup database dari project tersebut.

Pertama, buat folder pada path var/www/html bernama crontab seperti ini


Kemudian buat file bernama backup.sh pada folder crontab tersebut, dengan cara sudo vim backup.sh kemudian isi kan code berikut pada file tersebut,
now="$(date +'%d_%m_%Y_%H_%M_%S')"
filename="db_backup_$now".gz
backupfolder="/var/www/html/crontab"
fullpathbackupfile="$backupfolder/$filename"
logfile="$backupfolder/"backup_log_"$(date +'%Y_%m')".txt
echo "backup database dimulai pada $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
mysqldump --user=root --password=(*diisi password mysql anda) --default-character-set=utf8 webcoboy | gzip > "$fullpathbackupfile"
echo "backup database selesai pada $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
chown myuser "$fullpathbackupfile"
chown myuser "$logfile"
echo "proses selesai pada $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
echo "*****************" >> "$logfile"
exit 0

Setelah itu pastikan bahwa file backup.sh yang baru dibuat tadi dapat dieksekusi dengan cara "sudo chmod 755 backup.sh" untuk lebih jelasnya lihat disini.

Selanjutnya ketikan pada terminal crontab -e untuk mengedit list crontab
dan masukan code berikut seperti ini.
# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command
* * * * * /var/www/html/crontab/backup.sh

See crontab akan menjalankan file backup.sh setiap satu menit untuk membackup database project webcoboy. untuk mengeceknya silahkan buka folder crontab pada path /var/www/html/crontab makan anda akan melihat file backup dan file txt.

Untuk menghentikan hapus atau comment saja code berikut pada crontab, dengan mengetikan crontab -e seperti ini.
# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command
#* * * * * /var/www/html/crontab/backup.sh

Untuk membaca file .gz hasil backup dengan cara:

$ sudo zcat filename.gz 

Jika kurang mengerti dengan sintax ubuntu silahkan buka disini.
Untuk penjelasan tentang Crontab sendiri bisa lihat disini.

===DONE!===

What is - Crontab


Crontab merupakan sebuah sistem pada Linux yang bekerja dibalik layar yang dapat menjalankan sebuah perintah coding secara otomatis dan berkala.

Crontab ini sangat berguna untuk memudahkan developer dalam melakukan suatu pekerjaan yang dilakukan secara berulang-ulang.

Dengan Crontab seorang developer tidak perlu lagi menjalankan sebuah program yang dibuat untuk melakukan suatu hal secara manual, karena dengan Crontab program tersebut dapat dijalankan secara otomatis dan berkala.

Oke berikut sintax-sintax dari Crontab.
crontab -e      //Edit file crontab, atau buat baru jika belum pernah ada.
crontab -l      //Menampilkan isi dari file crontab.
crontab -r      //Menghapus file crontab.

//jika crontab belum terinstall diubuntu bisa menggunakan code
sudo apt-get install cron

Aturan penjadwalan dalam Crontab.
*  *  *  *  * path/file/yang/akan/dieksekusi.sh
.  .  .  .  .
.  .  .  .  ----> hari dari minggu (0–6) dimana 0 = minggu
.  .  .  .
.  .  .  -------> bulan (1–12)
.  .  .
.  .  ----------> hari dari bulan / tanggal (1–31)
.  .
.  -------------> jam (0-23)
.
----------------> menit (0-59)

//eksekusi dalam menit
* * * * * path/file/yang/akan/dieksekusi.sh (ini tiap menit)
*/5 * * * * path/file/yang/akan/dieksekusi.sh (ini tiap 5 menit)
2,3,7,57 * * * * path/file/yang/akan/dieksekusi.sh (ini tiap menit ke 2,3,7,57)

//eksekusi dalam jam
0 6 * * * path/file/yang/akan/dieksekusi.sh (ini tiap jam 6 pagi)
0 6 * * 1 path/file/yang/akan/dieksekusi.sh (ini tiap jam 6 pagi hari senin)
0 6 * * 1-5 path/file/yang/akan/dieksekusi.sh (ini tiap jam 6 pagi hari senin sampai jum'at)

//eksekusi dengan code
@reboot     Mengeksekusi satu kali setiap menghidupkan sistem ubuntu
@yearly     Mengeksekusi satu kali setiap tahun  ==  "0 0 1 1 * (ini tiap tanggal 1 bulan 1)"
@annually   Sama seperti @yearly
@monthly    Mengeksekusi satu kali setiap bulan  ==  "0 0 1 * * (ini tiap tanggal 1)"
@weekly     Mengeksekusi satu kali setiap minggu   ==  "0 0 * * 0 (ini tiap hari minggu)"
@daily      Mengeksekusi satu kali setiap hari   ==   "0 0 * * * (ini tiap jam 12 malam)"
@midnight   Sama seperti @daily
@hourly     Mengeksekusi satu kali setiap jam  ==  "0 * * * * (ini tiap menit pertama)"

//menyimpan log crontab
@daily path/file/yang/akan/dieksekusi.sh 2>&1 >> /home/sigit/log/crontab_schedule.log

//mengirim log ke email
@daily path/file/yang/akan/dieksekusi.sh 2>&1 | mail -s "Cronjob Log codedoct@gmail.com

//menjalankan file php pada crontab
@daily /usr/bin/php /path/file/yang/akan/dieksekusi.php

===DONE!===

Laravel - Grouping Route 1


Melanjutkan tutorial yang kemarin, pada tutorial kali ini saya akan memberikan tutorial tentang cara membuat group route pada Laravel.

Membuat group merupakan suatu trik untuk mengelompokan route menjadi beberapa kelompok sehingga memudahkan seorang developer untuk mentrack controller suatu project.

Selain memudahkan developer grouping route ini juga membuat codingan menjadi lebih rapi dan elegan.

Oke langsung saja kita mulai tutorialnya,.,.,

Pertama edit routes.php pada path protected/app/routes.php menjadi seperti ini
<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the Closure to execute when that URI is requested.
|
*/

Route::get('/', 'HomeController@showWelcome');

//pahamilah group route dibawah
Route::group(array('prefix' => 'crud'), function(){
 Route::get('users', 'Controller\Crud\ReadController@readUsers');

 Route::get('create', 'Controller\Crud\CreateController@createUser');
 Route::post('create', 'Controller\Crud\CreateController@createpostUser');

 Route::get('update/{id}', 'Controller\Crud\UpdateController@updateUser');
 Route::post('update/{id}', 'Controller\Crud\UpdateController@updatepostUser');

 Route::get('delete/{id}', 'Controller\Crud\DeleteController@deleteUser');
});

Selanjutnya edit readUser.blade.php, createUser.blade.php, updateUser.blade.php  pada path protected/app/view/web/, masing-masing menjadi seperti ini.

readUser.blade.php
.
.
.
          <td>
           <a href="{{ URL::to('crud/update/'.$users->id) }}">Edit<br>
           <a href="{{ URL::to('crud/delete/'.$users->id) }}">Delete
          </td>
       </tr>
     @endforeach
   </table>
   <br>
   <button onclick="location.href='{{ URL::to('crud/create') }}';">Create</button>
 </div>
@stop

createUser.blade.php
.
.
.
   <tr>
    <td colspan="3">
     <br>
     <input type="submit" class="btn" value="Create">
    </td>
   </tr>
  </table>
  </form>
 </div>
@stop

updateUser.blade.php
@extends('layouts/web/master')
@section('content')
 <?php $title = "Update User" ?>
 <div class="isi">
  <form method="post" action="">
  <table>
   <tr>
    <td>Name</td>
    <td nowrap>:</td>
    <td><input type="text" name="name" value="{{ $data_user['name'] }}"><span style="color:red"><?php echo $errors->first('name') ?></td>
   </tr>
   <tr>
    <td>Username</td>
    <td nowrap>:</td>
    <td><input type="text" name="username" value="{{ $data_user['username'] }}"><span style="color:red"><?php echo $errors->first('username') ?></td>
   </tr>
   <tr>
    <td>Email</td>
    <td nowrap>:</td>
    <td><input type="text" name="email" value="{{ $data_user['email'] }}"><span style="color:red"><?php echo $errors->first('email') ?></span></td>
   </tr>
   <tr>
    <td colspan="3">
     <br>
     <input type="submit" class="btn" value="Save">
    </td>
   </tr>
  </table>
  </form>
 </div>
@stop

Kemudian edit header.blade.php pada path protected/app/view/layouts/web menjadi seperti ini.
<div class="header">
 <div class="banner">
  <div class="welcome">Welcome</div>
  {{-- code dibawah ini menggunakan constant variabel --}}
  <div class="gambar"><a href="#"><img src="{{ IMAGE_HEADER }}" style="width:"100px" height="129px";"></a></div>
 </div>
 <hr>
 <div class="menu">
  <div class="kiri">
   <li>
    <div class="dropdown">
      <button class="button">Menu(css)</button>
      <div class="dropdown-content">
        <a href="{{ URL::to('crud/users')}}">User</a>
        <a href="#">Link 2</a>
        <a href="#">Link 3</a>
      </div>
    </div>
   </li>
   <li>
     <div class="dropdown-script">
      <button onclick="myFunction()" class="dropbtn">Menu(css)</button>
      <div id="myDropdown" class="dropdown-content-script">
        <a href="{{ URL::to('crud/users')}}">User</a>
        <a href="#">Link 2</a>
        <a href="#">Link 3</a>
      </div>
     </div>
   </li>
  </div>
  <div class="kanan">
   <li onclick="location.href='{{ URL::to('/') }}';">Login</li>
   <li onclick="location.href='{{ URL::to('/') }}';">Cari</li>
  </div>
 </div>
</div>

Dan yang terakhir edit controller CreateController.php, UpdateController.php, dan DeleteController.php masing-masing seperti ini.

CreateController.php
.
.
.
     if ($validator->passes()) {
         $user           = new User;
         $user->name     = Input::get('name');
         $user->username = Input::get('username');
         $user->email    = Input::get('email');
         $user->password = Hash::make(Input::get('password'));
         $user->save();

         return Redirect::to('crud/users');
     }
     else {
      return Redirect::to('crud/create')
       ->withErrors($validator)
       ->withInput();
     }
 }
}

UpdateController.php
.
.
.
     if ($validator->passes()) {
         $user           = User::find($id);
         $user->name     = Input::get('name');
         $user->username = Input::get('username');
         $user->email    = Input::get('email');
         $user->save();

         return Redirect::to('crud/users');
     }
     else {
      return Redirect::to('crud/update/'.$id)
       ->withErrors($validator)
       ->withInput();
     }
 }
}

DeleteController.php
<?php namespace Controller\Crud;

use Model\User;
use \Redirect;

class DeleteController extends \BaseController 
{
 public function deleteUser($id)
 {
  $user = User::where('id', $id)->first();
  $user->delete();
  return Redirect::to('crud/users');
 }
}

Silahkan pahamilah sendiri apa saja yang telah kita edit dari tutorial sebelumnya,..

===DONE!===

Laravel - Composer classmap


Pada artikel kali ini kembali saya akan memberikan tutorial yang akan membuat proect laravel anda semakin elegan.,.,.

Pada sebuah project website dengan framework Laravel kita perlu membuat pengelompokan pada setiap class yang kita buat agar codingan lebih terlihat rapi.

Tutorial kali ini akan menjelaskan cara membuat foldering controller pada Laravel agar codingan terlihat lebih rapi,.,

Untuk bisa melakukan tutorial ini diharuskan anda sudah menerapkan tutorial hingga tahap ini.

Oke langsung saja kita mulai tutorialnya,

Pertama, buat folder bernama "crud" pada controller kemudian masukkan CreateController, DeleteController, ReadController, dan UpdateController kedalam folder tersebut seperti ini.


Jika kita membuka website anda dan mengklik submenu user seperti ini


Maka kita akan mendapatkan error seperti ini


Hal ini disebabkan karena kita belum membuat classmap pada route sehingga controller tidak dapat dikenali.

Selanjutnya buat classmap pada route dengan mengubah code routes.php pada path protected/app/routes.php menjadi seperti ini.
<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the Closure to execute when that URI is requested.
|
*/

Route::get('/', 'HomeController@showWelcome');

Route::get('users', 'Controller\Crud\ReadController@readUsers');

Route::get('create', 'Controller\Crud\CreateController@createUser');
Route::post('create', 'Controller\Crud\CreateController@createpostUser');

Route::get('update/{id}', 'Controller\Crud\UpdateController@updateUser');
Route::post('update/{id}', 'Controller\Crud\UpdateController@updatepostUser');

Route::get('delete/{id}', 'Controller\Crud\DeleteController@deleteUser');

kemudian tambahkan code "namespace Controller\Crud;" pada semua controller(CreateController, DeleteController, ReadController, dan UpdateController) yang ada pada folder crud yang baru saja kita pindahkan tadi menjadi seperti ini.
<?php namespace Controller\Crud;

class ReadController extends \BaseController 
{
 public function readUsers()
 {
  $users = User::all();
  return View::make('web.readUser')->with('data_user', $users);
 }

}


Terakhir jalankan dump autoload pada terminal seperti ini.


Jika terjadi error seperti ini.


Berarti project yang kita buat belum memiliki file composer.phar silahkan download disini, jika sudah download letakkan pada path protected pada project laravel kemudian jalankan dump-autoload lagi, hingga sukses denngan tampilan seperti ini.


===DONE!===

WHY?

1. Untuk error


Ini dikarenakan file model belum di beri class juga sehingga nama model dianggap sama dengan nama file migration cara mengatasinya dengan memberi code "&lt;?php namespace Model;" pada model User.php pada path protected/app/model/User.php seperti ini



2. Untuk error


Ini hanya warning saja bukan error jika ingin menghilangkannya tinggal lakukan saja apa yang diperintahkan yaitu tetap pada path protected kemudian ketik pada terminal "php composer.phar self-update"

3. Untuk error

Tambahkan saja code "use Model\User;" 


Tambahkan saja code "use \View;" 

Pada controller ReadController.php dan misalkan pada controller lain juga muncul error tersebut maka tambahkan juga code tersebut pada controller yang error.
Ingat! setiap controller mungkin membutuhkan Model dan  Library yang berbeda jadi sesuaikan dengan kebutuhan pada saat menggunakan code "use ...........".
Misal jika dibutuhkan Validator maka tinggal tambahkan "use \Validator;"
Sehingga code controller akan menjadi seperti ini.
<?php namespace Controller\Crud;

use Model\User;
use \View;

class ReadController extends \BaseController 
{
 public function readUsers()
 {
  $users = User::all();
  return View::make('web.readUser')->with('data_user', $users);
 }

}


4. Untuk error


Tambahkan saja code "use \Eloquent;" pada model User.php. Sama seperti controller Model juga memiliki kebutuhan Library yang berbeda-beda jadi sesuaikan setiap modelnya, pada contoh diatas model User.php error karena class Model\Eloquent tidak ditemukan jadi kita tambahkan saja code "use \Eloquent;".
Sehingga code model User.php akan menjadi seperti ini.
<?php namespace Model;

use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
use \Eloquent;

class User extends Eloquent implements UserInterface, RemindableInterface {

 use UserTrait, RemindableTrait;

 /**
  * The database table used by the model.
  *
  * @var string
  */
 protected $table = 'users';

 /**
  * The attributes excluded from the model's JSON form.
  *
  * @var array
  */
 protected $hidden = array('password', 'remember_token');

}

Selebihnya silahkan pahamilah sendiri,,,
Jika ada yang kurang dimengerti atau ada error lain silahkan email(contact us) atau comment juga boleh.

Laravel - Membuat file Constant


Memiliki file constant dalam sebuah project besar laravel adalah suatu keharusan karena file constant dapat membantu mempermudah pengembangan project tersebut.

File constant meruupakan sebuah kumpulan variabel yang mewakili atau menggantikan suatu string secara global. Sehingga kita hanya perlu menuliskan variabel singkat untuk menggantikan string yang panjang.

File constant ini bersifat global sehingga kita tidak perlu mendeklarasikannya pada setiap halaman.

Jangan lupa ikuti tutorial pada website ini secara berurutan, dan untuk sampai tahap ini pastikan anda sudah menyelesaikan tutorial sampai pada tutorial ini.

Oke langsung saja kita praktekan untuk lebih jelasnya, Here we go!

Pertama buat file baru constants.php pada path protected/app seperti ini


Isi dengan code berikut
<?php
 // gambar
 define('IMAGE_HEADER', 'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWOzEVZ-vSf8RORS5_ZF7e0ltWpkD7gFpz-rqKoBgvvfJkgG9iXS5RxO3iU-MF2TvMqhkj7tIalKW48dq7bJv1Rjk-CKPsKLG6lZGuqVAd_IbNHzZYbWDuyvy2Rji4g1VTQsejHbKskbI/s80/mata.png');

Kemudian deklarasikan file constant tersebut dengan cara menambahakan code berikut pada file protected/app/start/global.php
.
.
.
.
.
.
require app_path().'/filters.php';

// file constant
require_once app_path().'/constants.php';

App::missing(function(Exception $exception)
{
    return Response::view('web.404-not-found', array(), 404);
});

Selanjutnya ganti url header pada path


Edit file header.blade.php menjadi seperti ini
<div class="header">
 <div class="banner">
  <div class="welcome">Welcome</div>
  {{-- code dibawah ini menggunakan constant variabel --}}
  <div class="gambar"><a href="#"><img src="{{ IMAGE_HEADER }}" style="width:"100px" height="129px";"></a></div>
 </div>
 <hr>
 <div class="menu">
  <div class="kiri">
   <li>
    <div class="dropdown">
      <button class="button">Menu(css)</button>
      <div class="dropdown-content">
        <a href="{{ URL::to('users')}}">User</a>
        <a href="#">Link 2</a>
        <a href="#">Link 3</a>
      </div>
    </div>
   </li>
   <li>
     <div class="dropdown-script">
      <button onclick="myFunction()" class="dropbtn">Menu(css)</button>
      <div id="myDropdown" class="dropdown-content-script">
        <a href="{{ URL::to('users')}}">User</a>
        <a href="#">Link 2</a>
        <a href="#">Link 3</a>
      </div>
     </div>
   </li>
  </div>
  <div class="kanan">
   <li onclick="location.href='{{ URL::to('/') }}';">Login</li>
   <li onclick="location.href='{{ URL::to('/') }}';">Cari</li>
  </div>
 </div>
</div>

Dapat dilihat pada code tersebut dari url yang panjang kita ganti dengan sebuah variabel IMAGE_HEADER yang sudah kita deklarasikan pada file constants.php selebihnya silahkan pahamilah sendiri..

Tampilannya tetap sama seperti sebelum url gambar diganti dengan file constant, tapi dari sisi code ini sangat elegan..


===DONE!===

Laravel - Membuat page not found


Hello,, lama beristirahat dengan Laravel karena sibuk dengan Rails saatnya kembali berkreasi dengan PHP on Laravel.

Oke melanjutkan tutorial sebelumnya, kali saya akan share sebuah teknik untuk menampilkan halaman page not found pada website dengan framework Laravel 4.2.

Pada Laravel jika kita memasukkan sebuah URL yang salah maka akan muncul halaman error seperti ini.


Untuk sebuah website profesional tentu saja halaman ini sangat tidak enak dilihat, karena user akan beranggapan bahwa website anda error atau bugs.

Karena itu sebagai seorang programmer teruslah belajar untuk membuat sebuah sistem sesederhana mungkin dari segi interface/tampilan tapi rumit dibagian code dan yang paling penting minim atau malah tidak ada bugs sama sekali hehe..

Oke langsung saja sedikit ilmu dari dari seorang programmer amatir, Here we go!..

Pertama pastinya anda sudah membuat sebuah project website dengan menggunakan Laravel jika belum? silahkan belajar dulu sampai anda menyelesaikan tahap ini.

Jika sudah, buka path app/start/global.php


Kemudian tambahkan code berikut pada baris paling bawah seperti ini
App::missing(function(Exception $exception)
{
    return Response::view('web.404-not-found', array(), 404);
});

Kemudian buat file baru dengan nama 404-not-found.php pada path protected/app/views/web seperti ini


Dan isi dengan code terserah anda, halaman inilah yang akan ditampilkan saat Page Not Found, misal isi dengan code berikut
Page not found :D

Sehingga tampilannya jika saya masukkan URL yang salah akan terlihat seperti ini


===DONE!===

Rails - Install Rails on Ubuntu


Oke melanjutkan artikel sebelumnya, kali ini kita akan menginstall Rails..

Rails merupakan sebuah framework pada Ruby yang akan memudahkan anda membuat sebuah website dengan menggunakan bahasa Ruby yang sangat elegan..

Kebanyakan orang yang menguasai Ruby on Rails adalah programmer yang sudah bisa dikatakan "PRO" dikarenakan kebanyakan  dari mereka yang jago Ruby pasti sebelumnya sudah pernah belajar PHP dan membandingkan kedua bahasa pemrogramman tersebut. Tapi tidak sedikit juga programmer yang langsung mempelajari Ruby tanpa mengerti PHP hehe..

Tentu saja hal itu sangat disayangkan  karena PHP dengan penggemar yang sangat banyak diseluruh dunia juga merupakan bahasa yang elegan dan penuh dengan "kebebasan" => "U Can Make Anything With PHP" haha..

Oke langsung saja kita install Railsnya, Here we go..

Jangan lupa install Ruby terlebih dahulu,

Dalam pengembangannya nanti Rails sangat bergantung pada JavaScript oleh sebab itu kita install terlebih dahulu NodeJS
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

Kemudian Install Rails
gem install rails -v 5.0.0.1

Pastikan kembali rbenv Ruby dapat eksekusi
rbenv rehash

Check installation
rails -v

Sehingga tampilannya akan terlihat seperti ini


===DONE!===

Syntax - Syntax ubuntu


Untuk menunjang tutorial Ruby on rails yang menggunakan OS Ubuntu maka disini akan saya share beberapa syntax terminal pada Ubuntu beserta cara penggunaannya yang sering digunakan untuk programming.

Structure file
//for go to the folder
cd name_folder

//To user home
cd

//back 1 path folder
cd ..

//show list folder
ls

//show list folder with detail
ll

//show path active
pwd

Operation file
//move or cut file or folder
mv name_file_or_folder

//copy file or folder
cp name_file_or_folder

//remove file
rm name_file

//remove empty folder
rmdir name_folder

//remove folder and contains
rm -rf name_folder

//make folder
mkdir name_folder

//show file content
cat name_file

//change access permissions? read this
chmod

//change owner file or group
chown

//copy file to server or different computer with scp
scp username@IP:path/to/file(source) path/to/destination
or
scp path/to/file(source) username@IP:path/to/destination

Vim
//before inserting code click Esc first

//open file with vim
vim name_file

//save vim
:w

//just quit vim
:q

//save and quit
:wq

//force quit
:q!

Nano
//exit
Ctrl + X

//write or save
Ctrl + O

/find
Ctrl + W

//replace
Ctrl + \

//cut text
Ctrl + K

//get help
Ctrl + G

Apache
//show error log apache
tail -f /var/log/apache2/error.log

Play with Ubuntu
//running with user active
sudo

//install application ubuntu
sudo apt-get install name_application_ubuntu

//update application ubuntu
sudo apt-get update

Ruby - Upgrade Ruby with rbenv


Melanjutkan tutorial sebelumnya tentang install Ruby pada ubuntu, kali ini saya akan share cara mengupgrade version Ruby yang sudah diinstall

Pada komputer saya Ruby yang terinstall adalah versi 1.9.3 yang akan saya upgrade menjadi versi 2.3.1.

Sangat dianjurkan mengerti syntax ubuntu terlebih dahulu.

Oke kita langsung saja caranya..

Pertama hapus terlebih dahulu folder .rbenv yang lama
sudo rm -rf .rbenv

Kemudian install versi ruby yang anda inginkan dalam hal ini saya akan menginstall Ruby versi 2.3.1.
//update all apt 
sudo apt-get update 
//install library pendukung Ruby 
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev

cd

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

rbenv install 2.3.1

Selanjutnya edit isi file .ruby-version
vim .ruby-version

Ganti sesuai dengan versi Ruby yang sudah diinstall, tampilan vim akan terlihat seperti ini.


Ubah menjadi


Jika sudah selesai kemudian save :wq

Terakhir install bundler
rbenv global 2.3.1
gem install bundler
ruby -v

Sehingga tampilan akan menjadi seperti ini


===DONE!===

Ruby - Install Ruby on Ubuntu


Masih suasana lebaran, kali ini saya akan memulai tutorial ruby on rails.

Berbeda dengan tutorial Laravel on PHP yang sudah saya posting, tutorial Ruby on Rails kali ini akan saya terapkan pada ubuntu tidak pada windows. Dikarenakan agar saya tidak lupa syntax-syntax pada terminal ubuntu hehe..

Oke pada posting kali ini saya akan menginstall Ruby pada ubuntu, jika anda ingin meginstall Ruby pada windows silahkan klik disini.

Cara yang saya gunakan untuk menginstall Ruby pada tutorial ini menggunakan metode rbenv karena menurut saya pada pengembangannya  rbenv ini sangan mudah digunakan, sedangkan versi Ruby yang akan diinstall adalah ruby version 2.3.1.

Sangat dianjurkan mengerti syntax ubuntu terlebih dahulu.

Langsung saja kita ke tutorialnya,,

Pertama, tentu saja buka terminal anda kemudian install beberapa library pendukung Ruby.
//update all apt 
sudo apt-get update 
//install library pendukung Ruby 
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev

jika ada pertanyaan seperti ini ketik "y" saja


Selanjutnya, install Ruby dengan metode rbenv dengan syntax ini.
//pastikan berada pada path user home 
cd 

//download or clone rbenv 
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

//download or clone plugin rbenv 
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

rbenv install 2.3.1
rbenv global 2.3.1
ruby -v

Terakhir install bundler
gem install bundler

sehingga hasilnya akan menjadi seperti ini.


===DONE!===

How - Add new collaboration on github


Melanjutkan tutorial sebelumnya tentang how to use github.

Sekarang kita akan menggunakan salah satu fitur dari github yang menurut saya sangat berguna untuk pengembangan sebuah project yaitu collaboration.

Collaboration yaitu sebuah fitur yang dapat mengizinkan pengguna github lainnya untuk editing project yang sedang kita kembangkan, sehingga akan terbentuk sebuah team developer.

Oke langsung saja caraya,

Pertama sign in github terlebih dahulu, kemudian klik project yang akan di share seperti ini


Selanjutnya klik setting


Kemudian klik collaborators


dan isi akun github yang akan menjadi salah satu collaborator


Terakhir klik add collaborator
Jika sudah buka email si collaborator dan accept.

===DONE!===

Download - Instalasi komputer baru (ubuntu)


Postingan kali ini akan menampilkan daftar software yang wajib codedoct download saat install komputer pertama kali dengan OS ubuntu.

Berikut list software beserta cara installnya,

Shutter
/*shutter merupakan aplikasi yang sering saya gunakan untuk mengcrop layar komputer, 
jika di windows aplikasi ini sama dengan snipping tool*/

//pertama tambah repository ppa terlebih dahulu untuk menginstall shutter
sudo add-apt-repository -y ppa:shutter/ppa

//update all apt
sudo apt-get update

//install shutter
sudo apt-get install shutter

Kolourpaint
/*kolour pain adalah aplikasi yang sangat berguna untuk editing gambar
jika di windows aplikasi ini sama dengan paint*/

//update all apt first
sudo apt-get update

//install kolourpaint4
sudo apt-get install kolourpaint4

Steam
/*tidak lengkap jika tidak ada game yang bisa dimainkan, hehe*/
//update all apt first
sudo apt-get update

//install steam
sudo apt-get install steam

Vim
/*vim merupakan text editor basic pada ubuntu yang sangat saya sukai*/
//update first
sudo apt-get update to make sure you have the latest sources.list

//install vim
sudo apt-get install vim

Sublime-text
/* sama seperti vim sublime merupakan aplikasi text editor */
//add some repository
sudo add-apt-repository ppa:webupd8team/sublime-text-3

//update first
sudo apt-get update

//install sublime-text3
sudo apt-get install sublime-text-installer

How - Use Github


Sebentar lagi lebarann,, mumpung lagi libur saatnya menulis lagii,,

Kali ini kita akan belajar cara menggunakan github.

Github merupakan sebuah aplikasi yang digunakan sebagai tempat untuk meletakkan source code dari sebuah sistem yang sedang kita buat.

Tidak hanya sebuah tempat penyimpanan, github juga sangat berguna sebagai sarana untuk pengembangan sistem yang kita buat, karena pada github saat kita mengedit source code kita pada localhost(komputer sendiri) kemudian meng-push atau meng-upload source code kita ke github, maka kita dapat mentrack apa saja yang sudah kita ubah pada source code kita, kita juga dapat menghapus perubahan dan mendownloadnya ke localhost(komputer) lain untuk sharing dalam pengembangan sistem yang sedang kita buat.

Oke langsung saja kita belajar cara menggunakannya untuk pemula..

Pertama silakan buat akun terlebih dahulu disini

Jika sudah silahkan langsung sign in, maka akun anda akan tampak seperti ini


Klik start project kemudian isi informasi sistem yang akan anda buat seperti ini


Dan klik create repository

Install github
  • Pengguna Ubuntu
    • sudo apt-get update
    • sudo apt-get install git
  • Pengguna Windows
    • download github disini
    • langsung install saja

Oke sekarang masuk ke directory source code yang akan di upload ke github lewat terminal atau command-prompt atau power-shell untuk pengguna windows 10

Disini saya akan menggunakan power-shell karena biasanya ada beberapa masalah install git pada windows jadi biar bisa saya terangkan langsung di WHY?, jika pada ubuntu semua beresss..

Tampilan directory source code saya seperti ini silahkan masuk sendiri ke source code masing-masing jika anda menggunakan xampp bisa masuk pada directory htdocs lihat gambar dibawah ini.


Jika sudah masuk silahkan masukkan sintax berikut
// set name and email
git config --global user.name "YOUR NAME"
git config --global user.email "YOUR EMAIL ADDRESS"

//initialize
git init

//add remote
git remote add origin https://github.com/username/projectname.git

git add -A
git commit -m "comment apa saja(anything)"
git push -u origin master

//jika anda pengguna ubuntu maka anda akan diminta login dengan memasukkan username dan password

add remote bisa lihat disini


Sehingga akan tampak seperti ini jika push sukses,,


Untuk sintax-sintax yang lainnya bisa lihat disini


WHY?

  • Jika git unrecognize maka anda harus initialize github secara global dahulu lihat disini.

===DONE!===