Anda di halaman 1dari 24

BAB II

LANDASAN TEORI

2.1 Definisi Model


Waterfall model adalah model klasik yang bersifat sistematis, berurutan dalam
membangun software. Selain itu model ini merupakan model yang paling banyak
dipakai oleh para pengembang software. Inti dari model waterfall adalah pengerjaan
dari suatu sistem yang dilakukan secara berurutan atau secara linear. Jadi jika langkah
satu belum dikerjakan rnaka tidak akan bisa rnelakukan pengerjaan langkah 2, 3 dan
seterusnya. Secara otomatis tahapan ke -3 akan bisa dilakukan jika ta hap ke -1 dan
ke-2 sudah dilakukan. Hal ini bisa dilihat pada Garnbar 1.

Gambar 1. Model Waterfall.[6]

2.2 Definisi Metode


Metode penelitian merupakan suatu proses yang digunakan untuk memecahkan
suatu Masalah yang logis. Dalam pembuatan tugas akhir ini digunakan metode
penelitian eskriptif yang menggambarkan fakta-fakta dan informasi secara sistematis,
faktual, dan akurat. Metode penelitian ini memiliki dua tahapan penelitian, yaitu
tahap pengumpulan data dan tahap pembangunan perangkat lunak.
Pengumpulan Data
Metode pengumpulan data yang digunakan dalam penelitian ini adalah sebagai
berikut :
1. Studi Literatur

9
Pengumpulan data dengan cara mengumpulkan, mempelajari dan meneliti
berbagai literatur yang bersumber dari jurnal ilmiah, paper, situs internet dan bacaan-
bacaan yang ada kaitannya dengan judul penelitian.
2. Studi Lapangan
Studi lapangan adalah teknik pengumpulan data dengan mengadakan penelitian
dan peninjauan secara langsung terhadap permasalahan yang diambil. Studi lapangan
dalam pembuatan tugas akhir ini dilakukan secara langsung, yang meliputi :
a. Wawancara
Teknik pengumpulan data dengan mengadakan tanya jawab secara langsung
yang ada kaitannya dengan topik yang diambil dengan cara tatap muka dengan
bahasa verbal pada pihak yang berkompeten atau berwenang di dalam pemerintahan
kota Pangkalpinang dan divisi IT untuk pembangunan aplikasi.
b. Observasi
Teknik pengumpulan data dengan mengadakan penelitian dan peninjauan
langsung terhadap permasalahan yang diambil. Dengan membagikan kuesioner
kepada mahasiswa langsung dalam pengumpulan data terhadap masalah yang terjadi
di lingkungan mahasiswa kota Pangkalpinang.

2.3 Definisi Unified Modelling Language


Unified Modeling Language (UML) adalah suatu teknik untuk memodelkan
sistem. UML ditemukan oleh Grady Booch, Ivar Jacobson, dan James Rumbaugh.
UML versi terbaru, yaitu versi 2.5, terdiri dari lima belas diagram. Diagram-diagram
tersebut dibagi ke dalam dua kelompok, yaitu structure diagram dan behavior
diagram. Structure diagram menggambarkan data dan hubungan statis dalam suatu
sistem informasi. Structure diagram terdiri dari package, object, component, class,
deployment, composite structure, dan profile diagram. Behavior diagram
menggambarkan hubungan dinamis diantara objek yang mewakili sistem informasi
bisnis. Behavior diagram terdiri dari sequence, timing, interaction overview, activity,
use case, protocol state machine, communication dan behavior state machine

10
diagram.[6]
Unified Modeling Language (UML) adalah bahasa pemodelan visual yang
digunakan untuk merancang, menggambarkan, dan dokumentasi sistem perangkat
lunak. UML memberikan notasi standar dan representasi grafis yang digunakan untuk
menggambarkan berbagai aspek dari sistem yang direncanakan, seperti struktur,
perilaku, dan interaksi antara komponen sistem.
Berikut adalah beberapa komponen penting dari Unified Modeling Language
(UML):
1. Diagram Struktur: UML menyediakan berbagai jenis diagram struktur, seperti
diagram kelas, diagram objek, dan diagram komponen. Diagram ini digunakan
untuk menggambarkan struktur statis dari sistem, termasuk entitas (kelas,
objek, komponen), hubungan antara entitas, atribut, dan metode.
2. Diagram Perilaku: UML juga menyediakan diagram perilaku untuk
menggambarkan aspek dinamis dari sistem. Beberapa jenis diagram perilaku
yang umum digunakan adalah diagram aktivitas, diagram urutan, dan diagram
state. Diagram ini membantu dalam menggambarkan aliran logika, interaksi
antara objek, urutan aktivitas, dan perubahan status sistem.
3. Diagram Interaksi: Diagram interaksi dalam UML meliputi diagram urutan dan
diagram kolaborasi. Diagram ini digunakan untuk menggambarkan interaksi
dan komunikasi antara objek atau aktor dalam sistem, baik dalam urutan waktu
maupun dalam konteks kolaborasi.
4. Diagram Kasus Penggunaan: Diagram kasus penggunaan (use case) adalah cara
untuk menggambarkan fungsi-fungsi sistem dari perspektif pengguna. Diagram
ini mengidentifikasi aktor-aktor yang terlibat dalam sistem dan skenario-
skenario penggunaan yang berbeda.
5. Diagram Aktivitas: Diagram aktivitas dalam UML digunakan untuk
menggambarkan alur kerja atau proses dalam sistem. Diagram ini berfokus
pada tindakan, keputusan, kondisi, dan aliran kontrol dalam suatu aktivitas.
UML digunakan secara luas dalam pengembangan perangkat lunak untuk

