Anda di halaman 1dari 51

LAPORAN

PEMROGRAMAN MOBILE

Dosen Pengampu :
KADEK SUAR WIBAWA, M.T.

Disusun oleh:
I Made Sundhias Yogi Dipa (2005551127)

TEKNOLOGI INFORMASI

FAKULTAS TEKNIK

UNIVERSITASUDAYANA

2022/2023
KATA PENGANTAR

Puji syukur Penulis panjatkan kehadirat Tuhan Yang Maha Esa karena atas segala
berkah dan rahmat-Nya sehingga Penulis dapat menyelesaikan penulisan Laporan
Pemrograman Mobile dalam pembuatan Aplikasi Pemesanan Hotel Berbasis Android
dengan baik dan tepat pada waktunya. Penulis menyampaikan ucapan terimakasih pada
kesempatan ini kepada:
1. Kadek Suar Wibawa, M.T. sebagai Dosen Pengampu mata kuliah Pemrograman
Mobile
2. Semua pihak yang telah banyak membantu, yang tidak dapat Penulis sebutkan satu
persatu.
Penulis mengharapkan semoga dengan dibuatnya laporan ini dapat menambah
wawasan pembaca mengenai Pengembangan Aplikasi Berbasis Android. Penulis menyadari
bahwa dalam penulisan tugas ini masih jauh dari kata sempurna. Oleh karena itu, Penulis
mengharapkan kritik, saran, serta informasi yang bersifat membangun untuk kesempurnaan
laporan ini.

Jimbaran, 13 Juni 2022

Penulis
DAFTAR ISI

KATA PENGANTAR...................................................................................................2
DAFTAR ISI.................................................................................................................3
BAB I PENDAHULUAN.............................................................................................4
1.1 Latar Belakang................................................................................................4
1.2 Rumusan Masalah...........................................................................................5
1.3 Tujuan.............................................................................................................5
1.4 Manfaat...........................................................................................................5
BAB II TINJAUAN PUSTAKA..................................................................................7
2.1 SYSTEM OPERASI ANDROID......................................................................5
2.2 SEJARAH ANDROID......................................................................................5
2.3 VERSI ANDROID............................................................................................7
2.4 KELEBIHAN DAN KEKURANGAN...........................................................10
2.5 SDK.................................................................................................................13
2.6 AVD................................................................................................................14
2.7 JDK..................................................................................................................15
2.8 ADT.................................................................................................................15
2.9 Eclipse.............................................................................................................16
2.10 Source Coding.................................................................................................16

BAB III METODE DAN PERANCANGAN SISTEM...............................................9


3.1 Implementasi Kode Program..........................................................................9
3.2 Tampilan Aplikasi...........................................................................................9
BAB IV PENUTUP....................................................................................................21
4.1 Kesimpulan...................................................................................................21
4.2 Saran.............................................................................................................21
BAB 1
PENDAHULUAN

1.1 Latar Belakang

Android Studio adalah IDE (Integrated Development Environment) atau Lingkungan

Pengembang Terpadu yang mendukung proses pembuatan aplikasi berbasis mobile. Salah

satu tugas dari IDE ini adalah menyediakan interface (antarmuka) untuk membuat aplikasi

dan mengelola manajemen file yang terlihat kompleks. Di dalam Android Studio, hal yang

perlu dilakukan adalah menulis, mengedit, atau menyimpan file proyek dengan sebaik –

baiknya.

Selain itu, Android Studio juga memiliki akses untuk SDK (Software Development

Kit) untuk dapat terintegrasi secara langsung. DapAndroid Studio dipilih karena memiliki

banyak fitur yang memudahkan para pembuat program terutama programmer level dasar

yang ingin belajar lebih tentang android.

Keunggulan menggunakan Android Studio salah satunya memberikan akses ke

Android Software Development Kit (SDK). SDK adalah sebuah ekstensi dari kode Java

yang memperbolehkannya untuk berjalan dengan mulus di device Android. Untuk Java nya

dibutuhkan untuk menulis program, Android SDK sangat diperlukan untuk menjalankan

programnya di Android.

Maka dari itu dengan menggabungkan keduanya, memerlukan Android Studio.

Sehingga ketika menemukan bug pada aplikasi, bisa mengetahui bug tersebut dengan

menggunakan Android Studio untuk memperbaikinya.at dikatakan bahwa SDK sebagai

ekstensi untuk kebutuhan bahasa pemrograman java.


1.2 Rumusan Masalah
Bagaimana membuat aplikasi pemesanan hotel berbasis android dengan
menggunakan Android Studio. Disertai dengan contoh source code dan gambar
pendukung.

1.3 Tujuan Pembuatan

Untuk menerangkan langkah-langkah pembuatan aplikasi pemesanan hotel


berbasis android dengan menggunakan Android Studio.

1.4 Manfaat Pembuatan


Manfaat dalam pembuatan aplikasi pemesanan hotel berbasis android adalah
sebagai berikut:
1. Membantu dalam pembuatan aplikasi pemesanan hotel
2. Memberikan contoh source code dalam pembuatan aplikasi pemesanan
hotel
3. Menampilkan contoh aplikasi pemesanan hotel
BAB 2
TINJAUAN PUSTAKA

2.1 System Operasi Android


Android adalah sistem operasi untuk telepon seluler yang berbasisLinux.
Android juga menyediakan platform terbuka bagi para pengembangguna
menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacamperanti
bergerak. Android merupakan sebuah sistem operasi untuk teleponseluler seperti
halnya Symbian pada Nokia, Palm dan Windows Mobileyang sebelumnya sudah
terlebih dahulu kita kenal selama ini.Google sendiri ternyata mempunyai alasan
cukup kuat untuk melirik pangsa ini, karena perkembangan teknologi telepon
seluler sewasaini sudah bukan merupakan evolusi lagi, melainkan sebuah revolusi.
Babak baru dalam dunia telekomunikasi nirkabel ini terus bergulir dengan cepat.

2.2 Sejarah Android


Android Inc, adalah sebuah perusahaan software kecil yang didirikan pada
bulan Oktober 2003 di Palo Alto, California, USA. Didirikan oleh beberapa senior
di beberapa perusahaan yang berbasis IT & Communication; Andy Rubin, Rich
Miner, Nick Sears dan Chris White. Menurut Rubin, Android Inc didirikan untuk
mewujudkan mobile device yang lebih peka terhadap lokasi dan preferensi
pemilik. Dengan kata lain, Android Inc, ingin mewujudkan mobile device yang
lebih mengerti pemiliknya. Sejarah Android dimulai dari sini.

Konsep yang dimiliki Android Inc, ternyata menggugah minat


