Anda di halaman 1dari 119

Universitas Sumatera Utara

Repositori Institusi USU http://repositori.usu.ac.id


Departemen Matematika Kertas Karya Diploma (Teknologi Informasi)

2017

Membangun Aplikasi Catatan Berbasis


Android dengan Menggunakan Android Studio

Aulia, Dirza

http://repositori.usu.ac.id/handle/123456789/3642
Downloaded from Repositori Institusi USU, Univsersitas Sumatera Utara
MEMBANGUN APLIKASI CATATAN BERBASIS ANDROID
DENGAN MENGGUNAKAN ANDROID STUDIO

TUGAS AKHIR

DIRZA AULIA
142406054

PROGRAM STUDI D3 TEKNIK INFORMATIKA


DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2017

UNIVERSITAS SUMATERA UTARA


MEMBANGUN APLIKASI CATATAN BERBASIS ANDROID
DENGAN MENGGUNAKAN ANDROID STUDIO

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya

DIRZA AULIA
142406054

PROGRAM STUDI D3 TEKNIK INFORMATIKA


DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2017

UNIVERSITAS SUMATERA UTARA


UNIVERSITAS SUMATERA UTARA
PERNYATAAN

MEMBANGUN APLIKASI CATATAN BERBASIS ANDROID


DENGAN MENGGUNAKAN ANDROID STUDIO

TUGAS AKHIR

Saya mengakui bahwa tugas akhir ini adalah hasil karya sendiri. Kecuali beberapa
kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juli 2017

Dirza Aulia
142406054

UNIVERSITAS SUMATERA UTARA


PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Pemurah dan
Maha Penyayang, dengan limpah karunia-Nya Penulis dapat menyelesaikan
penyusunan Tugas Akhir ini dengan judul Membangun Aplikasi Catatan Berbasis
Android Dengan Menggunakan Android Studio.
Terima kasih penulis sampaikan kepada Drs. Agus Salim Haraphap, M.Si
selaku pembimbing yang telah meluangkan waktunya selama penyusunan Tugas
Akhir ini. Terima kasih kepada Dr. Dra. Elly Rosmaini, M.Si sebagai Dosen
Pembimbing Akademik yang telah membimbing penulis selama duduk di bangku
perkuliahan. Terima kasih kepada Ibu Dra. Normalina Napitupulu, M.Sc dan Bapak
Drs. James Piter Marbun, M.Kom selaku Ketua dan Sekretaris Program Studi D3
Teknik Informatika FMIPA USU Medan, Dekan dan Wakil Dekan FMIPA USU,
seluruh Staf dan Dosen Program Studi D3 Teknik Informatika FMIPA USU,
pegawai FMIPA USU dan rekan – rekan kuliah. Akhirnya tidak terlupakan kepada
Bapak, Ibu dan keluarga yang selama ini memberikan bantuan dan dorongan yang
diperlukan. Semoga Tuhan Yang Maha Esa akan membalasnya.

Medan, Juli 2017

Dirza Aulia

UNIVERSITAS SUMATERA UTARA


MEMBANGUN APLIKASI CATATAN BERBASIS ANDROID DENGAN
MENGGUNAKAN ANDROID STUDIO

ABSTRAK

Kajian ini bertujuan untuk membangun sebuah aplikasi catatan berbasis sistem
operasi Android. Aplikasi catatan ini dikembangkan dengan menggunakan
perangkat lunak Android Studio. Metodologi pengembangan sistem yang
digunakan adalah berdasarkan siklus hidup pengembangan sistem dan pendekatan
model air terjun dan iterasinya. Aplikasi catatan ini meliputi membuat dan
penyimpan catatan baru, mengubah catatan yang telah dibuat dan menghapus
catatan yang ada dimana semuanya itu terhubung dengan basis data. Objektif utama
dari aplikasi catatan ini adalah untuk memudahkan menyimpan catatan dimana saja
dan kapan saja serta data catatan tersebut dapat diatur dengan baik.

Kata kunci : Android, Aplikasi Mobile, Catatan, Android Studio

UNIVERSITAS SUMATERA UTARA


UNIVERSITAS SUMATERA UTARA
BUILD ANDROID BASED NOTES APPLICATION USING
ANDROID STUDIO

ABSTRACT

This study is to develop a notes application on Android operating system. This notes
application is developed with Android Studio software. The methodology for the
development of the system was based on System Development Life Cycle using
Water Fall Model and its iteration approach. This notes application contain creating
and saving a new note, editing an already created note and deleting a note where all
that is connected to a database. The main objective of this notes application is to
makes it easy to saving a note anywhere and anytime also the note data can be well
organized.

Keywords : Android, Mobile Application, Notes, Android Studio

UNIVERSITAS SUMATERA UTARA


DAFTAR ISI

Halaman
Persetujuan i
Pernyataan ii
Penghargaan iii
Abstrak iv
Abstract v
Daftar Isi vi
Daftar Tabel viii
Daftar Gambar ix

Bab 1. Pendahuluan
1.1. Latar Belakang 1
1.2. Rumusan Masalah 3
1.3. Batasan Masalah 3
1.4. Tujuan 4
1.5. Manfaat 4
1.6. Metodologi Penelitian 5
1.7. Sistematika Penulisan 6

Bab 2. Tinjauan Pustaka


2.1. Android 8
2.1.1. Sejarah Perkembangan Android 9
2.1.2. Perkembangan Versi Android 10
2.1.3. Fitur Android 12
2.1.4. Arsitektur Android 14
2.2. Android Studio 19
2.3. SQLite 21
2.4. Java 21

UNIVERSITAS SUMATERA UTARA


Bab 3. Metodologi Penelitian
3.1. Konsep Aplikasi 24
3.2. Alat dan Perangkat Penelitian 25
3.2.1. Perangkat Keras ( Hardware ) 25
3.2.2. Perangkat Lunak ( Software ) 26
3.3. Perancangan Aplikasi 27
3.3.1. Perancangan Database Aplikasi 27
3.3.2. Perancangan Tampilan Aplikasi 28
3.4. Flowchart Aplikasi 34

Bab 4. Hasil Dan Pembahasan


4.1. Hasil dan Pembahasan Aplikasi 36
4.2. Hasil Pengujian Aplikasi 36
4.2.1. Splash Screen Aplikasi 37
4.2.2. Activity Daftar Catatan 38
4.2.3. Menu Navigasi 39
4.2.4. Activity Catatan Baru 40
4.2.5. Activity Tampil Catatan 42
4.2.6. Activity Ubah Catatan 43
4.2.7. Activity Petunjuk Aplikasi 45
4.2.8. Activity Tentang Aplikasi 46

Bab 5. Kesimpulan Dan Saran


5.1. Kesimpulan 47
5.2. Saran 48

Daftar Pustaka 49
Lampiran

UNIVERSITAS SUMATERA UTARA


DAFTAR TABEL

Nomor Judul Halaman


Tabel

2.1. Perkembangan Versi Android 10


2.2. Data Penggunaan Android sampai dengan
2 Mei 2017 11
2.3. Kebutuhan Sistem Android Studio 20
3.1. Struktur Tabel Catatan 27

UNIVERSITAS SUMATERA UTARA


DAFTAR GAMBAR

Nomor Judul Halaman


Gambar

2.1. Diagram Software Stack Android 14


3.1. Rancangan tampilan Activity Splash Screen 28
3.2. Rancangan tampilan Menu Navigasi 29
3.3. Rancangan tampilan Activity Daftar Catatan 30
3.4. Rancangan tampilan Activity Catatan Baru 31
3.5. Rancangan tampilan Activity Ubah Catatan 32
3.6. Rancangan tampilan Activity Petunjuk Aplikasi 33
3.7. Flowchart aplikasi catatan 34
4.1. Tampilan splash screen aplikasi 37
4.2. Tampilan activity daftar catatan saat tidak ada catatan 38
4.3. Tampilan activity daftar catatan saat terdapat catatan 39
4.4. Tampilan menu navigasi 40
4.5. Tampilan activity catatan baru saat belum di isi 41
4.6. Tampilan activity catatan baru setelah di isi 41
4.7. Tampilan activity tampil catatan 42
4.8. Tampilan menu opsi pilihan 43
4.9. Tampilan activity ubah catatan 44
4.10 Tampilan activity petunjuk aplikasi 45
4.11 Tampilan activity tentang aplikasi 46

UNIVERSITAS SUMATERA UTARA


BAB 1

PENDAHULUAN

1.1. Latar Belakang

Pada saat sekarang ini seiring dengan perkembangan teknologi, masyarakat telah

menganggap teknologi bukan sebagai sesuatu yang mewah lagi tetapi sudah sebagai

suatu kebutuhan. Perkembangan teknologi ini tidak terlepas dari perkembangan

teknologi smartphone. Masyarakat yang ada di dunia saat ini hampir semua telah

mengenal smartphone dan sudah hampir tidak ada lagi yang menggunakan

handphone. Hal ini tidak terlepas dari perkembangan pesat sistem operasi Android.

Sejak hadir pada tahun 2008, saat ini hampir semua vendor dan produsen

smartphone telah menggunakan sistem operasi Android. Terkecuali dua produsen

besar lainnya yaitu Microsoft dan Apple. Kehadiran sistem operasi Android

berdampak besar terhadap perkembangan teknologi smartphone yang kita rasakan

saat sekarang ini.

Android sendiri adalah sistem operasi mobile yang dikembangkan oleh Google.

Google mengembangkan Android sebagai sistem operasi yang bersifat open source,

artinya sistem operasi ini dapat dikembangkan oleh siapa saja yang ingin

mengembangkannya karena itulah sebagai besar vendor dan produsen smartphone

UNIVERSITAS SUMATERA UTARA


di dunia saat ini menggunakan Android. Mereka bebas untuk mengubah dan

mendesain versi Android mereka masing – masing tanpa menghilangkan inti dari

Android yang dikembangkan oleh Google. Hal ini juga berdampak langsung

terhadap para pengembang aplikasi Android. Google juga menyediakan perangkat

lunak ( software ) bagi setiap orang yang ingin mengembangkan aplikasi Android

sehingga akan memudahkan seseorang dalam mengembangkan suatu aplikasi

Android.

Telah banyak berbagai aplikasi Android yang sudah dikembangkan oleh

para pengembang diantaranya aplikasi berjenis chatting, social media, game,

pengolah kata ( word processing ), pemutar musik dan video serta berbagai jenis

aplikasi lainnya. Diantara berbagai macam jenis aplikasi yang telah hadir pada

Android, salah satu aplikasi sederhana yang memiliki banyak fungsi dan manfaat

adalah aplikasi penyimpan catatan. Aplikasi penyimpan catatan ini sendiri sesuai

dengan namanya berfungsi untuk menyimpan segala catatan yang dibuat oleh

pengguna yang nantinya akan tersimpan dan dapat dilihat kembali saat diperlukan

oleh pengguna. Manfaat aplikasi ini dapat dirasakan oleh semua orang dalam

berbagai bidang pekerjaannya. Contohnya seorang ibu rumah tangga dapat

menggunakan aplikasi penyimpan catatan ini untuk menyimpan berbagai resep

masakan yang telah dibuatnya. Contoh lainnya yaitu seorang pelajar dapat

menggunakan aplikasi penyimpan catatan ini untuk membuat daftar kegiatannya di

sekolah sekaligus mencatat tugas – tugas dan pekerjaan rumah yang perlu

dikerjakannya. Karena hal itulah Penulis ingin mengembangkan aplikasi penyimpan

UNIVERSITAS SUMATERA UTARA


catatan ini yang sederhada tetapi akan sangat dirasakan oleh setiap orang fungsi dan

manfaatnya.

1.2. Rumusan Masalah

Berdasarkan permasalahan yang sudah dijelaskan pada latar belakang maka

rumusan masalah yang diajukan adalah :

1. Bagaimana merancang dan mendesain aplikasi penyimpan catatan ini?

2. Bagaimana merancang database serta kode program agar aplikasi

penyimpan catatan ini berjalan dengan baik?

1.3. Batasan Masalah

Berdasarkan rumusan masalah yang sudah dijelaskan makan diberikan batasan

masalah yaitu :

1. Catatan – catatan yang diperlukan dapat disimpan, diubah, dihapus dan

dapat dilihat kembali oleh pengguna.

UNIVERSITAS SUMATERA UTARA


1.4. Tujuan

Mengacu pada latar belakang, rumusan masalah dan batasan masalah maka tujuan

dari pengembangan aplikasi penyimpan catatan ini adalah :

1. Membangun aplikasi catatan yang dapat memudahkan pengguna untuk

menyimpan catatan.

2. Aplikasi catatan ini dapat membuat catatan baru, mengubah catatan yang

telah ada dan juga menghapus catatan yang sudah tidak diperlukan sesuai dengan

kebutuhan pengguna.

1.5. Manfaat

Setelah dijelaskan tujuan dari pengembangan aplikasi catatan ini maka manfaat yang

dapat diambil adalah :

1. Pengguna aplikasi catatan ini nantinya akan mudah untuk membuat catatan

– catatan yang diperlukannya.

2. Pengguna tidak akan mengalami kendala seperti kehilangan catatan dan

juga lupa saat menyimpan catatan yang dia perlukan.

UNIVERSITAS SUMATERA UTARA


1.6. Metodologi Peneltian

Dalam penyusunan tugas akhir ini Penulis melakukan penerapan metodologi

