Pada zaman sekarang, perkembangan teknologi sangatlah pesat. Perkembangan tersebut dapat kita lihat dari lahir nya berbagai teknologi - teknologi baru seperti ada nya smartphone, penyimpanan secara online, perkembangan virtual reality dan sebagainya. Perkembangan teknologi ini sering sekali dikaitkan dengan komputasi modern, mengapa demikian ? dikarenakan pada zaman sekarang banyak sekali perkembangan teknologi khususnya di bidang komputerisasi.

Apa Itu Cloud Computing ?

Cloud Computing adalah sebuah model untuk kenyamanan, akses jaringan on-demand untuk menyatukan pengaturan konfigurasi sumber daya komputasi (seperti, jaringan, server, media penyimpanan, aplikasi, dan layanan) yang dapat dengan cepat ditetapkan dan dirilis dengan usaha manajemen yang minimal atau interaksi dengan penyedia layanan [1].

Jika kita lihat dari pengertian diatas, cloud computing merupakan salah satu contoh dari komputer modern dimana jika kita melihat ke bagian user, cloud computing ini akan menyediakan storange dimana user dapat melakukan akses dimana dan kapan saja. Tidak hanya menyediakan storange, cloud computing juga berfungsi dalam hal deployment sebuah aplikasi, kita misalkan penulis mempunyai sebuah aplikasi web dimana aplikasinya akan di deploy ke sebuah server. Server yang digunakan untuk menjalankan aplikasi web telah dirancang sedemikian rupa sehingga sesuai dengan definisi cloud. Penulis memberikan contoh, misalkan server yang kita gunakan memiliki ram hanya 2 gb, ketika si aplikasi hanya menggunakan ram sebanyak 1 gb maka secara otomatis server akan menurunkan ram secara otomatis menjadi 1 gb. Bagaimana dengan ram yang 1 gb lagi ? ram tersebut akan di share ke pengguna lain yang membutuhkan ram lebih, misalnya aplikasi yang kita deploy tiba - tiba membutuhkan ram sebanyak 3 gb dikarenakan beban akses yang terlalu banyak maka secara otomatis ram akan ditambahkan.

Dari pembahasan diatas dapat kita lihat bahwa sebuah server cloud sangat lah berbeda dengan server hosting. Dimana jika kita menggunakan hosting maka automatic task seperti diatas tidak dapat dilakukan, berbeda dengan cloud computing yang dapat menjalankan secara otomatis.

Apa Saja Model Layanan Cloud Computing ?

Jika dilihat dari segi model layanan, cloud computing terdapat 3 model yaitu : [2]

  1. Software As A Service (SaaS) yaitu sebuah layanan yang dapat langsung diakses oleh user biasanya sudah dalam bantuk aplikasi. Contohnya adalah gmail, google docs, drop box dan sebagainya.
  2. Platform As A Service (PaaS) yaitu pada layanan ini, semua kebutuhan user akan aplikasi sudah tersedia misalkan seperti instalasi sistem operasi, web server, database server dan lain - lain sehingga pada layanan ini, user hanya akan melakukan konfigurasi pada level aplikasi. Contohnya adalah openshift, Google App Engine dan lain - lain.
  3. Infrastructure As A Service (IaaS) yaitu pada layanan ini, hampir semua bisa level bisa dipilih kecuali level hardware. Pada level ini, user dapat memilih sistem operasi, alokasi memory dan sebagainya. Contohnya adalah Digital Ocean, Microsoft Azure IaaS dan lain - lain.

Berikut adalah gambar dari ketiga model layanan tersebut.

Screenshot from 2016-03-03 17:09:20.png

Apa Hubungan Heroku Dengan Komputasi Modern ?

Heroku adalah adalah salah satu web hosting berbasis cloud, biasanya heroku digunakan untuk mengembangkan aplikasi web dengan berbagai bahasa pemrograman seperti java, ruby, python, node js, php dan lain - lain.

Berikut adalah gambar web dari heroku.

Screenshot from 2016-03-03 16:37:28.png

Jika kita lihat dari definisinya, dapat dilihat bahwa heroku mempunyai keterkaitan yang sangat erat dengan komputasi modern. Berikut adalah beberapa faktor bahwa heroku mempunyai hubungan dengan heroku.

  1. Heroku adalah salah satu web hosting berbasis cloud sehingga dapat diakses dimana dan kapan saja sehingga sesuai dengan kriteria komputasi modern.
  2. Heroku termasuk ke dalam kriteria Platform As A Service (PaaS), sehingga bagi anda yang ingin melakukab deploy aplikasi ke heroku cukup hanya dengan melakukan konfigurasi aplikasi yang ingin di deploy.
  3. Heroku dapat memanage sistem operasi, ram, hardisk dan sebagainya secara otomatis sehingga heroku juga dapat mendeteksi bahasa apa yang digunakan oleh sebuah aplikasi.
  4. Aplikasi web yang ada di heroku hanya berjalan selama 18 jam dalam sehari, otomatisasi task tersebut adalah sebuah proses scheduling sehingga dapat dikatakan heroku adalah komputasi modern.
  5. Heroku dapat melakukan deploy secara otomatis terhadap aplikasi yang kita upload melalui tool git.

Dari faktor - faktor diatas dapat disimpulkan bahwa heroku merupakan salah satu contoh dari komputasi modern.

Kesimpulan

Cloud computing adalah salah satu dari contoh komputasi modern. Cloud computing terdapat beberapa model layanan yaitu IaaS, PaaS dan IaaS. Heroku adalah salah satu web hosting berbasis cloud computing dan heroku menerapkan model PaaS sehingga heroku adalah salah satu contoh web dari komputasi modern.

Daftar Pustaka

  • [1] Mell, Peter and Grance, Tim, 2011,The NIST Definition of Cloud Computing, National Institute of Standards and Technology (NIST), http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf (diakses 3 Maret 2016)
  • [2] Ahmad Ashari, Herri Setiawan, 2011, Cloud Computing : Solusi ICT ?
  • [3] Erick Kurniawan, 2015, Penerapan Teknologi Cloud Computing Di Universitas, Studi Kasus: Fakultas Teknologi Informasi UKDW

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 :).