raksasa Google untuk memilikinya. Pada bulan Agustus 2005, akhirnya Android
Inc diakuisisi oleh Google Inc. Seluruh sahamnya dibeli oleh Google. Nilai
pembelian Android Inc ini oleh google tidak ada release pastinya. Tetapi banyak
yang memperkirakan nilai pembelian Android Inc olehGoogle adalah
sebesar USD 50 juta. Saat itu banyak yang berspekulasi, bahwa akuisisi ini adalah
langkah awal yang dilakukan Google untuk masuk ke pasar mobile phone.
Awal Perkembangan Android Sekitar September 2007 sebuah studio
melaporkan bahwa Google mengjulan hak paten aplikasi telepon seluler
(akhirnya Google mengenalkan Nexus One, salah satu jenis telepon pintar muncul
yang menggunakan Android pada sistem operasinya. Telepon seluler ini
diproduksi oleh HTC Corporation dan sudah tersedia di pasaran pada tanggal 5
Januari 2010). Pada bulan nopember 2007, terbentuklan Open Handset
Allianceyang merupakan konsorsium dari beberapa perusahaan : Broadcom
Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola,
Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile dan Texas
Instruments. Mereka sepakat untuk membuat open standart bagi mobile phone.
Pada 9 Desember 2008, diumumkan anggota baru yang bergabung dalam
program Computer Android ARM Holdings, Atheros Comunications, diproduksi
oleh Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp,
dan Vodafone Group Plc. Seiring pembentukan Open Hanset
Alliance, OHA mengumumkan produk perdana mereka, Android,
perangkat mobile yang merupakan modifikasi kernel Linux 2.6.

2.3 Versi Android