penelitian dalam memperoleh data – data yang dibutuhkan sehingga penyusunan

tugas akhir ini dapat diselesaikan dengan baik. Adapun metodologi penelitian yang

dilakukan adalah sebagai berikut :

1. Pengumpulan Data

Pengumpulan data – data yang erat kaitannya dengan permasalahan yang terjadi

dengan membaca berbagai buku, mencari informasi melalui internet dan dari sumber

yang lainnya.

2. Identifikasi Masalah

Identifikasi masalah dilakukan dengan melihat dari data yang sudah terkumpul dan

Penulis mengangkat permasalahan tersebut sebagai solusi yang telah dijadikan

judul.

3. Perancangan Aplikasi

Perancangan aplikasi merupakan tahapan membangun aplikasi dimulai dari desain,

database, kode program untuk menjadikannya sebagai sebuah aplikasi catatan pada

sistem operasi Android.

UNIVERSITAS SUMATERA UTARA


4. Pengujian

Pengujian merupakan tahapan di mana aplikasi catatan ini akan di uji coba setelah

selesai untuk melihat apakah aplikasi sudah dapat berjalan sesuai dengan yang

dirancang atau masih terdapat hal – hal yang harus diperbaiki.

5. Penyusunan Laporan

Penyusunan laporan merupakan tahapan di mana menulis laporan dari aplikasi

catatan ini dalam bentuk tugas akhir.

1.7. Sistematika Penulisan

Adapun sistematika penulisan dari laporan tugas akhir ini adalah sebagai berikut :

BAB 1 : PENDAHULUAN

Bagian pendahuluan ini berisikan latar belakang, perumusan masalah, perumusan

masalah, pembatasan masalah ( bila diperlukan ), tujuan penelitian, manfaat

penelitian, metodologi penelitian dan sistematika penulisan.

BAB 2 : TINJAUAN PUSTAKA

Bagian tinjauan pustaka ini berisikan teori – teori yang akan menjadi acuan dalam

penulisan serta dapat mendukung dalam penyusunan laporan tugas akhir.

UNIVERSITAS SUMATERA UTARA


BAB 3 : METODE PENELITIAN

Bagian metode penelitian menjelaskan bagaimana tahapan – tahapan yang dilakukan

untuk menyelesaikan aplikasi serta juga laporan tugas akhir.

BAB 4 : HASIL DAN PEMBAHASAN

Bagian hasil dan pembahasan menjelaskan bagaimana hasil dari aplikasi yang telah

dirancang lalu akan dibahas apakah aplikasi yang dirancang sudah mencapai tujuan

dan manfaat yang telah dijelaskan pada pendahuluan.

BAB 5 : KESIMPULAN DAN SARAN

Pada bab ini, kesimpulan diambil dari hasil dan pembahasan aplikasi yang telah

dirancang dan saran dari Penulis terhadap aplikasi yang dirancang.

UNIVERSITAS SUMATERA UTARA


BAB 2

TINJAUAN PUSTAKA

2.1. Android

Menurut Juhara (2016), Android adalah sistem operasi berbasis Linux yang

dimodifikasi untuk perangkat bergerak ( mobile device ) yang terdiri dari sistem

operasi, middleware dan aplikasi- aplikasi utama. Android dikembangkan oleh

Google dimana Android didesain untuk perangkat mobile dengan layar sentuh.

Tidak hanya pada perangkat mobile kini Android juga telah ada pada televisi yaitu

Android TV, pada kendaraan yaitu Android Auto, pada jam tangan yaitu Android

Wear dan Android juga terdapat pada berbagai perangkat elektronik lainnya seperti

pada notebook, konsol game, kamera digital dan lainnya.

Kode program Android dirilis oleh Google dibawah lisensi open source

sehingga berbagai perusahaan yang memproduksi smartphone dapat merilis sistem

operasi Android mereka sendiri tanpa menghilangkan inti dari Android yang

dikembangkan oleh Google. Tidak hanya itu karena sifatnya yang open source

membuat banyak pengembang dan para antusias dapat mengembangkan Android

mereka dengan berbagai fitur – fitur baru dan kemudian dibagikan kepada orang lain

agar dapat digunakan.

UNIVERSITAS SUMATERA UTARA


2.1.1. Sejarah Perkembangan Android

Awalnya Android dikembangkan oleh perusahaan asal Amerika Serikat yang berada

di Palo Alto, California yang bernama Android Inc. Android Inc berdiri pada

Oktober 2003 yang didirikan oleh Andy Rubin, Rich Miner, Nick Sears dan Chris

White. Pada awalnya mereka mengembangkan Android untuk digunakan sebagai

sistem operasi pada kamera digital tetapi kemudian mereka menyadari bahwa pasar

penjualan untuk perangkat tersebut tidak terlalu luas sehingga mereka mengubah

tujuan mereka menjadi mengembangkan sistem operasi mobile.

Kemudian pada Juli 2005, Google mengakuisisi Android Inc dengan jumlah

paling sedikit 50 juta US Dollar. Para pendiri dari Android Inc juga bergabung

dengan Google sebagai bagian dari akuisisi. Pada saat itu belum banyak yang

mengetahui tentang Android. Kemudian pada 5 November 2007, Open Handset

Alliance yaitu konsorsium dari berbagai perusahaan teknologi seperti HTC,

Motorola, Samsung, Sprint, T-Mobile, Qualcomm dan Texas Instruments

memperkenalkan diri mereka ke publik dimana tujuan mereka adalah

mengembangkan perangkat mobile pertama yang benar – benar terbuka ( open

source ) serta menjadi platform yang komprehensif. .Akhirnya pada 23 September

2008 tersedia smartphone komersial pertama yang menggunakan sistem operasi

Android yaitu HTC Dream.

UNIVERSITAS SUMATERA UTARA


2.1.2. Perkembangan Versi Android

Semenjak dirilis pertama kali secara komersial pada tahun 2008, Android telah

mengalami banyak perubahan sampai saat sekarang ini. Pembaharuan terus

dilakukan dimana pembaharuan ini bertujuan untuk menambah berbagai fitur – fitur

baru serta memperbaiki kesalahan – kesalahan ( errors ) serta bugs yang ada pada

versi terdahulunya. Setiap versi mayor dari pembaharuan Android ini diberikan kode

nama masing – masing yang diambil dari nama kue dan makanan penutup yang

berurut berdasarkan alfabet. Berikut adalah tabel perkembangan versi Android :

Tabel 2.1 Perkembangan Versi Android


Nomor Nomor Status
Kode Nama Tanggal Rilis
Versi API Dukungan
Tidak ada kode 23 September Tidak didukung
1.0 1
nama 2008 lagi
Tidak ada kode Tidak didukung
1.1 9 Februari 2009 2
nama lagi
Tidak didukung
Cupcake 1.5 27 April 2009 3
lagi
15 September Tidak didukung
Donut 1.6 4
2009 lagi
Tidak didukung
Eclair 2.0–2.1 26 Oktober 2009 5–7
lagi
2.2– Tidak didukung
Froyo 20 Mei 2010 8
2.2.3 lagi
2.3– 6 Desember Tidak didukung
Gingerbread 9–10
2.3.7 2010 lagi

3.0– 22 Februari
Honeycomb 11–13 Tidak didukung
3.2.6 2011
lagi

Ice Cream 4.0– Tidak didukung


18 Oktober 2011 14–15
Sandwich 4.0.4 lagi

UNIVERSITAS SUMATERA UTARA


Lanjutan tabel 2.1
Nomor Nomor
Kode Nama Tanggal Rilis Status Dukungan
Versi API
4.1– Tidak didukung
Jelly Bean 9 Juli 2012 16–18
4.3.1 lagi
4.4–
KitKat 31 Oktober 2013 19 Didukung
4.4.4
5.0– 12 November
Lollipop 21–22 Didukung
5.1.1 2014
6.0–
Marshmallow 5 Oktober 2015 23 Didukung
6.0.1
7.0–
Nougat 22 Agustus 2016 24–25 Didukung
7.1.2

Versi terakhir dari Android pada saat ini adalah Android Nougat dengan nomor

versi 7.1.2 tetapi Google masih memberikan dukungan mulai dari versi KitKat

dimana dukungan ini adalah Google masih memberikan berbagai update (

pembaharuan ) terhadap versi Android tersebut.

Walaupun dukungan terhadap versi terdahulu sudah tidak dilanjutkan lagi

tetapi masih banyak pengguna Android yang belum mengganti smartphone mereka

ke versi yang lebih baru dan tetapi memakai versi yang lama. Berikut data pengguna

Android sampai dengan 2 Mei 2017 yang dilansir oleh Google :

Tabel 2.2 Data Pengguna Android sampai dengan 2 Mei 2017


Versi Kode Nama API Distribusi Pengguna
2.3.3 – 2.3.7 Gingerbread 10 1,0%
4.0.3 – 4.0.4 Ice Cream Sandwich 15 0,8%
4.1.x. – 4.3. Jelly Bean 16 - 18 9,1%
4.4 KitKat 19 18,8%
5.0 – 5.1 Lollipop 21 - 22 32,0%

UNIVERSITAS SUMATERA UTARA


Lanjutan tabel 2.2
Versi Kode Nama API Distribusi Pengguna
6.0 Marshmallow 23 31,2%
7.0 – 7.1 Nougat 24 - 25 7,1%
Sumber : Android Developer Website
( https://developer.android.com/about/dashboards/index.html )

2.1.3. Fitur Android

Android memiliki beragam fitur yang dapat digunakan oleh pengguna. Berikut

adalah beberapa fitur yang ada pada Android :

1. Antarmuka

Antarmuka pada Android yang paling utama adalah manipulasi secara

langsung dimana pengguna menggunakan layar sentuh dan memberikan

perintah dengan cara mengetuk, menggeser dan memberikan arahan lainnya

lewat layar sentuh tersebut dan juga pengguna dapat mengetik lewat virtual

keyboard yang dapat diketik lewat layar sentuh tersebut juga.

Pada perangkat Android juga biasanya dilengkapi dengan berbagai

macam sensor untuk menambah interaksi antarmuka pengguna dengan

Android seperti contohnya yaitu layar dapat berubah posisi dari potrait

menjadi landscape bergantung dengan pemosisian perangkat tersebut.

UNIVERSITAS SUMATERA UTARA


2. Aplikasi

Pada Android terdapat berbagai macam aplikasi yang dapat digunakan oleh

pengguna. Sebagian aplikasi tersebut dikembangkan oleh Google dan

dijadikan sebagai aplikasi bawaan pada Android. Selain itu ada juga aplikasi

lainnya yang dapat diunduh oleh pengguna lewat layanan Google Play Store

milik Google. Pada Google Play Store tersebut terdapat berbagai macam

aplikasi yang dikembangkan oleh berbagai pengembang dari seluruh dunia

dimana aplikasi mereka nanti juga dapat diunduh oleh pengguna.

Hal ini dapat dilakukan karena Google memberikan software

development kit secara gratis yang dapat diunduh oleh para pengembang

agar mereka dapat mengembangkan aplikasi Android mereka. Tidak hanya

itu Google juga merilis software integrated development environment (IDE)

yaitu perangkat lunak yang digunakan untuk mengembangkan aplikasi

Android yaitu Android Studio. Pada Android Studio juga telah termasuk

dengan software development kit tersebut dan berbagai tools lainnya untuk

membantu para developer untuk mengembangkan aplikasi Android.

3. Manajemen Memory

Android di desain untuk mengatur berbagai macam proses untuk menjaga

konsumsi daya tetap pada tingkat yang paling sedikit. Saat suatu aplikasi

tidak digunakan, sistem akan mematikan sementara proses aplikasi tersebut

tetapi tidak menghentikan prosesnya untuk mematikan penggunaan baterai

dan penggunaan CPU agar nantinya jika pengguna ingin memakai aplikasi

UNIVERSITAS SUMATERA UTARA


tersebut aplikasi tersebut akan menampilkan hal terakhir yang dibuka oleh

pengguna.

Android mengatur penggunaan memory aplikasi secara otomatis.

Saat kondisi memory rendah maka sistem di latar belakang akan secara

otomatis menutup proses yang tidak aktif dimulai dengan proses yang paling

lama tidak aktif.

2.1.4. Arsitektur Android

Gambar 2.1 Diagram Software Stack Android

UNIVERSITAS SUMATERA UTARA


Android merupakan sistem operasi yang open source dikembangkan berdasarkan

kernel Linux. Android dikembangkan untuk bekerja dengan membuat stack software

( tumpukan perangkat lunak ) agar dapat berjalan dengan baik pada berbagai

perangkat. Berikut adalah diagram software stack yang menggambarkan komponen

utama dari platform Android :

1. Kernel Linux

Kernel Linux merupakan fondasi dari platform Android. Sebagai contoh,

Android Runtime bergantung pada kernel Linux untuk menyediakan

fungsionalitas seperti threading dan low-level memory management.

Dengan menggunakan kernel Linux, Android akan mendapatkan

keuntungan dari fitur kunci keamanan dan memperbolehkan manufaktur

perangkat untuk mengembangkan driver hardware untuk Hardware

Abstraction Layer ( HAL ).

2. Hardware Abstraction Layer ( HAL )

Hardware Absctraction Layer ( HAL ) menyediakan standar antarmuka yang

membuka kapabilitas perangkat keras dari suatu perangkat Android ke

tingkat Java API Framework yang lebih tinggi. HAL terdiri dari berbagai

macam library module yang di implementasikan kepada antarmuka untuk

setiap komponen perangkat keras yang spesifik seperti kamera atau

Bluetooth module.

UNIVERSITAS SUMATERA UTARA


Ketika framework API memutuskan untuk mengakses perangkat

keras dari suatu perangkat Android maka sistem akan mengambil library

module untuk perangkat keras tersebut dari Hardware Abstraction Layer.

3. Android Runtime

Untuk perangkat Android yang menjalankan versi 5.0 ( API level 21 ) atau

yang lebih tinggi, setiap aplikasi berjalan pada prosesnya sendiri dan juga

dengan instance Android Runtime (ART) mereka masing - masing. ART

dibuat untuk menjalankan berbagai virtual machine pada perangkat dengan

memory rendah dengan mengeksekusi DEX file yaitu kode byte yang

didesain secara khusus untuk Android yang telah dioptimisasi untuk

kapasitas memory yang minim. Beberapa fitur utama dari ART adalah

sebagai berikut :

1) Kompilasi Ahead-of-time ( AOT ) dan Just-in-time ( JIT )