11
membantu analisis, perancangan, dan dokumentasi sistem. Notasi yang jelas dan
representasi grafis UML memfasilitasi komunikasi yang efektif antara tim
pengembang dan pemangku kepentingan yang terlibat dalam proyek perangkat lunak.

2.4 Definisi Sequence Diagram


Sequence Diagram (Diagram Sekuens) dalam Unified Modeling Language
(UML) adalah jenis diagram yang menggambarkan interaksi antara objek-objek
dalam suatu sistem secara berurutan sepanjang waktu. Diagram ini membantu dalam
memodelkan aliran pesan atau pemanggilan metode antara objek-objek selama
eksekusi suatu skenario atau proses tertentu.
Berikut adalah beberapa elemen penting dalam Sequence Diagram:
1. Objek: Representasi dari entitas atau komponen dalam sistem yang
berpartisipasi dalam interaksi. Setiap objek diwakili oleh sebuah kotak vertikal
dengan nama objek di atasnya.
2. Lifeline: Garis panjang vertikal yang menunjukkan rentang waktu di mana
objek berada. Lifeline mewakili keberadaan objek sepanjang waktu.
3. Pesan: Representasi komunikasi antara objek-objek dalam sistem. Pesan
digambarkan sebagai panah yang mengarah dari pengirim ke penerima. Pesan
bisa berupa pemanggilan metode, pemanggilan balik (callback), atau pesan
asinkronus.
4. Pemanggilan Metode: Representasi pemanggilan metode oleh satu objek
terhadap objek lainnya. Pemanggilan metode digambarkan dengan panah yang
mengarah ke objek yang menerima pemanggilan.
5. Pemanggilan Balik (Callback): Representasi pemanggilan metode yang
dikirimkan dari objek yang menerima pesan kembali ke objek pengirim.
Pemanggilan balik digambarkan dengan panah putus-putus yang mengarah
kembali ke objek pengirim.
6. Iterasi dan Pengulangan: Diagram sekuens juga dapat menggambarkan
pengulangan atau iterasi dengan menggunakan fragmen fragmen seperti loop

12
(perulangan) atau alt (alternatif).
7. Waktu: Diagram sekuens juga dapat menunjukkan urutan waktu menggunakan
angka pada garis vertikal, menunjukkan saat pesan dikirim dan diterima.

Sequence diagram menunjukkan pesan yang lewat di antara objek untuk use
case tertentu dari waktu ke waktu. Sequence diagram mengilustrasikan objek-objek
yang berpartisipasi di dalam suatu use case.[7] Berikut adalah elemen-elemen dari
sequence diagram:

1. Actor Adalah orang atau sistem yang memperoleh manfaat dari dan berada di
luar sistem. Berpartisipasi dalam suatu urutan dengan mengirim dan atau
menerima pesan. Ditempatkan di bagian atas diagram.

Gambar 2. Actor
2. Object Berpartisipasi dalam suatu urutan dengan mengirim dan atau menerima
pesan. Ditempatkan di bagian atas diagram.

Gambar 3. Object
Adapun penggambarn lain dari object bisa dilihat seperti di bawah ini:

13
Gambar 4. Boundary Class: Menggambarkan tampilan program.

Gambar 5. Control Class: Menggambarkan controller.

Gambar 6. Entity Class: Menggambarkan class.

3. Lifeline Menunjukkan kehidupan suatu objek selama suatu urutan.


Berisi X pada titik di mana kelas tidak lagi berinteraksi.

Gambar 7. Lifeline

4. Execution Occurrence (Kejadian Eksekusi) Merupakan persegi


panjang sempit panjang yang ditempatkan di atas lifeline.
Menunjukkan kapan suatu objek mengirim atau menerima pesan.

14
Gambar 8. Execution Occurrence

5. Message Menyampaikan informasi dari satu objek ke objek lainnya.


Pemanggilan operasi diberi label dengan pesan yang dikirim dan panah padat,
sedangkan pengembalian diberi label dengan nilai yang dikembalikan dan
ditampilkan sebagai tanda panah putus-putus.

Gambar 9. Message
6. Guard Condition Merupakan tes yang harus dipenuhi untuk pesan yang akan
dikirim.

Gambar 10. Guard Condition

7. Object Destruction X ditempatkan di ujung lifeline


objek untuk menunjukkan bahwa objek tersebut akan keluar dari eksistensi.

Gambar11. Object Destruction

8. Frame Menunjukkan konteks sequence diagram.

15
Gambar 12. Frame

2.5 Teori Pendukung


