7
BAB 2
TINJAUAN PUSTAKA
2.1 Profil Lintasmaya Network Samarinda
Lintasmaya Network Samarinda adalah sebuah perusahaan yang berada pada provinsi Kalimantan Timur, Kota Samarinda. Alamat spesifik Lintasmaya Network adalah jalan Mt. Haryono Perumahan Bukit Mediterania Ruko RCI Nomor 29, Samarinda Ulu. Perusahaan Lintasmaya Network adalah perusahaan yang bergerak di bidang IT dengan memberikan layanan kepada perusahaan – perusahaan lain.
Adapun Visi dan Misi dari Lintasmaya Network adalah sebagai berikut:
“Visi dan Misi kami adalah bisa melayani produk – produk IT dan Internet keseluruhan masyarakat khususnya Kalimantan Timur hingga pelosok yang belum terjangkau oleh Operator besar”.
Melalui visi dan misi yang ada pada Lintasmaya Network, jangkauan dari perusahaan ini berada pada beberapa kota mulai dari samarinda, sanga – sanga, Bontang, Kota Bangun. Jangkuan dari perusahaan Lintasmaya Network juga ada pada daerah Kutai timur lebih tepatnya pada kota Sangatta. Pada daerah Kutai barat jangkauan dari Lintasmaya Network ada pada kota Melak. Jangkauan dari perusahaan Lintasmaya Network tidak hanya ada perusahaan tetapi juga pada instansi lain seperti hotel, pergudangan, sekolah hingga universitas.
Melalui gambaran profil pada Lintasmaya Network dapat dilihat jika perusahaan Lintasmaya Network memiliki jangkauan di banyak daerah dan instansi. Adapun produk yang ditawarkan oleh perusahaan Lintasmaya Network dapat dilihat seperti berikut:
a. Support Internet baik Internet BROADBAND maupun Internet DEDICATED
b. IP Camera
8 c. VOIB PABX
d. Jasa Instalasi Jaringan Baik LAN maupun Wireless e. Jual beli produk ITC via online shop
2.2 Kotlin
Kotlin adalah sebuah bahasa pemrograman yang sudah umum untuk digunakan dalam pengembangan perangkat lunak android. Kotlin dikembangkan oleh JetBrains di mana pada tahun 2017 pada acara I/O Google. Kotlin menjadi bahasa kelas satu untuk pengembangan android dan disetarakan dengan bahasa – bahasa lain seperti Java dan C++. Hal yang menjadi salah satu penyebab mengapa kotlin menjadi bahasa yang banyak diminati karena kotlin dapat dioperasikan dengan Java, dan dapat berjalan di Java Virtual Machine (JVM), yang berarti platform apa pun yang dapat menjalankan Java secara teoritis juga harus menjalankan kotlin (Fordham, 2017).
Pada proses pengembangan kotlin, JetBrains membuat dua fitur yang mana membuat menjadikan kotlin bahasa yang menarik. fitur pertama dari kotlin adalah kotlin merupakan bahasa yang mudah dipelajari dan dipahami karena sebagian besar dari bahasa kotlin memiliki kesamaan dengan bahasa java. Fitur kedua dari kotlin adalah integrasi penuh pada IDE yang bersifat gratis. Kedua hal inilah yang menjadikan kotlin sebagai bahasa nomor satu pada pengembangan android dan menjadi bahasa yang sah serta dapat digunakan dalam android studio.
Adapun keuntungan dari menggunakan bahasa kotlin dapat dilihat dari beberapa hal seperti berikut:
a. Proses penulisan kode yang singkat
b. Kotlin memungkinkan pengembang untuk melakukan null check c. Kotlin adalah bahasa pemrograman yang membantu para pengembang
menjadi lebih mudah dalam proses perbaikan kode
9 2.3 Metodologi Pengembangan Perangkat Lunak
Dalam membangun sebuah sistem, tim yang bekerja jelas memerlukan sebuah cara yang dapat membantu mereka agar proses pembuatan dan pengembangan ini bisa berjalan dengan baik. Cara atau proses ini biasanya terbagi menjadi dua, yaitu dari segi manajemen maupun dari segi teknikal. Dari segi manajemen, proses ini sudah ada dan dikembangkan sejak lama, bukti dari pengembangan proses atau cara bisa dilihat dari model pertama yaitu System Development Life Cycle atau yang biasa disebut dengan SDLC (Pressman, 2005).
Metode ini memiliki beberapa tahap yang mana pertama kali dimulai dari proses apa yang harus dikerjakan oleh perangkat lunak dalam waktu rentang tertentu. Bagaimana mendefinisikan perangkat lunak yang dibuat, proses penerapan atau penulisan kode, integrasi dan pengujian modul - modul program dan yang terakhir adalah proses pengujian program secara keseluruhan (Pressman, 2005).
Gambar 2.1 System Development Live Cycle
Berdasarkan dari gambar 2.1 tahapan metodologi SDLC terbagi menjadi empat bagian. Bagian pertama adalah tahapan planning / perencanaan tahapan merupakan tahapan dengan proses identifikasi pada beberapa aspek seperti masalah pada sistem, kendala umum, studi literatur dan penelitian lanjut mengenai sistem.
Setelah itu pada tahap analysis / analisis, tahap ini dilakukan dengan tujuan untuk perancangan sistem berdasarkan dari sistem yang sudah ada sebelumnya. Setelah dua proses pertama selesai lalu pada tahap design / desain pengembang perlu membuat desain rancangan sistem secara detil atau yang biasa dikenal dengan istilah blueprint. Setelah desain dari sistem selesai di bangun tahapan selanjutnya adalah implementasi berdasarkan dari rancangan yang sudah dibuat sebelumnya (Jr, 2010).
Melalui metode yang ada pada SDLC dan berjalannya perkembangan teknologi yang di ikuti dengan perkembangan industri maka sekarang ini sudah ada banyak metode – metode pengembangan perangkat lunak yang dapat dipakai oleh tim. Metode – metode ini adalah metode waterfall, metode agile, metode scrum,
10 metode parallel atau yang lebih dikenal dengan RAD, metode Prototype, metode Spiral (Pressman, 2005).
2.4 Agile
Salah satu model dari model pengembangan perangkat lunak adalah agile Development. Metode ini adalah metode yang sudah sering digunakan oleh banyak tim karena prosesnya cukup sederhana. Model dari pengembangan ini terdiri dari dua proses yaitu requirements engineering dan design and implementation (Sommerville, 2011).
Gambar 2.2 Agile development model
Berdasarkan dari gambar 2.2 dan penjelasan sebelumnya model dari pengembangan agile development sangat sederhana. Model ini pertama kali berangkat dari proses requirement engineering dan berlanjut pada proses design and implementation. Jika dalam proses pengerjaan sistem terjadi perubahan, maka tim yang mengerjakan dapat kembali pada proses pertama dan lanjut pada proses berikutnya (Sommerville, 2011). Alasan inilah yang membuat banyak tim developer lebih suka menggunakan model agile dari pada model plan-based development yang mana pada model plan-based development proses pengembangan terjadi seperti gambar berikut.
11
Gambar 2.3 Plan-Base Model
Berdasarkan dari gambar 2.3 disini terlihat jelas bahwa model dari proses ini dimulai dari tahap pemenuhan kebutuhan yang terus berulang sampai semua kebutuhan telah diidentifikasi. Setelah itu lanjut menuju tahap Requirements Specification yang mana pada tahap ini diperjelas kembali spesifikasi lengkap dari kebutuhan yang telah diidentifikasi dan yang terakhir adalah tahap Design and Implementation, pada tahap ini dilakukan juga perulangan sampai semua kebutuhan tadi telah diterapkan. Jika terjadi perubahan maka kembali tahap requirement engineering (Sommerville, 2011).
2.5 Personal Extreme Programming
Extreme Programming atau yang lebih dikenal dengan singkatan XP adalah salah satu model dari agile development. Model pengembangan XP ini biasanya digunakan dengan jumlah tim yang kecil dan memiliki nilai, prinsip, dan praktik untuk mengembangkan perangkat lunak yang berkualitas dan memberikan nilai yang tinggi bagi pelanggan dengan cara yang paling cepat (Brewer, 2001).
Penggunaan dari model pengembangan XP biasanya ditunjukan dengan kelompok yang memiliki jumlah sedikit. Adapun model lain dari XP adalah Personal Extreme Programming yang mana berbeda dengan bentuk dasar PXP adalah metode pengembangan yang perangkat lunak khusus untuk satu orang.
Metode dari pengembangan PXP secara garis besar terdiri dari 7 proses utama (Asri, 2018).
a. Requirements
12 Tahap pertama dari proses pengembangan PXP adalah bagaimana pengembang memperoleh semua informasi yang dibutuhkan mengenai sistem.
Informasi dasar pada tahap pertama kedepannya dapat membantu pengembang dalam mengambil keputusan seperti data apa saja yang dibutuhkan, bagaimana data diproses hingga bagaimana tampilan sistem dibuat. Adapun proses yang dapat dilakukan pada tahap requirements adalah wawancara dengan pihak mitra (Asri, 2018).
b. Planning
Tahapan kedua atau planning dari model PXP adalah membuat mana proses perancangan secara teknis dimulai. Tahapan dimulai dari memperhatikan bagaimana sistem yang sudah ada dan bagaimana pengembang dapat mengembangkan sistem yang sudah ada menjadi lebih baik. Agar proses ini dapat berjalan dengan baik pada tahapan kedua, pengembang jelas perlu melakukan studi literatur. Proses studi literatur pada tahap planning dilakukan karena pada tahap ini pengembang harus bisa menggambarkan dengan baik apa saja kendala yang dihadapi pada proses implementasi (Asri, 2018).
c. Iteration Initialization
Tahapan ketiga dari model PXP adalah tahapan yang dilakukan dengan menentukan proses pengerjaan. Tujuan dari proses ini adalah untuk memastikan bahwa waktu pengerjaan sistem berjalan sesuai jadwal. Proses Iteration Initialization bisa dilakukan dengan memperhatikan beberapa hal seperti prioritas, tingkat kesulitan dan alur sistem (Asri, 2018).
d. Design
Tahap design adalah tahapan dimana pengembang sudah memiliki gambaran jelas mengenai sistem yang dibangun. Pada proses desain pengembang sudah harus memiliki dua hal penting. Hal pertama adalah rancangan dengan model terbaru. Hal kedua adalah tampilan sistem atau user interface yang dibangun. Adapun hal lain yang harus disiapkan pada proses desain adalah penggunaan alat bantu / tools yang nantinya digunakan dalam membangun sistem (Asri, 2018).
e. Implementation
Tahapan implementation adalah proses penerapan dengan memperhatikan pola arsitektur pengembangan dan rencana yang sudah dibuat sebelumnya. Proses
13 implementasi dibagi menjadi tiga bagian. Bagian pertama adalah unit testing yang bertujuan untuk memastikan semua rancangan semua yang sudah dibuat sesuai dengan apa yang dibutuhkan oleh mitra. Coding merupakan proses penulisan kode untuk yang berdasarkan dari rancangan sistem yang sudah dibuat. Refactor adalah proses pengecekan kode dengan tujuan untuk mengurangi waktu pada uji coba sistem (Asri, 2018).
f. System Testing
Tahapan selanjutnya adalah pengujian pada semua fitur sistem. Proses pengujian sistem dapat dilakukan dengan waktu yang beriringan dengan tahapan implementasi. Adapun proses pengujian biasanya dilakukan dengan menggunakan sebuah metode, serta disimpan dalam bentuk dokumentasi untuk kepentingan pengembangan sistem jika ada (Asri, 2018).
g. Retrospective
Tahapan terakhir pada model PXP adalah proses evaluasi kepada sistem yang telah dibangun dan proses yang telah dikerjakan. Tujuan dari sistem ini adalah untuk melihat apakah proses pengerjaan sudah berjalan sesuai dengan rencana yang dibuat. Apabila selama semua proses sudah yang ada telah dijalankan dengan baik dan klien sudah merasa puas dengan sistem yang telah ada maka proses ini adalah proses terakhir dalam metode pengembangan Personal Extreme Programming (Asri, 2018).
2.6 Model - View – Viewmodel
Dalam proses pengembangan sebuah sistem masing – masing developer memiliki cara menulis yang berbeda. Hal ini dikarenakan masing – masing anggota memiliki cara yang berbeda dari penerapan dan pemahaman yang mereka miliki.
Dengan adanya kondisi seperti ini maka disini perlu ada sebuah standar penulisan yang dapat membantu para developer agar proses penulisan kode dapat berjalan dengan seragam. Model-View-ViewModel atau yang bisa disingkat dengan MVVM adalah sebuah pola yang berfokus pada pemisahan logika bisnis dan presentasi aplikasi dari interface aplikasi. Pemisahan ini dilakukan dengan tujuan agar tim yang bekerja bisa dengan mudah melakukan uji coba, maintain dan pengembangan (Brumfield, 2011).
14 Sederhananya model ini membagi proses penulisan menjadi 4 kelas utama.
Kelas pertama dari model ini adalah API yang terdiri dari dua jenis penyimpanan yaitu lokal dan server. Kelas kedua adalah repository, kelas ini adalah kelas yang mengatur tentang pengambilan data dalam sistem. selanjutnya adalah viewmodel yang bertugas observables dan yang terakhir adalah fragment / activity yang bertugas menampilkan dari viewmodel.
Gambar 2.4 Model pengembangan arsitektur MVVM
Berdasarkan gambar 2.4 model dari MVVM juga bisa dijelaskan dalam tiga layer utama. Layer pertama adalah model lalu berlanjut pada viewmodel dan terakhir adalah view (Hall, 2010).
Adapun hal lain yang menjadi keuntungan dari model MVVM adalah proses pembagian yang mana sudah ada pada penjelasan sebelumnya. Model pembagian yang ada pada MVVM menjadikan model ini lebih teliti jika dibandingkan dengan model lain seperti MVP. MVP atau yang lebih dikenal dengan nama lengkap Model - View - Presenter adalah sebuah metode pengembangan arsitektur yang mana berbeda pada model MVVM, model ini terbagi menjadi hanya tiga kelas. Adapun perbedaan dari model ini adalah fungsi viewmodel yang mana digantikan oleh presenter seperti berikut.
15
Gambar 2.5 Model pengembangan arsitektur MVP
Berdasarkan gambar 2.5 dapat dilihat jelas di mana perbandingan yang ada pada MVP dan MVVM. Adapun perbedaan yang signifikan pada model ini MVP dan MVVM adalah pada penggambaran model. Pada bagian model MVVM pengembang dapat melihat dengan jelas bagaimana proses data terjadi. Sehingga memungkinkan tim pengembang untuk memilih apakah fitur yang dikembangkan perlu disimpan secara lokal atau tidak. Sedangkan pada model MVP detil yang ada pada model tidak begitu digambarkan Dengan jelas (Murphy, 2017).
2.7 Android Studio
Android studio adalah sebuah Integrated Development Environment (IDE) yang dikembangkan oleh JetBrains. Sama dengan IDE lain seperti Sublime, Atom, Visual Studio dan lainnya. Android studio tersedia baik pada windows dan linux serta MacOs. Android studio pertama kali diumumkan pada tahun 2013 dan diluncurkan pada tahun 2014 dengan bahasa pemrograman utama java, IDE ini dikembangkan oleh Jetbrains untuk menjadi alternatif dari IDE Eclipse. Kini android studio sudah berada pada versi 4.1 dengan bahasa utama yaitu kotlin (Wolfson, 2013).
Adapun untuk menggunakan android studio para pengguna harus menyesuaikan dengan spesifikasi seperti berikut:
Tabel 2.1 Android Studio Minimum system requirement
Name Windows Linux macOS X
Os Version Windows XP (32-bit) Ubuntu, RedHat and others
OS X (10.4.9 +)
16 Hard Disk
Space
25GB 25GB 25GB
System Memory
3GB 2GB 4GB
Processor Dual Core + Dual Core + X86 only
USB USB 2.0+ USB 2.0+ USB 2.0+
2.8 Penelitian Terdahulu
Berikut adalah rangkuman hasil penelitian terdahulu yang memiliki keterkaitan dengan penelitian yang telah dilakukan.
Tabel 2.2 Penelitian terdahulu
No
Nama dan Tahun Publikasi
Hasil 1 Hidayat
Rizal, 2013
Metode : Penerapan Personal Extreme Programming pada sistem informasi mobile learning
Hasil : Integrasi antar sistem pada proses perkuliahan sehingga menjadikan proses E-Learning dapat diakses pada platform seperti mobile
2 Mukhamad Taqwa Nuddin, 2015
Metode : Pengembangan sistem dengan memperhatikan model arsitektur perangkat lunak waterfall.
Hasil : Sistem absensi dengan data absensi yang akurat dan proses rekap data yang tidak memakan waktu lama.
3 Indri Neforawati, 2015
Metode : Implementasi teknologi NFC pada sistem absensi kampus.
Hasil : Sistem absensi dengan proses rekap data yang tidak memakan waktu lama
4 Anantassa Fitri Andini, 2017
Metode : Pegembangan sistem CRUD pada sistem absensi dengan metode Spiral model.
Hasil : Aplikasi absensi dengan fitur dasar yaitu create, retrieve, update & delete..
5 Al Husain, 2017
Metode : Implementasi metode waterfall pada pengembangan sistem web dan mobile.
Hasil : Sistem absensi yang dapat diakses pada platform berbeda baik itu mobile maupun website
6 Romzi, 2019 Metode : Pengembangan sistem dengan menggunakan metode analisa SWOT selama implementasi berlangsung.
Hasil : Proses absensi yang mudah dan akurasi data yang terjamin karena dilengkapi dengan tinjauan lokasi.
7 Panji Rachmat Setiawan, 2020
Metode : rancang bangun sistem dengan memperhatikan metode waterfall pada sistem absensi.
Hasil : ketersediaan sistem absensi berbasis mobile dengan akurasi dan keamanan data yang baik.