RANCANG BANGUN LAB VIRTUAL UNTUK SARANA EDUKASI SISTEM OPERASI LINUX MENGGUNAKAN LXD
Hari Pradhana 41513110072
PROGRAM STUDI INFORMATIKA FAKULTAS ILMU KOMPUTER UNIVERSITAS MERCU BUANA JAKARTA 2017
http://digilib.mercubuana.ac.id/
RANCANG BANGUN LAB VIRTUAL UNTUK SARANA EDUKASI SISTEM OPERASI LINUX MENGGUNAKAN LXD
Laporan Tugas Akhir
Diajukan Untuk Melengkapi Persyaratan Menyelesaikan Gelar Sarjana Komputer
Disusun oleh : Hari Pradhana 41513110072
PROGRAM STUDI INFORMATIKA FAKULTAS ILMU KOMPUTER UNIVERSITAS MERCU BUANA JAKARTA 2017
http://digilib.mercubuana.ac.id/
http://digilib.mercubuana.ac.id/
http://digilib.mercubuana.ac.id/
http://digilib.mercubuana.ac.id/
KATA PENGANTAR
Segala puji dan syukur penulis panjatkan atas kehadirat Allah SWT, Pemelihara seluruh alam raya, yang atas limpahan rahmat, taufik dan hidayah-Nya, penulis mampu menyelesaikan Tugas Akhir yang berjudul “Rancang Bangun Lab Virtual Untuk Sarana Edukasi Sistem Operasi Linux Menggunakan LXD”. Tugas akhir ini merupakan salah satu persyaratan untuk menyelesaikan program studi strata satu (S1) pada jurusan Informatika Universitas Mercu Buana. Penulis menyadari bahwa tugas akhir ini bukanlah tujuan akhir dari belajar, karena belajar adalah sesuatu yang tidak terbatas. Penulis juga menyadari sepenuhnya bahwa tugas akhir ini masih jauh dari kesempurnaan baik isi, bahasa serta penulisannya. Hal ini disebabkan keterbatasan penulis dari segi ilmu pengetahuan, bahan atau data, dana dan waktu sehingga kritik dan saran yang membangun sangat penulis harapkan demi kesempurnaan tugas akhir ini. Terselesaikannya tugas akhir ini tentunya tak lepas dari dorongan dan uluran tangan berbagai pihak. Untuk itu penulis menyampaikan rasa terima kasih dan apresiasi kepada: 1. Ibu Afiyati, S.Si., M.T. selaku dosen pembimbing yang telah mengarahkan dan membimbing penulis dalam menyusun laporan tugas akhir ini. 2. Bapak Sabar Rudiarto, S.Kom., M.Kom selaku dosen pembimbing akademis yang juga turut membantu penulis dalam menyelesaikan tugas akhir ini. 3. Ibu Desi Ramayanti, M.T. selaku Ketua Program Studi Informatika Universitas Mercu Buana. 4. Bapak Diky Firdaus, S.Kom., M.M. selaku Koordinator Tugas Akhir Jurusan Informatika Universitas Mercu Buana. 5. Ibu, Alm. Ayah, serta Adik yang selalu memberikan dukungan dan doa untuk penulis. 6. Teman-teman sekaligus sahabat seperjuangan di jurusan Informatika Kampus Menteng Universitas Mercu Buana 2013.
http://digilib.mercubuana.ac.id/
7. Beserta semua pihak yang telah memotivasi dan membantu penulis dalam menyelesaikan laporan tugas akhir ini. Semoga Allah SWT membalas kebaikan dan ketulusan semua pihak yang telah membantu menyelesaikan tugas akhir ini dengan melimpahkan rahmat dan karuniaNya. Semoga karya penelitian tugas akhir ini dapat memberikan manfaat dan kebaikan bagi banyak pihak demi kemaslahatan bersama serta bernilai ibadah dihadapan Allah SWT. Aamiin.
Jakarta,
Juni 2017
Hari Pradhana
http://digilib.mercubuana.ac.id/
Daftar Isi
LEMBAR PERNYATAAN ..................................................................................... i LEMBAR PERSETUJUAN SIDANG ................................................................... ii LEMBAR PENGESAHAN ................................................................................... iii KATA PENGANTAR ........................................................................................... iv ABSTRAKSI .......................................................................................................... v ABSTRACT ........................................................................................................... vi Daftar Isi................................................................................................................ vii Daftar Gambar ......................................................................................................... x Daftar Tabel ........................................................................................................... xi Definisi .................................................................................................................. xii BAB 1.
PENDAHULUAN ................................................................................ 1
1.1.
Latar Belakang ......................................................................................... 1
1.2.
Rumusan Permasalahan ............................................................................ 2
1.3.
Tujuan dan Manfaat Penelitian................................................................. 2
1.3.1. Tujuan Penelitian .................................................................................. 2 1.3.2. Manfaat Penelitian ................................................................................ 2 1.4.
Ruang Lingkup dan Batasan Masalah ...................................................... 2
1.5.
Metodologi Penelitian .............................................................................. 2
1.5.1. Metode Pengumpulan Data ................................................................... 2 1.5.2. Metode Pengembangan Sistem ............................................................. 3 1.6.
Sistematika Penulisan ............................................................................... 4
1.6.1. BAB 1
Pendahuluan .......................................................................... 4
1.6.2. BAB 2
Landasan Teori ...................................................................... 4
1.6.3. BAB 3 Analisis Sistem ....................................................................... 4 1.6.4. BAB 4 Perancangan Sistem................................................................ 4 1.6.5. BAB 5 Implementasi dan Pengujian .................................................. 4 1.6.6. BAB 6 Kesimpulan dan Saran ............................................................ 4 BAB 2.
LANDASAN TEORI ............................................................................ 5
2.1.
Linux ......................................................................................................... 5
2.2.
Python ....................................................................................................... 6
2.3.
Nginx ........................................................................................................ 6
2.4.
Postgresql ................................................................................................. 7
vii http://digilib.mercubuana.ac.id/
2.5.
Redis ......................................................................................................... 7
2.6.
Linux Container ........................................................................................ 8
2.7.
Flask ....................................................................................................... 12
2.8.
SQLAlchemy ........................................................................................... 12
2.9.
TAHAPAN PENGEMBANGAN RPL .................................................. 13
BAB 3.
ANALISA SISTEM ............................................................................ 15
3.1.
Analisa Pengguna ................................................................................... 15
3.2.
Analisa Kebutuhan ................................................................................. 15
3.3.
Analisa Software..................................................................................... 15
3.3.1. Server .................................................................................................. 16 3.3.2. Client ................................................................................................... 16 3.4.
Analisa Hardware .................................................................................. 16
3.5.
Analisa Sistem Berdasarkan Analisa Kebutuhan Dan Pengguna ........... 16
3.6.
Uraian Prosedur Penggunaan Aplikasi ................................................... 18
BAB 4. 4.1.
PERANCANGAN SISTEM ............................................................... 20 Perancangan Sistem ................................................................................ 20
4.1.1. Use case Diagram ............................................................................... 20 4.1.2. Skenario Use case Diagram ................................................................ 21 4.1.3. Activity Diagram.................................................................................. 27 4.1.4. Sequence Diagram ............................................................................... 32 4.2. BAB 5. 5.1.
Desain Antarmuka .................................................................................. 36 IMPLEMENTASI DAN PENGUJIAN .............................................. 41 Lingkungan Implementasi ...................................................................... 41
5.1.1. Hardware ............................................................................................. 41 5.1.2. Software .............................................................................................. 41 5.2.
Hasil Implementasi ................................................................................. 41
5.2.3. Halaman Utama................................................................................... 41 5.2.4. Halaman Login .................................................................................... 42 5.2.5. Halaman Utama Instructor.................................................................. 43 5.2.6. Halaman Add Course .......................................................................... 44 5.2.7. Halaman Add Students ........................................................................ 45 5.2.8. Halaman Student yang telah ditambahkan .......................................... 46 5.2.9. Halaman Workspace ........................................................................... 47 5.3.
Hasil Pengujian ....................................................................................... 48
5.3.1. Metode Pengujian................................................................................ 48 5.3.2. Skenario Uji Coba ............................................................................... 49 viii http://digilib.mercubuana.ac.id/
5.3.3. Hasil Uji Coba ..................................................................................... 50 BAB 6.
PENUTUP .......................................................................................... 51
6.1.
Kesimpulan ............................................................................................. 51
6.2.
Saran ....................................................................................................... 51
ix http://digilib.mercubuana.ac.id/
Daftar Gambar Gambar 2-1 Tux Logo sebagai maskot Linux ......................................................... 5 Gambar 2-2 Logo Python ....................................................................................... 6 Gambar 2-3 Logo Nginx ......................................................................................... 6 Gambar 2-4 Logo Postgresql .................................................................................. 7 Gambar 2-5 Logo Redis .......................................................................................... 8 Gambar 2-6 Logo Container................................................................................... 9 Gambar 2-7 Tiga VM berjalan pada satu Host .................................................... 10 Gambar 2-8 Tiga aplikasi berjalan pada satu Host ............................................. 10 Gambar 2-9 Logo Flask ........................................................................................ 12 Gambar 2-10 Tahapan model waterfall................................................................ 14 Gambar 3-1 Flowchart penggunaan Linux pada lab komputer secara konvensional .......................................................................................................... 17 Gambar 3-2 Flowchart penggunaan Virtual lab .................................................. 18 Gambar 4-1 Interaksi antara sistem dan aplikasi................................................. 20 Gambar 4-2 Use case Diagram Virtual Lab ......................................................... 21 Gambar 4-3 Activity Diagram Login Instructor ................................................... 28 Gambar 4-4 Activitiy Diagram Login Student ...................................................... 29 Gambar 4-5 Activity Diagram Course Management (Add Course) ..................... 29 Gambar 4-6 Activity Diagram Course Management (Edit Course) ..................... 30 Gambar 4-7 Activity Diagram Student Management (Add Student) .................... 31 Gambar 4-8 Activity Diagram Student Management (Drop Student) .................. 31 Gambar 4-9 Activity Diagram Get Course ........................................................... 32 Gambar 4-10 Sequence Diagram Login ............................................................... 33 Gambar 4-11 Sequence Diagram Add Course...................................................... 33 Gambar 4-12 Sequence Diagram Course Management (Edit Course) ................ 34 Gambar 4-13 Sequence Diagram Student Management (Add Student)................ 34 Gambar 4-14 Sequence Diagram Student Management (Drop Student).............. 35 Gambar 4-15 Sequence Diagram Get Course ...................................................... 35 Gambar 4-16 Halaman Utama ............................................................................. 36 Gambar 4-17 Tampilan role Student .................................................................... 37 Gambar 4-18 Halaman Course Management ....................................................... 38 Gambar 4-19 Student Management ...................................................................... 39 Gambar 4-20 Workspace Interface ....................................................................... 40 Gambar 5-1 Halaman Utama ............................................................................... 42 Gambar 5-2 Halaman Login ................................................................................. 42 Gambar 5-3 Source code untuk Login .................................................................. 43 Gambar 5-4 Source code verifikasi user pada saat Login.................................... 43 Gambar 5-5 Halaman Utama Instructor .............................................................. 44 Gambar 5-6 Halaman Add Course ....................................................................... 44 Gambar 5-7 Source code untuk menambah course .............................................. 45 Gambar 5-8 Halaman Add Student ....................................................................... 45 Gambar 5-9 source code untuk menambah Student ke dalam Course ................. 46 Gambar 5-10 Halaman Student yang telah ditambahkan..................................... 46 Gambar 5-11 Source code connect workspace ..................................................... 47 x http://digilib.mercubuana.ac.id/
Gambar 5-12 List container yang berjalan .......................................................... 48 Gambar 5-13 List container database .................................................................. 48
Daftar Tabel Tabel 2.1 Perbandingan jenis-jenis virtualisasi ................................................... 11 Tabel 4.1 Keterangan Use case Diagram Virtual Lab ......................................... 21 Tabel 4.2 Skenario Use Case Login ...................................................................... 22 Tabel 4.3 Skenario Use case diagram Course Management ................................ 23 Tabel 4.4 Skenario use case diagram Edit Courses.............................................. 24 Tabel 4.5 Skenario Use case Student Management .............................................. 25 Tabel 4.6 Skenario use case diagram Drop Student ............................................. 26 Tabel 4.7 Skenario Use case diagram Get Course ............................................... 27 Tabel 5.1 Tabel Skenario Pengujian ..................................................................... 49 Tabel 5.2 Tabel Hasil Pengujian .......................................................................... 50
xi http://digilib.mercubuana.ac.id/
Definisi Container
Teknik untuk menjalankan beberapa sistem Linux yang terisolasi menggunakan single kernel.
Daemon
Perangkat lunak yang berjalan di sistem di bawah kendali langsung oleh pengguna.
File system
Sebuah sistem yang mengatur bagaimana data disimpan dan ditampilkan pada sebuah disk.
Flask
Sebuah Web Framework yang ditulis dalam bahas pemrograman Python
Gevent
Sebuah library Python untuk networking.
HTTP
Hypertext Transfer Protocol, protokol yang digunakan untuk melayani web site ke browser pengguna.
Linux
Sebuah sistem operasi yang bersifat terbuka (open source) yang menyediakan sistem inti seperti file system.
LXC
Linux Container, sebuah proyek yang mengembangkan teknologi Linux Container pada sebuah kernel menggunakan berbgai macam fitur kernel.
LXD
Sebuah daemon yang menyediakan API untuk menjalankan berbagai sistem operasi pada Linux Container.
Nginx
Perangkat lunak yang berfungsi sebagai web server dan reverse proxy untuk melayani konten melalui sebuah jaringan.
Paramiko
Sebuah library Python yang menyediakan layanan implementasi dari protokol SSH.
PyLXD
Sebuah library yang menyediakan akses terhadap LXD REST API tanpa melakukan permintaan secara manual terhadap LXD Daemon
Python
Sebuah bahasa pemrograman tingkat tinggi.
Redis
Perangkat lunak yang melayani data store mapping di dalam Memory.
REST API
Representational State Transfer Application Programming Interface
xii http://digilib.mercubuana.ac.id/
Reverse
Server yang menyediakan sumber daya untuk sebuah client dari
proxy
sebuah server.
Session
Sebuah cara untuk menyimpan data pengguna.
SQL
Structured Query Language – sebuah bahasa yang didesain untuk mengakses dan memanipulasi data dalam sebuah relational database.
SQLAlchemy Sebuah toolkit SQL untuk Python yang juga memiliki objectrelational mapper untuk melayani database operation. SSH
Secure Shell, sebuah network protocol yang digunakan untuk mengakses sebuah layanan melalui jaringan secara aman.
Virtual
Emulasi dari sebuah sistem komputer yang menyediakan fungsi
machine
sebagaimana sistem secara fisik.
Web
Perangkat lunak yang digunakan untuk membantu dalam
framework
pengembangan aplikasi web.
WebSocket
Sebuah protokol yang menyediakan komunikasi TCP dari web browser.
Wssh
Sebuah library Python yang menyediakan sebuah jembatan antara WebSocket dan sebuah server menggunakan protokol SSH
WTForms
Sebuah library Python yang membantu dalam pembuatan dan validasi sebuah web form.
xiii http://digilib.mercubuana.ac.id/