TUGAS AKHIR
Diajukan untuk memenuhi salah satu syarat kelulusan Program Diploma Tiga (D.III)
Rosvianty Rahmat
Nim : 11161803
Dengan ini menyatakan bahwa Tugas Akhir yang telah saya buat dengan judul
:“Perancangan Aplikasi TaxCal Penghitungan Pajak (PPN, PPh 23 Dan PPh
Final ) Berbasis Android”, adalah asli (orisinil) atau tidak plagiat (menjiplak)dan
belum pernah diterbitkan/dipublikasikan dimanapun dan dalam bentuk apapun.
Demikian surat pernyataan ini saya buat dengan sebenar-benarnya tanpa ada paksaan
dari pihak manapun juga. Apabila dikemudian hari ternyata saya memberikan
keterangan palsu atau ada pihak lain yang mengklaim bahwa Tugas Akhir yang saya
buat adalah hasil karya milik seseorang atau badan tertentu, saya bersedia diproses
baik secara pidana maupun perdata dan kelulusan saya dari Universitas Bina Sarana
Informatika dicabut/dibatalkan.
Dibuat di : Jakarta
Yang Menyatakan
Rosvianty Rahmat
ii
SURAT PERNYATAAN PERSETUJUAN PUBLIKASI KARYA
Dengan Hak Bebas Royalti Non-Ekslusif ini Pihak Universitas Bina Sarana
Informatika berhak menyimpan, mengalih-media atau format-kan, mengelolahnya
dalam pangkalan data (database), mendistribusikannya dan menampilkan atau
mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa
perlu menerima ijin dari kami selama tetap mencantumkan nama kami sebagai
penulis/pencipta karya ilmiah ini.
Saya bersedia untuk menanggung secara pribadi, tanpa melibatkan pihak Universitas
Bina Sarana Informatika, segala bentuk tuntutan hokum yang timbul atas
pelanggaran Hak Cipta dalam karya ilmiah saya ini.
Demikian pernyataan ini saya buat sebenarnya.
Dibuat di : Jakarta
Yang Menyatakan
Rosvianty Rahmat
iii
PERSETUJUAN DAN PENGESAHAN TUGAS AKHIR
Untuk dipertahankan pada periode 2019-1 dihadapan penguji dan diterima sebagai
bagian persyaratan yang diperlukan untuk memperoleh Ahli Madya Sistem Informasi
Akutansi (A.Md.S.I.Ak) pada Program Diploma Tiga (D3) Program Studi Sistem
Informasi Akuntansi di Universitas Bina Sarana Informatika.
DEWAN PENGUJI
NIM : 11161803
Nama Lengkap : Rosvianty Rahmat
Dosen Pembimbing : Priatno, M.Kom
Judul Tugas Akhir : Perancangan Aplikasi TaxCal Penghitungan Pajak
(PPN, PPh 23 Dan PPh Final ) Berbasis Android
Tanggal Paraf Dosen
No Pokok Bahasan
Bimbingan Pembimbing
1. 01 April 2019 Bimbingan Perdana
2. 08 April 2019 Pengajuan Bab I
3. 15 April 2019 Acc Bab I dan Pengajuan Bab II
4. 29 April 2019 Acc Bab II
5. 20 Mei 2019 Pengajuan Bab III
6. 17 Juni 2019 Revisi Bab III dan Pengajuan Bab IV
7. 24 Juni 2019 Acc Bab III dan BAB IV
8. 11 Juli 2019 Acc keseluruhan
Dosen Pembimbing
(Priatno, M.Kom)
v
KATA PENGANTAR
dapatmenyelesaikan tugas ini dengan baik. Dimana tugas akhir ini penulis sajikan
dalambentuk buku yang sederhana. Adapun judul tugas akhir, yang penulis ambil
Tujuan penulisan tugas akhir ini dibuat sebagai salah satu syarat kelulusan
program Diploma III (Tiga) Universitas Bina Sarana Informatika. Sebagai bahan
sumber literature yang mendukung penulisan ini. Penulis menyadari bahwa tanpa
bimbingan dan dorongan dari semua pihak, maka penulisan tugas akhir ini tidak akan
lancar. Oleh karena itu pada kesempatan ini, izinkanlah penulis menyampaikan ucapan
6. Orang tua tercinta yang telah memberikan dukungan moral maupun spiritual.
7. Rekan – rekan tersayang yang telah berjuang bersama menyelesaikan tugas akhir
ini.
xi
8. Semua pihak yang telah membantu hingga terselesaikannya tugas akhir ini
yang penulis tidak dapat sebutkan satu per satu. Semoga Allah membalas
Serta semua pihak yang terlalu banyak untuk disebut satu persatu
inimasih jauh sekali dari sempurna, untuk itu penulis mohon kritik dan saran
Akhir kata semoga tugas akhir ini dapat berguna bagi penulis khususnya danbagi
Penulis
Rosvianty Rahmat
xii
ABSTRAKSI
xiii
ABSTRACT
xiv
DAFTAR ISI
DAFTAR SIMBOL.................................................................................................... xx
xv
2.1. Konsep Dasar Program Aplikasi ................................................................... 6
LAMPIRAN - LAMPIRAN....................................................................................... 44
xvii
DAFTAR GAMBAR
xviii
DAFTAR TABEL
xix
DAFTAR SIMBOL
ACTIVITY DIAGRAM
xx
DAFTAR SIMBOL
xxi
DAFTAR SIMBOL
SEQUENCE DIAGRAM
xxii
DAFTAR SIMBOL
DEPLOYMENT DIAGRAM
xxiii
BAB I
PENDAHULUAN
semakin banyaknya pengguna telepon genggam pintar yang menjadi salah satu alat
Teknologi telepon genggam pintar pada saat ini berkembang pesat sekali dengan
berbagai macam sistem operasi dan salah satunya adalah sistem operasi android.
satu negara berkembang, pembangunan dalam segala bidang sangat diperlukan. Selain
mengerti apa itu pajak dan cara perhitungan, pembayaran serta pelaporannya, agar
1
2
–hal yang berhubungan dengan pajak baik mengenai subjek pajak, objek pajak, dasar
Sebagai sumber dana alternatif yang sangat potensial sebagai salah satu sumber
penerimaan negara yang sangat potensial, sektor pajak merupakan pilihan yang sangat
tepat, selain karena jumlahnya yang relatif stabil juga merupakan cerminan partisipasi
Salah satu jenis pajak yang sering dikenakan pada pengusaha yang dikenakan
pajak yaitu Pajak Pertambahan Nilai, Pajak Penghasilan Pasal 23 pada perusahaan
pendapatan/penghasilan tertentu.
merupakan hal yang sulit dan merepotkan, banyak masyarakat menganggap remeh
mengambil judul :
Adapun Tujuan penulisan Tugas Akhir sebagai salah satu syarat kelulusan
Program Diploma Tiga (D.III) program studi Sistem Informasi Akuntansi pada
Untuk memperoleh data atau informasi yang diperlukan dalam Tugas Akhir
2. Metode Observasi
3. Metode Wawancara
jawab secara langsung dengan orang-orang yang terlibat pada permasalahan yang
dibahas.
informasi dalam bentuk aplikasi berbasis android ini yaitu menyediakan materi
Pajak Pertambahan Nilai, Pajak Penghasilan Pasal 23 dan Pajak Penghasilan Final
utama, menu penghitung Pajak Pertambahan Nilai, Pajak Penghasilan Pasal 23,
dengan kemudahan beberapa tombol navigasi serta aplikasi bersifat offline. Untuk
software yang akan dipergunakan dalam perancangan aplikasi ini adalah Android
Studio.
2. Desain
keseluruhan dalam program aplikasi ini antara lain mulai dari menu utama,
5
memudahkanpenggunanya.
3. Code Generation
Bahasa pemrograman yang digunakan dalam Tugas Akhir ini adalah Java,
4. Testing
Metode pengujian aplikasi yag digunakan penulis adalah Black Box Testing.
Dalam proses pengerjaan Tugas Akhir (TA) penulis membatasi ruang lingkup yaitu :
Mengingat pembahasan yang cukup luas dan tujuan pembuatan tugas akhir ini
tepat sasaran, maka ruang lingkup pembahasan difokuskan hanya pada nilai
LANDASAN TEORI
diatur olehprogram ini. Program inilah yang mengendalikan semua aktifitas yang ada
Program aplikasi merupakan program siap pakai. Program yang direka untuk
melaksanakan suatu fungsi bagi pengguna atau aplikasi yang lain. Contoh-contoh
aplikasiialah program pemproses kata dan Web Browser. Aplikasi akan menggunakan
Istilah ini mulai perlahan masuk ke dalam istilah Teknologi Informasi semenjak
tahun 1993, yang biasanya juga disingkat dengan app. Secara historis, aplikasi
6
7
pertempuran persaingan yang baru, yang paralel dengan yangterjadi antar sistem
Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux
platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka. Awalnya,
Google Inc. membeli Android Inc. yang merupakan pendatang baru yang membuat
Qualcomm, T-Mobile, dan Nvidia. Secara garis besar, arsitektur Android dapat
1. Applications dan Widgets Applications dan Widgets ini adalah layer dimana
dijalankan di sistem operasi Android, karena pada layer inilah aplikasi dapat
dirancang dan dibuat, seperti contectproviders yang berupa sms dan panggilan
telepon.
8
3. Libraries Libraries ini adalah layer di mana tur-tur Android berada, biasanya para
atas kernel, Layer ini meliputi berbagai library C/C++ inti seperti Libc dan SSL
4. Android Run Time Layer yang membuat aplikasi Android dapat dijalankan
5. Linux Kernel Linux Kernel adalah layer di mana inti dari operating system dari
Android itu berada. Berisi file-file sistem yang mengatur sistem processing,
kernel yang digunakan android adalah linux kernel release 2.6. (W. Edi & A. Zaki,
2012)
sampai saat ini sudah cukupbanyak. Dirilis pertama kali pada tahun 2009 yaitu
versiAndroid 1.1. Uniknya hampir semua versi android menggunakan nama makanan
1. Cupcake 2009
2. Donut 2009
3. Éclair 2009
4. Froyo 2010
5. Gingerbread 2010
6. Honeycomb 2011
9. Kitkat 2013
kontribusi wajib kepada negara yang terutang oleh orang pribadi atau badan yang
secara langsung dan digunakan untuk keperluan negara bagi sebesar –besarnya
Peranan pajak yang sangat besar tentunya didorong dengan kesadaran diri
sendiri, agar pajak menjadi tulang punggung dalam membiayai pembangunan didalam
negeri, untuk itu harus ada persamaan pandangan dalam mengartikan pajak. Ada
1) Menurut Mr. Dr. N. J. Feldmann dalam (B. Ilyas & Burton, 2015)
“ Pajak adalah prestasi yang dipaksakan sepihak oleh terutang kepada penguasa,
umum.”
2) Menurut Prof. Dr. Rochmat Soemitra,S.H dalam (Prof. Dr. Mardiasmo, MBA.,
2016)
10
(yang dapat dipaksakan) dengan tidak mendapat jasa timbal balik (kontraprestasi)
pengeluaran umum.”
Berdasarkan pengertian para ahli di atas, bahwa pajak mempunyai beberapa unsur-
unsur yaitu:
Artinya bahwa pajak merupakan sumbangsih kepada negara yang bersifat wajib,
sehingga karena sifatnya yang wajib maka apabila ada wajib pajak yang tidak
akan dikenakan sanksi administrasi maupun sanksi pidana tergatung pada tingkat
kesalahannya.
Artinya bahwa pajak itu terhutang oleh orang pribadi atau badan yang wajib
pembayar pajak, pemungut pajak, yang mempunyai hak dan kewajiban perpajakan
3. Bersifat memaksa
11
Artinya bahwa setiap wajib pajak yang meliputi pribadi atau badan yang tidak
Apabila setelah diterbitkan surat ketetapan pajak maupun surat tagihan pajak,
wajib pajak setelah tanggal jatuh tempo yang ditentukan tidak bersedia untuk
membayar yang masih harus dibayar sebagaimana dalam surat ketetapan pajak
maupun surat tagihan pajak tersebut maka terhadap wajib pajak dapat dilakukan
pelelangan bahkan bila dimungkinkan terhadap wajib pajak yang tidak mau
membayar atau melunasi pajaknya sesuai ketentuan perpajakan yang berlaku dapat
Artinya bahwa pemungut pajak harus selalu berdasarkan pada undang – undang,
sehingga tidak ada pajak tanpa undang – undang. Hal ini juga dengan tegas
dinyatakan dalam pasal 23 A Undang – Undang Dasar 1945 amandemen ketiga yang
berbunyi:’ Pajak dan pungutan lain yang bersifat memaksa untuk keperluan negara
diatur dengan undang – undang “. Oleh karena itu pemungutan pajak sudah di
sudah setuju untuk di pungut pajakanya. Dengan adanya pajak yang dipungut
Artinya bahwa bagi si pembayar pajak setelah mereka membayar pajak sesuai
ketentuan undang – undang perpajakan tidak mendapatkan imbalan atau balas jasa
12
secara langsung, akan tetapi imbalan atau balas jasa akan di peroleh si pembayar
pajak secara tidak langsung dengan tersedianya layanan publik (public service)
maupun barang – barang publik (goods service) bahkan yang tidak ikut membayar
pajakpun akan turut serta menikmati layanan publik yang dibiayai dari uang pajak.
Artinya bahwa pajak yang telah terkumpul akan dipergunakan untuk membiayai
sehingga pada akhirnya uang pajak yang telah terkumpul itu akan dikembalikan
hukum pajak materiil antara lain : Undang – Undang No 7 Tahun 1983 sebagaimana
telah di ubah terakhir dengan undang- Undang No 17 Tahun 2000 tetang Pajak
Barang dan Jasa dan Pajak penjualan atas Barang Mewah (PPN dan Ppn BM ),
tentang Bea Perolehan Hak atas Tanah dan atau Bangunan. Sedangkan untuk hukum
pajak formilnya di atur dalam Undang –Undang No 6 Tahun 1983 sebagaimana telah
Pajak Penghasilan (PPh) adalah pajak yang dikenakan terhadap Subjek Pajak
Penghasilan yang diterima atau di perolehnya dalam suatu tahun pajak. Peraturan
selfassessment.(Resmi, 2014)
Dasar hukum pajak penghasilan adalah Undang – Undang No.7 Tahun 1983
yang telah di sempurnakan dengan Undang – Undang No.7 Tahun 1991, Undang –
Undang No.10 Tahun 1994, Undang –Undang No.17 Tahun 2000, Undang - Undang
No.36 Tahun 2008, dan yang terbaru yaitu Peraturan Menteri Keuangan Republik
1. Orang Pribadi
14
2. Warisan yang belum terbagi sebagai satu kesatuan menggantikan yang berhak
organisasi social politik, atau organisasi lainnya, lembaga, dan benduk badan
kemampuan ekonimis yang diterima atau di peroleh Wajib Pajak, baik yang berasal
dari Indonesia maupun luar Indonesia, yang dapat dipakai ubtuk konsumsi atau
menambah kekayaan Wajib Pajak yang bersangkutan, dengan nama dan dalam bentuk
1. Penggantian atau imbalan berkenaan dengan pekerjaan atau jasa yang diterima
3. Laba usaha;
pengembalian utang;
7. Deviden;
9. Sewa;
11. Keuntungan karena pembebasan utang, kecuali sampai dengan jumlah tertentu
15. Iuran;
16. Tambahan kekayaan netto yang berasal dari penghasilan yang belum di
kenakan pajak;
4. Penghasilanlain-lain;
16
1. Bantuan atau sumbangan bagi pihak yang menerima bukan merupakan objek
2. Zakat yang di terima Baziz / Laziz yang di sahkan oleh pemerintah bukan
3. Harta hibah bukan merupakan penghasilan, asalkan yang menerima harta hibah
tersebut adalah :
b. Badan Keagamaan.
c. Badan Pendidikan.
d. Badan Sosial.
e. Pengusaha Kecil.
4. Warisan
5. Harta termasuk setoran tunai yang diterima sebagai pengganti saham atau
11. Bagian laba yang diterima atau diperoleh anggota dari perseroan komanditer
17
12. Penghasilan yang diterima atau diperoleh perusahaan modal ventura berupa
13. Beasiswa
14. Sisa lebih yang diterima atau diperoleh badan atau lembaga nirlaba yang
pengembangan.
15. Bantuan atau santunan yang dibayarkan oleh Badan Penyelenggara Jaminan
1. Pph pasal 21 adalah pajak atas penghasilan berupa gaji, upah, honorium,
tunjangan dan pembayaran lain dengan nama dan dalam bentuk apapun
sehubungan dengan pekerjaan atau jabatan, jasa, dan kegiatan yang dilakukan
oleh orang pribadi Subjek Pajak dalam negeri, sebagaimana dimaksud dalam
2. Pph pasal 22, yaitu pajak yang dipungut oleh bendaharawan pemerintah, baik
3. Pph pasal 23, yaitu pajak yang di potong atas penghasilan yang diterima atau
diperoleh Wajib Pajak dalam negeri (orang pribadi maupun badan) dan Bentuk
18
Pasal 21, yang dibayarkan atau terutang oleh badan pemerintah, subjek pajak
4. Pph pasal 24, yaitu pajak yang dibayar atau terhutang di luar negeri atas
penghasilan dari luar negeri yang diterima wajib pajak dalam negeri.
5. Pph pasal 25, yaitu angsuran PPh yang harus dibayar sendiri oleh Wajib Pajak
6. Pph pasal 26 adalah pajak atas penghasilan berupa gaji, upah, honorium,
tunjangan dan pembayaran lain dengan nama dan dalam bentuk apapun
sehubungan dengan pekerjaan atau jabatan, jasa, dan kegiatan yang dilakukan
oleh orang pribadi Subjek Pajak luar negeri, sebagaimana dimaksud dalam
7. Pph pasal 29, yaitu pajak kurang dibayar yaitu apabila pajak yang terhutang
untuk suatu tahun pajak lebih besar dari pada kredit pajak sebagaimana di
8. Pph Final yaitu pajak penghasilan yang pengenaannya sudah fnal (berakhir),
Secara teoritis dikenal berbagai macam tarif pajak yang dapat diterapkan yaitu:
1. Tarif Tetap
Tarif tetap adalah suatu tarif yang berupa suatu jumlah atau angka yang tetap,
2. Tarif Proporsional
3. Tarif Progresif
Tarif Progresif adalah tarif berupa presentase tertentu yang makin meningkat
4. Tarif Degresif
Tarif Degresif adalah tariff berupa presentase tertentu yang makin meningkat
makin menurun.
membantu atau mendukung dalam membuat rancangan sistem yang baru, agar sistem
analis dapat mendesain model dari sistem informasi yang akan dibuat. Salah satu
pemodelan yang saat ini paling banyak digunakan adalah UML. UML (Unified
Modeling Language) adalah salah standar bahasa yang banyak digunakan di dunia
mengembangkan sistem berorientasi objek dan juga merupakan alat untuk mendukung
pengembangan sistem.”
informasi yang akan dibuat. Use case digunakan untuk mengetahui fungsi apa saja
yang ada di dalam sistem informasi dan siapa saja yang berhak menggunakan fungsi-
fungsi tersebut.
uc contoh
«include» «extend»
«include»
Use Case5
Use Case1
Actor1
«include»
Use Case3
act contoh
User Sistem
start
Selesai
mendeskripsikan waktu hidup objek dan pesan yang dikirimkan dan diterima antar
objek.
D. Deployment Diagram
terdiri dari serangkaian level yang mengalir dari atas kebawah yang menggambarkan
sistem yang lebih detail. Diagram HIPO dirancang sebagai alat bantu dan alat
untuk menyelesaikan suatu masalah/problem. Selain itu diagram ini juga digunakan
perusahaan.
23
2013 Google mengumumkan bahwa Android Studio menjadi IDE resmi untuk
2.5.4 Java
Walaupun google telah resmi mendukung c++ dan baru-baru ini kotlin, tetap
saja java jadi primadona untuk para developer android. Ini dikarenakan library java
PEMBAHASAN
Untuk mempermudah dalam proses penghitungan PPN, PPh 23 dan PPh Pasal 4
ayat 2. Penulis mencoba membuat aplikasi berbasis android yang berguna untuk
menghitung nilai tagihan yang dikenakan PPN, PPh 23 dan PPh Final Aplikasi ini juga
Final, Tentang
25
26
Jumlah : 1 activity
(PPN)
Sumber : FormMenuAwal
Nilai (PPN)
Media : Screen
Jumlah : 1 activity
23 (PPh 23)
Sumber : FormMenuAwal
Media : Screen
Jumlah : 1 activity
27
Sumber : FormMenuAwal
Media : Screen
Jumlah : 1 activity
tentang aplikasi
Media : Screen
Jumlah : 1 activity
mudah dalam menentukan form-form apa saja yang dibutuhkan untuk membangun
sebuah aplikasi.
3.2.4 HIPO
1. Menu Utama
Akronim : MenuUtama
Index :-
2. PPN
berdasarkan DPP.
Index :-
31
3. PPh 23
berdasarkan DPP.
Index :-
4. PPh Final
Index :-
5. Tentang
Akronim : Tentang
Index :-
User Sistem
Mulai
Memilih Menu
Tampil From
Input DPP
Input DPP
Klik Memprose
Calculate Perhitungan
Menampilkan
Hasil Hitung
Tampil
Deskripsi
Applikasi
Kembali
End'
uc Use Case
«extend» «include»
Reset
«extend»
PPh 23 Input DPP Inv Proses Hitung Tampil Form Hasil
«extend» «extend» «include»
«extend» «include»
«extend»
Reset
Menu Utama
Actor
«extend»
PPh Final Input DPP Inv Proses Hitung Tampil Form Hasil
«extend» «extend» «include»
«extend» «include»
«extend»
Reset
Tampil Tentang
Tentang
«extend» Aplikasi
sd Sequence
User
MenuUtama Menu PPN Menu PPh 23Menu PPh Final Menu Tentang Proses Hitung Perhitungan Info
Masukkan DPP()
Menampilkan Hasil
Perhitungan PPh 23()
[UnChecked]
get PPh 23(PPh 23, Total)
Menampilkan Hasil
Perhitungan PPh 23()
Masukkan DPP()
Menampilkan Hasil
Perhitungan PPh Final()
[Unchecked]
get PPh Final(PPh 23, Total)
Menampilkan Hasil
Perhitungan PPh Final()
get Info()
Menampilakn Informasi()
deployment Deployment
Aplikasi Android
TaxCal.Apk
«deploy»
«executionEnvironment»
Android
«device»
User Smartphone
3.3. Implementasi
pembuatan aplikasi ‘TaxCal’ perhitungan PPN, PPh Pasal 23 dan PPh Final berbasis
Android adalah :
(software) yang digunakan dalam mengeksekusi program aplikasi serta system operasi
yang digunakan dalam mengeksekusi program aplikasi serta sistem operasi yang akan
untuk menjalankan aplikasi ‘TaxCal’ perhitungan PPN, PPh Pasal 23 dan PPh Final
berbasis mobile :
PENUTUP
4.1. Kesimpulan
aplikasi ‘TaxCal’ perhitungan PPN, PPh Pasal 23 dan PPh Final. Adapun kesimpulan
sebagai berikut :
1. Program ini mengandung informasi tentang apa itu PPN, PPh Pasal 23 dan PPh
Final
4.2. Saran
banyak kekurangan, oleh karena itu perlu pengembangan lebih lanjut agar system ini
lebih bermanfaat dan menarik bagi pengguna. Adapun penelitian selanjutnya ada
1. Untuk kedepannya aplikasi ini bisa menghitung jenis pajak lain seperti : PPh
Pasal 21, PPh Pasal 26, Pajak Kendaraan Bermotor, dan lain-lain
41
DAFTAR PUSTAKA
B. Ilyas, W., & Burton, R. (2015). Hukum Pajak (6th ed.). Salemba Empat.
1–6.
Guntoro. (2019). Android Studio Mastery (M. Putri, ed.). Badoy Studio.
Prof. Dr. Mardiasmo, MBA., A. (2016). Perpajakan (2016th ed.). ANDI Yogyakarta.
Resmi, S. (2014). Perpajakan : Teori dan Kasus (8th ed.; M. Masykur, ed.). Salemba
Empat.
42
DAFTAR RIWAYAT HIDUP
A. Biodata Mahasiswa
Nim : 11161803
Agama : Islam
Jawa Barat
Email : rosvianty24@gmail.com
Telepon : 089679669945
B. Pendidikan Formal
3 x 4 cm
Rosvianty Rahmat
43
LAMPIRAN - LAMPIRAN
<android.support.v7.widget.CardView
android:id="@+id/card1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="75dp"
android:layout_marginBottom="90dp"
android:visibility="invisible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="2dp"
android:text="Setting" />
</android.support.v7.widget.CardView>
<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="@drawable/ic_add"
app:backgroundTint="@color/colorAccent"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="@dimen/fab_margin"
android:layout_marginBottom="130dp"
android:src="@drawable/ic_setting"
android:visibility="invisible"
app:backgroundTint="#a4a4a4"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
<android.support.v7.widget.CardView
android:id="@+id/card2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="85dp"
android:layout_marginBottom="140dp"
android:visibility="invisible">
44
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="2dp"
android:text="Info" />
</android.support.v7.widget.CardView>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="@dimen/fab_margin"
android:layout_marginBottom="80dp"
android:src="@drawable/ic_info_outline_black_24dp"
android:visibility="invisible"
app:backgroundTint="#a4a4a4"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
</android.support.design.widget.CoordinatorLayout>
45
2. Form Utama (content_main.xml)
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg"
android:orientation="vertical"
android:weightSum="9">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2">
<TextView
android:id="@+id/textGrid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Tax Calculator"
android:textColor="@android:color/white"
android:textSize="40sp" />
</RelativeLayout>
<GridLayout
android:id="@+id/mainGrid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="4"
android:alignmentMode="alignMargins"
android:columnCount="2"
android:columnOrderPreserved="false"
android:padding="20dp"
android:rowCount="1">
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="8dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
46
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/lovely_time" />
<TextView
android:id="@+id/bppn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PPN"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="8dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/lovely_time" />
<TextView
android:id="@+id/bp23"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PPh 23"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="8dp"
47
app:cardElevation="8dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/lovely_time" />
<TextView
android:id="@+id/bpfinal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PPh Final"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="8dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/lovely_time" />
<TextView
android:id="@+id/bttg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tentang"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</android.support.v7.widget.CardView>
</GridLayout>
</LinearLayout>
</ScrollView>
48
3. Form PPN (activity_ppn.xml)
<android.support.v7.widget.CardView
android:id="@+id/card1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="75dp"
android:layout_marginBottom="90dp"
android:visibility="invisible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="2dp"
android:text="Setting" />
</android.support.v7.widget.CardView>
<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="@drawable/ic_add"
app:backgroundTint="@color/colorAccent"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="@dimen/fab_margin"
android:layout_marginBottom="130dp"
android:src="@drawable/ic_setting"
android:visibility="invisible"
app:backgroundTint="#a4a4a4"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
<android.support.v7.widget.CardView
android:id="@+id/card2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="85dp"
android:layout_marginBottom="140dp"
android:visibility="invisible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
49
android:padding="2dp"
android:text="Info" />
</android.support.v7.widget.CardView>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="@dimen/fab_margin"
android:layout_marginBottom="80dp"
android:src="@drawable/ic_info_outline_black_24dp"
android:visibility="invisible"
app:backgroundTint="#a4a4a4"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
</android.support.design.widget.CoordinatorLayout>
50
4. Form PPN (content_ppn.xml)
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg2"
android:orientation="vertical"
android:weightSum="10">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="2">
<TextView
android:id="@+id/PPNTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Pajak Pertambahan Nilai"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textSize="45sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="45dp"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/DPP1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_weight="0"
android:text="DPP : "
android:textColor="@android:color/black"
android:textSize="24sp" />
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/InputDpp1"
android:layout_width="match_parent"
51
android:layout_height="wrap_content"
android:hint="Masukkan Nominal"
android:textSize="18sp" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="45dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<Button
android:id="@+id/Cal1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:onClick="ppncal"
android:text="Calculate" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="45dp"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/PPN1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_weight="0"
android:text="PPN : "
android:textColor="@android:color/black"
android:textSize="24sp" />
<EditText
android:id="@+id/PPN11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:ems="10"
android:inputType="numberDecimal" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="15dp"
52
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/Total1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_weight="0"
android:text="Total : "
android:textColor="@android:color/black"
android:textSize="24sp" />
<EditText
android:id="@+id/Total11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:ems="10"
android:inputType="numberDecimal" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</ScrollView>
53
5. Form PPh 23 (activity_pph23.xml)
<android.support.v7.widget.CardView
android:id="@+id/card1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="75dp"
android:layout_marginBottom="90dp"
android:visibility="invisible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="2dp"
android:text="Setting" />
</android.support.v7.widget.CardView>
<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="@drawable/ic_add"
app:backgroundTint="@color/colorAccent"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="@dimen/fab_margin"
android:layout_marginBottom="130dp"
android:src="@drawable/ic_setting"
android:visibility="invisible"
app:backgroundTint="#a4a4a4"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
<android.support.v7.widget.CardView
android:id="@+id/card2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="85dp"
android:layout_marginBottom="140dp"
android:visibility="invisible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
54
android:padding="2dp"
android:text="Info" />
</android.support.v7.widget.CardView>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="@dimen/fab_margin"
android:layout_marginBottom="80dp"
android:src="@drawable/ic_info_outline_black_24dp"
android:visibility="invisible"
app:backgroundTint="#a4a4a4"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
</android.support.design.widget.CoordinatorLayout>
55
6. Form PPh 23 (content_pph23.xml)
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg2"
android:orientation="vertical"
android:weightSum="10">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="2">
<TextView
android:id="@+id/PPh23Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Pajak Penghasilan Pasal 23"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textSize="45sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="45dp"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/DPP2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_weight="0"
android:text="DPP : "
android:textColor="@android:color/black"
android:textSize="24sp" />
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/InputDpp2"
android:layout_width="match_parent"
56
android:layout_height="wrap_content"
android:hint="Masukkan Nominal"
android:textSize="18sp" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Kena Pajak Pertambahan Nilai" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="15dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<Button
android:id="@+id/Cal2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="pph23cal"
android:text="Calculate" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/PPN2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_weight="0"
android:text="PPN : "
android:textColor="@android:color/black"
android:textSize="24sp" />
<EditText
android:id="@+id/PPN22"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:ems="10"
android:inputType="numberDecimal" />
57
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/PPh23"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_weight="0"
android:text="PPh 23 : "
android:textColor="@android:color/black"
android:textSize="24sp" />
<EditText
android:id="@+id/PPh232"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:ems="10"
android:inputType="numberDecimal" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/Total2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_weight="0"
android:text="Total : "
android:textColor="@android:color/black"
android:textSize="24sp" />
<EditText
android:id="@+id/Total22"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:ems="10"
android:inputType="numberDecimal" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</ScrollView>
58
7. Form PPh Final (activity_pphfinal.xml)
<android.support.v7.widget.CardView
android:id="@+id/card1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="75dp"
android:layout_marginBottom="90dp"
android:visibility="invisible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="2dp"
android:text="Setting" />
</android.support.v7.widget.CardView>
<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="@drawable/ic_add"
app:backgroundTint="@color/colorAccent"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="@dimen/fab_margin"
android:layout_marginBottom="130dp"
android:src="@drawable/ic_setting"
android:visibility="invisible"
app:backgroundTint="#a4a4a4"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
<android.support.v7.widget.CardView
android:id="@+id/card2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="85dp"
android:layout_marginBottom="140dp"
android:visibility="invisible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
59
android:padding="2dp"
android:text="Info" />
</android.support.v7.widget.CardView>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="@dimen/fab_margin"
android:layout_marginBottom="80dp"
android:src="@drawable/ic_info_outline_black_24dp"
android:visibility="invisible"
app:backgroundTint="#a4a4a4"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
</android.support.design.widget.CoordinatorLayout>
60
8. Form PPh Final (content_pphfinal.xml)
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg2"
android:orientation="vertical"
android:weightSum="10">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="2">
<TextView
android:id="@+id/PPhFinalTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Pajak Penghasilan Pasal Final"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textSize="45sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="45dp"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/DPP3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_weight="0"
android:text="DPP : "
android:textColor="@android:color/black"
android:textSize="24sp" />
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/InputDpp3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Masukkan Nominal"
61
android:textSize="18sp" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<CheckBox
android:id="@+id/checkBox3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Kena Pajak Pertambahan Nilai" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="15dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<Button
android:id="@+id/Cal3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="pphfinalcal"
android:text="Calculate" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/PPN3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_weight="0"
android:text="PPN : "
android:textColor="@android:color/black"
android:textSize="24sp" />
<EditText
android:id="@+id/PPN33"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:ems="10"
android:inputType="numberDecimal" />
</LinearLayout>
</RelativeLayout>
62
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/PPhFinal3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_weight="0"
android:text="PPh Final : "
android:textColor="@android:color/black"
android:textSize="24sp" />
<EditText
android:id="@+id/PPhFinal33"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:ems="10"
android:inputType="numberDecimal" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/Total3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_weight="0"
android:text="Total : "
android:textColor="@android:color/black"
android:textSize="24sp" />
<EditText
android:id="@+id/Total33"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:ems="10"
android:inputType="numberDecimal" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</ScrollView>
63
9. Form Tentang (activity_tentang.xml)
<android.support.v7.widget.CardView
android:id="@+id/card1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="75dp"
android:layout_marginBottom="90dp"
android:visibility="invisible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="2dp"
android:text="Setting" />
</android.support.v7.widget.CardView>
<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="@drawable/ic_add"
app:backgroundTint="@color/colorAccent"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="@dimen/fab_margin"
android:layout_marginBottom="130dp"
android:src="@drawable/ic_setting"
android:visibility="invisible"
app:backgroundTint="#a4a4a4"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
<android.support.v7.widget.CardView
android:id="@+id/card2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="85dp"
android:layout_marginBottom="140dp"
android:visibility="invisible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
64
android:padding="2dp"
android:text="Info" />
</android.support.v7.widget.CardView>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="@dimen/fab_margin"
android:layout_marginBottom="80dp"
android:src="@drawable/ic_info_outline_black_24dp"
android:visibility="invisible"
app:backgroundTint="#a4a4a4"
app:elevation="6dp"
app:pressedTranslationZ="12dp" />
</android.support.design.widget.CoordinatorLayout>
65
10. Form Tentang (content_tentang.xml)
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
android:orientation="vertical">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="@string/InfoPajak" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</ScrollView>
66
11. Class Utama (MainActivity.java)
package com.tax.Tax_Calculator;
import android.content.Intent;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.TextView;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fab_open =
AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fab_open);
fab_close = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fab_close);
rotate_forward =
AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.rfwd);
rotate_backward =
AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.rbwd);
card_open = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.card_open);
card_close = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.card_close);
PPN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,
ppn.class);
startActivity(intent);
}
});
67
PPh23.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,
pph23.class);
startActivity(intent);
}
});
PPhFinal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,
pphfinal.class);
startActivity(intent);
}
});
Tentang.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,
tentang.class);
startActivity(intent);
}
});
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
animateFAB();
}
});
fab1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "Info",
Toast.LENGTH_SHORT).show();
}
});
fab2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "Setting",
Toast.LENGTH_SHORT).show();
}
});
}
69
12. Class PPN (ppn.java)
package com.tax.Tax_Calculator;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.text.NumberFormat;
import java.util.Locale;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ppn);
fab_open = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fab_open);
fab_close = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fab_close);
rotate_forward =
AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.rfwd);
rotate_backward =
AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.rbwd);
card_open = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.card_open);
card_close = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.card_close);
fab.setOnClickListener(new View.OnClickListener() {
70
@Override
public void onClick(View view) {
animateFAB();
}
});
fab1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(ppn.this,
"Info",Toast.LENGTH_SHORT).show();
}
});
fab2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(ppn.this, "Setting",
Toast.LENGTH_SHORT).show();
}
});
try {
nilai = Double.parseDouble(edit_angka.getText().toString());
} catch (Exception ex) {
Toast.makeText(this, "Masukkan Nominal",
Toast.LENGTH_SHORT).show();
}
72
13. Class PPh 23 (pph23.java)
package com.tax.Tax_Calculator;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.text.NumberFormat;
import java.util.Locale;
EditText edit_angka;
Button btnpph23;
TextView hasilpph23, totalpph23, nomppn;
CheckBox ppn;
Locale localeID = new Locale("in", "ID");
double nilai;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pph23);
fab_open = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fab_open);
fab_close = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fab_close);
rotate_forward =
AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.rfwd);
rotate_backward =
AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rbwd);
card_open = AnimationUtils.loadAnimation(getApplicationContext(),
73
R.anim.card_open);
card_close = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.card_close);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
animateFAB();
}
});
fab1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(pph23.this, "Info",
Toast.LENGTH_SHORT).show();
}
});
fab2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(pph23.this, "Setting",
Toast.LENGTH_SHORT).show();
}
});
}
try {
nilai = Double.parseDouble(edit_angka.getText().toString());
} catch (Exception ex) {
Toast.makeText(this, "Masukkan Nominal",
Toast.LENGTH_SHORT).show();
}
if (ppn.isChecked()) {
double nppn = nilai * 0.10;
nomppn.setText(NumberFormat.getCurrencyInstance(localeID)
.format(nppn));
} else {
74
double nppn = 0;
nomppn.setText(NumberFormat.getCurrencyInstance(localeID)
.format(nppn));
75
14. Class PPh Final (pphfinal.java)
package com.tax.Tax_Calculator;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.text.NumberFormat;
import java.util.Locale;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pphfinal);
edit_angka = (EditText)findViewById(R.id.InputDpp3);
btnpphfinal = (Button) findViewById(R.id.Cal3);
hasilpphfinal = (TextView) findViewById(R.id.PPhFinal33);
totalpphfinal = (TextView) findViewById(R.id.Total33);
nomppn = (TextView) findViewById(R.id.PPN33);
ppn = (CheckBox)findViewById(R.id.checkBox3);
fab_open = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fab_open);
fab_close = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fab_close);
rotate_forward =
AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.rfwd);
rotate_backward =
AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.rbwd);
card_open = AnimationUtils.loadAnimation(getApplicationContext(),
76
R.anim.card_open);
card_close = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.card_close);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
animateFAB();
}
});
fab1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(pphfinal.this, "Info",
Toast.LENGTH_SHORT).show();
}
});
fab2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(pphfinal.this, "Setting",
Toast.LENGTH_SHORT).show();
}
});
}
try
{
nilai = Double.parseDouble(edit_angka.getText().toString());
} catch (Exception ex) {
Toast.makeText(this, "Masukkan Nominal",
Toast.LENGTH_SHORT).show();
}
if (ppn.isChecked()) {
double nppn = nilai * 0.10;
nomppn.setText(NumberFormat.getCurrencyInstance(localeID)
.format(nppn));
77
.format(total));
} else {
double nppn = 0;
nomppn.setText(NumberFormat.getCurrencyInstance(localeID)
.format(nppn));
78
15. Class Tentang (tentang.java)
package com.tax.Tax_Calculator;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tentang);
fab_open = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fab_open);
fab_close = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fab_close);
rotate_forward =
AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rfwd);
rotate_backward =
AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rbwd);
card_open = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.card_open);
card_close = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.card_close);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
animateFAB();
}
});
fab1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(tentang.this, "Info",
Toast.LENGTH_SHORT).show();
}
});
fab2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(tentang.this, "Setting",
Toast.LENGTH_SHORT).show();
}
});
}
79
public void animateFAB() {
if (isFabOpen) {
fab.startAnimation(rotate_backward);
fab1.startAnimation(fab_close);
fab2.startAnimation(fab_close);
card1.startAnimation(card_close);
card2.startAnimation(card_close);
fab1.setClickable(false);
fab2.setClickable(false);
isFabOpen = false;
} else {
fab.startAnimation(rotate_forward);
fab1.startAnimation(fab_open);
fab2.startAnimation(fab_open);
card1.startAnimation(card_open);
card2.startAnimation(card_open);
fab1.setClickable(true);
fab2.setClickable(true);
isFabOpen = true;
}
}
}
80