1. Sebelum memulai
Prasyarat
- Pengetahuan dasar tentang SQL untuk membaca dan memanipulasi database relasional.
- Kemampuan untuk menggunakan Room di aplikasi Android untuk membaca dan menulis ke database.
- Kemampuan menggunakan DataStore untuk menyimpan data sederhana.
- Kemampuan untuk membangun antarmuka pengguna yang cukup kompleks dengan Compose.
Yang akan Anda buat
- Aplikasi Android yang meminta bandara keberangkatan kepada pengguna, menelusuri database yang telah diisi otomatis untuk menampilkan daftar penerbangan yang berangkat dari bandara tersebut, memungkinkan pengguna menyimpan penerbangan favorit, dan mengupdate database dengan Room.
Yang akan Anda butuhkan
- Komputer dengan Android Studio
2. Ringkasan
Selamat karena Anda telah menyelesaikan Unit 6. Anda memulai dengan ringkasan umum tentang database relasional dan Bahasa Kueri Terstruktur (SQL), mengintegrasikan database relasional ke dalam aplikasi dengan Room, dan mempelajari Preferences DataStore untuk mempertahankan setelan dan status UI. Saatnya mempraktikkan semua yang telah Anda pelajari.
Dalam project ini, Anda akan membuat aplikasi Flight Search tempat pengguna memasukkan bandara, dan mereka dapat melihat daftar tujuan menggunakan bandara tersebut sebagai keberangkatan. Project ini memberi Anda kesempatan untuk mempraktikkan keahlian menggunakan SQL, Room, dan DataStore dengan menawarkan serangkaian persyaratan aplikasi yang harus dipenuhi. Secara khusus, Anda perlu memastikan aplikasi Flight Search memenuhi persyaratan berikut:
- Menyediakan kolom teks bagi pengguna untuk memasukkan nama bandara atau ID bandara International Airport Transport Association (IATA).
- Mengkueri database untuk memberikan saran pelengkapan otomatis saat pengguna mengetik.
- Saat pengguna memilih saran, membuat daftar penerbangan yang tersedia dari bandara tersebut, termasuk ID IATA dan nama bandara ke bandara lain dalam database.
- Memungkinkan pengguna menyimpan setiap rute favorit.
- Jika tidak ada kueri penelusuran yang dimasukkan, menampilkan semua rute favorit yang dipilih pengguna dalam daftar.
- Menyimpan teks penelusuran dengan Preferences DataStore. Saat pengguna membuka kembali aplikasi, teks penelusuran, jika ada, harus mengisi kolom teks dengan hasil yang sesuai dari database.
Kami telah menyediakan database yang terisi otomatis untuk project ini. Akan tetapi, yang diharapkan adalah Anda membuat aplikasi dari awal sesuai dengan persyaratan—sebagai latihan untuk pekerjaan aktual yang Anda lakukan sebagai developer Android. Project ini juga merupakan kesempatan bagus untuk meninjau kembali atau meningkatkan lebih jauh lagi keterampilan membuat UI dengan Compose, karena Anda tidak banyak mengerjakan UI sejak Unit 4.
3. Mendapatkan database penerbangan
Data untuk aplikasi ini berasal dari database penerbangan. Database penerbangan berisi dua tabel, bandara dan favorit.
Tabel bandara berisi skema berikut.
Kolom | Jenis data | Deskripsi |
id | BILANGAN BULAT | ID unik (kunci utama) |
iata_code | VARCHAR | Tiga huruf kode IATA |
nama | VARCHAR | Nama lengkap bandara |
penumpang | BILANGAN BULAT | Jumlah penumpang per tahun |
Tabel favorit berisi skema berikut.
Kolom | Jenis data | Deskripsi |
id | BILANGAN BULAT | ID unik (kunci utama) |
departure_code | VARCHAR | Kode IATA untuk keberangkatan |
destination_code | VARCHAR | Kode IATA untuk tujuan |
Anda dapat menggunakan tabel bandara untuk menelusuri bandara dan membuat daftar kemungkinan penerbangan. Anda menggunakan tabel favorit, yang awalnya kosong, untuk menyimpan pasangan tujuan keberangkatan dan kedatangan yang dipilih oleh pengguna.
Download file flight_search.db
dari cabang project
repositori GitHub Dasar-Dasar SQL di sini.
4. Merencanakan aplikasi Anda
Merencanakan UI
Anda dapat mendesain aplikasi sesuai keinginan Anda. Sebagai panduan, deskripsi dan gambar berikut adalah contoh tampilan yang dapat dilihat pengguna di aplikasi.
Saat pertama kali membuka aplikasi, pengguna akan melihat layar kosong dengan kolom teks yang meminta bandara.
Saat pengguna mulai mengetik, aplikasi akan menampilkan daftar saran pelengkapan otomatis yang cocok dengan nama atau ID bandara.
Saat pengguna memilih saran, aplikasi akan menampilkan daftar semua kemungkinan penerbangan dari bandara tersebut. Setiap item menyertakan ID dan nama untuk kedua bandara, serta tombol untuk menyimpan tujuan sebagai favorit. Jangan ragu untuk bereksperimen dengan tata letak asalkan semua informasi yang diperlukan dapat disampaikan.
Saat pengguna menghapus teks di kotak penelusuran atau tidak memasukkan kueri penelusuran, aplikasi akan menampilkan daftar tujuan favorit yang tersimpan, jika ada.
Menggunakan Room untuk mengintegrasikan database penerbangan
Untuk menerapkan fitur di atas, Anda perlu memanfaatkan pengetahuan Anda tentang SQL dan Room. Database ini sudah terdiri dari dua tabel, yaitu bandara dan favorit. Anda memerlukan entity untuk setiap tabel. Pilih jenis data Kotlin yang sesuai sehingga Anda dapat mengakses nilai di setiap tabel.
Selain itu, Anda perlu mempertimbangkan persyaratan berikut saat mengkueri database penerbangan dan mempertahankan data:
- Telusuri saran pelengkapan otomatis di tabel bandara. Perlu diingat bahwa pengguna mungkin sudah mengetahui kode bandara, jadi Anda harus memeriksa input mereka terhadap kolom
iata_code
, selain kolomname
, ketika menelusuri teks. Ingat bahwa Anda dapat menggunakan kata kunciLIKE
untuk melakukan penelusuran teks. - Tampilkan bandara yang lebih sering dikunjungi dalam urutan menurun dengan mengurutkan di kolom penumpang.
- Asumsikan bahwa setiap bandara memiliki penerbangan ke setiap bandara lainnya dalam database (kecuali untuk bandara itu sendiri).
- Jika tidak ada teks di kotak penelusuran, tampilkan daftar penerbangan favorit yang menunjukkan keberangkatan dan tujuan. Karena tabel favorit hanya menyertakan kolom untuk kode bandara, Anda tidak perlu menampilkan nama bandara dalam daftar ini.
- Jalankan semua kueri database dengan SQL dan Room API. Penting untuk TIDAK memuat seluruh database Anda ke dalam memori sekaligus, tetapi hanya mengambil data yang diperlukan sesuai kebutuhan.
Mempertahankan status pengguna dengan Preferences DataStore
Selain SQL dan Room, Anda juga tahu cara mempertahankan nilai individual seperti setelan pengguna. Untuk aplikasi Flight Search, Anda perlu menyimpan string penelusuran pengguna di Preferences DataStore sehingga string tersebut terisi saat pengguna meluncurkan kembali aplikasi. Jika kolom teks kosong saat pengguna keluar dari aplikasi, daftar penerbangan favorit harus ditampilkan.
5. Membuat aplikasi Flight Search
Setelah Anda membaca semua persyaratannya, sekarang saatnya membuat aplikasi. Meskipun unit ini secara eksklusif berfokus pada persistensi data, penting untuk terus mendapatkan praktik kumulatif. Meskipun Anda telah melihat contoh screenshot dari aplikasi Flight Search, project ini adalah peluang Anda untuk membuat aplikasi Anda unik dan menarik.
Meskipun tugas mendetail ini tidak biasa, Anda sudah mengetahui semua konsep inti yang diperlukan untuk membuat project ini. Jika mengalami masalah atau memerlukan pengingat, Anda dapat melihat codelab sebelumnya.
Hal berikut mungkin berguna bagi Anda saat mengerjakan project:
- Menggunakan SQL untuk membaca dan menulis ke database
- Mempertahankan data dengan Room
- Membaca dan memperbarui data dengan Room
- Menyimpan preferensi secara lokal dengan DataStore
Yang terpenting, nikmati prosesnya. Belajar adalah sebuah perjalanan. Meskipun project ini mungkin sulit, Anda akan mempelajari sesuatu yang baru, lalu menyelesaikan masalah yang sama dengan mudah di lain waktu. Selamat bersenang-senang, dan sampai jumpa di unit berikutnya.