a. Android versi 1.5 ( cupcake )
Pada pertengahan Mei 2009, Google kembali merilis teleponseluler
dengan menggunakan Android dan SDK (Software DevelopmentKit) dengan
versi 1.5
(Cupcake). Terdapat beberapa pembaruan termasuk juga penambahan beberapa
fitur dalam seluler versi ini yaknikemampuan merekam dan menonton video
dengan modus kamera,mengunggah video ke Youtube dan gambar ke Picasa langsung
daritelepon, dukungan Bluetooth A2DP, kemampuan terhubung secaraotomatis ke
headset Bluetooth, animasi layar, dan keyboard pada layaryang dapat disesuaikan
dengan sistem.
b. Android versi 1.6 ( donut )
Donut (versi 1.6) dirilis pada September dengan menampilkanproses pencarian
yang lebih baik dibanding sebelumnya, penggunaan baterai indikator dan kontrol applet
VPN. Fitur lainnya adalah galeriyang memungkinkan pengguna untuk memilih
foto yang akan dihapus;kamera, camcorder dan galeri yang dintegrasikan;
CDMA / EVDO,802.1x, VPN, Gestures, dan Text-to-speech engine; kemampuan
dialkontak; teknologi text to change speech (tidak tersedia pada semuaponsel;
pengadaan resolusi VWGA.

c. Android versi 2.0/2.1 (eclair)


Pada 3 Desember 2009 kembali diluncurkan ponsel Android dengan versi
2.0/2.1 (Eclair), perubahan yang dilakukan adalahpengoptimalan hardware,
peningkatan Google Maps 3.1.2, perubahan UIdengan browser baru dan dukungan
HTML5, daftar kontak yang baru,dukungan flash untuk kamera 3,2 MP, digital
Zoom, dan Bluetooth 2.1.

d. Android versi 2.2 (froyo)


Pada 20 Mei 2010, Android versi 2.2 (Froyo)
diluncurkan.Perubahanperubahan umumnya terhadap versi-versi sebelumnya
antaralain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai5
kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai GoogleChrome
yang mempercepat kemampuan rendering pada browser,pemasangan aplikasi
dalam SD Card, kemampuan WiFi Hotspotportabel, dan kemampuan auto update
dalam aplikasi Android Market.

e. Android versi 2.3 (gingerbread)


Pada 6 Desember 2010, Android versi 2.3 (Gingerbread)diluncurkan.
Perubahan-perubahan umum yang didapat dari Androidversi ini antara lain
peningkatan kemampuan permainan (gaming),peningkatan fungsi copy paste,
layar antar muka (User Interface)didesain ulang, dukungan format video VP8 dan
WebM, efek audio baru(reverb, equalization, headphone virtualization, dan bass
boost),dukungan kemampuan Near Field Communication (NFC), dan
dukungan jumlah kamera yang lebih dari satu.

f. Android versi 3.0 (honeycomb)


Android Honeycomb dirancang khusus untuk tablet. Androidversi ini
mendukung ukuran layar yang lebih besar. User Interface padaHoneycomb juga
berbeda karena sudah didesain untuk tablet.Honeycomb juga mendukung multi
prosesor dan juga akselerasiperangkat keras (hardware) untuk grafis. Tablet
pertama yang dibuatdengan menjalankan Honeycomb adalah Motorola Xoom.
Perangkattablet dengan platform Android 3.0 akan segera hadir di
Indonesia.Perangkat tersebut bernama Eee Pad Transformer produksi dari
Asus.Rencana masuk pasar Indonesia pada Mei 2011.

g. Android versi 4.0 (ice cream sandwich)


Diumumkan pada tanggal 19 Oktober 2011, membawa fiturHoneycomb
untuk smartphone dan menambahkan fitur baru termasuk membuka kunci dengan
pengenalan wajah, jaringan data pemantauanpenggunaan dan kontrol, terpadu
kontak jaringan sosial, perangkattambahan fotografi, mencari email secara offline,
dan berbagi informasidengan menggunakan NFC.

h. Android versi 4.1 (Jelly bean)


Android Jelly Bean lebih menfokuskan fiturnya ke peningkatanUser
Interface yang lebih lancar dan responsif. Di versi ini jugamenandai hadirnya fitur
Google Now yang memberikan saran danrekomendasi berdasarkan data-data yang
tersimpan (kontak, kalender,lokasi, dll) di handphone.

i. Android versi 4.2(Kitkat)


Android 4.4 KitKat adalah system operasi yang diluncurkan oleh Google
dan Android 4.4 KitKat sebenarnya adalah versi update dari system operasi
android yang lama yaitu Android 4.3 Jelly Bean. Tujutan diluncurkannya update
terbaru adalah untuk memperbaiki bug (celah) ataupun menyempurnakan system
operasi Android sebelumnya. Dari segi perbedaan yang paling terlihat pasti dari
segi tampilan dan navigasi. Selain itu dari segi keamanan juga lebih baik dan
sempurna karena telah menutup sejumlah bug (celah) yang ada.

2.4 Kelebihan dan Kekurangan Android


Kelebihan Android:

 Android bersifat terbuka, karena berbasis linux yang memang open


source jadi bisa dikembangkan oleh siapa saja.
 Akses mudah ke Android App Market : Pemilik android adalah orang yang
gemar utak atik handphone, dengan Google Android App Market anda bisa
men-download berbagai aplikasi dengan gratis.
 Sistem Operasi Merakyat : Ponsel Android, beda sekali dengan iOS yang
terbatas pada iphone dariApple, maka Android punya banyak
produsen hp China sampai yang terbaru Galaxy S III , dengan gadgetandalan
masing masing mulai HTC hingga Samsung.
 Fasilitas penuh USB. Anda bisa mengganti baterai, mass storage, diskdrive,
dan USB tethering
 Home Screen Informatif, Mudah dalam hal notifikasi : sistem operasi ini bisa
memberitahukan Anda tentang adanya SMS, E-mail, atau bahkan artikel
terbaru dari RSS Reader. Bahkan anda tidak akan terlewat dalam
hal misscall sekalipun
 Mendukung semua layanan Google : sistem operasi Android mendukung
semua layanan dari googlemulai dari Gmail sampai Google reader. semua
layanan google bisa anda miliki dengan satu sistem operasi yaitu Android.
 Install ROM modifikasi : kita kadang mendapati ROM yang tidak resmi.
Maksudnya adalah versi yang telah rilis tidak sesuai dengan spesifikasi ponsel
kita, jalan terakhir kita adalah modifikasi. Jangan khawatir ada banyak custom
ROM yang bisa Anda pakai di ponsel Android, dan dijamin tidak akan
membahayakan perangkat anda.
 Widget, dengan adanya Widget di homescreen, Anda bisa dengan mudah
mengakses berbagaisetting dengan cepat dan mudah.

Lebih banyak Model, Google telah menjalin kerjasama dengan


berbagai vendor hardware ternama seperti Samsung, HTC, Motorola, Sony

 Ericsson dan lain-lain, karena kerjasama inilah masyarakat dapat dengan


leluasa memilih model dari berbagai vendor.
 Multi-Tasking, Android mampu menjalankan beberapa aplikasi sekaligus
yang tidak terbatas, baik aplikasi-aplikasi yang berasal dari bawaan sistem
atau tambahan dari Android Market.
 Setting yang Mudah, Sistem Android memang diluncurkan demi alasan
kemudahan. Pengesetan ponsel berbasis OS ini untuk keperluan sehari-hari
sesuai keinginan dan aktivitas pribadi bisa dengan mudah dilakukan.
Pengesetan ini bisa dilakukan langsung dengan bantuan widget pada home
screen. Kamu juga bisa membuat shortcut khusus untuk setting tertentu untuk
dipasang di home screen.

Kekurangan/ Kelemahan Android :

 Terhubung dengan internet : Android bisa dibilang sangat memerlukan


koneksi internet yang aktif. Setidaknya harus ada koneksi internet GPRS di
daerah anda, agar perangkat siap untuk online sesuai dengan kebutuhan kita.
 Perusahaan perangkat kadang lambat mengeluarkan versi resmi dari Android
milik anda. Meskipun kadang tidak ada perbedaan mencolok dalam hal UI.
 Android Market kurang kontrol dari pengelola, kadang masih
terdapat malware.
 Sebagai penyedia layanan langsung, terkadang pengguna sangat sulit sekali
terhubung dengan pihakGoogle.
 Kadang sering terdapat iklan : karena mudah dan gratis, kadang sering
diboncengi iklan. Secara tampilan memang tidak mengganggu kinerja aplikasi
itu sendiri, karena memang kadang berada di bagian atas atau bawah aplikasi.
 Boros Baterai, ya memang android lebih boros dibandingkan dengan OS yang
lain. hal ini karena memang OS ini banyak “process” di background yang
mengakibatkan baterai cepat habis.
 Malware, Salah satu tingkat kelemahan yang paling mendasar adalah
pada Android Market yang masih belum maksimal dalam menjaga dan
mengelola semua file aplikasi dan game karena masih saja di temukan ada
beberapa file aplikasi atau game yang terinfeksi
dengan virus, spyware dan malware.

2.5 SDK
Android-SDK merupakan tools bagi para programmer yang ingin
mengembangkan aplikasi berbasis google android. Android SDK mencakup
seperangkat alat pengembangan yang komprehensif. Android SDK terdiri dari
debugger, libraries, handset emulator,dokumentasi, contoh kode, dan tutorial. Saat
ini Android sudah mendukung arsitektur x86 pada Linux (distribusi Linux apapun
untuk desktop modern), Mac OS X 10.4.8 atau lebih, Windows XP atau Vista.
Persyaratan mencakup JDK, Apache Ant dan Python 2.2 atau yang lebih baru.
IDE yang didukung secara resmi adalah Eclipse 3.2 atau lebih dengan
menggunakan pluginAndroid Development Tools (ADT), dengan ini pengembang
dapat menggunakan teks editor untuk mengedit file Java dan XML serta
menggunakan peralatan command line untuk menciptakan, membangun,
melakukan debug aplikasi Android dan pengendalian perangkat Android
(misalnya, reboot, menginstal paket perangkat lunak dengan jarak jauh).
Android SDK telah dirilis pada tanggal 12 November 2007. Dan pada
tanggal 15 Juli 2008 tim Android Developer Challenge sengaja mengirimkan
email ke semua pendatang di Android Developer Challenge untuk mengumumkan
bahwa rilis SDK terbaru telah tersedia pada halaman download pribadi. Email
tersebut juga ditujukan kepada pemenang Android Developer Challenge putaran
pertama. Sebuah penyataan bahwa Google telah menyediakan rilis SDK terbaru
untuk beberapa pengembang dan bukan untuk orang lain.

Pada tanggal 18 Agustus 2008, Android SDK 0.9 beta dirilis. Rilis ini
menyediakan API yang diperbarui dan diperluas, perbaikan pada alat-alat
pengembangan dan desain terbaru untuk layar awal. Petunjuk untuk meng-
upgrade SDK sudah tersedia pada rilis sebelumnya. Pada tanggal 23 September
2008, Android 1.0 SDK telah dirilis. Pada tanggal 9 Maret 2009, Google merilis
versi 1.1 untuk telepon seluler Android. Rilis terbaru tersebut termasuk dukungan
untuk pencarian dengan suara, harga aplikasi, perbaikan jam alarm, perbaikan
pengiriman gmail, perbaikan surat pemberitahuan dan peta.

Pada pertengahan Mei 2009, Google merilis versi 1.5 (Cupcake) pada
sistem operasi Android dan SDK. Pembaruan ini termasuk banyak fitur baru
seperti perekaman video, dukungan untuk bluetooth, sistem keyboard pada layar
dan pengenalan suara. Rilis ini juga membuka AppWidget framework kepada
para pengembang yang memungkinkan orang untuk membuat widget sendiri pada
halaman home. Pada September 2009 versi 1.6 (Donut) dirilis yang menampilkan
hasil pencarian yang lebih baik dan penggunaan indikator baterai.

Aplikasi Android dipaketkan ke dalam format .apk dan disimpan pada


folder /data/app. Pengguna dapat menjalankan perintah adb root untuk mengakses
folder tersebut karena root memiliki izin untuk mengakses folder tersebut.
2.6 AVD
AVD kependekan dari Android Virtual device yaitu semacam emulator
untuk menjalankan virtual Android. jadi tanpa menggunakan / mempunyai
android phone pun, kita bisa merasakan apa itu android. dan kita juga bisa
membuat program di android. tetapi untuk yang ingin berkecimpung di dunia
android coding sebaiknya minimal punya phone android. kenapa? karena kita bisa
langsung mengetes aplikasi yang kita buat langsung di android karena jika kita
menggunakan AVD akan memakan memori ram, jadi akan berjalan agak berat.

2.7 JDK
Java Development Kit (JDK) ini wajib hukumnya, karena Android
merupakan aplikasi yang dibangun dengan menggunakan bahasa pemrograman
Java. Untuk mendapatkan installer JDK bisa mengunduh / medownload langsung
di situs resminya. Pilihlah installer JDK (java) yang sesuai dengan sistem operasi
komputer kita. JDK yang bisa digunakan untuk membuat program Android adalah
JDK 5 dan 6 atau versi terbarunya.

2.8 ADT
Android Development Tools (ADT) adalah plugin yang didesain untuk IDE
Eclipse yang memberikan kita kemudahan dalam mengembangkan aplikasi
android dengan menggunakan IDE Eclipse. Dengan menggunakan ADT untuk
Eclipse akan memudahkan kita dalam membuat aplikasi project android, membuat
GUI aplikasi, dan menambakan komponen-kompenen yang lainnya, begitu juga
kita dapat melakukan running aplikasi menggunakan Android SDK melalui
Eclipse. Dengan ADT juga kita dapat melakukan pembuatan package android
(.apk) yang digunakan untuk distribusi aplikasi android yang kita rancang.
2.9 Eclipse
Eclipse adalah sebuah IDE (Integrated Development Environment) untuk
mengembangkan perangkat lunak dan dapat dijalankan di semua platform
(platform-independent).
Berikut ini adalah sifat dari Eclipse:
 Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows,
Linux, Solaris, AIX, HP-UX dan Mac OS X.
 Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java,
akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa
pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain
sebagainya.
 Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun
bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat
lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan
lain sebagainya.

2.10 Contoh Source code


Source code yang digunakan dalam pembuatan game edukasi ini masih
tergolong sederhana. Berikut beberapa coding yang digunakan :
Dibagian Layout :

<LinearLayout
</LinearLayout>

Tampilan dimana terdapat beberapa objek yang diatur bersusun secara


vertikal dan horizontal.

<RelativeLayout
</ RelativeLayout>

Tampilan dimana membutuhkan penempatan objek dari berbagai tempat.

<Button
Android:text=”ENTER”
Android:layout_width=”wrap_content”
Android:layout_heinght=”wrap_conent”
Andrid:id=“@+id/btn_1”
Andrid:Background=“@drawable/kucing”
untuk membuat button yang bergambar kucing dengan menggunakan

protected void onCreate(Bundle


savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_s01);
Button nw =
(Button)findViewById(R.id.kucing);
nw.setOnClickListener(new
View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
Andrid:Background=“@drawable/kucing” , setiap button harus mempunyai id
untuk identitas button dengan Andrid:id=“@+id/btn_1”.

Coding ini berfungsi mengaktifkan button agar button dapat melakukan


perintah back / exit. R.layout.activity_s01 ini menunjukan lokasi layout yang
diberi perintah back. Coding diatas berfungsi dibagian src/java.

Intent panggil_class = new Intent(this,


S01Activity.class);
startActivity(panggil_class);

berfungsi untuk memangil class lain . panggil_class adalah variabel dari Intent.
Class yang dituju adalah S01Activity.
BAB 3
PEMBAHASAN

3.1 Source code Aplikasi Pemesanan Hotel


Main Activity
package com.azhar.villasreserved.activities;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.text.format.DateFormat;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;

import com.azhar.villasreserved.decoration.LayoutMarginDecoration;
import com.azhar.villasreserved.model.ModelMain;
import com.azhar.villasreserved.utils.Tools;
import com.azhar.villasreserved.R;
import com.azhar.villasreserved.adapter.MainAdapter;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

public class MainActivity extends AppCompatActivity implements


MainAdapter.onSelectData {

RecyclerView rvMainMenu;
Button btnMove;
Button btnHome;
LayoutMarginDecoration gridMargin;
ModelMain mdlMainMenu;
List<ModelMain> lsMainMenu = new ArrayList<>();
TextView tvToday;
String hariIni;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {


getWindow().getDecorView().setSystemUiVisibility
(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}

if (Build.VERSION.SDK_INT >= 21) {


setWindowFlag(this,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, false);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
btnMove = findViewById(R.id.btnMove);
btnHome = findViewById(R.id.btnHome);
tvToday = findViewById(R.id.tvDate);
rvMainMenu = findViewById(R.id.rvMainMenu);
GridLayoutManager mLayoutManager = new GridLayoutManager(this, 2,
RecyclerView.VERTICAL, false);
rvMainMenu.setLayoutManager(mLayoutManager);
gridMargin = new LayoutMarginDecoration(2, Tools.dp2px(this, 4));
rvMainMenu.addItemDecoration(gridMargin);
rvMainMenu.setHasFixedSize(true);

//get Time Now


Date dateNow = Calendar.getInstance().getTime();
hariIni = (String) DateFormat.format("EEEE", dateNow);
getToday();
setMenu();

private void getToday() {


Date date = Calendar.getInstance().getTime();
String tanggal = (String) DateFormat.format("d MMMM yyyy", date);
String formatFix = hariIni + ", " + tanggal;
tvToday.setText(formatFix);
}
private void setMenu() {
mdlMainMenu = new ModelMain("Hotel", R.drawable.ic_hotel);
lsMainMenu.add(mdlMainMenu);
mdlMainMenu = new ModelMain("Kuliner", R.drawable.ic_cafe);
lsMainMenu.add(mdlMainMenu);
mdlMainMenu = new ModelMain("Tempat Ibadah", R.drawable.ic_pray_place);
lsMainMenu.add(mdlMainMenu);
mdlMainMenu = new ModelMain("Wisata", R.drawable.ic_destination);
lsMainMenu.add(mdlMainMenu);
mdlMainMenu = new ModelMain("Komunitas", R.drawable.ic_komunitas);
lsMainMenu.add(mdlMainMenu);
mdlMainMenu = new ModelMain("Rute Angkot", R.drawable.ic_rute_angkot);
lsMainMenu.add(mdlMainMenu);

MainAdapter myAdapter = new MainAdapter(lsMainMenu, this);


rvMainMenu.setAdapter(myAdapter);

@Override
public void onSelected(ModelMain mdlMain) {
switch (mdlMain.getTxtName()) {
case "Hotel":
startActivityForResult(new Intent(MainActivity.this, HotelActivity.class), 1);
break;
case "Kuliner":
startActivityForResult(new Intent(MainActivity.this, KulinerActivity.class), 1);
break;
case "Tempat Ibadah":
startActivityForResult(new Intent(MainActivity.this, PrayPlaceActivity.class),
1);
break;
case "Wisata":
startActivityForResult(new Intent(MainActivity.this, WisataActivity.class), 1);
break;
}
}

//set Transparent Status bar


public static void setWindowFlag(Activity activity, final int bits, boolean on) {

Window win = activity.getWindow();


WindowManager.LayoutParams winParams = win.getAttributes();
if (on) {
winParams.flags |= bits;
} else {
winParams.flags &= ~bits;
}
win.setAttributes(winParams);
}
}

Source code Main Activity


Source code pada main activity adalah merupakan pembuatan tampilan
layout pada menu utama aplikasi yang akan dibuat.

Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">

<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<include layout="@layout/header_main" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="10dp"
android:text="Daftar Kategori"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold" />

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvMainMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="10dp" />

</RelativeLayout>

</LinearLayout>

</androidx.core.widget.NestedScrollView>

</FrameLayout>

Source code Activity main


Source code pada activity main xml ini adalah merupakan tempat
pembuatan isi dari layout main activity yaitu berupa text,gambar,tombol,dll.

DetailHotelActivity

package com.azhar.villasreserved.activities;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import com.azhar.villasreserved.model.ModelHotel;
import com.azhar.villasreserved.R;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class DetailHotelActivity extends AppCompatActivity implements


OnMapReadyCallback {

Button btnMove;
Button btnHome;
Button btnWeb;
Button btnShare;
Toolbar tbDetailHotel;
GoogleMap googleMaps;
TextView txtNameHotel, txtAddressHotel, txtPhoneHotel;
String NameHotel, AddressHotel, PhoneHotel;
ModelHotel modelHotel;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail_hotel);
btnMove = findViewById(R.id.btnMove);
btnHome = findViewById(R.id.btnHome);
btnWeb = findViewById(R.id.btnWeb);
btnShare = findViewById(R.id.btnShare);
tbDetailHotel = findViewById(R.id.tbDetailHotel);
tbDetailHotel.setTitle("Detail Villa");
setSupportActionBar(tbDetailHotel);
assert getSupportActionBar() != null;
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

//show maps
SupportMapFragment mapFragment = (SupportMapFragment)
getSupportFragmentManager().findFragmentById(R.id.map);
assert mapFragment != null;
mapFragment.getMapAsync(this);

modelHotel = (ModelHotel) getIntent().getSerializableExtra("detailHotel");


if (modelHotel != null) {

//get String
NameHotel = modelHotel.getTxtNamaHotel();
AddressHotel = modelHotel.getTxtAlamatHotel();
PhoneHotel = modelHotel.getTxtNoTelp();

//set Id
txtNameHotel = findViewById(R.id.tvNamaHotel);
txtAddressHotel = findViewById(R.id.tvAddressHotel);
txtPhoneHotel = findViewById(R.id.tvPhoneHotel);

//show String to Text


txtNameHotel.setText(NameHotel);
txtAddressHotel.setText(AddressHotel);
txtPhoneHotel.setText(PhoneHotel);
}
btnMove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(DetailHotelActivity.this, KulinerActivity.class);
startActivity(i);
}
});

btnHome.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(DetailHotelActivity.this, MainActivity.class);
startActivity(i);
}
});