Berikut adalah beberapa pengertian aplikasi secara luas:
1. Aplikasi Komputer: Merujuk pada perangkat lunak yang diinstal dan dijalankan
di komputer atau laptop. Contoh aplikasi komputer termasuk pengolah kata,
spreadsheet, program presentasi, browser web, program desain grafis, dan
perangkat lunak khusus lainnya.
2. Aplikasi Seluler: Aplikasi yang dirancang khusus untuk berjalan pada
perangkat seluler seperti ponsel pintar dan tablet. Ini dapat mencakup berbagai
kategori seperti aplikasi pesan, media sosial, permainan, aplikasi produktivitas,
aplikasi perbankan, dan banyak lagi.
3. Aplikasi Web: Aplikasi web adalah aplikasi yang diakses melalui browser web
tanpa memerlukan instalasi pada perangkat pengguna. Contohnya termasuk
aplikasi email web, aplikasi pengelolaan proyek online, aplikasi e-commerce,
dan berbagai aplikasi lainnya yang berjalan di lingkungan web.
4. Aplikasi Penyiaran dan Media: Aplikasi ini digunakan untuk mengakses konten
media seperti musik, video, dan streaming acara TV atau film. Contoh aplikasi
media termasuk Spotify, Netflix, YouTube, dan aplikasi streaming lainnya.
5. Aplikasi Bisnis: Aplikasi yang dirancang untuk membantu dalam pengelolaan
dan operasional bisnis. Ini dapat mencakup aplikasi manajemen proyek,
aplikasi keuangan, aplikasi manajemen sumber daya manusia (SDM), aplikasi
logistik, dan banyak lagi.
6. Aplikasi Permainan: Aplikasi yang dirancang untuk hiburan dan permainan. Ini
termasuk aplikasi permainan di ponsel pintar, tablet, atau komputer, yang
mencakup berbagai genre seperti permainan teka-teki, permainan aksi,
permainan simulasi, dan banyak lagi.

2.5.1 Android

16
Android adalah sebuah sistem operasi yang dikembangkan oleh Google untuk
perangkat seluler seperti smartphone, tablet, smartwatch, dan perangkat pintar
lainnya. Android menggunakan kernel Linux sebagai dasar sistem operasinya dan
memberikan lingkungan yang terbuka (open-source) bagi pengembang untuk
membuat aplikasi dan mengadaptasi sistem sesuai kebutuhan.
Sebagai sistem operasi, Android memberikan antarmuka pengguna yang intuitif
dan beragam fitur, termasuk kemampuan menjalankan aplikasi, mengakses internet,
mengirim pesan, menjalankan media, mengelola kontak, dan masih banyak lagi.
Android juga mendukung berbagai konektivitas seperti Wi-Fi, Bluetooth, dan
jaringan seluler, serta memiliki kemampuan untuk menginstal dan mengupdate
aplikasi melalui Google Play Store.
Salah satu aspek kunci dari Android adalah kemampuan adaptasinya yang
tinggi. Hal ini memungkinkan produsen perangkat seluler untuk mengkustomisasi
antarmuka pengguna dan menambahkan fitur-fitur tambahan sesuai dengan keinginan
mereka. Selain itu, Android memiliki lingkungan pengembangan aplikasi yang kuat
dengan dukungan bahasa pemrograman seperti Java dan Kotlin, serta menyediakan
berbagai API (Application Programming Interface) untuk mengakses fitur perangkat
keras seperti kamera, sensor, dan lainnya.
Android juga terintegrasi dengan layanan Google seperti Gmail, Google Maps,
Google Drive, dan lainnya. Pengguna Android dapat mengakses berbagai layanan ini
dan mengelola akun mereka dengan mudah melalui perangkat Android mereka.
Secara keseluruhan, Android telah menjadi salah satu sistem operasi mobile
yang paling populer dan digunakan secara luas di seluruh dunia. Keberadaannya yang
terbuka dan ekosistem aplikasi yang luas memungkinkan pengguna untuk
memanfaatkan berbagai fitur dan aplikasi yang sesuai dengan kebutuhan dan
preferensi mereka.

Secara luas, Android dapat memiliki beberapa pengertian tergantung pada


konteksnya:

17
1. Android sebagai Sistem Operasi: Android adalah sebuah sistem operasi
berbasis Linux yang dikembangkan oleh Google dan digunakan pada berbagai
perangkat seluler seperti smartphone, tablet, smartwatch, dan perangkat pintar
lainnya. Android memiliki antarmuka pengguna yang intuitif, menyediakan
akses ke berbagai aplikasi melalui Google Play Store, dan mendukung berbagai
fitur dan layanan.
2. Android sebagai Platform Pengembangan Aplikasi: Android juga merujuk pada
platform pengembangan aplikasi yang disediakan oleh Google. Platform ini
memungkinkan pengembang untuk membuat aplikasi yang berjalan pada
perangkat Android menggunakan bahasa pemrograman Java, Kotlin, atau
bahasa pemrograman lainnya. Android menyediakan berbagai API (Application
Programming Interface) yang memungkinkan pengembang memanfaatkan fitur
perangkat, seperti kamera, sensor, dan konektivitas jaringan.
3. Android sebagai Ekosistem Aplikasi dan Layanan: Android juga merujuk pada
ekosistem yang dibangun di sekitar sistem operasi tersebut. Ini termasuk
Google Play Store, di mana pengguna dapat mengunduh berbagai aplikasi,
permainan, buku, film, dan lainnya. Selain itu, Android juga menyediakan
integrasi dengan berbagai layanan Google, seperti Gmail, Google Maps, Google
Drive, dan banyak lagi. Pengguna dapat memanfaatkan ekosistem ini untuk
meningkatkan produktivitas, hiburan, dan berbagai kebutuhan sehari-hari
mereka.
Jadi, Android dapat dilihat sebagai sistem operasi, platform pengembangan
aplikasi, dan ekosistem aplikasi dan layanan yang luas yang berfungsi untuk
memperkaya pengalaman pengguna pada perangkat seluler.
Sejarah Android dimulai pada tahun 2003 ketika Andy Rubin, Rich Miner,
Nick Sears, dan Chris White mendirikan sebuah perusahaan yang bernama Android
Inc. Tujuan awal mereka adalah mengembangkan sistem operasi cerdas untuk kamera
digital. Namun, mereka kemudian mengubah fokus mereka menjadi mengembangkan
sistem operasi untuk perangkat seluler.

