Pada tutorial sebelumnya kita telah membahas bagaimana cara instalasi dan konfigurasi dns pada debian server, kali ini penulis akan melanjutnya artikel mengenai bagaimana konfigurasi DHCP dan web server pada debian :).

Apa Itu DHCP ?

DHCP (Dymanic Configuration Protocol) adalah sebuah sistem dimana sistem tersebut dapat memberikan IP secara otomatis kepada komputer yang meminta.

DHCP sangatlah berguna, terutama ketika jumlah komputer yang akan kita berikan IP berjumlah sangat banyak. Dengan adanya DHCP, kita juga dapat memberikan range IP berdasarkan jumlah komputer yang tersedia.

Berikut adalah gambar dari activity diagram untuk DHCP

Screenshot from 2016-03-02 19:12:42.png

Berikut adalah penjelasan mengenai activity diagram diatas.

  1. Komputer client melakukan request IP kepada komputer server, dimana komputer client bertindak sebagai DHCP client sedangkan komputer server bertindak sebagai DHCP server.
  2. Komputer server akan melakukan pengecekan IP yang terdapat di dalam database DHCP, jika IP masih tersedia atau IP masih belum dicoret maka komputer server akan meminjamkan IP tersebut kepada komputer client dan mencoret IP tersebut dari database DHCP sehingga IP tidak akan ada yang duplicate atau double.
  3. Jika IP tidak tersedia atau seluruh IP telah dicoret maka komputer client tidak akan mendapatkan IP sehingga komputer client tidak dapat mengakses jaringan tersebut.

Apa Itu Web Server ?

Web Server adalah suatu perangkat lunak yang bertanggung jawab untuk menerima request dan memberikan response dari pada client melalui protokol http (hypertext transfer protocol).

Pada zaman sekarang ada banyak sekali web server yang dapat kita gunakan. Masing - masing bahasa pemrograman yang support untuk membuat web mempunyai web server tersendiri, berikut adalah contoh web server.

  • Apache Web Server : biasanya digunakan sebagai web server untuk php
  • Nginx : biasanya digunakan sebagai web server untuk php dan hhvm
  • Apache Tomcat : biasanya digunakan sebagai web server untuk java web
  • Jetty : biasanya digunakan sebagai web server untuk Java web
  • GlassFish Server : biasanya digunakan sebagai web server untuk Java EE
  • Wildfly Server : biasanya digunakan sebagai web server untuk Java EE
  • WEBrick : biasanya digunakan sebagai web server untuk ruby
  • Dan lain - lain

Berikut adalah gambar dari deployment diagram untuk web server.

Screenshot from 2016-03-02 19:42:33.png

Berikut adalah penjelasan dari deployment diagram diatas.

  1. Komputer client berfungsi sebagai node yang pertama, node disini berfungsi sebagai hardware dari bagian client. Begitu pula dengan komputer server yang bertindak sebagai node yang kedua.
  2. browser : adalah component dari pada node komputer client, component adalah representasi dari pada sebuah software. Hal ini juga sama jika kita bandingkan dengan web server sebagai component software yang kedua.
  3. Misalnya user akan melakukan akses sebuah halaman web. Sebuah halaman web biasanya terdiri dari html, css dan js. Ketika user melakukan akses sebuah web melalui browser, maka browser akan melakukan request melalui protokol http berdasarkan URL (uniform resource locator) yang diketikan oleh user. Request tersebut diterima oleh web server yang berada pada komputer server, jika URL sesuai maka web server akan mengembalikan response kepada browser.

Instalasi Dan Konfigurasi DHCP3 Server

Setelah membahas mengenai cara kerja dari dhcp dan web server, sekarang kita akan langsung melakukan instalasi dhcp pada debian server :D.

Untuk melakukan instalasi dhcp3 server, silahkan jalankan perintah berikut.

apt-get install dhcp3-server

Setelah selesai, kita akan melakukan instalasi editor yang baru, jika dulu kita menggunakan nano, maka sekarang kita akan menggunakan editor mcedit, silahkan jalankan perintah berikut untuk melakukan instalasi editor tersebut.

apt-get install mc

Tahap selanjutnya kita akan melakukan konfigurasi dhcp, silahkan jalankan perintah berikut.

mcedit /etc/dhcp3/dhcpd.conf

Maka akan muncul tampilan seperti berikut.

Screenshot from 2016-03-02 20:06:40.png

Kemudian untuk loncat ke baris yang akan kita tuju, silahkan tekan tombol f9, kemudian pindahkan kursor menu commands dengan tombol left, lalu tekan enter dan pilih go to line. Masukkan angka 51 artinya kita akan loncat ke baris 51 kemudian tekan tombol alt + o. Tahap selanjutnya silahkan ubah konfigurasi tersebut seperti ini.

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.20 192.168.1.40;
    option domain-name-servers 192.168.1.1;
    option domain-name "labti.com";
    option routers 192.168.1.1;
    option broadcast-address 192.168.1.255;
    default-lease-time 7200;
    max-lease-time 7200;
}

