skripsi implementasi go dan docker untuk...

16
SKRIPSI IMPLEMENTASI GO DAN DOCKER UNTUK PEMBUATAN APLIKASI CHAT BERBASIS WEB JIHAR AL GIFARI Nomor Mahasiswa : 145410192 PROGRAM STUDI TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AKAKOM YOGYAKARTA 2017

Upload: dinhkiet

Post on 03-Jul-2019

271 views

Category:

Documents


0 download

TRANSCRIPT

SKRIPSI

IMPLEMENTASI GO DAN DOCKER UNTUK PEMBUATAN

APLIKASI CHAT BERBASIS WEB

JIHAR AL GIFARI

Nomor Mahasiswa : 145410192

PROGRAM STUDI TEKNIK INFORMATIKA

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTERAKAKOM YOGYAKARTA

2017

SKRIPSI

IMPLEMENTASI GO DAN DOCKER UNTUK PEMBUATANAPLIKASI CHAT BERBASIS WEB

Diajukan sebagai salah satu syarat untuk menyelesaikan studi jenjang Strata

Satu (S1)

Program Studi Teknik Informatika

Sekolah Tinggi Manajemen Informatika dan Komputer

Akakom

Yogyakarta

Di Susun Oleh:

Jihar Al Gifari

Nomor Mahasiswa : 145410192

PROGRAM STUDI TEKNIK INFORMATIKA

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER

AKAKOM YOGYAKARTA

2017

i

ii

iii

HALAMAN PERSEMBAHAN

Allhamdulillah, rasa syukurku ku ucapakan hanya untuk Allah SWT dari

dalam lubuk hatiku yang paling dalam, Dzat yang maha pengasih, maha

penyayang, maha segalanya. Karena tanpa kehendaknya tak ada satupun hal yang

dapat kami lakukan tanpa kehendak baik mu. Kupersembahkan Skripsi ini

kepada :

1. Kedua orang tua beserta keluarga yang selama ini telah memberikan

dukungan yang besar baik berupa moral maupun berupa materil, tanpa

mereka tugas akhir ini tidak mungkin dapat terselesaikan.

2. Teman-teman angkatan 2014, Teman-teman kost ku, bapak kost dan

teman-teman lainnya yang tidak bisa disebutkan satu persatu.

3. Untuk teman-teman FOSA (Forum Opensource Akakom). Terima kasih

atas dukungan kalian, tetap jaga kekompakkan kita yang belum lulus

buruan nyusul.

iv

HALAMAN MOTO

“Teruslah berusaha dan selalu mengerjakan kebajikan, karena usaha dengan niat

baik akan selalu berbuah kebaikan”

“Laksanakalah salat dengan sabar dan ikhlas, mengajilah sambil membaca

terjemahanya,semoga Allah memberikan ramhat, serta petunjuk kehidupan oleh

Allah untuk orang yang beriman kepada Allah SWT”

“Jadilah seperti air yang bersih yang dapat memberikan mafaat kepada seluruh

mahluk Allah”

“Hidup tidak selalu indah, jika kita berusaha menyukurinya akan terasa indah”

“Bersedekahlah dan bantu fakir miskin karena itu merupakan hal yang baik yang

dapat memberikan kita manfaat dunia dan akhirat”

“jika kita henghadapi cobaan dari Allah maka bersabar dan bertobatlah karena

Allah menyukai orang yang sabar”

~Penulis

v

INTISARI

Teknologi container dan jenis bahasa pemrograman kini kiat berpengaruhdalam mengembangkan aplikasi, dengan menggunakan Docker sebagai teknologicontainer kita dapat menghemat resource jika di bandingkan dengan teknologivirtualisasi seperti Virtualbox, VMWare. Begitupun dengan memilih bahasapemrograman, menggunakan bahasa pemrograman Go tentu lebih efisien jika dibandingkan dengan bahasa pemrograman lainnya, Go mempunyai banyakkelebihan diantaranya cepat, mendukung konkurensi, mendungkung perosesandata dengan banyak processor dalam waktu bersamaan, proses kompilasi yangsangat cepat, dan tanpa perlu memikirkan (Object-Oriented Programming) OOP.

Dengan teknologi terrsebut peneliti mencoba mengimplementasikanyapada aplikasi chatting yang digunakan untuk sebagai media untuk percakapan,Pengguna dapat mencari teman, menambah teman, mengirim pesan berupa teksdan gambar, mengedit profile, dan melihat profile sendiri maupun orang lain.

Kata kunci : docker, golang, chatting.

vi

KATA PENGANTAR