18
Pada tahun 2005, Google memperoleh Android Inc., dan itu menjadi langkah
awal bagi Google untuk masuk ke pasar perangkat seluler. Google melihat potensi
besar dalam pengembangan sistem operasi yang terbuka dan bersifat open-source
untuk perangkat seluler.
Pada tanggal 5 November 2007, Open Handset Alliance (OHA) diumumkan.
OHA adalah konsorsium yang terdiri dari beberapa perusahaan teknologi, termasuk
Google, Samsung, HTC, Motorola, dan lain-lain. Tujuan OHA adalah untuk
mengembangkan platform perangkat seluler yang terbuka, berbasis Linux, dan
menggunakan sistem operasi Android.
Pada tanggal 23 September 2008, Android versi pertama, yang dinamai
"Android Cupcake," dirilis secara resmi. Versi ini masih relatif sederhana
dibandingkan dengan versi Android yang lebih baru. Namun, Android Cupcake
membawa beberapa fitur penting seperti notifikasi di layar, integrasi dengan kamera,
dan akses ke Google Play Store.
Sejak itu, Google terus mengembangkan Android dengan meluncurkan
berbagai versi baru dengan fitur-fitur yang semakin canggih. Beberapa versi Android
yang signifikan termasuk Android Donut (1.6), Eclair (2.0-2.1), Froyo (2.2),
Gingerbread (2.3), Honeycomb (3.0-3.2), Ice Cream Sandwich (4.0), Jelly Bean (4.1-
4.3), KitKat (4.4), Lollipop (5.0-5.1), Marshmallow (6.0), Nougat (7.0-7.1), Oreo
(8.0-8.1), Pie (9.0), dan Android 10, 11, dan 12 pada saat pemotongan pengetahuan
saya pada September 2021.
Selama perkembangannya, Android telah menjadi sistem operasi yang paling
banyak digunakan di perangkat seluler di seluruh dunia. Dengan populasi pengguna
yang besar dan dukungan yang luas dari pengembang aplikasi, Android terus
berkembang dan menghadirkan inovasi baru untuk meningkatkan pengalaman
pengguna pada berbagai perangkat mobile.

2.5.2 Firebase
Firebase adalah sebuah platform pengembangan aplikasi yang disediakan oleh

19
Google. Firebase menyediakan berbagai layanan yang membantu pengembang
membangun dan mengelola aplikasi secara efisien, termasuk pengelolaan database,
otentikasi pengguna, penyimpanan file, hosting, analitik, dan masih banyak lagi.
Berikut adalah beberapa komponen utama dalam Firebase:
1. Firebase Realtime Database: Merupakan database cloud yang menggunakan
model JSON untuk menyimpan dan menyinkronkan data secara real-time antara
klien dan server. Hal ini memungkinkan pengembang untuk membuat aplikasi
yang responsif dan dapat berbagi data secara langsung antar pengguna.
2. Firebase Authentication: Layanan otentikasi pengguna yang menyediakan
berbagai metode otentikasi, seperti email dan password, Google Sign-In,
Facebook Login, dan banyak lagi. Firebase Authentication memungkinkan
pengembang untuk mengelola identitas pengguna dan mengamankan akses ke
fitur-fitur dalam aplikasi.
3. Firebase Cloud Firestore: Database cloud yang menyediakan fleksibilitas dalam
menyimpan dan mengelola data. Firestore menggunakan koleksi, dokumen, dan
bidang untuk menyimpan data dalam struktur yang teratur. Fitur-fitur seperti
penyortiran, filtering, dan pengamatan perubahan data memudahkan
pengembang dalam mengakses dan mengelola data aplikasi mereka.
4. Firebase Storage: Layanan penyimpanan file yang memungkinkan pengembang
untuk mengunggah dan mengunduh file seperti gambar, video, dan dokumen ke
cloud. Firebase Storage menyediakan keandalan, skalabilitas, dan keamanan
untuk penyimpanan file aplikasi.
5. Firebase Cloud Messaging (FCM): Layanan notifikasi push yang
memungkinkan pengembang untuk mengirimkan pesan langsung ke perangkat
pengguna. Dengan FCM, pengembang dapat memberikan pemberitahuan dan
interaksi real-time kepada pengguna mereka.
6. Firebase Hosting: Layanan hosting web yang memungkinkan pengembang
untuk dengan mudah menerbitkan aplikasi web mereka. Firebase Hosting
menyediakan kecepatan dan keamanan yang tinggi dengan menggunakan CDN

20
(Content Delivery Network) untuk mendistribusikan konten aplikasi di seluruh
dunia.
Selain itu, Firebase juga menyediakan layanan seperti Firebase Performance
Monitoring, Firebase Remote Config, Firebase Test Lab, dan banyak lagi, yang
membantu pengembang dalam mengoptimalkan kinerja aplikasi, mengelola
konfigurasi, melakukan pengujian, dan mengumpulkan data analitik.
Dengan menggunakan Firebase, pengembang dapat memanfaatkan layanan-
layanan tersebut untuk mengurangi kerumitan dalam mengembangkan dan mengelola
aplikasi, serta mempercepat proses pengembangan dengan menggunakan solusi yang
sudah ada dari Firebase.