2) Optimisasi garbage collection ( GC )

3) Dukungan debugging yang lebih baik yang termasuk sampling

profiler, diagnosa yang lebih rinci dan juga laporan crash.

Pada perangkat Android yang menjalankan versi dibawah 5.0 ( API level

21 ), Android Runtime masih belum digunakan tetapi yang digunakan

adalah Dalvik Virtual Machine. Jika suatu aplikasi berjalan lancar pada

Android Runtime maka aplikasi tersebut pasti akan berjalan lancar pada

UNIVERSITAS SUMATERA UTARA


Dalvik Virtual Machine tetapi belum tentu sebaliknya. Android juga

menyediakan berbagai core runtime libraries untuk menjalankan berbagai

fungsionalitas terhadap bahasa pemrograman Java.

4. Native C/C++ Libraries

Berbagai macam komponen dan layanan pada Android seperti ART dan

HAL dibangun dengan native code yang membutuhkan native libraries yang

ditulis dengan bahasa pemrograman C dan C++. Platform Android

menyediakan Java framework API untuk membuka fungsi dari beberapa

native libraries tersebut kepada aplikasi. Sebagai contoh, pengembang dapat

mengakses layanan OpenGL ES lewat framework Android yaitu Java

OpenGL API untuk menambahkan dukungan untuk menggambar dan

memanipulasi grafik 2 dimensi dan 3 dimensi pada aplikasi yang mereka

kembangkan.

5. Java API Framework

Seluruh fitur dari sistem operasi Android tersedia dengan menggunakan API

yang ditulis menggunakan bahasa pemrograman Java. API tersebut

menyediakan berbagai fungsi yang dibutuhkan pengembang untuk membuat

aplikasi Android dengan menyediakan komponen dan layanan sistem yang

modular dan juga termasuk :

UNIVERSITAS SUMATERA UTARA


1) View System yang dapat digunakan untuk membangun user interface

( UI ) aplikasi yang didalamnya termasuk grid, lists, text box, buttons,

dan juga web browser yang dapat disematkan pada aplikasi tersebut.

2) Resource Manager yang menyediakan akses kepada non-code

resources seperti localized strings, grafik dan layout files.

3) Notification Manager yang dapat menampilkan peringatan dan

pemberitahuan suatu aplikasi pada status bar.

4) Activity Manager yang mengatur siklus hidup dari suatu aplikasi dan

menyediakan back stack navigasi yang umum.

5) Content Providers yang memperbolehkan suatu aplikasi untuk

mengakses data dari aplikasi lain seperti aplikasi kontak atau

membagikan data aplikasi tersebut kepada aplikasi lainnya.

6. Aplikasi Sistem

Android menyediakan berbagai macam aplikasi bawaan seperti aplikasi email,

kontak, kalender, internet browser dan lain sebagainya. Aplikasi bawaan ini

tidak diatur sebagai aplikasi utama dari perangkat Android tersebut sehingga

sebagai contoh pengguna dapat mengunduh aplikasi internet browser yang lain

lewat Google Play Store dan menjadi aplikasi internet browser tersebut sebagai

aplikasi utama.

UNIVERSITAS SUMATERA UTARA


Aplikasi sistem selain sebagai aplikasi bawaan dari Android juga berfungsi

sebagai penyedia kapabilitas untuk dapat digunakan pengembang pada aplikasi

yang ia kembangkan. Sebagai contoh jika seorang pengembang ingin aplikasi

yang dikembangkannya dapat mengirimkan pesan SMS, pengembang tersebut

tidak perlu untuk membangun layanan pengiriman pesan SMS tersebut sendiri

tetapi cukup dengan meminta aplikasi pengirim pesan SMS yang tersedia pada

perangkat Android tersebut untuk mengirimkan pesan SMS yang diinginkan.

2.2. Android Studio

Android Studio merupakan software integrated development environment ( IDE )

yang resmi untuk membangun aplikasi Android. Android Studio dibangun

berdasarkan IntelliJ IDEA yang merupakan software integrated development

enviroment untuk membangun aplikasi atau software dengan bahasa pemrograman

Java/ Seluruh fitur yang ada pada InteliJ IDEA juga terdapat pada Android Studio

yang kemudian ditambahkan lagi fitur – fitur lainnya agar dapat meningkatkan

produktivitas para pengembang aplikasi Android yaitu seperti :

1. System build Gradle yang fleksibel.

2. Emulator Android yang kaya dengan fitur.

3. Dukungan untuk membangun aplikasi Android untuk perangkat apapun baik

itu pada smartphone, Android TV, Android Wear dan perangkat Android

lainnya.

UNIVERSITAS SUMATERA UTARA


4. Instant Run yang dapat melakukan perubahan pada aplikasi tanpa harus

melakukan instalasi ulang aplikasi.

5. Code templates dan integrasi GitHub untuk membantu para pengembang

membangun aplikasi umum dan melakukan import kode sample.

6. Berbagai macam testing tools dan frameworks.

7. Dukungan untuk bahasa pemrograman C dan C++.

Android Studio pertama kali diumumkan oleh Google pada 16 Mei 2013 pada

Google I/O Conference dan menggantikan Eclipse sebagai software IDE resmi

untuk platform Android. Saat ini Android Studio telah mencapai versi 2.3.1 yang

dirilis pada 2 April 2017 dan tersedia untuk diunduh secara gratis untuk sistem

operasi Windows, macOS dan Linux. Berikut adalah kebutuhan sistem untuk

menjalankan Android Studio :

Tabel 2.3 Kebutuhan Sistem Android Studio


Kriteria Deskripsi
Windows 7 atau lebih tinggi
Sistem Operasi Mac OS X 10.9.5 atau lebih tinggi
Linux
Minimal RAM 3GB
RAM Rekomendasi RAM 8GB ditambah dengan RAM
1GB untuk Android Emulator.
Minimal kapasitas penyimpanan 500MB untuk
Kapasitas Penyimpanan Android Studio dan minimal 1,5GB untuk Android
SDK, Emulator, System Images dan Caches.
Versi Java Java Development Kit (JDK) 8
Resolusi Layar Minimal resolusi layar 1280x800

UNIVERSITAS SUMATERA UTARA


2.3. SQLite

SQLite merupakan sistem manajemen basis data relasional ( relational database

management system ) yang dibangun menggunakan bahasa pemrograman C.

Berbeda dengan sistem manajemen basis data yang lain, SQLite bukan merupakan

database yang bersifat client – server. Tetapi SQLite merupakan database yang

disisipkan pada sesuatu perangkat lunak, aplikasi dan juga sistem operasi. Android

merupakan salah satu sistem operasi yang didalamnya disisipkan database SQLite.

Perkembangan SQLite diawali oleh penciptanya yaitu D. Richard Hipp pada

tahun 2000 dimana Hipp bekerja untuk Angkatan Laut Amerika Serikat. Kemudian

SQLite dirilis pada bulan Agustus 2000 dan perkembangannya terus dilakukan

sampai saat sekarang ini dengan versi terakhirnya saat ini adalah SQLite 3.18.0.

2.4. Java

Java merupakan bahasa pemrograman komputer yang bersifat concurrent, class-

based, dan object-oriented serta di desain agar mempunyai kebergantungan

implementasi serendah mungkin. Java dikembangkan agar para pengembang

aplikasi dapat write once, run anywhere ( WORA ) yang maksudnya setelah kode

pemrograman software tersebut ditulis dan di-compile maka software tersebut dapat

dijalankan di berbagai platform yang mendukung bahasa pemrograman Java.

Software dan aplikasi yang dibangun dengan bahasa pemrograman Java akan di-

UNIVERSITAS SUMATERA UTARA


compile ke dalam kode byte yang akan dapat berjalan di setiap Java Virtual Machine

manapun tanpa bergantung pada arsitektur komputernya. Pada tahun 2016 tercatat

bahwa Java merupakan salah satu bahasa pemrograman yang paling populer

digunakan terutama untuk aplikasi web client-server yang dilaporkan digunakan

oleh 9 juta pengembang.

Awal dari perkembangan bahasa pemrograman Java dimulai dari bulan Juni

1991 dimana James Gosling, Mike Sheridan dan Patrick Naughton menginisiasi

untuk mengembangkan Java. Tujuan awal dari perkembangan bahasa pemrograman

Java yaitu untuk televisi interaktif tapi pada masa itu masih tidak memungkinkan.

Penamaan awal dari bahasa pemrograman Java adalah Oak yang diambil namanya

dari pohon Oak yang ada diluar kantornya Gosling. Kemudian nama tersebut diganti

menjadi Green dan pada akhirnya dinamakan Java yang diambil dari kopi Jawa (

Jawa yang dalam bahasa inggris adalah Java ). Gosling mendesain Java agar syntax-

nya mirip dengan bahasa pemrograman C/C++ sehingga para programmer akan

familiar dengan Java. Ada 5 tujuan prinsip saat dikembangkannya bahasa

pemrograman Java yaitu :

1. Java harus simple, object-oriented dan familiar.

2. Java harus robust dan secure.

3. Java harus architecture neutral dan portable.

4. Java harus dieksekusi dengan high performance.

5. Java harus interpreted, threaded dan dynamic.

UNIVERSITAS SUMATERA UTARA


Sun Microsystems tempat dimana Gosling bekerja akhirnya merilis versi

Java pertama yaitu 1.0 pada tahun 1995. Kemudian perkembangan Java terus

dilakukan sampai dengan tahun 2009 saat Sun Microsystems diakuisisi oleh Oracle

Corporation. Perkembangan Java tidak berhenti disitu dan terus berkembang sampai

dengan saat ini dimana versi terakhir dari Java saat ini yaitu Java 9.

UNIVERSITAS SUMATERA UTARA


BAB 3

METODOLOGI PENELITIAN

3.1. Konsep Aplikasi

Pengembangan aplikasi catatan ini didasari oleh kebutuhan dasar setiap orang untuk

mencatat setiap kegiatan ataupun kebutuhan sehari – harinya. Pada saat sekarang ini

masih banyak orang yang mencatat kegiatan ataupun kebutuhannya di kertas.

Kekurangan dari hal ini adalah dimana catatan – catatan tersebut dapat dengan

mudah hilang atau orang tersebut lupa dimana menyimpan atau meletakkan catatan

mereka sehingga catatan tersebut harus dicatat ulang berkali – kali.

Aplikasi catatan ini dibuat untuk menyelesaikan permasalahan tersebut

dimana pengguna dapat mencatat setiap kegiatan dan kebutuhan mereka tanpa perlu

khawatir dan lupa dimana mereka menyimpan catatan mereka. Aplikasi ini

ditujukan untuk membuat daftar catatan yang terorganisir dan rapi.

Setiap catatan yang dibuat oleh pengguna nantinya akan tersimpan dan

dapat dilihat kembali oleh pengguna tersebut. Jika terdapat kesalahan pada catatan

tersebut pengguna dapat mengubahnya dan juga menghapus catatan yang sudah

UNIVERSITAS SUMATERA UTARA


tidak mereka butuhkan lagi. Pengguna juga dapat memilih kategori yang sesuai

terhadap catatan yang mereka buat sehingga catatan dapat diorganisir dengan baik.

3.2. Alat dan Perangkat Penelitian

Dalam pengembangan aplikasi catatan ini terdapat beberapa alat dan perangkat yang

digunakan. Berikut adalah alat dan perangkat yang digunakan dalam pengembangan

aplikasi catatan ini :

3.2.1. Perangkat Keras ( Hardware )

Perangkat keras yang digunakan dalam pengembangan aplikasi catatan ini yaitu

sebagai berikut :

1. Personal Computer ( PC )

Spesifikasi Personal Computer yang digunakan adalah sebagai berikut :

1) Motherboard : Gigabyte G1 Sniper B7

2) Prosesor : Intel Core i7 6700

3) RAM : Team Dark 8GB x 2 Dual Channel

4) Kartu Grafis : Digital Alliance GTX 1060 6GB

5) Harddisk : Seagate 1TB

UNIVERSITAS SUMATERA UTARA


6) Power Supply : Raidmax Cobra Power 600w

7) Sistem Operasi : Windows 10 64-bit

2. Smartphone Android

Spesifikasi smartphone Android yang digunakan yaitu sebagai berikut :