btnWeb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://google.com/maps/"));
startActivity(i);

}
});
btnShare.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Terima Kasih telah menggunakan
aplikasi kami !, Silahkan share kepada teman dan orang terdekat anda mengenai
pengalaman anda menggunakan aplikasi kami :)");
sendIntent.setType("text/plain");
startActivity(sendIntent);

}
});

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
public void onMapReady(GoogleMap googleMap) {

//get LatLong
String[] latlong = modelHotel.getKoordinat().split(",");
double latitude = Double.parseDouble(latlong[0]);
double longitude = Double.parseDouble(latlong[1]);

googleMaps = googleMap;
LatLng latLng = new LatLng(latitude, longitude);
googleMaps.addMarker(new MarkerOptions().position(latLng).title(NameHotel));
googleMaps.moveCamera(CameraUpdateFactory.newLatLng(latLng));
googleMaps.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 16));
googleMaps.getUiSettings().setAllGesturesEnabled(true);
googleMaps.getUiSettings().setZoomGesturesEnabled(true);
googleMaps.setTrafficEnabled(true);
}
}

Source code Detail Hotel


Source code pada detail hotel adalah layout yang akan menampilkan list
hotel berupa image botton yang berisi deskripsi dan juga botton untuk berpindah
ke menu lainnya.