2.5.3 Sejarah Firebase


Sejarah Firebase dimulai pada tahun 2011 ketika perusahaan bernama Firebase
didirikan oleh James Tamplin dan Andrew Lee. Awalnya, Firebase adalah sebuah
platform backend as a service (BaaS) yang menyediakan alat dan infrastruktur untuk
membantu pengembang membangun aplikasi web dengan cepat.
Pada awalnya, Firebase terdiri dari beberapa fitur seperti Firebase Realtime
Database (dikenal sebagai Firebase Database pada saat itu), Firebase Hosting, dan
Firebase Authentication. Firebase Realtime Database adalah komponen utama yang
memungkinkan pengembang untuk menyimpan dan menyinkronkan data secara real-
time di aplikasi mereka.
Pada tahun 2014, Firebase diakuisisi oleh Google. Akuisisi ini memperluas
cakupan Firebase dan membawa banyak perubahan dalam platform tersebut. Firebase
menjadi bagian dari Google Cloud Platform dan mengalami pertumbuhan yang
signifikan dalam fitur dan layanan yang ditawarkan.
Setelah diakuisisi oleh Google, Firebase mengalami transformasi besar-besaran
dan menjadi platform yang lebih komprehensif. Beberapa fitur dan layanan baru
ditambahkan, termasuk Firebase Cloud Firestore, Firebase Cloud Messaging (FCM),
Firebase Storage, Firebase Authentication yang ditingkatkan, Firebase Analytics, dan

21
banyak lagi.
Firebase Cloud Firestore, yang dirilis pada tahun 2017, menyediakan database
cloud yang dapat menyimpan data dalam struktur koleksi-dokumen yang fleksibel.
Layanan ini memperkenalkan fleksibilitas dan skalabilitas yang lebih baik
dibandingkan dengan Firebase Realtime Database.
Selama bertahun-tahun, Firebase terus mengembangkan dan memperluas
portofolio layanannya. Firebase Performance Monitoring, Firebase Remote Config,
Firebase Test Lab, dan Firebase Crashlytics adalah contoh lain dari layanan-layanan
yang ditambahkan untuk membantu pengembang dalam mengoptimalkan kinerja
aplikasi, mengelola konfigurasi, melakukan pengujian, dan menganalisis kesalahan.
Seiring dengan waktu, Firebase telah menjadi salah satu platform yang populer
dan banyak digunakan oleh pengembang aplikasi di seluruh dunia. Firebase
menyediakan solusi yang lengkap untuk pengembangan aplikasi mobile dan web
dengan kelebihan dalam kecepatan, skalabilitas, dan kemudahan penggunaan.

2.5.4 Kelebihan dan Kekurangan Firebase


Firebase memiliki sejumlah kelebihan dan kekurangan yang perlu
dipertimbangkan oleh pengembang sebelum memutuskan untuk menggunakannya.
Berikut adalah beberapa kelebihan dan kekurangan Firebase:

1. Kelebihan Firebase:
a. Mudah Digunakan: Firebase dirancang untuk mempermudah pengembangan
aplikasi dengan menyediakan berbagai fitur dan layanan yang siap digunakan.
Firebase memiliki antarmuka yang intuitif dan dokumentasi yang baik,
membuatnya lebih mudah bagi pengembang untuk memulai dan
mengintegrasikan Firebase ke dalam proyek mereka.
b. Real-time Database: Firebase Realtime Database menyediakan kemampuan
untuk menyimpan dan menyinkronkan data secara real-time antara pengguna
dan server. Ini memungkinkan pengembang untuk membuat aplikasi yang

22
responsif dan berbagi data secara langsung antar pengguna.
c. Hosting dan Penyimpanan File: Firebase menyediakan layanan hosting web
yang cepat dan andal, serta layanan penyimpanan file untuk mengelola file
seperti gambar, video, dan dokumen.
d. Otentikasi Pengguna: Firebase menyediakan layanan otentikasi pengguna yang
dapat digunakan untuk mengelola identitas pengguna dan mengamankan akses
ke fitur-fitur dalam aplikasi. Firebase mendukung berbagai metode otentikasi,
termasuk email dan password, Google Sign-In, Facebook Login, dan banyak
lagi.
e. Analitik dan Pengujian: Firebase menyediakan fitur analitik yang kuat untuk
melacak kinerja aplikasi dan perilaku pengguna. Selain itu, Firebase juga
menyediakan alat pengujian seperti Firebase Test Lab untuk menguji aplikasi di
berbagai perangkat dan konfigurasi.

2. Kekurangan Firebase:
a. Ketergantungan pada Layanan Pihak Ketiga: Firebase merupakan layanan cloud
yang disediakan oleh Google. Pengguna Firebase harus bergantung pada
infrastruktur dan kebijakan Google. Jika terjadi gangguan pada infrastruktur
Firebase atau perubahan dalam kebijakan Google, dapat mempengaruhi kinerja
dan keberlanjutan aplikasi.
b. Keterbatasan Skalabilitas: Firebase memiliki batasan tertentu dalam hal
skalabilitas. Ketika aplikasi Anda tumbuh dan jumlah pengguna atau data
meningkat secara signifikan, mungkin perlu mengelola skalabilitas dan
performa dengan hati-hati agar Firebase tetap berkinerja optimal.
c. Penguncian Vendor: Menggunakan Firebase berarti Anda terikat pada layanan
tersebut dan menjadi bergantung pada ekosistem Firebase. Jika Anda ingin
beralih ke platform atau penyedia layanan lain di masa depan, mungkin
membutuhkan waktu dan usaha yang signifikan untuk mentransfer atau