1) Merek : Sony Xperia Z5 Compact

2) Prosesor : Qualcomm Snapdragon 810 64-bit Quad-

Core 2GB

3) RAM : 2GB

4) GPU : Adreno 430

5) Penyimpanan : Internal 32GB

6) Sistem Operasi : Android Nougat 7.0

3.2.2. Perangkat Lunak ( Software )

Perangkat lunak yang digunakan dalam pengembangan aplikasi catatan ini yaitu

Android Studio.

UNIVERSITAS SUMATERA UTARA


3.3. Perancangan Aplikasi

Pada perancangan aplikasi catatan ini akan terdiri dari perancangan database dan

juga perancangan tampilan dari setiap activity dari aplikasi catatan.

3.3.1. Perancangan Database Aplikasi

Database aplikasi catatan ini menggunakan SQLite sebagai database

management system ( DBMS ) dimana SQLite merupakan DBMS yang sudah

termasuk ke dalam sistem operasi Android sehingga tidak perlu lagi untuk

menggunakan aplikasi pihak ketiga untuk melakukan perancangan database

untuk aplikasi catatan ini. Berikut adalah tabel database yang ada pada aplikasi

catatan yaitu sebagai berikut :

1. Tabel Catatan

Tabel 3.1 Struktur Tabel Catatan


Tipe
Field Atribut Keterangan
Data
Primary key
id int dan auto Menyimpan data nomor setiap catatan
increment
judul text Not null Menyimpan data teks judul catatan
isi text Not null Menyimpan data teks isi catatan
Menyimpan data nomor kategori
catatan yang nantinya akan diubah
kategori int Not null
menjadi teks saat ditampilkan

UNIVERSITAS SUMATERA UTARA


Tabel catatan akan berfungsi sebagai tabel utama dari aplikasi catatan yang

nantinya pada tabel catatan ini akan menyimpan id yang merupakan nomor

catatan, judul catatan, isi catatan dan juga kategori catatan.

3.3.2. Perancangan Tampilan Aplikasi

Activity merupakan tempat dimana pengguna dapat melakukan interaksi

terhadap aplikasi. Berikut adalah rancangan tampilan aplikasi catatan

berdasarkan masing – masing activity-nya :

1. Activity Splash Screen

Logo
Aplikasi

Gambar 3.1 Rancangan tampilan Activity Splash Screen

UNIVERSITAS SUMATERA UTARA


Activity Splash Screen ini merupakan tampilan yang akan pertama kali

ditampilkan saat aplikasi catatan dijalankan. Activity ini akan berfungsi

sebagai tampilan penyambut untuk pengguna saat akan menggunakan

aplikasi ini yang dimana akan menampilkan logo dari aplikasi catatan.

2. Menu Navigasi

Logo Nama Aplikasi


Aplikasi
Aplikasi Versi Aplikasi
Aplikasi

Button catatan baru


Aplikasi

Button petunjuk aplikasi


Aplikasi

Button tentang aplikasi


Aplikasi

Gambar 3.2 Rancangan tampilan Menu Navigasi

Menu navigasi akan berfungsi sebagai menu yang akan menampilkan

logo, nama dan versi aplikasi dibagian atas lalu kemudian terdapat

beberapa button ( tombol ) untuk menjalankan activity lain pada aplikasi

yaitu activity catatan baru yang berfungsi untuk membuat catatan baru,

activity petunjuk aplikasi yang berfungsi untuk menampilkan cara

penggunaan aplikasi dan activity tentang aplikasi yang berfungsi untuk

UNIVERSITAS SUMATERA UTARA


menampilkan informasi mengenai aplikasi catatan. Menu navigasi ini

nantinya dapat diakses oleh pengguna dengan mengetuk tombol menu di

sudut kiri atas pada activity daftar catatan.

3. Activity Daftar Catatan

Judul Catatan
Kategori
Catatan
Kutipan Isi Catatan

Gambar 3.3 Rancangan tampilan Activity Daftar Catatan

Activity daftar catatan merupakan activity yang akan menampilkan daftar

catatan yang telah dibuat oleh pengguna. Pada activity daftar catatan

akan terdapat kategori catatan yang berupa simbol huruf sesuai dengan

kategorinya lalu ada judul catatan dan sedikit kutipan dari isi catatan

tersebut. Dibagian bawah activity daftar catatan juga terdapat sebuah

button untuk membuka activity catatan baru dimana pengguna dapat

membuat catatan baru. Semakin banyak catatan yang dibuat pengguna

UNIVERSITAS SUMATERA UTARA


nantinya secara otomatis catatan – catatan tersebut akan tersusun seperti

daftar dari atas ke bawah.

4. Activity Catatan Baru

Kembali Simpan Catatan

Kategori
Judul Catatan
Catatan

Isi Catatan

Gambar 3.4 Rancangan tampilan Activity Catatan Baru

Activity catatan baru merupakan activity dimana pengguna dapat

membuat catatan baru. Pada activity catatan baru akan terdapat button

dimana pengguna dapat memilih kategori catatan kemudian juga ada 2

buah textbox dimana pengguna dapat mengisi judul dan isi catatan.

Setelah pengguna memilih kategori catatan serta mengisi judul dan isi

catatan, pengguna dapat menyimpan catatan tersebut dengan mengetuk

button simpan catatan yang berada disudut kanan atas layar smartphone.

Apabila pengguna ingin kembali ke activity daftar catatan, pengguna

UNIVERSITAS SUMATERA UTARA


dapat mengetuk button kembali yang berada di sudut kiri atas layar

smartphone.

5. Activity Ubah Catatan

Kembali Simpan Catatan

Kategori
Judul Catatan
Catatan

Isi Catatan

Gambar 3.5 Rancangan tampilan Activity Ubah Catatan

Activity Ubah Catatan secara keseluruhan sama dengan activity catatan

baru dilihat dari segi tampilannya tetapi yang membedakan adalah

activity ubah catatan berfungsi untuk mengubah catatan yang telah dibuat

oleh pengguna sebelumnya.

UNIVERSITAS SUMATERA UTARA


6. Activity Petunjuk Aplikasi

Kembali

Pilihan Petunjuk
Aplikasi

Petunjuk Aplikasi

Gambar 3.6 Rancangan tampilan Activity Petunjuk Aplikasi

Activity petunjuk aplikasi akan menampilkan berbagai pilihan untuk cara

penggunaan aplikasi yaitu mengenai daftar catatan, cara untuk membuat

catatan baru, cara untuk mengubah catatan dan cara untuk menghapus

catatan. Sehingga apabila ada pengguna yang mengalami kesulitan saat

menggunakan aplikasi catatan ini dapat terbantu dengan activity petunjuk

aplikasi ini.

UNIVERSITAS SUMATERA UTARA


3.4. Flowchart Aplikasi

Untuk memahami proses kerja aplikasi catatan ini maka dibutuhkan flowchart

(diagram alir) yang akan menunjukkan bagaimana proses kerja aplikasi catatan,

berikut adalah flowchart dari aplikasi catatan :

Gambar 3.7 Flowchart aplikasi catatan

Pada flowchart diatas dijelaskan bahwa setelah pengguna menjalankan aplikasi

catatan kemudian pengguna akan membuat catatan yang baru setelah itu catatan

baru tersebut akan disimpan ke dalam database daftar catatan kemudian catatan

yang telah dibuat tersebut akan ditampilkan kembali pada daftar catatan.

UNIVERSITAS SUMATERA UTARA


Apabila pengguna ingin membuat catatan baru kembali, pengguna akan

mengulang proses seebelumnya dan apabila pengguna tidak ingin membuat catatan

baru maka pengguna dapat mengubah catatan yang telah dibuat apabila pengguna

ingin mengubahnya. Setelah pengguna mengubah catatannya kemudian catatan

tersebut akan ditampilkan kembali. Pengguna juga dapat menghapus catatan yang

diinginkannya.

UNIVERSITAS SUMATERA UTARA


BAB 4

HASIL DAN PEMBAHASAN

4.1. Hasil dan Pembahasan Aplikasi

Aplikasi catatan yang telah dirancang sebelumnya merupakan aplikasi berbasis

sistem operasi Android. Perancangan aplikasi catatan ini menggunakan bahasa

pemrograman Java serta untuk desain tampilan antar mukanya ( user interface )

menggunakan kode pemrograman XML. Pengguna dapat menggunakan aplikasi

catatan ini pada smartphone mereka atau pada personal computer ( PC ) dengan

mengguna emulator Android. Pada bagian ini merupakan bagian pengujian dari

aplikasi catatan beserta hal – hal yang terjadi saat proses pengujian berlangsung.

4.2. Hasil Pengujian Aplikasi

Pada bagian ini akan dijelaskan bagaimana hasil dari pengujian terhadap aplikasi

catatan yang sebelumnya telah dirancang. Hasil pengujian ini akan dijelaskan

berdasarkan setiap activity atau menu yang ada pada aplikasi catatan, adapun hasil

pengujian aplikasi catatan ini sebagai berikut :

UNIVERSITAS SUMATERA UTARA


4.2.1. Splash Screen Aplikasi

Splash Screen aplikasi ini merupakan tampilan awal yang pertama kali

ditampilkan oleh aplikasi saat pengguna menjalankan aplikasi catatan.

Splash Screen ini berguna sebagai tampilan awal yang akan menampilkan

logo dan juga nama aplikasi catatan.

Gambar 4.1 Tampilan splash screen aplikasi

UNIVERSITAS SUMATERA UTARA


4.2.2. Activity Daftar Catatan

Gambar 4.2 Tampilan activity daftar catatan saat tidak ada catatan

Activity daftar catatan akan ditampilkan setelah splash screen aplikasi

sehingga activity daftar catatan menjadi menu utama dari aplikasi catatan ini.

Pada bagian atas kiri terdapat menu navigasi yang berisikan beberapa pilihan

menu fungsi untuk aplikasi catatan dan pada bagian bawah kanan terdapat

button ( tombol ) yang berfungsi untuk menampilkan activity catatan baru

dimana pengguna dapat membuat catatan baru.

UNIVERSITAS SUMATERA UTARA


Gambar 4.3 Tampilan activity daftar catatan saat terdapat catatan

4.2.3. Menu Navigasi

Menu navigasi merupakan menu yang akan tampil saat pengguna mengetuk

button menu di sebelah kiri atas layar saat berada pada activity daftar catatan.

Pada menu navigasi ini akan terdapat beberapa button yaitu button catatan

baru yang berfungsi untuk menampilkan activity catatan baru, button

petunjuk aplikasi yang berfungsi untuk menampilkan activity petunjuk

aplikasi dan button tentang aplikasi untuk menampilkan activity tentang

aplikasi.

UNIVERSITAS SUMATERA UTARA


Gambar 4.4 Tampilan menu navigasi

4.2.4. Activity Catatan Baru

Activity catatan baru merupakan menu saat pengguna akan membuat catatan

baru. Pada bagian kiri atas terdapat button untuk memilih kategori catatan

dimana terdapat 3 kategori catatan yaitu pribadi, kuliah dan keluarga.

Disebelah button untuk memilih kategori terdapat text box dimana pengguna

mengisikan judul catatan sesuai yang diinginkannya.

UNIVERSITAS SUMATERA UTARA


Dibagian bawahnya terdapat text box dimana pengguna mengisikan

isi dari catatan yang akan dibuat. Setelah semuanya di isi lalu pengguna

dapat menyimpan catatan dengan mengetuk button ‘Simpan Catatan’ pada

bagian sudut kanan atas layar.

Gambar 4.5 Tampilan activity catatan baru saat belum di isi

Gambar 4.6 Tampilan activity catatan baru setelah di isi

UNIVERSITAS SUMATERA UTARA


4.2.5. Activity Tampil Catatan

Activity tampil catatan akan merupakan activity yang akan tampil saat

pengguna mengetuk atau memilih catatan yang ingin ditampilkannya pada

activity daftar catatan. Secara desain tampilan, activity tampil catatan tidak

jauh berbeda dengan activity catatan baru hanya saja pada activity tampil

catatan pengguna tidak dapat mengubah catatan, pengguna hanya dapat

melihat dan membaca catatan tersebut. Hal ini dilakukan agar saat pengguna

melihat catatan yang telah dibuatnya, catatan tersebut tidak akan berubah

isinya apabila terjadi kesalahan kesalahan yang tidak sengaja dilakukan oleh

pengguna.

Gambar 4.7 Tampilan activity tampil catatan

UNIVERSITAS SUMATERA UTARA


4.2.6. Activity Ubah Catatan

Activity ubah catatan merupakan activity yang berfungsi apabila pengguna

ingin mengubah catatan yang telah dibuatnya. Untuk menampilkan activity

ubah catatan, pengguna dapat melakukannya dengan cara mengetuk lama (

tahan ) catatan yang ingin diubahnya pada activity daftar catatan kemudian

akan tampil sebuah menu opsi pilihan yang akan menampilkan opsi untuk

mengubah catatan atau menghapus catatan seperti yang terlihat pada gambar

dibawah ini

Gambar 4.8 Tampilan menu opsi pilihan

UNIVERSITAS SUMATERA UTARA


Gambar 4.9 Tampilan activity ubah catatan

Kemudian pengguna dapat mengetuk button ‘Ubah Catatan’ lalu

activity ubah catatan akan tampil. Dilihat dari segi desain tampilan, activity

ubah catatan memiliki tampilan yang sama dengan activity catatan baru

