menu

Showing posts with label whatis. Show all posts
Showing posts with label whatis. Show all posts

What is - Webpack


Webpack merupakan sebuah tool yang berfungsi sebagai module bundler untuk mem-pack semua resource yang diperlukan oleh sebuah website.

Jika tanpa webpack kita harus menginputkan semua module file baik itu js atau css satu persatu dengan webpack hal tersebut sudah tidak perlu dilakukan lagi, cukup menginputkan satu file js atau css maka semua sudah terselesaikan.

Tidak hanya itu webpack juga berfungsi untuk mengubah ES6 menjadi format ES5 sehingga bisa dibaca oleh browser pada umunya, selain itu bisa mengubah preprocessor CSS seperti SASS, LESS, Stylus, dan sejenisnya menjadi sebuah file CSS yang bisa dibaca di browser.

Oke langsung saja kita mulai prakteknya, sebelumnya pastikan device sudah terinstall npm, jika sudah bisa lanjutkan ke bawah,
Pertama, install webpack dengan cara berikut,
$ mkdir webpack-tutorial
$ cd webpack-tutorial
$ npm init -y
$ npm install webpack

Selanjutnya, buat folder baru dengan nama "js" sehingga akan tampak struktur file seperti pada gambar dibawah,


Tambahkan script untuk menjalankan webpack dengan mengedit file package.json menjadi seperti ini,
{
  "name": "webpack-tutorial",
  "version": "1.0.0",
  "description": "basic webpack tutorial",
  "main": "index.html",
  "scripts": {
   "dev": "webpack --mode development",
   "build": "webpack --mode production",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "codedoct.com",
  "license": "ISC",
  "dependencies": {
    "webpack": "^4.16.5"
  },
  "devDependencies": {
    "webpack-cli": "^3.1.0"
  }
}


Setelah itu install kembali npm dengan mengetikan sintax "npm install" pada path project di terminal.


Pada file webpack.config.js isikan code berikut,
var debug = process.env.NODE_ENV !== "production";
var webpack = require('webpack');

module.exports = {
  context: __dirname,
  devtool: debug ? "inline-sourcemap" : null,
  entry: "./js/codedoct.js",
  output: {
    path: __dirname + "/js",
    filename: "codedoct.min.js"
  },
  plugins: debug ? [] : [
    new webpack.optimize.DedupePlugin(),
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.optimize.UglifyJsPlugin({ mangle: false, sourcemap: false }),
  ],
};

Dan pada file index.html isikan code berikut,
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Tutorial Webpack</title>
 </head>

 <body>
  <h1>Hello Codedocters</h1>
  <div id="number">0</div>
  <button onclick="decreaseNumber()">-</button> || <button onclick="increaseNumber()">+</button>

  <script src="js/module1.js"></script>
  <script src="js/module2.js"></script>
 </body>
</html>

Buat file baru dengan nama module1.js dan module2.js kemudian isikan code berikut,

module1.js
window.increaseNumber = function() {
 var element = document.getElementById('number');
  var number = element.innerHTML;
  number++;
  element.innerHTML = number;
}

module2.js
window.decreaseNumber = function() {
 var element = document.getElementById('number');
  var number = element.innerHTML;
  number--;
  element.innerHTML = number;
}

Setelah itu buka project pada browser sehingga akan tampak seperti pada gambar dibawah,


Dapat dilihat pada gambar diatas, hasil dari inspektur halaman menunjukan bahwa tanpa webpack kita harus menginputkan file js satu persatu.

Selanjutnya kita akan mengaplikasikan webpack pada project tersebut,
Pertama, pada folder "js" buat file dengan nama codedoct.js dan import kedua file module1.js dan module2.js dengan code berikut,
import './module1.js';
import './module2.js';

Setelah itu jalankan webpack dengan cara, buka terminal masuk ke path project dan ketikan "npm run dev" untuk membuild dengan mode development atau "npm run build" untuk membuild dengan mode production, bedanya pada mode production file codedoct.min.js akan di compress menjadi 1 line saja.
Hasil webpack akan tampak seperti gambar dibawah ini,


Dan secara otomatis webpack akan membuat file baru dengan nama codedoct.min.js pada folder "js", sehingga struktur file akan terlihat seperti ini,


Terakhir masukan file codedoct.min.js tadi pada file index.html dengan mengubah file index.html menjadi seperti ini,
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Tutorial Webpack</title>
 </head>

 <body>
  <h1>Hello Codedocters</h1>
  <div id="number">0</div>
  <button onclick="decreaseNumber()">-</button> || <button onclick="increaseNumber()">+</button>

  <script src="js/codedoct.min.js"></script>
 </body>
</html>

Coba test kembali pada browser maka akan tampak seperti pada gambar dibawah ini,


Dapat dilihat tampilan akan bekerja sebagaimana mestinya yang menandakan hasil webpack berjalan dengan baik, coba lihat pada inspektur halaman hanya terdapat satu file js yaitu codedoct.min.js dan website berjalan dengan baik, lakukan hal yang sama juga untuk file css.
Selamat mencoba

===DONE!===

What is - Beralih ke CDN



CDN merupakan kependekan dari Content Delivery Network yang artinya jaringan pendistribusian konten, dalam hal ini CDN berfungsi layaknya sebagai perantara antara server dan domain.

Pada eksperimen kali ini kita akan menggunakan CDN cloudflare, sebelum masuk ke eksperimen pastikan anda sudah mempunyai domain terlebih dahulu,

Pertama buat akun (sign up) terlebih dahulu di cloudflare, jika sudah akan redirect ke kehalaman ini,


Silahkan masukan domain anda, dan selesaikan prosesnya sehingga anda akan masuk ke halaman ini,


Jika ingin mendaftarkan IP maka pilih A,


Jika ingin mendaftarkan Domain maka pilih CNAME


Selanjutnya, jika semua DNS sudah didaftarkan klik tombol continue dan pilih paket cloudflare yang diinginkan,
Terakhir, mendaftarkan nameserver cloudflare anda ke domain anda, dengan cara silahkan login ke penyedia domain yang anda punya kemudian cari cara setting namserver dan kemudian masukan nameserver hasil generate dari cloudflare ke penyedia domain anda, tampilannya akan tampak seperti ini,


Untuk artikel selanjutnya kita akan men-CDN kan beberapa website dalam satu hosting ke dalam beberapa subdomain menggunakan cloudflare.

===DONE===

What is - Array


Array merupakan sekumpulan variabel yang memiliki tipe data yang sama, untuk membedakannya antara variabel yang satu dengan yang lain di dalam Array dibedakan berdasarkan subscriptnya.

Oke untuk lebih memahaminya berikut beberapa sintax array menggunakan php,

Simple Array
$a = array(
 'a' => 'ayam',
 'b' => 'bebek',
 'c' => 'cacing',
);

//doesn't mater if the last array not use ','
$b = array(
 'a' => 'ayam',
 'b' => 'bebek',
 'c' => 'cacing'
);

//show array
var_dump($a);
echo "<br>";
var_dump($b);

echo "<br><br>";

//show beauty array
foreach ($a as $key => $value) {
    echo "$key: $value <br>";
}

echo "<br>";

//show string array
// '\' for write parse html on php
echo "string array \$a => a = ".$a['a'];
echo "<br>";
echo "string array \$b => c = ".$b['c'];

echo "<br><br>";

Sorting Array
$unsort = array(
 '1' => 'ayam',
 '3' => 'cacing',
 '2' => 'bebek',
);

//unsort array
echo "unsort<br>";
foreach ($unsort as $key => $value) {
 echo "$key: $value <br>";
}

echo "<br>";

//sorting array asc
function sortArray($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}
usort($unsort, "sortArray");
echo "sorted<br>";
foreach ($unsort as $key => $value) {
 echo "$key: $value <br>";
}

echo "<br>";

//sorting array desc
usort($unsort, function($a, $b) 
{
    return $b - $a;
});
echo "sorted with short way<br>";
foreach ($unsort as $key => $value) {
 echo "$key: $value <br>";
}

echo "<br>";

//sorting sub array key
$unsorts = array(
 '0' => array(
  'posisi' => '2',
  'content' => 'bebek',
 ),
 '1' => array(
  'posisi' => '3',
  'content' => 'cacing',
 ),
 '2' => array(
  'posisi' => '1',
  'content' => 'ayam',
 ),
);

echo "<br>";

//show array
var_dump($unsorts);

echo "<br><br>";

//show unsort array with nice display
echo "unsort<br>";
for ($i=0; $i < count($unsorts) ; $i++) { 
 echo $unsorts[$i]['posisi'].' : '.$unsorts[$i]['content'].'<br>';
}

echo "<br>";

//sorting desc array with key date
usort($unsorts, function($a, $b) 
{
    return $b['posisi'] - $a['posisi'];
});
//show sorted desc array with nice display
echo "sorted desc<br>";
for ($i=0; $i < count($unsorts) ; $i++) { 
 echo $unsorts[$i]['posisi'].' : '.$unsorts[$i]['content'].'<br>';
}

echo "<br>";

//sorting asc array with key date
usort($unsorts, function($a, $b) 
{
    return $a['posisi'] - $b['posisi'];
});
//show sorted asc array with nice display
echo "sorted asc<br>";
for ($i=0; $i < count($unsorts) ; $i++) { 
 echo $unsorts[$i]['posisi'].' : '.$unsorts[$i]['content'].'<br>';
}

echo "<br>";

//array sort, reverse, join
$the_array = array("asd", "sdas", "dsa", "qwerq");
sort($the_array);
print join(",",$the_array);
rsort($the_array);
print join("::", $the_array);
output:
asd,dsa,qwerq,sdas
sdas::qwerq::dsa::asd

//array push
$apalah = array();
array_push($apalah, "hallo");
array_push($apalah, "aloha");
array_push($apalah, "hai");
array_push($apalah, "hoii");
array_push($apalah, "yaaa!");
print count($apalah);
output:
5

Array to json
$array_to_json = array(
 '1' => 'ayam',
 '3' => 'cacing',
 '2' => 'bebek',
);

$json = json_encode($array_to_json);
echo $json;

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!===

What is - File Permissions


Cara mengerti file permissions (hak akses)

Hak akses Aksi Nomor Output
Read view 4 r
Write edit 2 w
Execute execute 1 x

Cara perhitungan
misal: 775
  • 7(angka pertama) => user = owner
  • 7(angka kedua) => user = group
  • 5(angka ketiga) => user = other
- Angka pertama = 7 berarti:
  user = owner mendapatkan hak akses: 7(4+2+1) => rwx
- Angka kedua = 7 berarti:
  user = group mendapatkan hak akses: 7(4+2+1) => rwx
- Angka ketiga = 5 berarti:
  user = other mendapatkan hak akses: 5(4+0+1) => r-x

Jadi output hak akses 775 adalah
rwxrwxr-x

===DONE!!!===