Puji syukur penulis panjatkan kehadirat Allah SWT, karena limpahan

rahmat, hidayah, dan inayah-Nya skripsi ini dapat diselesaikan. Sholawat beserta

salam semoga selalu tercurahkan kepada manusia teragung baginda Rasulullah

Muhammad Shallallahu ‘alaihi wasallam. Skripsi yang berjudul “Implementasi

Go dan Docker untuk pembuatan aplikasi chat berbasis web” ini penulis susun

untuk memenuhi persyaratan kurikulum sarjana strata-1 (S-1) pada Jurusan

Teknik Informatika, STMIK AKAKOM Yogyakarta. Penulis mengucapkan terima

kasih sebesar-besarnya atas semua bantuan maupun saran yang telah diberikan,

baik secara langsung maupun tidak langsung selama penyusunan tugas akhir ini.

Secara khusus rasa terimakasih kami sampaikan kepada:

1. Bapak Cuk Subiyantoro, S.Kom., M.Kom. selaku Ketua Sekolah Tinggi

Manajemen Informatika dan Komputer AKAKOM Yogyakarta.

2. Bapak Ir. M. Guntara, M.T. selaku Ketua Jurusan Teknik Informatika

Sekolah Tinggi Manajemen Informatika dan Komputer AKAKOM

Yogyakarta dan dosen pembimbing yang telah banyak memberikan

dorongan dalam penyusunan skripsi ini.

3. Dr. Bambang P.D.P., S.E, Akt., S.Kom.,MMSI. selaku dosen pembimbing

yang telah banyak memberikan arahan dan dorongan dalam penyusunan

tugas akhir ini.

vii

4. Bapak Adiyudha Prayitna , S.T., M.T. dan Wagito S.T., M.T. sebagai dosen

penguji yang juga telah banyak memberi arahan.

5. Seluruh staff dan karyawan Sekolah Tinggi Manajemen Informatika dan

Komputer AKAKOM Yogyakarta.

Penulisan Skripsi ini merupakan persyaratan akhir dari mahasiswa di

jurusan Teknik Informatika, STMIK AKAKOM untuk memperoleh gelar sarjana.

Penulis menyadari bahwa Skripsi ini jauh dari kesempurnaan, maka semua kritik

dan saran yang bersifat membangun akan selalu diterima. Semoga yang sedikit ini

memberikan manfaat terutama bagi kelanjutan studi penulis.

Yogyakarta, ....... Desember 2017

Penulis

viii

DAFTAR ISI

HALAMAN JUDUL.................................................................................................i

HALAMAN PERSETUJUAN.................................................................................ii

HALAMAN PENGESAHAN................................................................................iii

HALAMAN PERSEMBAHAN.............................................................................iv

HALAMAN MOTO.................................................................................................v

INTISARI................................................................................................................vi

KATA PENGANTAR.............................................................................................vii

DAFTAR ISI...........................................................................................................ix

DAFTAR GAMBAR..........................................................................................xxxi

DAFTAR TABEL.............................................................................................xxxiv

BAB 1 PENDAHULUAN......................................................................................1

1.1. Latar Belakang.........................................................................................1

1.2. Rumusan Masalah....................................................................................3

1.3. Ruang Lingkup........................................................................................4

1.4. Tujuan Penelitian.....................................................................................4

1.5. Manfaat Penelitian...................................................................................5

1.6. Sistematika Penulisan..............................................................................5

BAB 2 TINJAUAN PUSTAKA DAN DASAR TEORI.........................................8

2.1. Tinjauan Pustaka......................................................................................8

ix

2.2. Dasar Teori...............................................................................................9

2.2.1. Chatting........................................................................................9

2.2.2. Web Development........................................................................9

2.2.3. Go...............................................................................................12

2.2.4. WebSockets.................................................................................14

2.2.5. Web Browser...............................................................................16

2.2.6. CockroachDB..............................................................................17

2.2.7. Docker.........................................................................................18

2.2.8. Memcached.................................................................................21

BAB 3 METODE PENELITIAN..........................................................................22

3.1. Analisis kebutuhan.................................................................................22

3.1.1. Kebutuhan Perangkat Keras........................................................22

3.1.2. Kebutuhan Perangkat Keras........................................................23

3.1.3. Kebutuhan input..........................................................................23

3.1.4. Kebutuhan proses........................................................................24

3.1.5. Kebutuhan output........................................................................25

3.2. Perancangan Sistem...............................................................................25

3.2.1. Arsitektur aplikasi.......................................................................25

3.2.2. Arsitekrur Aplikasi pada Docker.................................................27