hanya berbeda pada judul activity-nya saja. Setelah pengguna mengubah

catatan sesuai dengan yang mereka inginkan selanjutnya pengguna dapat

mengetuk button ‘Simpan Catatan’ yang berada di sebelah kanan atas layar

untuk menyimpan perubahan yang telah dilakukan pada catatan.

UNIVERSITAS SUMATERA UTARA


4.2.7. Activity Petunjuk Aplikasi

Gambar 4.10 Tampilan activity petunjuk aplikasi

Activity petunjuk aplikasi merupakan activity yang berfungsi untuk

memberikan informasi cara penggunaan aplikasi kepada pengguna yang

belum memahami cara pengguna aplikasi catatan. Akan terdapat beberapa

pilihan pada activity petunjuk aplikasi yang dapat dipilih oleh pengguna,

setelah pengguna mengetuk pilihan tersebut maka akan ditampilkan

informasi sesuai dengan pilihan yang telah dipilih oleh pengguna.

UNIVERSITAS SUMATERA UTARA


4.2.8. Activity Tentang Aplikasi

Gambar 4.11 Tampilan activity tentang aplikasi

Activity tentang aplikasi merupakan activity yang berfungsi untuk

menampilkan informasi mengenai aplikasi catatan. Pada activity tentang

aplikasi akan menampilkan logo aplikasi, nama aplikasi, versi aplikasi,

tanggal pembaharuan terakhir dari aplikasi dan juga nama pengembang dari

aplikasi catatan.

UNIVERSITAS SUMATERA UTARA


BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Dari hasil uji coba aplikasi catatan yang telah dilakukan pada emulator Android

yang dijlankan pada PC ( personal computer ) dan juga smartphone Android dapat

disimpulkan bahwa :

1. Aplikasi catatan dapat berjalan dengan baik pada perangkat dengan

sistem operasi Android.

2. Aplikasi catatan dapat digunakan dengan mudah serta efektif bagi

pengguna yang ingin menyimpan catatan mereka secara teratur.

3. Pengguna dapat mengatur catatan mereka sesuai dengan keinginan

karena pengguna sendiri yang akan mengatur dalam membuat catatan

baru, mengubah catatan yang lama serta menghapus catatan yang telah

dibuatnya.

UNIVERSITAS SUMATERA UTARA


5.2. Saran

Saran yang dapat diberikan oleh penulis atas penelitian ini adalah sebagai berikut:

1. Penulis selaku juga pengembang dari aplikasi catatan ini menyadari

bahwa aplikasi catatan ini masih banyak terdapat kekurangan dan

berbagai hal yang harus diperbaiki agar kedepannya pengguna akan lebih

mudah dalam menggunakan aplikasi catatan ini serta bertambahnya fitur

– fitur lain yang akan menambah manfaat untuk pengguna dalam

menyimpan catatan mereka.

2. Dari segi penggunaan aplikasi catatan ini sendiri hanya tersedia dalam

sistem operasi Android. Sebaiknya dapat dikembangkan lagi ke sistem

operasi lainnya seperti pada sistem operasi iOS, Windows Phone,

Blackberry dan sistem operasi mobile lainnya.

UNIVERSITAS SUMATERA UTARA


DAFTAR PUSTAKA

Wikipedia. 2017. Android ( Operating System ). [serial online]. https://en.wikipe


dia.org/wiki/Android_(operating_system). [10 Mei 2017].

Wikipedia. 2017. Android Version History. [serial online]. http://en.wikipedia.org


/wiki/Android_version_history. [10 Mei 2017].

Android Developer. 2017. Platform Architecture. [serial online]. https://developer.


android.com/guide/platform/index.html. [1
0 Mei 2017].

Android Developer. 2017. Meet Android Studio. [serial online]. https://developer.


android.com/studio/intro/index.html. [11 Mei 2017].

Wikipedia. 2017. Java ( Programming Language ). [serial online]. https://en.wiki


pedia.org/wiki/Java_(programming_language). [11 Mei 2017]

Wikipedia. 2017. SQLite. [serial online]. https://en.wikipedia.org/wiki/SQLite.


[11 Mei 2017]

Safaat, 2011. Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis


Android. Informatika. Bandung.

Suprianto, Dodit dan Rini A. 2012. Pemrograman Aplikasi Android ( Step by Step
Membuat Aplikasi Android untuk Smartphone dan Tablet ). Mediacom.
Yogyakarta.

UNIVERSITAS SUMATERA UTARA


LAMPIRAN
LIST PROGRAM

1. AdapterCatatan.java
package com.dirzaaulia.bukucatatan;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import org.w3c.dom.Text;
import java.util.ArrayList;

public class AdapterCatatan extends ArrayAdapter<Catatan> {

//Membuat kelas static ViewHolder untuk tempat menampung


data setiap catatan sebelum ditampilkan
public static class ViewHolder{

TextView judulCatatan;
TextView isiCatatan;
TextView kategoriCatatan;

public AdapterCatatan(Context context, ArrayList<Catatan>


listCatatan){

super(context, 0, listCatatan);
}

@Override
public View getView(int position, View convertView,
ViewGroup parent){

UNIVERSITAS SUMATERA UTARA


//Mengambil data catatan pada setiap posisi
Catatan catatan = getItem(position);

//Mendeklarasikan ViewHolder yang baru


ViewHolder viewHolder;

//Mengecek jika ada View yang sedang digunakan


kembali, jika tidak ada buat View yang baru dari Layout Daftar
Catatan
if(convertView == null){

//Jika tidak ada View yang digunakan buat yang


baru dan pastikan ada ViewHolder yang baru juga
viewHolder = new ViewHolder();

//Membuat View yang baru yaitu dengan


mengembangkan atau menapilkan Layout Daftar Catatan
convertView =
LayoutInflater.from(getContext()).inflate(R.layout.daftar_cata
tan, parent, false);

//Atur View kepada ViewHolder sehingga tidak perlu


mendeklarasikan setiap Widget dari Layout Daftar Catatan
berulang - ulang kali
viewHolder.judulCatatan = (TextView)
convertView.findViewById(R.id.daftarCatatanJudul);
viewHolder.isiCatatan = (TextView)
convertView.findViewById(R.id.daftarCatatanIsi);
viewHolder.kategoriCatatan = (TextView)
convertView.findViewById(R.id.daftarCatatanKategori);

//Gunakan setTag untuk mengingat viewHolder yang


menampung data dari setiap widget pada Layout Daftar Catatan
convertView.setTag(viewHolder);
} else {

//Jika sudah ada View yang digunakan, ambil data


untuk setiap Widget dari ViewHolder

UNIVERSITAS SUMATERA UTARA


viewHolder = (ViewHolder) convertView.getTag();
}

//Beri data catatan yang sesuai pada setiap Widget


pada Layout Daftar Catatan
viewHolder.judulCatatan.setText(catatan.ambilJudul());
viewHolder.isiCatatan.setText(catatan.ambilIsi());

viewHolder.kategoriCatatan.setText(catatan.ambilKategoriYangSe
suai());

//Setelah data catatan yang sesuai telah diberikan


pada setiap Widget, kembalikan lagi ke convertView agar
ditampilkan
return convertView;
}
}

2. AdapterDatabaseCatatan.java
package com.dirzaaulia.bukucatatan;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.CalendarContract;
import android.util.Log;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.concurrent.SynchronousQueue;

public class AdapterDatabaseCatatan {

//Mendeklarasikan setiap String yang digunakan pada SQLite


(Database)
private static final String NAMA_DATABASE =
"databasecatatan.db";
private static final int VERSI_DATABASE = 1;

UNIVERSITAS SUMATERA UTARA


public static final String TABLE_CATATAN = "catatan";
public static final String KOLOM_ID = "_id";
public static final String KOLOM_JUDUL = "judul";
public static final String KOLOM_ISI = "isi";
public static final String KOLOM_KATEGORI = "kategori";
public static final String KOLOM_TANGGAL = "tanggal";

//Mendeklarasikan String dalam suatu Array untuk digunakan


nanti pada SQLite
private String[] semuaKolom = { KOLOM_ID, KOLOM_JUDUL,
KOLOM_ISI, KOLOM_KATEGORI, KOLOM_TANGGAL};

//Mendeklarasikan query SQLite untuk membuat table


public static final String BUAT_TABEL_CATATAN = "create
table " + TABLE_CATATAN + " ( "
+ KOLOM_ID + " integer primary key autoincrement,
"
+ KOLOM_JUDUL + " text not null, "
+ KOLOM_ISI + " text not null, "
+ KOLOM_KATEGORI + " integer not null, "
+ KOLOM_TANGGAL + ");";

//Mendeklarasikan fungsi SQLiteDatabase dan Context


private SQLiteDatabase sqlDB;
private Context context;

private HelperDatabaseCatatan helperDatabaseCatatan;

//Membuat fungsi AdapterDatabaseCatatan


public AdapterDatabaseCatatan(Context ctx){

context = ctx;
}

public AdapterDatabaseCatatan open() throws


android.database.SQLException{

helperDatabaseCatatan = new

UNIVERSITAS SUMATERA UTARA


HelperDatabaseCatatan(context);
sqlDB = helperDatabaseCatatan.getWritableDatabase();

return this;
}

public void close(){

helperDatabaseCatatan.close();
}

public Catatan buatCatatanBaru(String judul, String isi,


Catatan.Category kategori){

ContentValues values = new ContentValues();

values.put(KOLOM_JUDUL, judul);
values.put(KOLOM_ISI, isi);
values.put(KOLOM_KATEGORI, kategori.name());
values.put(KOLOM_TANGGAL,
Calendar.getInstance().getTimeInMillis() + "");

long masukkanID = sqlDB.insert(TABLE_CATATAN, null,


values);

Cursor cursor = sqlDB.query(TABLE_CATATAN, semuaKolom,


KOLOM_ID + " = " + masukkanID, null, null, null, null);

cursor.moveToFirst();
Catatan catatanBaru = cursorKeCatatan(cursor);
cursor.close();

return catatanBaru;
}

public long hapusCatatan(long idUntukDiDelete){

return sqlDB.delete(TABLE_CATATAN, KOLOM_ID + " = " +


idUntukDiDelete, null);

UNIVERSITAS SUMATERA UTARA


}

public long updateCatatan(long idUntukDiUpdate, String


judulBaru, String isiBaru, Catatan.Category kategoriBaru){

ContentValues values = new ContentValues();

values.put(KOLOM_JUDUL, judulBaru);
values.put(KOLOM_ISI, isiBaru);
values.put(KOLOM_KATEGORI, kategoriBaru.name());
values.put(KOLOM_TANGGAL,
Calendar.getInstance().getTimeInMillis() + "");

return sqlDB.update(TABLE_CATATAN, values, KOLOM_ID +


" = " + idUntukDiUpdate, null);
}

public ArrayList<Catatan> ambilSemuaCatatan(){

ArrayList<Catatan> listCatatan = new


ArrayList<Catatan>();

//Mengambil semua informasi catatan yang ada pada


database
Cursor cursor = sqlDB.query(TABLE_CATATAN, semuaKolom,
null, null, null, null, null);

for(cursor.moveToLast(); !cursor.isBeforeFirst();
cursor.moveToPrevious()){

Catatan catatan = cursorKeCatatan(cursor);


listCatatan.add(catatan);
}

cursor.close();

return listCatatan;

UNIVERSITAS SUMATERA UTARA


}

private Catatan cursorKeCatatan(Cursor cursor){

Catatan catatanBaru = new Catatan(


cursor.getString(1), cursor.getString(2),
Catatan.Category.valueOf(cursor.getString(3)),
cursor.getLong(0), cursor.getLong(4));

return catatanBaru;
}
//Membuat kelas SQLiteOpenHelper sebagai DBMS dari
aplikasi ke database
private static class HelperDatabaseCatatan extends
SQLiteOpenHelper{

HelperDatabaseCatatan(Context ctx){

super(ctx, NAMA_DATABASE, null, VERSI_DATABASE);


}

//Membuat Method saat database dibuat untuk pertama


kalinya
@Override
public void onCreate(SQLiteDatabase db){

//Buat tabel catatan


db.execSQL(BUAT_TABEL_CATATAN);
}

//Membuat Method untuk database saat di upgrade


versinya
@Override
public void onUpgrade(SQLiteDatabase db, int
oldVersion, int newVersion){

Log.w(HelperDatabaseCatatan.class.getName(),
"Upgrade versi database dari versi " + oldVersion + " ke versi
" + newVersion + ", yang akan menghapus semua data lama");

UNIVERSITAS SUMATERA UTARA


//Membuat fungsi query SQLite untuk menghapus
tabel
db.execSQL("DROP TABLE IF EXIST " +
TABLE_CATATAN);
//Lalu setelah database lama dihapus maka dibuat
database baru dengan versi yang baru
onCreate(db);
}
}
}

3. BuatCatatanFragment.java
package com.dirzaaulia.bukucatatan;

import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.AlertDialog;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class BuatCatatanFragment extends Fragment {

private EditText judul, isi;


private TextView kategori;
private Catatan.Category kategoriCatatanYangDiPilih;
private AlertDialog dialogKategoriObjek,
dialogKonfirmasiObjek;

UNIVERSITAS SUMATERA UTARA


private static final String KATEGORI_BERUBAH = "Kategori
Berubah";

public BuatCatatanFragment() {
// Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {

//Jika ada data yang tersimpan saat orientasi layar


berubah
if(savedInstanceState != null){

//Ambil data tersebut


kategoriCatatanYangDiPilih = (Catatan.Category)
savedInstanceState.get(KATEGORI_BERUBAH);
//Jangan buat option menu kembali
setHasOptionsMenu(false);

} else {

setHasOptionsMenu(true);
}

//Mendeklarasikan View fragmentLayout untuk


menampilkan layout fragmentBuatCatatan
View fragmentLayout =
inflater.inflate(R.layout.fragment_buat_catatan, container,
false);

//Mendeklarasikan setiap Widget yang digunakan pada


fragmentBuatCatatan
judul = (EditText)
fragmentLayout.findViewById(R.id.buatCatatanJudul);

UNIVERSITAS SUMATERA UTARA


isi = (EditText)
fragmentLayout.findViewById(R.id.buatCatatanIsi);
kategori = (TextView)
fragmentLayout.findViewById(R.id.buatCatatanKategori);

//Jika ada kategoriCatatanYangDiPilih berarti


orientasi layar berubah lalu atur TextView kategori yang
sesuai dengan data tersebut
if(kategoriCatatanYangDiPilih != null){

//Mengatur TextView Kategori menjadi data yang


sesuai dengan kategoriCatatanYangDiPilih yang tersimpan
sebelum orientasi layar berubah

kategori.setText(Catatan.kategoriUntukDiTampilkan(kategoriCata
tanYangDiPilih));

//Jika tidak ada kategoriCatatanYangDiPilih,


berarti orientasi layar tidak ada berubah atau
DetaiLCatatanActivity
//yang berisi fragmentBuatCatatan baru dijalankan,
sehingga atur kategori seperti biasa
}

judul.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

judul.setTextColor(getResources().getColor(R.color.warnaHitam)
);
}
});

isi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

UNIVERSITAS SUMATERA UTARA


isi.setTextColor(getResources().getColor(R.color.warnaHitam));
}
});