Activity_detail_hotel.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">

<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">

<androidx.appcompat.widget.Toolbar
android:id="@+id/tbDetailHotel"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="@color/colorPrimary"
android:theme="@style/AppTheme.AppBarOverlay"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/Toolbar.TitleText" />

</com.google.android.material.appbar.AppBarLayout>

<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="5dp">

<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_margin="10dp"
app:cardCornerRadius="5dp"
app:cardElevation="4dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<fragment xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="250dp"
map:mapType="normal" />

</LinearLayout>

</androidx.cardview.widget.CardView>

<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
app:cardCornerRadius="5dp"
app:cardElevation="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp">

<ImageView
android:id="@+id/ivDetailHotel"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentStart="true"
android:background="@drawable/bg_circle_radius_primary"
android:padding="10dp"
android:src="@drawable/ic_dtl_hotel"
android:tint="@android:color/white" />

<TextView
android:id="@+id/tvNamaHotel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginStart="20dp"
android:layout_toEndOf="@+id/ivDetailHotel"
android:textSize="14sp" />

</RelativeLayout>

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp">

<ImageView
android:id="@+id/ivAddressHotel"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentStart="true"
android:background="@drawable/bg_circle_radius_primary"
android:padding="10dp"
android:src="@drawable/ic_dtl_loc"
android:tint="@android:color/white" />