Berikut adalah penjelasan dari konfigurasi diatas.

  • subnet : berfungsi sebagai network address
  • range : jarak ip yang akan digunakan pada komputer client
  • option domain-name-servers : berfungsi sebagai IP DNS dari komputer server
  • option domain-name : berfungsi sebagai nama domain
  • option routers : berfungsi sebagai IP dari router atau bisa juga IP komputer server
  • option broadcast-address : berfungsi sebagai broadcast dari IP
  • default-lease-time : berfungsi sebagai waktu tetap untuk peminjaman IP kepada komputer client dari komputer server
  • max-lease-time : berfungsi sebagai waktu maksimal untuk peminjaman IP kepada komputer client dari komputer server

Langkah selanjutnya adalah simpan konfigurasi tersebut dengan menekan tombol f2 maka akan muncul tampilan seperti berikut.

Screenshot from 2016-03-02 22:19:03.png

Kemudian tekan enter, lalu close editor dengan menekan tombol f10. Langkah selanjutnya silahkan restart dhcp3 dengan perintah.

/etc/init.d/dhcp3-server restart

Jika terjadi error seperti ini

Stopping DHCP server: dhcpd3 failed!
Starting DHCP server: dhcpd3.

Maka lakukan restart sekali lagi, jika masih failed maka silahkan lakukan pengecekan konfigurasi pada dhcp nya.

Jika berhasil maka outputnya seperti berikut.

Stopping DHCP server: dhcpd3.
Starting DHCP server: dhcpd3.

Instalasi Dan Konfigurasi Web Server

Setelah berhasil melakukan instalasi dan konfigurasi dhcp, tahap selanjutnya kita akan melakukan instalasi dan konfigurasi web server pada debian server. Pada artikel ini, penulis akan menggunakan apache web server sebagai web server. Web server apache adalah salah satu web server untuk bahasa pemrograman php, maka pada saat proses instalasi, penulis juga melakukan instalasi php versi 5. Untuk melakukan instalasi tersebut silahkan jalankan perintan berikut.

apt-get install apache2 php5

Secara default, web server apache di debian belum dikonfigurasi folder htdocs nya, berbeda dengan ubuntu. Pada ubuntu, apache akan secara otomatis mendeklarasikan bahwa folder /var/www/html adalah sebagai folder htdocs. Folder htdocs sebenarnya berasal dari aplikasi xampp. Untuk melakukan konfigurasi tersebut silahkan jalankan perintah berikut.

nano /etc/apache2/sites-available/default

Kemudian ubah konfigurasinya seperti berikut.

<VirtualHost *:80>
  ServerAdmin admin@labti.com
  DocumentRoot /var/www/html

  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>

  <Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow, deny
    allow from all
  </Directory>

</VirtualHost>

Setelah selesai, sekarang kita akan membuat folder yang berfungsi sebagai folder htdocs silahkan jalankan perintah berikut.

mkdir /var/www/html

Testing DHCP