//Memanggil fungsi buatDialogKategori


buatDialogKategori();
//Memanggil fungsi buatKonfirmasiDialog
buatKonfirmasiDialog();

//Membuat fungsi saat TextView Kategori di klik akan


menampilkan AlertDialog Kategori
kategori.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {

//Menampilkan AlertDialog Kategori


dialogKategoriObjek.show();
}
});

// Setelah setiap data telah diberikan kembalikan ke


fragmentLayout
return fragmentLayout;
}

//Fungsi (Method) untuk menyimpan data sebelum orientasi


layar berubah
@Override
public void onSaveInstanceState(Bundle
savedInstanceState){

super.onSaveInstanceState(savedInstanceState);

//Menyimpan kategoriCatatanYangDiPilih ke Serializable


KATEGORI_BERUBAH
savedInstanceState.putSerializable(KATEGORI_BERUBAH,
kategoriCatatanYangDiPilih);

UNIVERSITAS SUMATERA UTARA


}

//Fungsi (Method) untuk membuat dialog Kategori saat


TextView kategori di klik
private void buatDialogKategori(){

//Mendeklarasikan String Kategori yang akan


ditampilkan pada Dialog Kategori
final String[] pilihanKategori = new
String[]{"Pribadi", "Kuliah", "Keluarga"};

//Mendeklarasikan fungsi AlertDialog.Builder untuk


membuat AlertDialog
AlertDialog.Builder buatKategori = new
AlertDialog.Builder(getActivity());

//Membuat judul AlertDialog


buatKategori.setTitle("Pilih Kategori Catatan");

//Membuat AlertDialog yang hanya dapat memilih satu


pilihan
buatKategori.setSingleChoiceItems(pilihanKategori, 0,
new DialogInterface.OnClickListener() {
//Fungsi (Method) saat pilihan pada AlertDialog
dipilih
@Override
public void onClick(DialogInterface dialog, int
item) {

//Hilangkan AlertDialog kategori saat pilihan


telah di klik, atau di klik di luar AlertDialog
dialogKategoriObjek.cancel();

switch (item){

//Jika yang dipilih Pribadi


case 0 :

UNIVERSITAS SUMATERA UTARA


//Ubah Catatan.Category menjadi
Pribadi
kategoriCatatanYangDiPilih =
Catatan.Category.PRIBADI;
//Buat teks kategori menjadi 'P'

kategori.setText(R.string.daftarCatatanPribadi);
break;

case 1:
//Ubah Catatan.Category menjadi Kuliah
kategoriCatatanYangDiPilih =
Catatan.Category.KULIAH;
//Buat teks menjadi 'Ku'

kategori.setText(R.string.daftarCatatanKuliah);
break;

case 2:
//Ubah Catatan.Category menjadi
Keluarga
kategoriCatatanYangDiPilih =
Catatan.Category.KELUARGA;
//Buat teks menjadi 'Ke'

kategori.setText(R.string.daftarCatatanKeluarga);
break;
}

}
});

//Buat AlertDialog Kategori sesuai yang telah dibangun


diatas
dialogKategoriObjek = buatKategori.create();

private void buatKonfirmasiDialog(){

UNIVERSITAS SUMATERA UTARA


//Mendeklarasikan AlertDialog.Builder baru untuk
digunakan
AlertDialog.Builder buatKonfirmasi = new
AlertDialog.Builder(getActivity());

//Membuat judul AlertDialog


buatKonfirmasi.setTitle("Simpan Catatan");
//Membuat pesan AlertDialog
buatKonfirmasi.setMessage("Apakah anda yakin untuk
menyimpan catatan ini?");

//Mendeklarasikan button positif serta fungsi jika di


klik
buatKonfirmasi.setPositiveButton("Ya", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int
which) {

//Menampilkan Log Debug saat catatan disimpan


Log.d("Simpan Catatan", " Judul Catatan : " +
judul.getText() + ", Isi Catatan : " + isi.getText() + ",
Kategori Catatan : " + kategoriCatatanYangDiPilih);

AdapterDatabaseCatatan dbAdapter = new


AdapterDatabaseCatatan(getActivity().getBaseContext());
dbAdapter.open();

dbAdapter.buatCatatanBaru(judul.getText() +
"", isi.getText() + "",
(kategoriCatatanYangDiPilih == null)?
Catatan.Category.PRIBADI : kategoriCatatanYangDiPilih);

dbAdapter.close();

// Membuat Toast pada mainActivity saat


catatan telah disimpan
Toast toast = Toast.makeText(getActivity(),

UNIVERSITAS SUMATERA UTARA


"Catatan berhasil di simpan", Toast.LENGTH_LONG);
toast.show();

//Mendeklarasikan intent baru untuk


menampilkan MainActivity setelah catatan disimpan
Intent intent = new Intent(getActivity(),
MainActivity.class);
//Lakukan intent
startActivity(intent);

}
});

//Mendeklarasikan negative button beserta fungsi


kliknya
buatKonfirmasi.setNegativeButton("Batal", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int
which) {

//Tidak ada yang dilakukan, hanya kembali ke


DetailCatatanActivity
}
});

//Buat AlertDialog seperti yang telah dibangun diatas


dialogKonfirmasiObjek = buatKonfirmasi.create();
}

//Fungsi (Method) agar menu_ubah_catatan dapat tampil pada


DetailCatatanActivity yang sedang menampilkan
fragmentUbahCatatan
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater
inflater) {

inflater.inflate(R.menu.menu_buat_catatan, menu);
}

UNIVERSITAS SUMATERA UTARA


//Fungsi (Method) agar item menu_ubah_catatan dapat di
klik
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar
will
// automatically handle clicks on the Home/Up button,
so long
// as you specify a parent activity in
AndroidManifest.xml.
int id = item.getItemId();

//noinspection SimplifiableIfStatement
if (id == R.id.buatCatatan_simpanCatatan) {

dialogKonfirmasiObjek.show();
}

return super.onOptionsItemSelected(item);
}
}

4. Catatan.java
package com.dirzaaulia.bukucatatan;

public class Catatan {

private String judul, isi;


private long idCatatan, tanggalCatatan;
private Category kategori;

public enum Category{PRIBADI, KULIAH, KELUARGA}

public Catatan(String judul, String isi, Category


kategori){

this.judul = judul;
this.isi = isi;

UNIVERSITAS SUMATERA UTARA


this.kategori = kategori;
this.idCatatan = 0;
this.tanggalCatatan = 0;
}

public Catatan(String judul, String isi, Category


kategori, long idCatatan, long tanggalCatatan){

this.judul = judul;
this.isi = isi;
this.kategori = kategori;
this.idCatatan = idCatatan;
this.tanggalCatatan = tanggalCatatan;
}

public String ambilJudul(){

return judul;
}

public String ambilIsi(){

return isi;
}

public Category ambilKategori(){

return kategori;
}

public long ambilTanggal(){

return tanggalCatatan;
}

public long ambilIDCatatan(){

return idCatatan;
}

UNIVERSITAS SUMATERA UTARA


public String toString(){

return "ID : " + idCatatan + " Judul : " + judul + "


Isi : " + isi + " Kategori : " + kategori.name() + " Tanggal
Catatan : ";
}

public int ambilKategoriYangSesuai(){

return kategoriUntukDiTampilkan(kategori);
}

public static int kategoriUntukDiTampilkan(Category


kategoriCatatan){

switch (kategoriCatatan){

case PRIBADI:

return R.string.daftarCatatanPribadi;

case KULIAH:

return R.string.daftarCatatanKuliah;

case KELUARGA:
return R.string.daftarCatatanKeluarga;
}

return R.string.kategoriPribadi;
}
}

5. DetailCatatanActivity.java
package com.dirzaaulia.bukucatatan;

import android.content.Intent;

UNIVERSITAS SUMATERA UTARA


import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class DetailCatatanActivity extends AppCompatActivity {

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

buatDanTampilkanFragment();
}

private void buatDanTampilkanFragment(){

//Mendeklarasikan Intent baru untuk mengambil Intent


Extra
Intent intent = getIntent();

//Mengambil intent extra dari fragmentUntukDiTampilkan


agar mengetahui fragment mana yang akan ditampilkan pada
DetailCatatanActivity
MainActivity.fragmentUntukDiTampilkan
fragmentUntukDiTampilkan =
(MainActivity.fragmentUntukDiTampilkan)
intent.getSerializableExtra(MainActivity.FRAGMENT_CATATAN_YANG
_DITAMPILKAN_EXTRA);

//Mendeklarasikan FragmentManager dan


FragmentTransaction untuk memuat fragment ke
DetailCatatanActivity
FragmentManager fragmentManager =
getSupportFragmentManager();
FragmentTransaction fragmentTransaction =
fragmentManager.beginTransaction();

UNIVERSITAS SUMATERA UTARA


switch (fragmentUntukDiTampilkan){

//Jika fragmentUntukDiTampilkan adalah LIHAT


case LIHAT:
//Mendeklarasikan tampilCatatanFragment untuk
digunakan oleh FragmentManager dan FragmentTransaction
TampilCatatanFragment tampilCatatanFragment =
new TampilCatatanFragment();
//Membuat judul DetailCatatanActivity saat
ditampilkannya tampilCatatanFragment
setTitle(R.string.lihatCatatan);

//Letakkan tampilCatatanFragment ke
penampungCatatan yaitu ID dari DetailCatatanActivity

fragmentTransaction.add(R.id.penampung_catatan,
tampilCatatanFragment, "TAMPIL_CATATAN_FRAGMENT");

break;

//Jika fragmentUntukDiTampilkan adalah UBAH


case UBAH:
//Mendeklarasikan tampilCatatanFragment untuk
digunakan oleh FragmentManager dan FragmentTransaction
UbahCatatanFragment ubahCatatanFragment = new
UbahCatatanFragment();
//Membuat judul DetailCatatanActivity saat
ditampilkannya tampilCatatanFragment
setTitle(R.string.ubahCatatan);

//Letakkan tampilCatatanFragment ke
penampungCatatan yaitu ID dari DetailCatatanActivity

fragmentTransaction.add(R.id.penampung_catatan,
ubahCatatanFragment, "UBAH_CATATAN_FRAGMENT");
break;

case BUAT:
//Mendeklarasikan buatCatatanFragment untuk

UNIVERSITAS SUMATERA UTARA


digunakan oleh FragmentManager dan FragmentTransaction
BuatCatatanFragment buatCatatanFragment = new
BuatCatatanFragment();
//Membuat judul DetailCatatanActivity saat
ditampilkannya buatCatatanFragment
setTitle(R.string.catatan_baru);

//Letakkan buatCatatanFragment ke
penampunCatatan yaitu ID dari DetailCatatanActivity

fragmentTransaction.add(R.id.penampung_catatan,
buatCatatanFragment, "BUAT_CATATAN_FRAGMENT");

//Lakukan fragmentTransaction
fragmentTransaction.commit();
}
}

6. FragmentDaftarCatatan.java
package com.dirzaaulia.bukucatatan;

import android.app.ListFragment;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.AlertDialog;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

UNIVERSITAS SUMATERA UTARA