<TextView
android:id="@+id/tvAddressHotel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginStart="20dp"
android:layout_toEndOf="@+id/ivAddressHotel"
android:textSize="14sp" />

</RelativeLayout>

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp">

<ImageView
android:id="@+id/ivPhoneHotel"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentStart="true"
android:background="@drawable/bg_circle_radius_primary"
android:padding="10dp"
android:src="@drawable/ic_dtl_phone"
android:tint="@android:color/white" />

<TextView
android:id="@+id/tvPhoneHotel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginStart="20dp"
android:layout_toEndOf="@+id/ivPhoneHotel"
android:textSize="14sp" />

</RelativeLayout>

<Button
android:id="@+id/btnWeb"
android:text="BUKA DI WEB"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:onClick="btnWeb"/>
<Button
android:id="@+id/btnMove"
android:text="MENU LAIN"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:onClick="btnMove"/>
<Button
android:id="@+id/btnHome"
android:text="MENU UTAMA"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:onClick="btnHome"/>
<Button
android:id="@+id/btnShare"
android:text="SHARE"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:onClick="btnShare"/>

</LinearLayout>

</LinearLayout>

</androidx.cardview.widget.CardView>

</LinearLayout>

</androidx.core.widget.NestedScrollView>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

Source code Activity Detail Hotel


Source code pada activity detail hotel xml ini adalah merupakan tempat
pembuatan isi dari detail hotel yaitu berupa text,image,botton,dll.
DetailKulinerActivity
package com.azhar.villasreserved.activities;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.androidnetworking.AndroidNetworking;
import com.androidnetworking.common.Priority;
import com.androidnetworking.error.ANError;
import com.androidnetworking.interfaces.JSONObjectRequestListener;
import com.azhar.villasreserved.model.ModelKuliner;
import com.azhar.villasreserved.R;
import com.azhar.villasreserved.api.Api;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

import org.json.JSONException;
import org.json.JSONObject;

public class DetailKulinerActivity extends AppCompatActivity implements


OnMapReadyCallback {

Button btnMove;
Button btnHome;
Button btnWeb;
Button btnShare;
Toolbar tbDetailKuliner;
GoogleMap googleMaps;
TextView tvNamaKuliner, tvAddressKuliner, tvPhoneKuliner, tvOpenTime, tvDesc;
String idKuliner, NamaKuliner, AddressKuliner, PhoneKuliner, OpenTime, Desc;
ModelKuliner modelKuliner;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail_kuliner);
btnMove = findViewById(R.id.btnMove);
btnWeb = findViewById(R.id.btnWeb);
btnHome = findViewById(R.id.btnHome);
btnShare = findViewById(R.id.btnShare);
tbDetailKuliner = findViewById(R.id.tbDetailKuliner);
tbDetailKuliner.setTitle("Detail Kuliner");
setSupportActionBar(tbDetailKuliner);
assert getSupportActionBar() != null;
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

//show maps
SupportMapFragment mapFragment = (SupportMapFragment)
getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);

modelKuliner = (ModelKuliner) getIntent().getSerializableExtra("detailKuliner");


if (modelKuliner != null) {
idKuliner = modelKuliner.getIdKuliner();
NamaKuliner = modelKuliner.getTxtNamaKuliner();

//set Id
tvNamaKuliner = findViewById(R.id.tvNamaKuliner);
tvAddressKuliner = findViewById(R.id.tvAddressKuliner);
tvPhoneKuliner = findViewById(R.id.tvPhoneKuliner);
tvOpenTime = findViewById(R.id.tvOpenTime);
tvDesc = findViewById(R.id.tvDesc);
getDetailKuliner();
}

btnMove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(DetailKulinerActivity.this, WisataActivity.class);
startActivity(i);
}
});

btnHome.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(DetailKulinerActivity.this, MainActivity.class);
startActivity(i);
}
});
btnWeb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://google.com/maps/"));
startActivity(i);

}
});

btnShare.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Terima Kasih telah menggunakan
aplikasi kami !, Silahkan share kepada teman dan orang terdekat anda mengenai
pengalaman anda menggunakan aplikasi kami :)");
sendIntent.setType("text/plain");
startActivity(sendIntent);

}
});
}

private void getDetailKuliner() {


AndroidNetworking.get(Api.DetailKuliner)
.addPathParameter("id", idKuliner)
.setPriority(Priority.HIGH)
.build()
.getAsJSONObject(new JSONObjectRequestListener() {
@Override
public void onResponse(JSONObject response) {
for (int i = 0; i < response.length(); i++) {
try {

//get String Api


NamaKuliner = response.getString("nama");
AddressKuliner = response.getString("alamat");
PhoneKuliner = response.getString("nomor_telp");
OpenTime = response.getString("jam_buka_tutup");
Desc = response.getString("deskripsi");

//set Text
tvNamaKuliner.setText(NamaKuliner);
tvAddressKuliner.setText(AddressKuliner);
tvPhoneKuliner.setText(PhoneKuliner);
tvOpenTime.setText(OpenTime);
tvDesc.setText(Desc);

} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(DetailKulinerActivity.this,
"Gagal menampilkan data!", Toast.LENGTH_SHORT).show();
}
}
}

@Override
public void onError(ANError anError) {
Toast.makeText(DetailKulinerActivity.this,
"Tidak ada jaringan internet!", Toast.LENGTH_SHORT).show();
}
});
}

@Override
public void onMapReady(GoogleMap googleMap) {

//get LatLong
String[] latlong = modelKuliner.getKoordinat().split(",");
double latitude = Double.parseDouble(latlong[0]);
double longitude = Double.parseDouble(latlong[1]);

googleMaps = googleMap;
LatLng latLng = new LatLng(latitude, longitude);
googleMaps.addMarker(new
MarkerOptions().position(latLng).title(NamaKuliner));
googleMaps.moveCamera(CameraUpdateFactory.newLatLng(latLng));
googleMaps.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 16));
googleMaps.getUiSettings().setAllGesturesEnabled(true);
googleMaps.getUiSettings().setZoomGesturesEnabled(true);
googleMaps.setTrafficEnabled(true);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
Source code Detail Kuliner
Source code pada detail kuliner adalah layout yang akan menampilkan list
menu kuliner berupa image botton yang berisi deskripsi dan juga botton untuk
berpindah ke menu lainnya.

Activity_detail_kuliner.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">

<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">

