skripsi implementasi go dan docker untuk...
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
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