public class FragmentDaftarCatatan extends ListFragment {

//Mendeklarasikan fungsi ArrayList<Catatan> sebagai fungsi


kelas
private ArrayList<Catatan> listCatatan;
//Mendeklarasikan fungsi AdapterCatatan sebagai fungsi
kelas
private AdapterCatatan adapterCatatan;

//Fungsi (Method) untuk menyimpan data


FragmentDaftarCatatan saat FragmentDaftarCatatan dibuat
pertama kali saat aplikasi dijalankan
@Override
public void onActivityCreated(Bundle savedInstanceState){

super.onActivityCreated(savedInstanceState);

//Mendeklarasikan AdapterDatabaseCatatan baru


AdapterDatabaseCatatan dbAdapter = new
AdapterDatabaseCatatan(getActivity().getBaseContext());

//Membuka koneksi ke database


dbAdapter.open();

//Memanggil fungsi ambilSemuaCatatan untuk mengambil


semua data catatan
listCatatan = dbAdapter.ambilSemuaCatatan();

//Menutup koneksi ke database


dbAdapter.close();

//Mendeklarasikan adapterCatatan yang baru


adapterCatatan = new AdapterCatatan(getActivity(),
listCatatan);

//Mengatur adapterCatatan menjadi listAdapter


setListAdapter(adapterCatatan);

//Membuat garis pembatas tiap catatan apabila tidak

UNIVERSITAS SUMATERA UTARA


tampil pada jenis Android tertentu

//getListView().setDivider(ContextCompat.getDrawable(getActivi
ty(), android.R.color.darker_gray));
// getListView().setDividerHeight(1);

//Menambahkan ContextMenu menu_sentuh_lama pada list


View daftar catatan, sehingga saat catatan di sentuh lama
dapat ditampilkan menu_sentuh_lama
registerForContextMenu(getListView());
}

//Fungsi (Method) untuk menampilkan detail catatan saat


catatan yang ada pada daftar catatan di klik
@Override
public void onListItemClick(ListView l, View v, int
position, long id){

super.onListItemClick(l, v, position, id);

tampilkanDetailCatatanActivity(MainActivity.fragmentUntukDiTam
pilkan.LIHAT, position);

//Fungsi (Method) untuk menampilkan menu_sentuh_lama saat


catatan pada daftar catatan di sentuh lama / klik lama
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo){

super.onCreateContextMenu(menu, v, menuInfo);

MenuInflater menuInflater =
getActivity().getMenuInflater();
menuInflater.inflate(R.menu.menu_sentuh_lama, menu);

UNIVERSITAS SUMATERA UTARA


}

//Fungsi (Method) untuk menentukan pilihan


menu_sentuh_lama mana yang dipilih untuk dijalankan
@Override
public boolean onContextItemSelected(MenuItem item) {

//Berikan posisi catatan yang di sentuh lama


final AdapterView.AdapterContextMenuInfo info =
(AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
final int rowPosition = info.position;

//Mendeklarasikan kelas Catatan untuk mengambil data


catatan pada posisi yang di sentuh lama
final Catatan catatan = (Catatan)
getListAdapter().getItem(rowPosition);

//Menggunakan keputusan switch untuk menentukan


pilihan yang dipilih
switch (item.getItemId()) {

//Ketika ubahCatatan yang dipilih


case R.id.ubahCatatan:

tampilkanDetailCatatanActivity(MainActivity.fragmentUntukDiTam
pilkan.UBAH, rowPosition);
return true;

case R.id.hapusCatatan:

//Mendeklarasikan AlertDialog.Builder untuk


membuat AlertDialog
AlertDialog.Builder buatKonfirmasi = new
AlertDialog.Builder(getActivity());

//Mengatur judul AlertDialog


buatKonfirmasi.setTitle("Hapus Catatan");
//Mengatur pesan AlertDialog

UNIVERSITAS SUMATERA UTARA


buatKonfirmasi.setMessage("Apakah anda yakin
untuk menghapus catatan ini? Catatan yang telah dihapus tidak
dapat dikembalikan lagi");

//Membuat fungsi (method) untuk button positif


serta fungsi kliknya
buatKonfirmasi.setPositiveButton("Ya", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface
dialog, int which) {

//Mendeklarasikan
AdapterDatabaseCatatan
AdapterDatabaseCatatan dbAdapter = new
AdapterDatabaseCatatan(getActivity().getBaseContext());
//Membuka koneksi database
dbAdapter.open();

//Memanggil fungsi hapusCatatan

dbAdapter.hapusCatatan(catatan.ambilIDCatatan());

//Menghpaus daftar catatan untuk


diambil data yang baru
listCatatan.clear();
//Menambahkan data catatan yang baru
dari database

listCatatan.addAll(dbAdapter.ambilSemuaCatatan());
//Berikan notifikasi kepada
adapterCatatan bahwa data telah berubah
adapterCatatan.notifyDataSetChanged();

//Tutup koneksi ke database


dbAdapter.close();

//Mendeklarasikan Toast baru


Toast toast =

UNIVERSITAS SUMATERA UTARA


Toast.makeText(getActivity(), "Catatan berhasil di hapus",
Toast.LENGTH_LONG);
//Tampilkan toast
toast.show();
}
});

buatKonfirmasi.setNegativeButton("Batal", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface
dialog, int which) {

}
});

buatKonfirmasi.create();
buatKonfirmasi.show();
return true;
}

return super.onContextItemSelected(item);
}

private void
tampilkanDetailCatatanActivity(MainActivity.fragmentUntukDiTam
pilkan ftl, int position){

//Mendeklarasikan fungsi getListAdapter dari kelas


Catatan untuk dapat mengambil data catatan dari setiap posisi
/ barisnya
Catatan catatan = (Catatan)
getListAdapter().getItem(position);

//Mendeklarasikan intent baru untuk menampilkan


DetailCatatanActivity
Intent intent = new Intent(getActivity(),
DetailCatatanActivity.class);

UNIVERSITAS SUMATERA UTARA


//Mendeklarasikan EXTRA yang akan di ambil dan dikirim
ke DetailCatatanActivity
intent.putExtra(MainActivity.JUDUL_CATATAN_EXTRA,
catatan.ambilJudul());
intent.putExtra(MainActivity.ISI_CATATAN_EXTRA,
catatan.ambilIsi());
intent.putExtra(MainActivity.KATEGORI_CATATAN_EXTRA,
catatan.ambilKategori());
intent.putExtra(MainActivity.ID_CATATAN_EXTRA,
catatan.ambilIDCatatan());

//Membuat keputusan Switch untuk mengetahui fragment


mana yang akan ditampilkan pada DetailCatatanActvitiy
switch (ftl){

case LIHAT:

intent.putExtra(MainActivity.FRAGMENT_CATATAN_YANG_DITAMPILKAN
_EXTRA, MainActivity.fragmentUntukDiTampilkan.LIHAT);
break;

case UBAH:

intent.putExtra(MainActivity.FRAGMENT_CATATAN_YANG_DITAMPILKAN
_EXTRA, MainActivity.fragmentUntukDiTampilkan.UBAH);
break;
}

//Jalankan intent
startActivity(intent);
}
}

7. MainActivity.java
package com.dirzaaulia.bukucatatan;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;

UNIVERSITAS SUMATERA UTARA


import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity


implements
NavigationView.OnNavigationItemSelectedListener {

//Mendeklarasikan setiap Intent Extra


public static final String ID_CATATAN_EXTRA =
"com.dirzaaulia.bukucatatan.idCatatan";
public static final String JUDUL_CATATAN_EXTRA =
"com.dirzaaulia.bukucatatan.judulCatatan";
public static final String ISI_CATATAN_EXTRA =
"com.dirzaaulia.bukucatatan.isiCatatan";
public static final String KATEGORI_CATATAN_EXTRA =
"com.dirzaaulia.bukucatatan.kategoriCatatan";
public static final String
FRAGMENT_CATATAN_YANG_DITAMPILKAN_EXTRA =
"com.dirzaaulia.bukucatatan.fragmentCatatanYangDiTampilkan";

//Mendeklarasikan enum untuk mengetahui fragment mana yang


akan ditampilkan pada DetailCatatanActivity
public enum fragmentUntukDiTampilkan{ LIHAT, UBAH, BUAT}

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

Toolbar toolbar = (Toolbar)


findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

UNIVERSITAS SUMATERA UTARA


FloatingActionButton fab = (FloatingActionButton)
findViewById(R.id.fab);
assert fab != null;
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

//Menampilkan DetailCatatanActivity dengan


fragmentBuatCatatan didalamnya
Intent intent = new
Intent(getApplicationContext(), DetailCatatanActivity.class);
//Mendeklarasikan intent extra untuk
menyatakan bahwa yang akan ditampilkan di
DetailCatatanActivity adalah fragmentBuatCatatan

intent.putExtra(MainActivity.FRAGMENT_CATATAN_YANG_DITAMPILKAN
_EXTRA, fragmentUntukDiTampilkan.BUAT);
//Jalankan intent
startActivity(intent);
}
});

DrawerLayout drawer = (DrawerLayout)


findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new
ActionBarDrawerToggle(
this, drawer, toolbar,
R.string.navigation_drawer_open,
R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();

NavigationView navigationView = (NavigationView)


findViewById(R.id.nav_view);

navigationView.setNavigationItemSelectedListener(this);
}

UNIVERSITAS SUMATERA UTARA


@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout)
findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}

@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();

if (id == R.id.nav_catatanBaru) {

//Mendekalrasikan intent baru untuk menampilkan


DetailCatatanActivity yang memuat fragmentBuatCatatan
Intent intent = new Intent(this,
DetailCatatanActivity.class);
//Mendeklarasikan intent extra untuk menyatakan
bahwa yang akan ditampilkan di DetailCatatanActivity adalah
fragmentBuatCatatan

intent.putExtra(MainActivity.FRAGMENT_CATATAN_YANG_DITAMPILKAN
_EXTRA, fragmentUntukDiTampilkan.BUAT);
//Jalankan intent
startActivity(intent);
return true;

} else if (id == R.id.nav_petunjukAplikasi){

Intent intent = new Intent(this,


PetunjukAplikasiActivity.class);
startActivity(intent);

UNIVERSITAS SUMATERA UTARA


} else if (id == R.id.nav_infoAplikasi) {

Intent intent = new Intent(this,


TentangAplikasiActivity.class);
startActivity(intent);
}

DrawerLayout drawer = (DrawerLayout)


findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}

8. PetunjukAplikasiActivity.java
package com.dirzaaulia.bukucatatan;

import android.content.DialogInterface;
import android.media.audiofx.BassBoost;
import android.provider.Settings;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class PetunjukAplikasiActivity extends


AppCompatActivity {

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

UNIVERSITAS SUMATERA UTARA


String[] petunjukAplikasi = {"1.Petunjuk Daftar
Catatan", "2.Petunjuk Catatan Baru", "3.Petunjuk Ubah
Catatan", "4.Petunjuk Hapus Catatan"};

ListAdapter adapterPetunjukAplikasi = new


ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, petunjukAplikasi);

ListView listView = (ListView)


findViewById(R.id.listViewPetunjukAplikasi);

listView.setAdapter(adapterPetunjukAplikasi);

final TextView textView = (TextView)


findViewById(R.id.textViewPetunjukAplikasi);

listView.setOnItemClickListener(new
AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent,
View view, int position, long id) {

String petunjuk =
String.valueOf(parent.getItemAtPosition(position));

if (petunjuk.equals("1.Petunjuk Daftar
Catatan")) {

textView.setText("");

textView.setText(R.string.petunjukDaftarCatatan);
}
else if (petunjuk.equals("2.Petunjuk Catatan
Baru")){

textView.setText("");

textView.setText(R.string.petunjukCatatanBaru);
}

UNIVERSITAS SUMATERA UTARA


else if (petunjuk.equals("3.Petunjuk Ubah
Catatan")){

textView.setText("");

textView.setText(R.string.petunjukUbahCatatan);
}
else if (petunjuk.equals("4.Petunjuk Hapus
Catatan")){

textView.setText("");

textView.setText(R.string.petunjukHapusCatatan);
}
}
});
}
}

9. SplashScreenActivity.java
package com.dirzaaulia.bukucatatan;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Window;

public class SplashScreenActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//Mengatur SplashScreenActivity agar tidak terdapat


judul Activity
this.requestWindowFeature(Window.FEATURE_NO_TITLE);

//Membuat SplashScreenActivity menjadi FullScreen

UNIVERSITAS SUMATERA UTARA


//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCR
EEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

//Mengatur layout yang ditampilkan pada


SplashScreenActivity
setContentView(R.layout.activity_splash_screen);

Thread lamaSplash = new Thread() {

public void run() {

try {

sleep(2000);

} catch (InterruptedException e) {

e.printStackTrace();

} finally {

Intent intent = new


Intent(SplashScreenActivity.this, MainActivity.class);
startActivity(intent);
}
}
};

lamaSplash.start();
}

@Override
protected void onPause(){

super.onPause();
finish();

UNIVERSITAS SUMATERA UTARA


}
}