<androidx.appcompat.widget.Toolbar
android:id="@+id/tbDetailKuliner"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="@color/colorPrimary"
android:theme="@style/AppTheme.AppBarOverlay"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/Toolbar.TitleText" />

</com.google.android.material.appbar.AppBarLayout>

<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="5dp">

<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_margin="10dp"
app:cardCornerRadius="5dp"
app:cardElevation="4dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<fragment xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="250dp"
map:mapType="normal" />

</LinearLayout>

</androidx.cardview.widget.CardView>

<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
app:cardCornerRadius="5dp"
app:cardElevation="4dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp">

<TextView
android:id="@+id/tvDesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginStart="20dp"
android:textSize="14sp" />

</RelativeLayout>

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp">

<ImageView
android:id="@+id/ivDetailKuliner"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentStart="true"
android:background="@drawable/bg_circle_radius_primary"
android:padding="10dp"
android:src="@drawable/ic_dtl_kuliner"
android:tint="@android:color/white" />

<TextView
android:id="@+id/tvNamaKuliner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginStart="20dp"
android:layout_toEndOf="@+id/ivDetailKuliner"
android:textSize="14sp" />

</RelativeLayout>

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp">

<ImageView
android:id="@+id/ivAddressKuliner"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentStart="true"
android:background="@drawable/bg_circle_radius_primary"
android:padding="10dp"
android:src="@drawable/ic_dtl_loc"
android:tint="@android:color/white"
android:contentDescription="TODO" />
<TextView
android:id="@+id/tvAddressKuliner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginStart="20dp"
android:layout_toEndOf="@+id/ivAddressKuliner"
android:textSize="14sp" />

</RelativeLayout>

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp">

<ImageView
android:id="@+id/ivOpenTime"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentStart="true"
android:background="@drawable/bg_circle_radius_primary"
android:padding="10dp"
android:src="@drawable/ic_dtl_time"
android:tint="@android:color/white" />

<TextView
android:id="@+id/tvOpenTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginStart="20dp"
android:layout_toEndOf="@+id/ivOpenTime"
android:textSize="14sp" />

</RelativeLayout>

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp">

<ImageView
android:id="@+id/ivPhoneKuliner"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentStart="true"
android:background="@drawable/bg_circle_radius_primary"
android:padding="10dp"
android:src="@drawable/ic_dtl_phone"
android:tint="@android:color/white" />

<TextView
android:id="@+id/tvPhoneKuliner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginStart="20dp"
android:layout_toEndOf="@+id/ivPhoneKuliner"
android:textSize="14sp" />

</RelativeLayout>

<Button
android:id="@+id/btnWeb"
android:text="BUKA DI WEB"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:onClick="btnWeb"/>
<Button
android:id="@+id/btnMove"
android:text="MENU LAIN"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:onClick="btnMove"/>
<Button
android:id="@+id/btnHome"
android:text="MENU UTAMA"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:onClick="btnHome"/>
<Button
android:id="@+id/btnShare"
android:text="SHARE"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:onClick="btnShare"/>

</LinearLayout>
</LinearLayout>

</androidx.cardview.widget.CardView>

</LinearLayout>

</androidx.core.widget.NestedScrollView>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

Source code Activity Detail Kuliner


Source code pada activity detail kuliner xml ini adalah merupakan tempat
pembuatan isi dari detail kuliner yaitu berupa text,image,botton,dll.

DetailWisataActivity
package com.azhar.villasreserved.activities;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import com.androidnetworking.AndroidNetworking;
import com.androidnetworking.common.Priority;
import com.androidnetworking.error.ANError;
import com.androidnetworking.interfaces.JSONObjectRequestListener;
import com.azhar.villasreserved.model.ModelWisata;
import com.azhar.villasreserved.R;
import com.azhar.villasreserved.api.Api;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;

import org.json.JSONException;
import org.json.JSONObject;

public class DetailWisataActivity extends AppCompatActivity {


Toolbar tbDetailWisata;
Button btnMove;
Button btnHome;
Button btnWeb;
Button btnShare;
TextView tvNamaWisata, tvDescWisata;
ImageView imgWisata;
String idWisata, NamaWisata, Desc;
ModelWisata modelWisata;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail_wisata);
btnMove = findViewById(R.id.btnMove);
btnHome = findViewById(R.id.btnHome);
btnWeb = findViewById(R.id.btnWeb);
btnShare = findViewById(R.id.btnShare);
tbDetailWisata = findViewById(R.id.tbDetailWisata);
tbDetailWisata.setTitle("Detail Wisata");
setSupportActionBar(tbDetailWisata);
assert getSupportActionBar() != null;
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

modelWisata = (ModelWisata) getIntent().getSerializableExtra("detailWisata");


if (modelWisata != null) {
idWisata = modelWisata.getIdWisata();
NamaWisata = modelWisata.getTxtNamaWisata();

//set Id
imgWisata = findViewById(R.id.imgWisata);
tvNamaWisata = findViewById(R.id.tvNamaWisata);
tvDescWisata = findViewById(R.id.tvDescWisata);

//get Image
Glide.with(this)
.load(modelWisata.getGambarWisata())
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(imgWisata);

getDetailWisata();
}
btnMove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(DetailWisataActivity.this, HotelActivity.class);
startActivity(i);
}
});

btnHome.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(DetailWisataActivity.this, MainActivity.class);
startActivity(i);
}
});

btnWeb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://google.com/maps/"));
startActivity(i);

}
});

btnShare.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Terima Kasih telah menggunakan
aplikasi kami !, Silahkan share kepada teman dan orang terdekat anda mengenai
pengalaman anda menggunakan aplikasi kami :)");
sendIntent.setType("text/plain");
startActivity(sendIntent);

}
});
}

private void getDetailWisata() {


AndroidNetworking.get(Api.DetailWisata)
.addPathParameter("id", idWisata)
.setPriority(Priority.HIGH)
.build()
.getAsJSONObject(new JSONObjectRequestListener() {
@Override
public void onResponse(JSONObject response) {
for (int i = 0; i < response.length(); i++) {
try {

NamaWisata = response.getString("nama");
Desc = response.getString("deskripsi");

//set Text
tvNamaWisata.setText(NamaWisata);
tvDescWisata.setText(Desc);

} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(DetailWisataActivity.this,
"Gagal menampilkan data!", Toast.LENGTH_SHORT).show();
}
}
}

@Override
public void onError(ANError anError) {
Toast.makeText(DetailWisataActivity.this,
"Tidak ada jaringan internet!", Toast.LENGTH_SHORT).show();
}
});
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}

Source code Detail Wisata