23
mengganti kode dan infrastruktur aplikasi.
d. Kustomisasi Terbatas: Meskipun Firebase menyediakan banyak fitur dan
layanan yang siap digunakan, ada keterbatasan dalam kustomisasi tertentu. Jika
Anda memerlukan kontrol yang lebih tinggi atas infrastruktur atau
membutuhkan fitur khusus yang tidak disediakan oleh Firebase, mungkin perlu
mempertimbangkan alternatif lain.

Perlu dicatat bahwa kelebihan dan kekurangan Firebase dapat bervariasi


tergantung pada kebutuhan dan tujuan pengembangan aplikasi. Penting untuk
melakukan evaluasi yang cermat dan mempertimbangkan faktor-faktor ini sebelum
mengadopsi Firebase atau platform lain untuk proyek Anda.
2.5.5 Database
Database adalah kumpulan data yang terorganisir secara sistematis dan
tersimpan di dalam komputer. Dalam konteks komputasi, database merupakan suatu
sistem yang dirancang untuk menyimpan, mengelola, dan mengambil data dengan
efisien.
Secara umum, database digunakan untuk menyimpan informasi yang berkaitan
dengan suatu entitas atau topik tertentu. Contohnya, sebuah perusahaan mungkin
memiliki database yang menyimpan informasi karyawan seperti nama, alamat,
jabatan, dan gaji. Sistem basis data memungkinkan perusahaan untuk menyimpan,
mengelola, dan mengakses informasi tersebut dengan mudah dan efisien.
Database biasanya terdiri dari tabel yang terdiri dari baris dan kolom. Setiap
baris dalam tabel merepresentasikan suatu entitas tunggal, sedangkan setiap kolom
merepresentasikan atribut atau informasi spesifik tentang entitas tersebut. Dalam
contoh database karyawan, setiap baris dalam tabel mungkin mewakili satu
karyawan, dan kolom-kolomnya mungkin berisi informasi seperti nama, alamat,
jabatan, dan gaji.

Manfaat utama penggunaan database meliputi:

24
1. Konsistensi data: Database memungkinkan data untuk diatur dengan cara yang
terstruktur, sehingga memastikan konsistensi dan keakuratan data.
2. Efisiensi penyimpanan: Database memungkinkan penggunaan ruang
penyimpanan yang efisien dengan menghilangkan duplikasi data yang tidak
perlu.
3. Akses data yang cepat: Database dirancang untuk menyediakan mekanisme
yang cepat dan efisien dalam mengakses dan mengambil data.
4. Keamanan data: Database dapat dilengkapi dengan mekanisme keamanan yang
melindungi data dari akses yang tidak sah atau manipulasi yang tidak
diinginkan.
5. Integrasi data: Database memungkinkan penggabungan data dari berbagai
sumber yang berbeda, sehingga memudahkan analisis dan pengambilan
keputusan.

Terdapat berbagai jenis database yang berbeda, termasuk database relasional,


database berorientasi objek, dan database NoSQL. Setiap jenis memiliki karakteristik
dan kegunaan yang berbeda tergantung pada kebutuhan aplikasi atau sistem yang
akan digunakan.

2.5.6 Android Studio


Android Studio adalah lingkungan pengembangan terintegrasi (IDE) yang
khusus digunakan untuk mengembangkan aplikasi Android. Android Studio
dikembangkan oleh Google dan merupakan salah satu perangkat lunak paling populer
yang digunakan oleh para pengembang untuk membuat aplikasi Android.

Berikut adalah beberapa komponen penting dari Android Studio:


1. Integrated Development Environment (IDE): Android Studio menyediakan IDE
yang kuat dan lengkap untuk mengembangkan aplikasi Android. IDE ini
dilengkapi dengan berbagai fitur seperti editor kode yang canggih, debugger,

25
pengelola proyek, alat desain antarmuka pengguna (UI), dan banyak lagi. IDE
Android Studio dirancang khusus untuk memudahkan pengembangan aplikasi
Android dengan menyediakan alat-alat yang diperlukan dalam satu tempat.
2. Android SDK (Software Development Kit): Android Studio secara otomatis
mengintegrasikan Android SDK. SDK menyediakan berbagai perpustakaan,
alat, dan utilitas yang dibutuhkan untuk mengembangkan aplikasi Android. Ini
termasuk API (Application Programming Interface) Android yang
memungkinkan pengembang untuk mengakses berbagai fitur dan layanan
Android.
3. Emulator dan Perangkat Virtual: Android Studio dilengkapi dengan emulator
Android bawaan yang memungkinkan pengembang untuk menjalankan dan
menguji aplikasi mereka di lingkungan yang terisolasi sebelum memasangnya
di perangkat fisik. Selain itu, Android Studio juga mendukung konektivitas
dengan perangkat fisik sehingga pengembang dapat menguji aplikasi langsung
pada perangkat Android yang sesungguhnya.
4. Layout Editor: Android Studio menyediakan alat desain UI yang kuat yang
disebut Layout Editor. Ini memungkinkan pengembang untuk membuat tata
letak antarmuka pengguna dengan tampilan visual langsung, serta menyediakan
kontrol dan widget yang dapat ditarik dan dijatuhkan ke dalam tata letak.
5. Gradle Build System: Android Studio menggunakan sistem build Gradle yang
kuat untuk membangun dan mengelola proyek Android. Gradle memungkinkan
pengembang untuk mengatur dependensi proyek, mengelola konfigurasi build,
dan melakukan tugas-tugas lain seperti mengompilasi kode, mengemas aplikasi,
dan menghasilkan file APK.
6. Pengujian dan Debugging: Android Studio menyediakan fitur pengujian dan
debugging yang kuat. Pengembang dapat menjalankan unit test, uji coba alat,
dan juga melakukan debugging aplikasi langsung dari IDE. Ini membantu
dalam mengidentifikasi bug, melacak kode, dan memperbaiki masalah dengan
cepat.