10. TampilCatatanFragment.java
package com.dirzaaulia.bukucatatan;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class TampilCatatanFragment extends Fragment {

public TampilCatatanFragment() {
// Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {

//Mendeklarasikan View FragmentLayout yang akan


menampilkan fragmentTampilCatatan
View fragmentLayout =
inflater.inflate(R.layout.fragment_tampil_catatan, container,
false);

//Mendeklarasikan setiap Widget yang ada pada


fragmentTampilCatatan
TextView judul = (TextView)
fragmentLayout.findViewById(R.id.tampilCatatanJudul);
TextView isi = (TextView)
fragmentLayout.findViewById(R.id.tampilCatatanIsi);

UNIVERSITAS SUMATERA UTARA


TextView kategori = (TextView)
fragmentLayout.findViewById(R.id.tampilCatatanKategori);

//Mendeklarasikan intent baru untuk mengambil intent


dari MainActivity
Intent intent = getActivity().getIntent();

//Atur judul dan isi dari data yang dikirim dari


MainActivity

judul.setText(intent.getExtras().getString(MainActivity.JUDUL_
CATATAN_EXTRA));

isi.setText(intent.getExtras().getString(MainActivity.ISI_CATA
TAN_EXTRA));

//Mendeklarasikan SerializableExtra untuk mengambil


enum kategori
Catatan.Category kategoriCatatan = (Catatan.Category)
intent.getSerializableExtra(MainActivity.KATEGORI_CATATAN_EXTR
A);
//Memanggil fungsi dari kelas
Catatan.kategoriUntukDiTampilkan untuk menampilkan kategori
dari data yang dikirim dari MainActivity

kategori.setText(Catatan.kategoriUntukDiTampilkan(kategoriCata
tan));

//Kembalikan setiap nilai kembali ke fragmentLayout


agar dapat ditampilkan
return fragmentLayout;
}
}

11. TentangAplikasiActivity.java
package com.dirzaaulia.bukucatatan;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

UNIVERSITAS SUMATERA UTARA


import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;

public class TentangAplikasiActivity extends AppCompatActivity


{

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

//Mendeklarasikan String untuk ditampilkan pada


ListView
String[] tentangAplikasi = {"Nama Aplikasi\t: Buku
Catatan", "Versi Aplikasi\t\t: 2.1",
"Pembaharuan Terakhir pada 4 Mei 2017",
"\nDibuat dan dikembangkan oleh\n\nDirza Aulia"};

//Mendeklarasikan ListAdapter untuk membuat List dari


ArrayAdapter menggunakan String tentangAplikasi
ListAdapter adapterTentangAplikasi = new
ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, tentangAplikasi);

//Mendeklarasikan widget ListView


ListView listView = (ListView)
findViewById(R.id.listViewTentangAplikasi);
//Membuat listView untuk mengambil nilai dari
adapterTentangAplikasi
listView.setAdapter(adapterTentangAplikasi);
}
}

12. UbahCatatanFragment.java
package com.dirzaaulia.bukucatatan;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

UNIVERSITAS SUMATERA UTARA


import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;

public class TentangAplikasiActivity extends AppCompatActivity


{

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

//Mendeklarasikan String untuk ditampilkan pada


ListView
String[] tentangAplikasi = {"Nama Aplikasi\t: Buku
Catatan", "Versi Aplikasi\t\t: 2.1",
"Pembaharuan Terakhir pada 4 Mei 2017",
"\nDibuat dan dikembangkan oleh\n\nDirza Aulia"};

//Mendeklarasikan ListAdapter untuk membuat List dari


ArrayAdapter menggunakan String tentangAplikasi
ListAdapter adapterTentangAplikasi = new
ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, tentangAplikasi);

//Mendeklarasikan widget ListView


ListView listView = (ListView)
findViewById(R.id.listViewTentangAplikasi);
//Membuat listView untuk mengambil nilai dari
adapterTentangAplikasi
listView.setAdapter(adapterTentangAplikasi);
}
}

13. activity_detail_catatan.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"

UNIVERSITAS SUMATERA UTARA


android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/penampung_catatan"
android:orientation="vertical"

tools:context="com.dirzaaulia.bukucatatan.DetailCatatanActivit
y">

</LinearLayout>

14. activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">

<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />

<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />

</android.support.v4.widget.DrawerLayout>

UNIVERSITAS SUMATERA UTARA


15. activity_petunjuk_aplikasi.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"

tools:context="com.dirzaaulia.bukucatatan.PetunjukAplikasiActi
vity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/daftarPetunjukAplikasi"
android:id="@+id/textViewDaftarPetunjukAplikasi"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textSize="21sp"
android:textColor="@color/warnaHitam"/>

<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listViewPetunjukAplikasi"

android:layout_below="@+id/textViewDaftarPetunjukAplikasi"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_marginTop="20dp" />

<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_below="@+id/listViewPetunjukAplikasi">

UNIVERSITAS SUMATERA UTARA


<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textViewPetunjukAplikasi"
android:textSize="15sp"
android:textColor="@color/warnaHitam"
android:gravity="left|right"
android:textAlignment="gravity"
android:layout_marginTop="10dp"/>
</ScrollView>

</RelativeLayout>

16. activity_splash_screen.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@color/warnaPutih"

tools:context="com.dirzaaulia.bukucatatan.SplashScreenActivity
">

<ImageView
android:layout_width="150dp"
android:layout_height="150dp"
android:src="@drawable/logo_hi_res"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:id="@+id/imageViewLogoSplash" />

</RelativeLayout>

UNIVERSITAS SUMATERA UTARA


17. activity_tentang_aplikasi.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="13dp"
android:paddingEnd="13dp"
android:paddingTop="10dp"
android:paddingBottom="11dp"

tools:context="com.dirzaaulia.bukucatatan.TentangAplikasiActiv
ity">

<ImageView
android:layout_width="150dp"
android:layout_height="150dp"
android:id="@+id/imageViewLogoAplikasi"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:src="@drawable/logo_hi_res"
android:layout_marginTop="30dp"/>

<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listViewTentangAplikasi"
android:layout_marginTop="25dp"
android:layout_below="@+id/imageViewLogoAplikasi"
android:layout_alignParentStart="true" />

</RelativeLayout>

18. app_bar_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"

UNIVERSITAS SUMATERA UTARA


xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.dirzaaulia.bukucatatan.MainActivity">

<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />

</android.support.design.widget.AppBarLayout>

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

<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:src="@mipmap/icon_catatan_baru" />

</android.support.design.widget.CoordinatorLayout>

19. content_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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"

UNIVERSITAS SUMATERA UTARA


android:layout_height="match_parent"

app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.dirzaaulia.bukucatatan.MainActivity"
tools:showIn="@layout/app_bar_main">

<fragment
android:layout_width="fill_parent"
android:layout_height="wrap_content"

android:name="com.dirzaaulia.bukucatatan.FragmentDaftarCatatan
"
android:id="@+id/fragmentDaftarCatatan"/>

</LinearLayout>

20. daftar_catatan.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="15dp"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:paddingEnd="15dp">

<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@color/colorAccent"
android:text="@string/daftarCatatanPribadi"
android:textAlignment="gravity"
android:gravity="center_horizontal|center_vertical"
android:textColor="@color/warnaPutih"
android:textSize="33sp"
android:textStyle="bold"
android:id="@+id/daftarCatatanKategori"
android:layout_alignParentTop="true"

UNIVERSITAS SUMATERA UTARA


android:layout_alignParentStart="true"
android:layout_marginEnd="15dp"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Judul Catatan"
android:textSize="18sp"
android:id="@+id/daftarCatatanJudul"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@color/warnaHitam"
android:layout_alignTop="@+id/daftarCatatanKategori"
android:layout_toEndOf="@+id/daftarCatatanKategori"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Isi Catatan"
android:id="@+id/daftarCatatanIsi"
android:ellipsize="end"
android:singleLine="true"
android:textSize="14sp"
android:layout_below="@+id/daftarCatatanJudul"
android:layout_toRightOf="@+id/daftarCatatanKategori"
/>

</RelativeLayout>

21. fragment_buat_catatan.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"

tools:context="com.dirzaaulia.bukucatatan.BuatCatatanFragment"
android:paddingStart="15dp"
android:paddingEnd="15dp"

UNIVERSITAS SUMATERA UTARA


android:paddingTop="13dp"
android:paddingBottom="11dp">

<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/buatCatatanKategori"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:textSize="33sp"
android:textColor="@color/warnaPutih"
android:text="@string/daftarCatatanPribadi"
android:textStyle="bold"
android:background="@color/colorAccent"
android:gravity="center_horizontal|center_vertical"
android:textAlignment="gravity"
android:layout_marginEnd="25dp"/>

<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/buatCatatanScrollViewJudul"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/buatCatatanKategori"
android:layout_alignBottom="@+id/buatCatatanKategori">

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"
android:minLines="1"
android:hint="@string/judulCatatan"
android:id="@+id/buatCatatanJudul"
android:layout_gravity="center_vertical"
android:textAlignment="gravity"
android:inputType="text"/>

</ScrollView>

UNIVERSITAS SUMATERA UTARA


<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/buatCatatanScrollViewJudul"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_marginTop="25dp"
android:id="@+id/buatCatatanScrollViewIsi">

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minLines="3"
android:hint="@string/isiCatatan"
android:id="@+id/buatCatatanIsi"
android:textSize="18sp"
android:textColor="@color/warnaHitam"
android:paddingTop="5dp"
android:paddingStart="5dp"
android:inputType="textMultiLine"
android:gravity="top"/>

</ScrollView>

</RelativeLayout>

22. fragment_tampil_catatan.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="15dp"
android:paddingEnd="15dp"
android:paddingTop="13dp"
android:paddingBottom="11dp">

UNIVERSITAS SUMATERA UTARA


<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/tampilCatatanKategori"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:textSize="33sp"
android:textColor="@color/warnaPutih"
android:text="@string/daftarCatatanPribadi"
android:textStyle="bold"
android:background="@color/colorAccent"
android:gravity="center_horizontal|center_vertical"
android:textAlignment="gravity"
android:layout_marginEnd="25dp"/>

<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tampilCatatanScrollViewJudul"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/tampilCatatanKategori"

android:layout_alignBottom="@+id/tampilCatatanKategori">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="@string/judulCatatan"
android:id="@+id/tampilCatatanJudul"
android:textColor="@color/warnaHitam"
android:layout_gravity="center_vertical"
android:textAlignment="gravity"/>

</ScrollView>

<ScrollView
android:layout_width="wrap_content"

UNIVERSITAS SUMATERA UTARA


android:layout_height="wrap_content"

android:layout_below="@+id/tampilCatatanScrollViewJudul"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_marginTop="25dp"
android:id="@+id/tampilCatatanScrollViewIsi">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/isiCatatan"
android:id="@+id/tampilCatatanIsi"
android:textSize="18sp"
android:textColor="@color/warnaHitam"
android:paddingTop="5dp"
android:paddingStart="5dp"/>

</ScrollView>

</RelativeLayout>

23. fragment_ubah_catatan.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="15dp"
android:paddingEnd="15dp"
android:paddingTop="13dp"
android:paddingBottom="11dp"

tools:context="com.dirzaaulia.bukucatatan.UbahCatatanFragment"
>

<TextView
android:layout_width="50dp"

UNIVERSITAS SUMATERA UTARA


android:layout_height="50dp"
android:id="@+id/ubahCatatanKategori"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:textSize="33sp"
android:textColor="@color/warnaPutih"
android:text="@string/daftarCatatanPribadi"
android:textStyle="bold"
android:background="@color/colorAccent"
android:gravity="center_horizontal|center_vertical"
android:textAlignment="gravity"
android:layout_marginEnd="25dp"/>

<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ubahCatatanScrollViewJudul"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/ubahCatatanKategori"
android:layout_alignBottom="@+id/ubahCatatanKategori">

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"
android:minLines="1"
android:text="@string/judulCatatan"
android:id="@+id/ubahCatatanJudul"
android:textColor="@color/warnaHitam"
android:layout_gravity="center_vertical"
android:textAlignment="gravity"
android:inputType="text"/>

</ScrollView>

<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"

UNIVERSITAS SUMATERA UTARA


android:layout_below="@+id/ubahCatatanScrollViewJudul"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_marginTop="25dp"
android:id="@+id/ubahCatatanScrollViewIsi">

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/isiCatatan"
android:minLines="3"
android:id="@+id/ubahCatatanIsi"
android:textSize="18sp"
android:textColor="@color/warnaHitam"
android:paddingTop="5dp"
android:paddingStart="5dp"
android:inputType="textMultiLine"
android:gravity="top"/>

</ScrollView>

</RelativeLayout>

24. nav_header_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:background="@drawable/side_nav_bar"
android:gravity="bottom"
android:orientation="vertical"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark">

<ImageView

UNIVERSITAS SUMATERA UTARA


android:id="@+id/logoBukuCatatan"
android:layout_width="100dp"
android:layout_height="100dp"
android:paddingTop="10dp"
android:paddingEnd="10dp"

android:foregroundGravity="center_horizontal|center_vertical"
android:textAlignment="gravity"
android:src="@drawable/logo_hi_res"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"/>

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="55dp"
android:text="@string/app_name"
android:textSize="18sp"
android:textColor="@color/warnaPutih"
android:textStyle="bold"
android:id="@+id/textViewAppName"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/logoBukuCatatan"
android:layout_alignParentTop="true" />

<TextView
android:id="@+id/textViewVersi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_versi"
android:textSize="15sp"
android:textColor="@color/warnaPutih"
android:textStyle="italic"
android:layout_below="@+id/textViewAppName"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/logoBukuCatatan" />

</RelativeLayout>

UNIVERSITAS SUMATERA UTARA


UNIVERSITAS SUMATERA UTARA
UNIVERSITAS SUMATERA UTARA
UNIVERSITAS SUMATERA UTARA
UNIVERSITAS SUMATERA UTARA
UNIVERSITAS SUMATERA UTARA

Anda mungkin juga menyukai