Source code pada detail wisata adalah layout yang akan menampilkan list
tempat wisata berupa image botton yang berisi deskripsi dan juga botton untuk
berpindah ke menu lainnya.
Activity_detail_wisata.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">

<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">

<androidx.appcompat.widget.Toolbar
android:id="@+id/tbDetailWisata"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="@color/colorPrimary"
android:theme="@style/AppTheme.AppBarOverlay"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/Toolbar.TitleText" />

</com.google.android.material.appbar.AppBarLayout>

<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="5dp">

<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_margin="10dp"
app:cardCornerRadius="5dp"
app:cardElevation="4dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/imgWisata"
android:layout_width="match_parent"
android:layout_height="250dp"
android:scaleType="fitXY" />

</LinearLayout>

</androidx.cardview.widget.CardView>

<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
app:cardCornerRadius="5dp"
app:cardElevation="4dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp">

<ImageView
android:id="@+id/ivNamaWisata"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentStart="true"
android:background="@drawable/bg_circle_radius_primary"
android:padding="10dp"
android:src="@drawable/ic_dtl_wisata"
android:tint="@android:color/white" />

<TextView
android:id="@+id/tvNamaWisata"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginStart="20dp"
android:layout_toEndOf="@+id/ivNamaWisata"
android:textSize="14sp" />

</RelativeLayout>

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp">

<ImageView
android:id="@+id/ivDescWisata"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentStart="true"
android:background="@drawable/bg_circle_radius_primary"
android:padding="10dp"
android:src="@drawable/ic_dtl_desc"
android:tint="@android:color/white" />

<TextView
android:id="@+id/tvDescWisata"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginStart="20dp"
android:layout_toEndOf="@+id/ivDescWisata"
android:textSize="14sp" />

</RelativeLayout>

<Button
android:id="@+id/btnWeb"
android:text="BUKA DI WEB"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:onClick="btnWeb"/>
<Button
android:id="@+id/btnMove"
android:text="MENU LAIN"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:onClick="btnMove"/>
<Button
android:id="@+id/btnHome"
android:text="MENU UTAMA"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:onClick="btnHome"/>
<Button
android:id="@+id/btnShare"
android:text="SHARE"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:onClick="btnShare"/>

</LinearLayout>

</LinearLayout>

</androidx.cardview.widget.CardView>

</LinearLayout>

</androidx.core.widget.NestedScrollView>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

Source code Activity Detail Wisata


Source code pada activity detail wisata xml ini adalah merupakan tempat
pembuatan isi dari detail wisata yaitu berupa text,image,botton,dll.
3.2 Gambar Tampilan Aplikasi

Gambar Menu Utama


Tampilan menu utama aplikasi villa reserved berisi daftar kategori yaitu
hotel, kuliner, tempat ibadah, wisata, komunitas, rute angkot.
Gambar Detail Hotel
Tampilan detail villa aplikasi villa reserved berisi daftar villa dan hotel
yang bisa di lihat melalui google maps.

Gambar Detail Villa


Menampilkan detail villa yaitu berupa nama, alamat, dan nomor telpon.
Selain itu terdapat tombol yaitu buka di web yaitu diarahkan ke aplikasi google
maps, menu lain yaitu diarahkan ke layout lain, menu utama yaitu diarahkan ke
dashboard awal, dan share yaitu pilihan untuk share text dari aplikasi ke aplikasi
lainnya.

Gambar Daftar Kuliner


Menampilkan daftar kuliner dari aplikasi villas reserved. Terdapat text
yang menandakan apakah itu rumah makan atau kuliner khas.
Gambar Detail Kuliner
Menampilkan detail kuliner yaitu berupa nama, alamat, jam buka/tutup,
dan nomor telpon. Selain itu terdapat tombol yaitu buka di web yaitu diarahkan ke
aplikasi google maps, menu lain yaitu diarahkan ke layout lain, menu utama yaitu
diarahkan ke dashboard awal, dan share yaitu pilihan untuk share text dari aplikasi
ke aplikasi lainnya.

Gambar Detail Wisata


Menampilkan daftar wisata dari aplikasi villas reserved. Terdapat text
yang membedakan pilihan wisata yaitu Taman, Alam, Budaya, Agrowisata, dan
Kawasan Wisata Terpadu.
Gambar Detail Wisata
Menampilkan detail wisata yaitu berupa nama, dan deskripsi. Selain itu
terdapat tombol yaitu buka di web yaitu diarahkan ke aplikasi google maps, menu
lain yaitu diarahkan ke layout lain, menu utama yaitu diarahkan ke dashboard
awal, dan share yaitu pilihan untuk share text dari aplikasi ke aplikasi lainnya.

Gambar pilihan share text


Menampilkan pilihan share text dari aplikasi villas reserved. Terdapat
pilihan aplikasi yang akan digunakan untuk mengshare pesan dari aplikasi ini,
pesan dapat dirubah sesuai kebutuhan pada source code aplikasi.
Gambar Share text

Menampilkan share text dari aplikasi villas reserved. Terdapat text yang
sudah ditulis pada source code aplikasi yang bisa digunakan untuk berbagai
keperluan seperti promosi dan mengshare link website.
BAB 4
PENUTUP

4.1 Kesimpulan
Bedasarkan pada bab-bab sebelumnya, maka penelitian dapat menyimpulkan
hal-hal sebagai berikut:

1. Dengan teknologi multimedia, aplikasi ini menyajika informasi mengenai


pembelajaran bahasa inggris dengan menampilkan teks, suara, dan gambar,
serta dapat berinteraksi langsung dalam proses belajar dan dapat
meningkatkan motivasi anak untuk belajar bahasa inggris.

2. Dalam proses aplikasi pembelajaran sebagai alat bantu belajar bahasa inggris
ini, mudah digunakan oleh para anak hanya cukup memerlukan klik pada
button-button yan tersedia pada setiap tampilan, untuk mendapatkan materi-
materi yang disajikan.

4.2 Saran
Berdasarkan hasil yang diperoleh, maka saran-saran untuk pengembangan
Aplikasi Pembelajaran sebagai alat bantu belajar Bahasa Inggris, yaitu:

1. Perkembang aplikasi ini nantinya akan diperbanyak lagi jenis-jenis game


secara virtual reality khususnya untuk anak-anak. Jenis-jenis permainan
didalamnya diharapkan terdapat salah satu permainan yang menyediakan
score atau nilai sehingga anak-anak merasa tertantang untuk memainkannya.

2. Diharapkan untuk perkembangan kedepan, aplikasi pembelajaran sebagai alat


bantu pelajaran bahasa inggris yang dapat dimainkan lewat media internet
serta didalam aplikasi ini menyediakan berbagai iklan pada aplikasi tersebut.

Anda mungkin juga menyukai