Setelah melakukan konfigurasi DHCP, kita akan melakukan testing apakah dhcp tersebut berhasil atau tidak. Bagaimana cara nya ? untuk mempermudah, kita akan gunakan windows sebagai komputer client dan debian sebagai komputer server. Silahkan anda lakukan instalasi windows pada VMware anda, setelah selesai melakukan instalasi windows pada VMware terdapat beberapa langkah yang harus anda lakukan untuk konfigurasi dhcp. Berikut adalah langkah - langkahnya.

  1. Pilih os windows lalu pilih menu edit, pilih virtual network editor
  2. Silahkan pilih vmnet 1 kemudian uncheck list pada use local DHCP service to distribute IP addresses to VMs kemudian isi 192.168.1.0 pada bagian subnet IP` seperti gambar berikut. Screenshot from 2016-03-02 22:48:40.png
  3. Selanjutnya pilih menu vm lalu pilih settings, pilih pada bagian network adapter, lihat pada menu kanannya terdapat radio button yaitu custom: spesific virtual network kemudian pilih /dev/vmnet1 seperti gambar berikut. Screenshot from 2016-03-02 22:54:16.png

Setelah selesai, tahap selanjutnya silahkan jalankan windows anda dikarenakan kita akan melakukan konfigurasi pada bagian windowsnya. Berikut adalah langkah untuk konfigurasi jaringan pada windows.

  1. Silahkan pilih control panel
  2. Pilih menu network and internet
  3. Kemudian pilih network and sharing center
  4. Kemudian pilih menu change adapter settings yang ada di bagian kiri
  5. Selanjutnya klik kanan pada local area connection lalu pilih properties. Klik pada internet protocol version 4(TCP/IPv4) lalu klik menu properties, kemudian ubah menjadi obtain an IP address automatically dan obtain DNS address automatically seperti gambar berikut.

Screenshot from 2016-03-02 23:01:50.png

Setelah selesai, silahkan lakukan pengecekan IP pada windows dengan perintah.

ipconfig

Jika berhasil maka akan muncul output seperti berikut.

Screenshot from 2016-03-02 23:04:37.png

atau bisa juga lakukan ping ke IP server dengan perintah

ping 192.168.1.1

atau bahkan anda bisa juga melakukan ping ke dns server dengan perintah

ping www.labti.com

Jika berhasil maka akan muncul output seperti berikut.

Screenshot from 2016-03-02 23:07:29.png

Testing Web Server

Tahap yang terakhir adalah melakukan testing pada web server, silahkan masuk lagi ke dalam debian, lalu jalankan perintah berikut untuk membuat sebuah halaman html.

nano /var/www/html/index.html

Kemudian masukkan codingan html seperti berikut.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Belajar Web Server</title>
  </head>
  <body>
    <h1>Belajar Web Server</h1> <br />
    <h1>Hello Rizki Mufrizal</h1>
  </body>
</html>

Setelah selesai, silahkan restart apache web server anda dengan perintah.

/etc/init.d/apache2 restart

Kemudian silahkan akses web dengan perintah berikut.

w3m www.labti.com

Jika berhasil maka akan muncul output seperti berikut.

Screenshot from 2016-03-02 23:19:59.png

Untuk keluar dari mode silahkan tekan tombol q. Jika menggunakan windows yang telah kita konfigurasikan tadi silahkan buka browser, kemudian akses www.labti.com maka akan muncul seperti berikut.

Screenshot from 2016-03-02 23:21:12.png

Sekian artikel mengenai instalasi dan konfigurasi dhcp serta web server pada debian server dan terima kasih :).

Apa itu Kotlin ?

Kotlin adalah bahasa pemrograman pragmatis untuk JVM dan Android yang mengkombinasikan Object Oriented (OO) dan fitur fungsional dan fokus pada interoperabilitas, keamanan, kejelasan dan dukungan integrasi dengan berbagai tools major.

Kotlin dikembangankan oleh perusahaan jetbrains sejak tahun 2010 dan diumumkan pada bulan juli 2011. Kotlin telah di open source kan dan direlease diatas lisensi apache 2.

Mengapa disebut pemrograman pragmatis ? dikarenakan kotlin fokus pada interoperabilitas yaitu pengabungan antara project java dan kotlin. Dengan demikian, developer java dapat melakukan coding secara berbarengan dengan kotlin atau dengan kata lain di dalam sebuah project java bisa saja terdapat source code kotlin atau sebaliknya. Kotlin juga terintergrasi oleh tool - tool java seperti IntelliJ IDEA, Eclipse, maven, ant dan gradle.

Instalasi Kotlin

Untuk melakukan instalasi kotlin, kita akan menggunakan SDKMAN (Software Development Kit Manager). Silahkan jalankan perintah berikut untuk instalasi SDKMAN.

curl -s get.sdkman.io | bash

Setelah selesai, kita ingin agar variabel sdkman terbaca oleh terminal, silahkan jalankan perintah berikut.

source "$HOME/.sdkman/bin/sdkman-init.sh"

Untuk melakukan pengecekan versio SDKMAN, silahkan jalankan perintah berikut.

sdk version

maka akan muncul output seperti berikut.

SDKMAN 3.3.2

Tahap selanjutnya kita akan melakukan instalasi kotlin, instalasi kotlin akan dilakukan oleh SDKMAN, silahkan jalankan perintah berikut.

sdk install kotlin

Kotlin yang diinstall adalah kotlin versi terbaru,SDKMAN tidak hanya untuk instalasi kotlin akan tetapi SDKMAN juga dapat melakukan instalasi groovy, grails dan gradle.

Latihan Kotlin

Setelah selesai, kita akan coba latihan untuk belajar bahasa pemrograman kotlin. Silahkan gunakan editor anda, disini penulis menggunakan editor vim. Silahkan jalankan perintah berikut untuk memulai coding kotlin.

vim Belajar.kt

kemudian isikan codingan seperti berikut.

fun main(args: Array<String>) {
    println(hello("rizki"))
}

fun hello(nama: String): String {
    return "hello $nama"
}

berikut adalah penjelasan dari codingan diatas.

  • fun main berfungsi sebagai method main
  • println berfungsi untuk mencetak sama seperti system.out.println di dalam java
  • fun hello adalah method dengan nama hello dengan type data string

Bisa dilihat contoh source code kotlin diatas lebih sederhana dan sangatlah mirip dengan java. Untuk melakukan compile, silahkan jalankan perintah berikut.

kotlinc Belajar.kt -include-runtime -d Belajar.jar

Arti dari perintah diatas adalah :

  • kotlinc Belajar.kt : lakukan compile terhadap file Belajar.kt
  • -include-runtime : jika kita membutuhkan runtime kotlin
  • -d Belajar : hasil compile nya akan berupa file jar yang siap dijalankan

Untuk menjalankannya silahkan lakukan perintah berikut.

java -jar Belajar.jar

Latihan Kotlin Dengan Maven

Jika awalnya kita hanya melakukan compile biasa, sekarang kita akan coba membuat sebuah project dengan maven akan tetapi menggunakan bahasa pemrograman kotlin. Untuk membuat project dengan maven, silahkan jalankan perintah berikut.

mvn archetype:generate \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DgroupId=com.rizki.mufrizal.belajarKotlin \
-DartifactId=Belajar-Kotlin

Silahkan hapus folder src kemudian jalankan perintah berikut untuk membuat folder untuk project kotlin.

mkdir -p src/main/kotlin/com/rizki/mufrizal/belajarKotlin
mkdir -p src/test/kotlin/com/rizki/mufrizal/belajarKotlin

Setelah selesai, lakukan konfigurasi pom.xml seperti berikut.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.rizki.mufrizal.belajarKotlin</groupId>
    <artifactId>Belajar-Kotlin</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>Belajar-Kotlin</name>
    <url>http://maven.apache.org</url>

    <properties>
        <kotlin.version>1.0.0</kotlin.version>
        <junit.version>4.12</junit.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-stdlib</artifactId>
            <version>${kotlin.version}</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
        <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>

        <plugins>
            <plugin>
                <artifactId>kotlin-maven-plugin</artifactId>
                <groupId>org.jetbrains.kotlin</groupId>
                <version>${kotlin.version}</version>

                <configuration/>
                <executions>
                    <execution>
                        <id>compile</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>test-compile</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>test-compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <executions>
                    <execution>
                        <phase>test</phase>
                        <goals>
                            <goal>java</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <mainClass>com.rizki.mufrizal.belajarKotlin.BelajarKt</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

Setelah selesai, silahkan buat sebuah file Belajar.kt di dalam package com.rizki.mufrizal.belajarKotlin di dalam folder src/main Masukkan codingan seperti berikut.

package com.rizki.mufrizal.belajarKotlin

class Belajar {

    fun hello(nama: String): String {
        return "hello $nama"
    }

    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            println(Belajar().hello("rizki"))
        }
    }
}

Kemudian buat file BelajarTest.kt di dalam package com.rizki.mufrizal.belajarKotlin di dalam folder src/test untuk kebutuhan testing, Masukkan codingan seperti berikut.

package com.rizki.mufrizal.belajarKotlin

import org.junit.Assert
import org.junit.Test

public class BelajarTest {

    @Test fun helloTest(): Unit {
        Assert.assertEquals("hello rizki", Belajar().hello("rizki"))
    }

}

Codingan diatas berfungsi untuk melakukan testing terhadap method atau function hello, Kemudian jalankan dengan perintah berikut.

mvn clean package

Maka secara otomatis, maven akan melakukan test dan compile terhadap source kotlin, jika berhasil maka akan muncul seperti ini.

[INFO] Module name is Belajar-Kotlin
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ Belajar-Kotlin ---
[INFO] Surefire report directory: /home/rizki/Belajar-Kotlin/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.rizki.mufrizal.belajarKotlin.BelajarTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.065 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] >>> exec-maven-plugin:1.2.1:java (default) > validate @ Belajar-Kotlin >>>
[INFO] 
[INFO] <<< exec-maven-plugin:1.2.1:java (default) < validate @ Belajar-Kotlin <<<
[INFO] 
[INFO] --- exec-maven-plugin:1.2.1:java (default) @ Belajar-Kotlin ---
hello rizki
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ Belajar-Kotlin ---
[INFO] Building jar: /home/rizki/Belajar-Kotlin/target/Belajar-Kotlin-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.082 s
[INFO] Finished at: 2016-02-28T12:04:42+07:00
[INFO] Final Memory: 29M/304M
[INFO] ------------------------------------------------------------------------

Sekian artikel mengenai instalasi perlengkapan coding kotlin dan terima kasih :).

Apa Itu DNS ?

DNS (Domain Name System) adalah sebuah sistem yang berfungsi untuk menerjemahkan domain name ke IP address ataupun sebaliknya.

Biasanya DNS ini digunakan oleh pengguna internet dikarenakan mengingat sebuah alamat situs lebih mudah dibandingkan dengan menghafal IP dari alamat situs tersebut.

Setup Software

Untuk melakukan instalasi dan konfigurasi DNS, penulis menggunakan beberapa software diantaranya adalah :

  • Konfigurasi Debian 5 : berfungsi sebagai konfigurasi debian 5 pada VMware, bagi yang belum memiliki silahkan donwload di Debian 5.rar.
  • ISO Debian 5 : berfungsi sebagai sistem operasi yang akan kita gunakan, silahkan download ISO nya di debian 5.iso
  • VMware 12 : berfungsi sebagai virtual machine, silahkan download di VMware

Silahkan lakukan instalasi VMware terlebih dahulu, jika telah selesai, silahkan extract file Debian 5.rar di sembarang tempat. Langkah selanjutnya buka VMware anda, yang anda buka adalah VMware Workstation, maka akan muncul halaman seperti berikut.

Screenshot from 2016-02-23 19:12:34.png

Kemudian Open a Virtual Machine, silahkan anda browse file Debian 5.vmx yang ada di dalam folder Debian 5. Maka muncul gambar seperti berikut.

Screenshot from 2016-02-23 19:17:24.png

Tahap selanjutnya, silahkan pilih menu edit virtual machine settings karena kita akan melakukan konfigurasi file iso yang akan digunakan. Kemudian silahkan pilih menu CD/DVD (IDE) seperti gambar berikut.

Screenshot from 2016-02-24 16:56:47.png

Silahkan browse file iso yang telah anda download. Langkah selanjutnya jalankan virtual machine tersebut dengan menekan tombol Start up this guest operating system, jika muncul seperti berikut.

Screenshot from 2016-02-23 19:19:30.png

silahkan pilih I Copied It, silahkan tunggu start up debian hingga selesai. Jika start up telah selesai maka akan muncul gambar seperti berikut.

Screenshot from 2016-02-23 19:21:32.png

Kemudian lakukan login dengan username : root dan password : labti.

Instalasi Bind9

Bind9 atau Berkeley Internet Name Domain Versi 9 adalah salah satu software yang biasa digunakan untuk membuat dan mengatur DNS (Domain Name Server) pada sistem operasi Linux.

Untuk melakukan instalasi bind9 sangatlah gampang, silahkan jalankan perintah berikut.

apt-get install bind9

Membuat Zone Domain

Setelah selesai melakukan instalasi, tahap selanjutnya adalah menentukan nama domain pada debian. Untuk menentukan domain maka kita harus membuat konfigurasi zone domain menggunakan Tld (Top Level Domain). Konfigurasi yang akan kita lakukan adalah konfigurasi forward dan reverse yang ada di dalam file named.conf. Silahkan masuk ke dalam folder /etc/bind/ setelah selesai, jalankan perintah

nano named.conf

kemudian lakukan konfigurasi seperti berikut

// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
// If you just adding zones, please do that in /etc/bind/named.conf.local

include "/etc/bind/named.conf.options";

//prime the server with knowledge of the root servers
zone "." {
    type hint;
    file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
    type master;
    file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
    type master;
    file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
    type master;
    file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
    type master;
    file "/etc/bind/db.255";
};

//konfigurasi forward
zone "labti.com" {
    type master;
    file "/etc/bind/db.labti"; //lokasi file forward
};

//konfigurasi reverse
zone "1.168.192. in-addr.arpa" {
    type master;
    file "/etc/bind/db.192"; //lokasi file reverse
};

include "/etc/bind/named.conf.local";

Dari codingan diatas dapat dilihat bahwa kita melakukan konfigurasi domain dengan menggunakan zone domain. Dimana zone domain labti.com adalah merupakan konfigurasi dari forward sedangkan zone 1.168.192 adalah konfigurasi reverse, berikut adalah perbedaan antara konfigurasi forward dan reverse.

  • Forward : mengubah nama domain ke IP address di dalam DNS.
  • Reverse : mengubah IP address ke nama domain di dalam DNS.

Membuat File Forward

Untuk membuat file forward silahkan jalankan perintah berikut.

nano db.labti

Kemudian tekan tombol ctrl + R kemudian browse file dengan perintah ctrl + T lalu pilih file db.local lalu tekan enter. Isikan konfigurasi seperti berikut.

;
; BIND data file for local loopback interface
;
$TTL   604800
@      IN       SOA     labti.com. root.labti.com. (
                                2       ; Serial
                           604800       ; Refresh
                            86400       ; Retry
                          2419200       ; Expire
                           604800 )     ; Negative Cache TTL
;
@       IN      NS      labti.com.
@       IN      A       192.168.1.1
www     IN      A       192.168.1.1 

Membuat File Reverse

Silahkan jalankan perintah berikut untuk membuat file reverse.

nano db.192

Kemudian tekan tombol ctrl + R kemudian browse file dengan perintah ctrl + T lalu pilih file db.255 lalu tekan enter. Isikan konfigurasi seperti berikut.

;
; BIND data file for local loopback interface
;
$TTL   604800
@      IN       SOA     labti.com. root.labti.com. (
                                2       ; Serial
                           604800       ; Refresh
                            86400       ; Retry
                          2419200       ; Expire
                           604800 )     ; Negative Cache TTL
;
@       IN      NS      labti.com.
@       IN      A       192.168.1.1
1       IN      PTR     www.labti.com. 

Test DNS Server

Jika telah selesai, langkah selanjutnya silahkan restart bind9 dengan perintah

/etc/init.d/bind9 restart

Setelah selesai, silahkan lakukan uji coba dengan menggunakan perintah berikut.

ping www.labti.com

Jika berhasil maka akan muncul output seperti berikut.

Screenshot from 2016-02-24 18:03:34.png

Sekian artikel mengenai instalasi dan konfigurasi DNS pada debian server dan terima kasih :).

PostgreSQL adalah salah satu dbms yang menawarkan skalabilitas dan kinerja tinggi berbasis open source.

Pada artikel ini, penulis akan mencoba menjelaskan bagaimana instalasi dan konfigurasi postgreSQL pada linux.

Instalasi PostgreSQL

Silahkan buat sebuah file pgdg.list di dalam folder /etc/apt/sources.list.d/. Kemudian isikan file tersebut dengan codingan berikut.

deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main

kemudian lakukan import key dengan menjalankan perintah berikut.

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
  sudo apt-key add -

kemudian lakukan update repository dengan perintah

sudo apt-get update

dan langkah selanjutnya adalah lakukan instalasi postgreSQL dengan perintah

sudo apt-get install postgresql-9.5

Konfigurasi PostgreSQL

Setelah melakukan instalasi postgresql, langkah selanjutnya adalah melakukan konfigurasi postgreSQL. Konfigurasi yang akan kita lakukan adalah konfigurasi user dan instalasi pgadmin pada postgreSQL.

Konfigurasi User Pada PostgreSQL

Silahkan jalankan perintah berikut untuk melakukan konfigurasi user pada postgreSQL.

sudo -u postgres psql postgres

Kemudian ketikan codingan \password postgres, kemudian tekan enter lalu masukkan password untuk default user yang kita gunakan, secara default user yang digunakan adalah postgres. Untuk keluar dari cli psql silahkan jalankan perintah \q.

Membuat User Dan Database

Untuk membuat user baru kita dapat melakukannya dengan perintah berikut melalui terminal tanpa perlu login ke psql.

createuser -h localhost -U postgres -D -A -P rizki

perintah diatas terdapat fungsi diantaranya adalah

  • createuser : untuk membuat user baru
  • -h : artinya kita membuat user berdasarkan host di locahost
  • -U : kita ingin membuat user berdasarkan user default dari postgreSQL, secara default postgres adalah user default pada postgreSQL
  • -D : artinya user yang kita buat tidak dapat membuat database
  • -A : artinya user yang kita buat tidak dapat membuat user baru
  • -P : artinya user yang kita buat akan menggunakan password

maka akan muncul perintah seperti berikut

rizki@rizki-HP-431-Notebook-PC:~$ createuser -h localhost -U postgres -D -A -P rizki
Enter password for new role: 
Enter it again: 
Password:

berikut adalah penjelasan singkat dari masing - masing baris diatas.

  • baris pertama dan kedua adalah password yang akan kita masukkan untuk user yang kita buat, misalnya disini penulis membuat user rizki
  • baris ketiga adalah password dari default user atau super user yang kita gunakan, secara default kita masih menggunakan user postgres

Langkah selanjutnya adalah membuat database, untuk membuat database baru silahkan jalankan perintah berikut.

createdb -h localhost -U postgres -E utf-8 -O rizki belajar-postgresql

codingan diatas berfungsi untuk membuat database baru, berikut adalah penjelasan dari sintak diatas.

  • createdb : untuk membuat database baru
  • -h : host yang kita gunakan
  • -U : user default untuk membuat database dan memiliki akses untuk membuat database baru
  • -E : artinya database yang akan kita buat memiliki format encoding utf-8
  • -O : artinya adalah database yang dibuat ini diberikan izin akses kepada user rizki
  • belajar-postgresql : adalah nama dari database yang kita buat.

kemudian masukkan password berdasarkan user postgres. Untuk login ke database melalui terminal, jalankan perintah berikut.

psql -h localhost -U rizki belajar-postgresql

masukkan password berdasarkan user yang anda buat, maka akan muncul tampilan seperti berikut.

rizki@rizki-HP-431-Notebook-PC:~$ psql -h localhost -U rizki belajar-postgresql 
Password for user rizki: 
psql (9.5.1)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.

belajar-postgresql=>

Melakukan Instalasi PGAdmin

PGAdmin adalah salah satu editor atau GUI untuk melakukan akses terhadap database postgreSQL.

Sebenarnya masih banyak GUI yang lain untuk melakukan akses terhadap database postgreSQL, akan tetapi penulis hanya menggunakan pgAdmin, mengapa demikian ? dikarenakan kemudahan dalam konfigurasi database postgreSQL pada pgAdmin. Untuk melakukan instalasi pgAdmin silahkan jalankan perintah berikut.

sudo apt-get install pgadmin3

kemudian silahkan buka pgadmin, maka akan muncul tampilan seperti berikut.

Screenshot from 2016-02-12 22:52:50.png

kemudian silahkan pilih file lalu pilih add server, kemudian silahkan lakukan konfigurasi seperti gambar dibawah ini

Screenshot from 2016-02-12 22:54:52.png

jika berhasil maka anda dapat melakukan akses database seperti berikut.

Screenshot from 2016-02-12 22:56:18.png

Latihan Query SQL Pada PostgreSQL

Query yang akan kita pelajari disini hanya terdapat 4 yaitu dari select, insert, update dan delete. Untuk masalah query tidak memiliki perbedaan dengan dbms lain seperti mysql, mariadb, oracle dan lain sebagainya.

Query Select

Query select berfungsi untuk mengambil data, sebelum menjalankan query select, kita akan membuat tabel terlebih dahulu, silahkan login terlebih dahulu melalui terminal anda ke psql. Setelah selesai kemudian jalankan perintah berikut.

CREATE TABLE mahasiswa(
    npm VARCHAR(8),
    nama VARCHAR(50) not null,
    kelas VARCHAR(5) not null,
    PRIMARY KEY(npm)
);

jalankan perintah diatas per baris, jika berhasil maka akan muncul seperti ini.

belajar-postgresql=> CREATE TABLE mahasiswa(
belajar-postgresql(> npm VARCHAR(8),
belajar-postgresql(> nama VARCHAR(50) not null,
belajar-postgresql(> kelas VARCHAR(5) not null,
belajar-postgresql(> PRIMARY KEY(npm)
belajar-postgresql(> );
CREATE TABLE

untuk mengambil semua data, kita dapat melakukannya dengan perintah.

SELECT * FROM mahasiswa;

maka akan muncul seperti ini.

belajar-postgresql=> SELECT * FROM mahasiswa;
 npm | nama | kelas 
-----+------+-------
(0 rows)

dapat dilihat bahwa data masih kosong dikarenakan kita belum melakukan inputan terhadap data mahasiswa.

Query Insert

Query insert pada postgreSQL juga sama seperti pada dbms umunya, silahkan jalankan perintah berikut berikut untuk menyimpan sebuah data mahasiswa.

INSERT INTO mahasiswa (npm, nama, kelas) VALUES ('58412085', 'Rizki Mufrizal', '4IA04');

jika berhasil maka akan muncul output seperti berikut.

belajar-postgresql=> INSERT INTO mahasiswa (npm, nama, kelas) VALUES ('58412085', 'Rizki Mufrizal', '4IA04');
INSERT 0 1

kemudian lakukan pengecekan apakah data telah disimpan atau tidak dengan perintah select, jika data tersimpan maka akan muncul output seperti berikut.

belajar-postgresql=> SELECT * FROM mahasiswa;
   npm    |      nama      | kelas 
----------+----------------+-------
 58412085 | Rizki Mufrizal | 4IA04
(1 row)

Query Update

Query update biasanya digunakan untuk memperbarui sebuah data, untuk melakukan query update silahkan jalan perintah berikut.

UPDATE mahasiswa SET nama = 'Rizki M', kelas = '4IA04' WHERE npm = '58412085';

jika berhasil maka akan muncul output seperti berikut.

belajar-postgresql=> UPDATE mahasiswa SET nama = 'Rizki M', kelas = '4IA04' WHERE npm = '58412085';
UPDATE 1

kemudian lakukan pengecekan lagi dengan query select dan outputnya seperti berikut.

belajar-postgresql=> SELECT * FROM mahasiswa;
   npm    |  nama   | kelas 
----------+---------+-------
 58412085 | Rizki M | 4IA04
(1 row)

Query Delete

Query yang terakhir adalah delete. Query ini berfungsi untuk menghapus data pada database. Jalankan perintah berikut untuk menghapus data.

DELETE FROM mahasiswa WHERE npm = '58412085';

jika berhasil maka akan muncul output seperti berikut.

belajar-postgresql=> DELETE FROM mahasiswa WHERE npm = '58412085';
DELETE 1

kemudian lakukan pengecekan kembali dengan perintah select dan berikut adalah hasilnya.

belajar-postgresql=> SELECT * FROM mahasiswa;
 npm | nama | kelas 
-----+------+-------
(0 rows)

Sekian artikel mengenai instalasi dan konfigurasi postgreSQL dan terima kasih :).

Berhubung penulis sedang membuat konfigurasi dan instalasi aplikasi pada ubuntu dengan menggunakan bahasa shell maka pada artikel ini, penulis akan membahas sedikit tentang shell script :D. Sebelum penulis membahas tentang shell, alangkah baiknya kita membahas sedikit teori tentang shell.

Apa itu Shell ?

Shell adalah sebuah program penterjemah yang berfungsi sebagai jembatan antara user dan kernel.

Biasanya shell akan menyediakan sebuah interface, dimana interface ini berfungsi sebagai tempat untuk memberikan perintah - perintah. Linux memiliki berbagai macam shell, diantaranya adalah :

  • Bourne shell(sh)
  • C shell(csh)
  • Korn shell(ksh)
  • Bourne again shell(bash)
  • dsb

Pada artikel ini, penulis hanya menggunakan bash shell GNU yang merupakan pengembangan dari bourne shell.

Apa itu Shell Script ?

Shell Script adalah sebuah bahasa pemrograman yang disusun berdasarkan perintah - perintah shell.

Jika anda menggunakan linux, maka menyusun perintah - perintah shell di dalam sebuah file shell sama seperti ketika anda membuat sebuah aplikasi. Agar artikel tidak terlalu panjang, mari kita bahas bagaimana implementasi shell script pada linux.

Setup Vagrant

Seperti biasanya, penulis akan menggunakan vagrant. Bagi yang belum mengerti apa itu vagrant, silahkan akses di Belajar Vagrant. Kali ini kita akan menggunakan box debian/jessie64 atau debian 8.

Silahkan buat sebuah folder belajar-shell kemudian jalankan perintah

vagrant init

Buka file Vagrantfile lalu ubah konfigurasinya menjadi seperti berikut.

Vagrant.configure(2) do |config|

    #konfigurasi box untuk sistem operasi debian 8 64 bit
    config.vm.box = "debian/jessie64"

    config.vm.provider "virtualbox" do |vb|
    
        #konfigurasi virtual box dengan ram 1 GB
        vb.memory = "1024"
    end

end

Kemudian jalankan vagrant dengan perintah

vagrant up

lalu login ke vagrant dengan perintah

vagrant ssh

Membuat Hello Word Dengan Shell Script

Sebelum memulai, silahkan install editor terlebih dahulu, penulis menggunakan editor vim. Untuk melakukan instalasi vim, jalankan perintah berikut.

sudo apt-get install vim

Setelah selesai melakukan instalasi vim, selanjutkan buat sebuah file dengan perintah

touch belajar.sh

kemudian buka file belajar.sh dengan perintah

vim belajar.sh

Untuk memasukkan codingan, silahkan tekan tombol i kemudian ketikkan kodingan berikut.

#!/bin/sh
#
# Copyright (C) 2016 Rizki Mufrizal <mufrizalrizki@gmail.com>
#
# Distributed under terms of the MIT license.
#

echo "hello word"

setelah selesai, tekan tombol esc kemudian ketik tuliskan perintah

:wq

maka secara otomatis vim akan menyimpan codingan tersebut ke dalam file belajar.sh. Langkah selanjutnya adalah kita akan memberikan hak execute untuk file tersebut, Silahkan jalankan perintah berikut.

chmod a+x belajar.sh

untuk menjalankan file tersebut dengan perintah.

./belajar.sh

maka akan muncul output hello word, output tersebut berasal dari perintah echo, dimana echo disini sama seperti perintah puts pada ruby, printf pada bahasa c dan sama seperti bahasa pemrograman lainnya.

Membuat Inputan

Tahap selanjutnya adalah membuat inputan, disini user akan memberikan sebuah inputan dimana inputan ini nantinya akan ditampikan lagi. Silahkan buka file belajar.sh lalu ubah codingannya menjadi seperti berikut.

#!/bin/sh
#
# Copyright (C) 2016 Rizki Mufrizal <mufrizalrizki@gmail.com>
#
# Distributed under terms of the MIT license.
#

echo -n "Masukkan nama anda : "
read nama

echo "hello $nama"

perintah read berfungsi untuk mengambil value dari inputan user, dimana inputan user tersebut akan disimpan ke dalam variabel nama lalu variabel nama tersebut di cetak pada perintah echo yang kedua.

Membuat Konfigurasi File

Setelah melewati cara inputan user, langkah selanjutnya adalah kita ingin membuat konfigurasi file pada linux. Misalnya kita ingin membuat konfigurasi file environment pada debian dan melakukan update software. Untuk melakukan konfigurasi pada file environment, maka ubah codingan pada file belajar.sh menjadi berikut.

#!/bin/sh
#
# Copyright (C) 2016 Rizki Mufrizal <mufrizalrizki@gmail.com>
#
# Distributed under terms of the MIT license.
#

echo -n "masukkan user linux anda : "
read user

echo "install maven"
mkdir -p /home/$user/programming/build-tool/apache-maven
wget http://mirror.wanxp.id/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
tar -xvzf apache-maven-3.3.9-bin.tar.gz
rm apache-maven-3.3.9-bin.tar.gz
mv apache-maven-3.3.9/* /home/$user/programming/build-tool/apache-maven/
rmdir apache-maven-3.3.9/

echo "membuat file environment"
touch environment

echo "membuat path maven"
echo "M2_HOME=/home/$user/programming/build-tool/apache-maven" | tee -a /home/$user/environment

echo "copy file environment"
sudo cp environment /etc/environment

Perintah diatas berfungsi untuk melakukan konfigurasi maven, dimana kita akan membuat sebuah folder berdasarkan nama user linux, kemudian path ditambahkan ke dalam konfigurasi environment, hasil konfigurasi environment tersebut akan copy ke file environment yang aslinya.

File shell ini juga dapat melakukan perintah - perintah ubuntu seperti :

  • apt-get update
  • apt-get upgrade
  • dsb

Pada artikel ini, penulis mencoba melakukan update dan upgrade aplikasi pada debian. Silahkan ubah codingan pada file belajar.sh seperti berikut.

#!/bin/sh
#
# Copyright (C) 2016 Rizki Mufrizal <mufrizalrizki@gmail.com>
#
# Distributed under terms of the MIT license.
#

echo -n "masukkan user linux anda : "
read user

echo "install maven"
mkdir -p /home/$user/programming/build-tool/apache-maven
wget http://mirror.wanxp.id/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
tar -xvzf apache-maven-3.3.9-bin.tar.gz
rm apache-maven-3.3.9-bin.tar.gz
mv apache-maven-3.3.9/* /home/$user/programming/build-tool/apache-maven/
rmdir apache-maven-3.3.9/

echo "membuat file environment"
touch environment

echo "membuat path maven"
echo "M2_HOME=/home/$user/programming/build-tool/apache-maven" | tee -a /home/$user/environment

echo "copy file environment"
sudo cp environment /etc/environment

echo "update aplikasi"
sudo apt-get update

echo "upgrade aplikasi"
sudo apt-get upgrade -y

echo "dist upgrade aplikasi"
sudo apt-get dist-upgrade -y

kemudian jalankan file tersebut, untuk nama user linux silahkan masukkan vagrant dan outpunya seperti berikut.

membuat file environment
membuat path maven
M2_HOME=/home/vagrant/programming/build-tool/apache-maven
copy file environment
update aplikasi
Ign http://httpredir.debian.org jessie InRelease            
Hit http://security.debian.org jessie/updates InRelease
Hit http://httpredir.debian.org jessie Release.gpg
Hit http://security.debian.org jessie/updates/main Sources
Hit http://security.debian.org jessie/updates/main amd64 Packages
Hit http://httpredir.debian.org jessie Release                                
Hit http://security.debian.org jessie/updates/main Translation-en  
Hit http://httpredir.debian.org jessie/main Sources
Hit http://httpredir.debian.org jessie/main amd64 Packages                
Hit http://httpredir.debian.org jessie/main Translation-en                
Reading package lists... Done
upgrade aplikasi
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
dist upgrade aplikasi
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Sekian tutorial tentang belajar shell script, bagi anda yang ingin melihat konfigurasi untuk instalasi ubuntu, silahkan akses di Perlengkapan Ubuntu dan terima kasih :).