26
Selain itu, Android Studio juga mendukung integrasi dengan layanan
pengembangan aplikasi lainnya, seperti Firebase, untuk menambahkan fitur tambahan
seperti analitik, otentikasi, pemberitahuan, dan penyimpanan cloud ke aplikasi
Android.
Android Studio adalah alat yang sangat berguna bagi para pengembang untuk
membuat, menguji, dan menerapkan aplikasi Android secara efisien. Dengan fitur-
fitur yang komprehensif dan dukungan yang terus diperbarui dari Google, Android
Studio menjadi IDE yang populer dan disukai oleh para pengembang Android.

2.5.7 Use-case Diagram


Diagram use-case adalah jenis diagram yang digunakan dalam rekayasa
perangkat lunak untuk menggambarkan fungsionalitas sistem yang diusulkan atau
yang ada. Diagram ini membantu dalam pemahaman dan komunikasi antara
pengembang perangkat lunak dan pemangku kepentingan lainnya, seperti pengguna
akhir dan pemilik produk.
Diagram use-case menggambarkan interaksi antara aktor (entitas eksternal yang
berinteraksi dengan sistem) dan use-case (fungsi-fungsi sistem yang memberikan
nilai kepada aktor). Use-case sendiri menggambarkan skenario yang terjadi ketika
aktor menggunakan sistem.
Dalam diagram use-case, aktor direpresentasikan sebagai ikon manusia atau
sistem eksternal lainnya, sedangkan use-case direpresentasikan sebagai oval dengan
nama fungsionalitas yang diberikan. Hubungan antara aktor dan use-case ditandai
dengan garis panah.

Tujuan dari diagram use-case adalah:


1. Menyajikan gambaran keseluruhan tentang fitur dan fungsionalitas yang
diharapkan dari sistem.
2. Mengidentifikasi aktor-aktor yang berinteraksi dengan sistem.

27
3. Menyajikan skenario-skenario yang mungkin terjadi saat aktor menggunakan
sistem.
4. Memperjelas persyaratan pengguna yang harus dipenuhi oleh sistem.
5. Membantu dalam pengambilan keputusan dan perencanaan pengembangan
sistem.

Diagram use-case dapat digunakan sebagai dasar untuk mengembangkan


diagram aktivitas, diagram sekuen, dan diagram kelas dalam rekayasa perangkat
lunak.

Berikut adalah beberapa macam-macam use-case diagram yang umum


digunakan dalam rekayasa perangkat lunak:
1. Use-case Diagram Utama (Main Use-case Diagram): Diagram ini
menggambarkan fungsionalitas utama sistem dan interaksi antara aktor dan use-
case yang paling penting. Biasanya, ini adalah diagram use-case tingkat tinggi
yang memberikan gambaran keseluruhan tentang sistem.
2. Use-case Diagram Rinci (Detailed Use-case Diagram): Diagram ini berfokus
pada rincian spesifik tentang use-case dan interaksi antara aktor dan use-case.
Ini memberikan pemahaman yang lebih mendalam tentang fitur-fitur sistem.
3. Use-case Diagram Ekstensi (Extension Use-case Diagram): Diagram ini
digunakan untuk menggambarkan skenario alternatif atau perpanjangan yang
mungkin terjadi dalam use-case utama. Ini membantu dalam memodelkan
perubahan dan variasi dalam perilaku sistem.

4. Use-case Diagram Inklusi (Inclusion Use-case Diagram): Diagram ini


menggambarkan bagaimana satu use-case dapat menggabungkan atau
memasukkan fungsionalitas dari use-case lain. Ini membantu dalam
memodelkan ketergantungan antara use-case yang terkait.
5. Use-case Diagram Aktivitas (Activity Use-case Diagram): Diagram ini

28
menggabungkan elemen-elemen diagram aktivitas dengan diagram use-case. Ini
memberikan pemahaman tentang urutan langkah-langkah yang terlibat dalam
setiap use-case.
6. Use-case Diagram Kerjasama (Collaboration Use-case Diagram): Diagram ini
digunakan untuk menggambarkan interaksi antara objek-objek yang terlibat
dalam use-case tertentu. Ini membantu dalam memodelkan hubungan antara
objek-objek yang bekerja bersama dalam satu use-case.
7. Use-case Diagram Paket (Package Use-case Diagram): Diagram ini
mengorganisir use-case ke dalam paket-paket yang terkait. Ini membantu dalam
mengelompokkan use-case berdasarkan fitur atau area fungsional tertentu
dalam sistem.