3.3. Pemodelan..............................................................................................29

3.3.1. Diagram Use Case.......................................................................29

x

3.3.2. Diagram Kelas.............................................................................31

3.3.3. Rancangan Database...................................................................33

3.3.4. Diagram Sequensial....................................................................34

3.3.5. Rancangan Antarmuka Aplikasi..................................................39

BAB 4 IMPLEMENTASI DAN PEMBAHASAN...............................................42

4.1. Implementasi..........................................................................................42

4.1.1. Impementasi Bahasa Pemrograman Go pada Aplikasi Chat.......42

4.1.2. Mengimplementasi Docker pada Aplikasi Chat.........................50

4.1.3. Menggabungkan dan menjalankan container dengan docker-

compose.................................................................................................52

4.2. Uji Coba Sistem.....................................................................................54

4.2.1. Menjalankan Server Aplikasi dengan Docker-compose.............54

4.2.2. Pengujian Aplikasi......................................................................57

BAB 5 KESIMPULAN DAN SARAN.................................................................63

5.1. Kesimpulan............................................................................................63

5.2. Saran......................................................................................................64

DAFTAR PUSTAKA.............................................................................................66

xi

DAFTAR GAMBAR

Gambar 2.1: Menunjukkan Proses Handsaking Antara Server dengan Client......15

Gambar 2.2: Arsitektur Docker..............................................................................19

Gambar 3.1: Arsitektur Aplikasi............................................................................25

Gambar 3.2: Arsitektur Aplikasi pada Docker.......................................................27

Gambar 3.3: Arsitektur Aplikasi pada Docker-compose.......................................28

Gambar 3.4: Diagram Use Case Aplikasi..............................................................30

Gambar 3.5: Kelas Digram Aplikasi......................................................................31

Gambar 3.6: Rancangan Struktur Database...........................................................33

Gambar 3.7: Diagram Sequncial Proses Login......................................................34

Gambar 3.8: Diagram Sequncial Proses Register..................................................35

Gambar 3.9: Diagram Sequncial Proses Pengiriman Pesan...................................37

Gambar 3.10: Diagram Sequncial Proses Tambah Teman.....................................38

Gambar 3.11: Desain Antarmukan Login...............................................................39

Gambar 3.12: Desain Antarmukan Register...........................................................40

Gambar 3.13: Desain Antarmuka Chatting............................................................40

Gambar 3.14: Desain Antarmuka Users.................................................................41

Gambar 4.1: Kode Program Konfigurasi...............................................................43

Gambar 4.2: Kode Program Menghubugkan ke Database.....................................43

Gambar 4.3: Kode Program loginHandler.............................................................44

Gambar 4.4: Kode Program loginUser...................................................................45

xii

Gambar 4.5: Kode Program RegisterHandler........................................................46

Gambar 4.6: Kode Program DoRegisterHandler...................................................47

Gambar 4.7: Kode Program Megirim Pesan..........................................................48

Gambar 4.8: Kode Program Tambah Teman..........................................................49

Gambar 4.9: Kode Program Image Aplikasi Chat.................................................50

Gambar 4.10: Kode Program Menggabungkan Container dengan Docker-

compose..................................................................................................................52

Gambar 4.11: Lokasi Direktori Utama Aplikasi....................................................54

Gambar 4.12: Mengecek file Dockerfile dan docker-compose.yml.......................54

Gambar 4.13: Proses Build Aplikasi Mengunakan Docker-compose....................55

Gambar 4.14: Hasil Setelah Menjalankan Perintah docker-compose up...............56

Gambar 4.15: Hasil Setelah Menjalankan Perintah docker-compose ps................56

Gambar 4.16: Hasil Pengujian Aplikasi pada Browser Chrome............................57

Gambar 4.17: Hasil Pengujian Aplikasi pada Browser Safari...............................57

Gambar 4.18: Hasil Pengujian Aplikasi pada Browser Safari...............................58

Gambar 4.19: Tampilan Halaman Login................................................................59

Gambar 4.20: Tampilan Halaman Utama Setelah Login.......................................59

Gambar 4.21: Tampilan Halaman Register............................................................60

Gambar 4.22: Tampilan Halama Utama Setelah Register......................................60

Gambar 4.23: Tampilan Halaman Users................................................................61

Gambar 4.24: Tampilan Halaman Tambah dan Konfirmasi Pertemanan...............61

xiii

Gambar 4.25: Tampilan Halaman Chat..................................................................62

xiv

DAFTAR TABEL

Tabel 2.1: Tabel Perbandingan Penelitian................................................................8

xv