Perlu diingat bahwa jenis-jenis diagram ini dapat saling tumpang tindih dan
digunakan bersama untuk menggambarkan berbagai aspek dan rincian sistem.
Penting untuk memilih dan menggunakan jenis diagram use-case yang paling sesuai
dengan kebutuhan dan kompleksitas sistem yang sedang dianalisis atau
dikembangkan.
2.5.8 Sequence Diagram
Diagram urutan (sequence diagram) adalah jenis diagram interaksi dalam
rekayasa perangkat lunak yang menggambarkan interaksi antara objek-objek dalam
sistem sepanjang waktu. Diagram ini memvisualisasikan urutan pesan atau
pemanggilan metode yang dikirim antara objek-objek tersebut dan menunjukkan
bagaimana objek berinteraksi satu sama lain dalam rangkaian langkah-langkah yang
terjadi.

Dalam diagram urutan, objek-objek direpresentasikan sebagai kotak dengan


nama objek di dalamnya. Urutan pesan atau pemanggilan metode antara objek-objek
ditunjukkan dengan panah yang menghubungkan kotak-kotak objek tersebut. Pesan-
pesan tersebut disusun dalam urutan waktu dari atas ke bawah, sehingga

29
menggambarkan aliran eksekusi dalam sistem.
Diagram urutan memberikan pemahaman yang visual tentang bagaimana objek-
objek berinteraksi satu sama lain dalam sistem, termasuk urutan pesan yang dikirim,
parameter yang diberikan, dan respons yang diterima. Hal ini membantu dalam
memodelkan logika perilaku sistem dan mengidentifikasi ketergantungan antara
objek-objek.

Beberapa elemen penting dalam diagram urutan meliputi:


1. Objek: Merepresentasikan entitas atau komponen dalam sistem yang
berinteraksi satu sama lain.
2. Pemanggilan metode (Method Call): Menunjukkan pemanggilan metode atau
pesan yang dikirim dari satu objek ke objek lain.
3. Balasan (Reply): Menunjukkan respons atau balasan yang diterima oleh objek
setelah menerima pesan atau pemanggilan metode.
4. Iterasi (Iteration): Menunjukkan pengulangan pesan atau pemanggilan metode
yang terjadi dalam rangkaian langkah-langkah.

Diagram urutan sangat berguna dalam merancang, menganalisis, dan


memahami aliran eksekusi dalam sistem. Mereka membantu dalam mengidentifikasi
situasi yang mungkin terjadi, mengidentifikasi kebutuhan perangkat lunak, dan
mengkomunikasikan interaksi sistem kepada pemangku kepentingan lainnya.

2.5.9 Activity Diagram


Diagram aktivitas (activity diagram) adalah jenis diagram dalam rekayasa
perangkat lunak yang digunakan untuk menggambarkan aliran kerja atau aliran
aktivitas dalam suatu proses. Diagram ini membantu dalam memodelkan urutan
langkah-langkah yang terjadi dalam sistem, termasuk tindakan, keputusan, dan garis
waktu. Diagram aktivitas terdiri dari berbagai simbol yang digunakan untuk
merepresentasikan elemen-elemen dalam proses.

30
Berikut adalah penjelasan beberapa simbol yang umum digunakan dalam
diagram aktivitas:
1. Tindakan (Action): Representasi dari tindakan atau kegiatan yang dilakukan
dalam proses. Tindakan dapat berupa tindakan yang sederhana, seperti
mengirim pesan atau menghitung data, atau tindakan yang kompleks, seperti
menjalankan algoritma atau memanggil metode.
2. Keputusan (Decision): Menunjukkan titik dalam proses di mana pengambilan
keputusan harus dilakukan. Keputusan dibuat berdasarkan kondisi tertentu, dan
hasilnya akan mempengaruhi aliran langkah-langkah selanjutnya dalam
diagram.
3. Garis waktu (Control Flow): Garis panah yang menghubungkan tindakan-
tindakan dan keputusan-keputusan dalam urutan yang tepat. Ini menunjukkan
aliran eksekusi dari satu langkah ke langkah berikutnya dalam proses.
4. Bercabang (Branch): Menunjukkan adanya percabangan dalam proses, di mana
beberapa langkah atau jalur yang berbeda dapat diambil tergantung pada
kondisi atau keputusan tertentu.
5. Penggabungan (Merge): Menunjukkan penggabungan kembali dari beberapa
jalur atau langkah dalam proses setelah adanya percabangan.
6. Fork (Percabangan): Menunjukkan percabangan dalam proses di mana beberapa
langkah dapat dieksekusi secara paralel atau bersamaan.
7. Join (Penggabungan): Menunjukkan penggabungan kembali dari beberapa
langkah yang sedang dieksekusi secara paralel menjadi satu langkah tunggal.
Diagram aktivitas membantu dalam memodelkan aliran kerja, algoritma, atau
proses bisnis dalam sistem. Mereka membantu dalam memahami dan menganalisis
urutan langkah-langkah yang terjadi, mengidentifikasi ketergantungan antara
tindakan-tindakan, mengidentifikasi cabang atau keputusan yang harus diambil, dan
mendokumentasikan logika perilaku sistem.
Diagram aktivitas sering digunakan bersama dengan diagram use-case, diagram

31
urutan, dan diagram lainnya untuk memperjelas aliran kerja dan perilaku sistem
secara keseluruhan.

32

Anda mungkin juga menyukai