Oleh :
Abdul Aziz
2008230048
FAKULTAS TEKNIK
JAKARTA
2015
i
LEMBAR KONSULTASI TUGAS AKHIR
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS DARMA PERSADA
NIM : 2008230048
Nama : Abdul Aziz
Pembimbing : Aji Setiawan S.Kom., MMSi.
Paraf dosen
Pertemuan Ke Pembahasan
Pembimbing
1 Judul
4 Pejelasan Aplikasi
5 Koreksi Bab IV
7 Penjelasan Aplikasi
10 Acc Laporan
Disetujui oleh,
Dosen pembimbing
ii
HALAMAN PENGESAHAN
Disusun oleh :
NIM : 2008230048
iii
LEMBAR PERNYATAAN
NIM : 2008230048
Fakultas : Teknik
Menyatakan bahwa penuliasan tugas akhir ini saya susun berdasarkan hasil
literature, atau bahan-bahan referensi lain yang terkait dan relevan didalam
menyelesaikan laporan tugas akhir ini. Sebagaimana keseluruhan dan isi skripsi
Abdul Aziz
iv
LEMBAR PENGUJIAN
Laporan tugas akhir ini telah di presentasikan pada 01 September 2015 kepada:
PENGUJI 1 PENGUJI 2
v
KATA PENGANTAR
Bismillahirrahmaanirrahim,
Puji syukur saya panjatkan kehadirat Allah swt, atas segala rahmat
dan karunianya-Nya akhirnya saya dapat juga menyelesaikan laporan tugas akhir
ini dengan judul “Perancangan aplikasi knowledge base system untuk intruksi
kerja berbasis Android di PT. Kyowa Indonesia”. Penyusunan laporan tugas akhir
ini bertujuan untuk menyelesaikan program strata satu (S1) Jurusan Teknik
Informatika.
terima kasih kepada semua pihak yang telah memberikan bimbingan dan bantuan
1. Bapak Ir. Agus Sun Sugiharto, MT, selaku Dekan Fakultas Teknik Universitas
Darma Persada.
2. Bapak Adam Arif Budiman, S.T, M.Kom, selaku Ketua Jurusan Teknik
3. Ibu Timor Setiyaningsih, S.T, M.TI, selaku Pembimbing akademik yang telah
membimbing dan banyak membantu saya dalam proses kuliah selama masa
4. Bapak Aji Setiawan S.Kom., MMSi. selaku pembimbing saya yang telah
vi
5. Ibu, Ayah, Adik dan seluruh keluarga tercinta yang selalu memberikan
6. Istri saya Sulastri yang memberikan semangat dan dukungan baik moril
maupun materil.
8. Semua pihak yang tidak dapat saya sebutkan satu persatu, yang telah
Akhir kata saya berharap semoga laporan tugas akhir ini dapat bermanfaat
(Penulis)
vii
ABSTRAK
viii
DAFTAR ISI
Halaman
BAB I .................................................................................................................. 1
PENDAHULUAN ............................................................................................... 1
ix
1.6 Metodologi ............................................................................................ 4
BAB II ................................................................................................................. 9
2.5 UML.................................................................................................... 27
BAB III.............................................................................................................. 33
3.1 Analisis................................................................................................ 33
x
3.2 Perancangan System ............................................................................ 34
BAB IV ............................................................................................................. 45
IMPLEMENTASI .............................................................................................. 45
xi
4.4.10 Tampilan Halaman About ............................................................ 53
BAB V............................................................................................................... 56
5.1 Kesimpulan.......................................................................................... 56
LAMPIRAN...........................................................................................................52
xii
DAFTAR GAMBAR
Halaman
Gambar 2.2 Arsitektur System Layer Android (Wei Meng Lee, 2011).................22
xiii
Gambar 3.11 Rancangan layout halaman tampilan gambar dan tulisan................41
xiv
DAFTAR TABLE
Halaman
xv
BAB I
PENDAHULUAN
keselamatan kerja yang wajib dipatuhi oleh seluruh karyawan di PT. Kyowa
Indonesia, selama ini penyebaran informasi untuk instruksi kerja dan keselamatan
kerja di PT. Kyowa Indonesia melalui training karyawan yang diadakan oleh
pihak perusahaan untuk safety dan departemen terkait untuk instruksi kerja serta
dengan pemasangan instruksi kerja di area kerja masing-masing, hal ini sangat
tidaklah efisien terhadap waktu dan kualitas informasi yang akan berkurang
karena informasi yang didapat bukan dari sumbernya dan pekerja tidak dapat
sifat informatif dan intraktif serta dibuat pada platform Android (Open Source)
sehingga akan sangat membantu jika aplikasi ini bisa dibawa secara digital dalam
ponsel, selain itu ponsel yang berbasis Android sudah banyak dikenal oleh
berbagai kalangan baik muda ataupun tua, pekerja ataupun pelajar, karena
Android memiliki fitur tampilan yang lebih menarik dan efisien. Android
merupakan sebuah sistem operasi berbasis open source yang dikembangkan oleh
1
menciptakan aplikasi-aplikasi baru. Aplikasi-aplikasi tersebut dapat bersifat
informatif, intraktif dan dapat dibawa kemanapun sangat diperlukan oleh pekerja
berbagai macam informasi yang ada di PT. Kyowa Indonesia yaitu mengenai tata
cara dan tahapan bekerja yang baik dan benar sesuai dengan instruksi kerja yang
dilengkapi gambar dan keterangan kerja dari setiap proses kerja sebagai
penjelasan dari setiap tahapan. Aplikasi ini juga dilengkapi strukstur organisasi
departemen, area rawan keceakaan, APD (Alat Pelindung Diri), proses kerja
sample part NG serta mesin dan alat kerja yang digunakan pada setiap
departemen, dengan harapan aplikasi ini dapat bermanfaat bagi para pekerja di
setiap karyawan yang belum memahami pekerjaan yang sedang dia jalankan,
proses atau tidak mengenal jenis NG dengan baik, penyebaran informasi tentang
bahaya kecelakaan kerja pada area rawan kecelakaan, sehingga dapat menurunkan
pekerja dalam melakukan perbaikan instruksi kerja atau APD (Alat Pelindung
knowledge base system untuk instruksi kerja berbasis Android di PT. Kyowa
Indonesia” dengan harapan aplikasi ini dapat bermanfaat bagi para pekerja di PT.
Kyowa Indonesia.
2
1.2 Tujuan
1.3 Manfaat
Beberapa manfaat yang dapat diperoleh dari aplikasi ini sebagai berikut :
kerja.
3
1.4 Perumusan Masalah
1.6 Metodologi
4
berbasis android dan literatur-literatur mengenai pembuatan mobile
android.
2. Observasi
terhadap objek yang akan kita teliti. Metode ini berguna untuk
3. Wawancara
5. Desain
6. Implementasi
perusahaan internal.
7. Pengujian
5
1.6.2 Metode Membangun Sistem
Metodologi untuk membangun sistem ini mengunakan metode
waterfall
1. Analisa Sistem
2. Desain Aplikasi
Membuat desain system yang akan dibuat, dari desain awal hingga
3. Coding Program
6
Melaksanakan pengkodean atau Coding (membuat kalimat-kalimat
tersebut.
4. Testing
Pada tahap ini dilakukan pengujian sistem yang telah dibangun, dan
nantinya.
5. Penerapan
6. Pemeliharanaan
(perbaruan dari modul atau sistem operasi) baru, atau karena user
7
BAB I PENDAHULUAN
penulisan.
Bagian ini berisi mengenai beberapa teori yang relevan dengan permasalahan
Bagian ini berisikan tentang tinjauan aspek informatika berupa analisis dan desain
perancangan perangkat lunak yang terdiri dari spesifikasi kebutuhan dan deskripsi
perangkat lunak.
Bab ini berisi tentang implementasi program yang telah di hasilkan, gambaran
Bagian ini berisi mengenai kesimpulan yang dapat diambil dari penyusunan tugas
akhir, serta saran-saran penulis yang diharapkan dapat bermanfaat bagi pihak-
8
BAB II
LANDASAN TEORI
dapat dilakukan dimanapun, dan kapanpun. Hal ini karena pengetehuan yang
Pengetahuan).
KBS sendiri terdiri dari Knowledge Based (KB) dan mesin inferensi yang
berfungsi sebagai mesin pencari pengetahuan (Sajja & Akerkar, 2010). KB sendiri
dapat berupa repository pengetahuan dengan berbagai bentuk. KBS dapat berupa
9
1. Saat tidak ada pakar yang tersedia di suatu lokasi.
(ITS).
Definisi java menurut Sun Microsystem (perusahaan pemilik hak cipta java)
adalah nama untuk sekumpulan teknologi yang membuat perangkat lunak dan
jaringan/internet. java berdiri di atas sebuah mesin intepreter yang diberi nama
java Virtual Machine (JVM). JVM inilah yang akan membaca bytecode dalam
file.class dari suatu program sebagai representasi langsung program yang berisi
bahasa mesin. Oleh karena itu bahasa java disebut sebagai bahasa pemrograman
yang portable, karena dapat dijalankan pada berbagai sistem operasi, asalkan pada
10
Pada tahun 2009 Oracle membeli Sun Microsystem yang berakibat secara
tidak langsung java menjadi milik oracle secara penuh . java resmi diakuisi pada
27 Januari 2010.
Karakteristik java :
1. Sederhana
Sintaks java seperti sintaks pada C++ tetapi sintaks java tidak
overloading, class virtuall base, dan yang lainnya. Jika mengenal C++
mudah.
berorientasi objek pada java pada dasarnya adalah sama dengan C++.
perbedaan utama antara java dengan C++ terletak pada penurunan berganda
3. Portabel
11
Sebagai contoh, aplikasi java yang dapat berjalan di windows maka juga
dapat berjalan dengan baik di sistem operasi linux dan mac. Dengan hanya
Platform java terdiri dari sekumpulan library, compiler, debugger dan alat
lain yang dipaket dalam java development kit (JDK). Agar sebuah program java
dapat dijalankan, maka file dengan ekstensi .java harus dikompilasi menjadi file
java. JRE terdiri dari JVM dan pustaka java yang digunakan.
12
KVM (K Virtual Machine) adalah : sebuah subset dari java virtual
berukuran kecil atau lebih dikenal dengan perangkat CLDC (Connected Limited
penggunaan memorinya diatas +2MB atau lebih dikenal dengan perangkat CDC
merupakan pusat dari CVM dan KVM dan meliputi J2ME, J2SE dan J2EE
dengan penerapan pada banyak perangkat dan cakupan support memori yang luas
2.3 Android
dipergunakan sebagai pengelola sumber daya perangkat keras, baik untuk ponsel,
smartphone dan juga PC tablet. Secara umum Android adalah platform yang
mereka sendiri yang digunakan oleh berbagai piranti bergerak. Telepon pertama
yang memakai sistem operasi Android adalah HTC Dream, yang dirilis pada 22
Oktober 2008. Pada penghujung tahun 2009 diperkirakan di dunia ini paling
kehadirannya pada 9 Maret 2009, Android telah hadir dengan versi 1.1, yaitu
13
apalikasinya, seperti jam alrm, voice search, pengiriman pesan dengan Gmail, dan
pemberitahuan email.
perubahan dan perbaikan. Dan yang paling menarik adalah versi keluaran Android
a. Versi 1.5 bernama Cupcake yang dirilis pada April 30, 2009
b. Versi 1.6 bernama Donut yang dirilis pada September 15, 2009
c. Versi 2.0–2.1 bernama Eclair yang dirilis pada October 26, 2009
d. Versi 2.2 bernama Froyo yang dirilis pada May 20, 2010
g. Versi 3.1 bernama Honeycomb yang dirilis pada May 10, 2011
h. Versi 3.2 bernama Honeycomb yang dirilis pada July 15, 2011
i. Versi 4.0.x bernama Ice Cream Sandwich yang dirilis pada December 16,
2011
j. Versi 4.1.x bernama Jelly Bean yang dirilis pada July 9, 2012
k. Versi 4.4 bernama Kitkat yang dirilis pada October 31, 2013
versinya yaitu :
14
Tabel 2.1 Versi dan fitur Android
Anroid
pemberitahuan email.
ke headset Bluetooth
apllet VPN.
15
VPN, Gestures, dan Text-to-speech
resolusi VWGA.)
dukungan HTML5
16
(hardware independent) accelerometer
(tergantung hardware)
berikut:
- SIP-based VoIP
- Download Manager
Honeycomb tablet
lebih baik.
- Mengambil Screenshot
- Melakukan Multitasking
17
- Menghubungi rekan hanya dengan
menggeser layar
- Private Browsing
menggunakan kabel
layar depan.[114]
18
Optimasi kinerja pada perangkat
terintegrasi
ART
19
Access Profile (MAP)
sandi (password).[118]
12 Android 6.0
Android Pay
Marshmallow
Android Marshmallow fingerprint
support
Voice controls
20
menyediakan tools dalam membangun software dan memungkinkan untuk
develop. Tidak ada lisensi atau biaya royalty untuk dikembangkan pada
pun.
bawah adalah kernel, Google menggunakan kernel Linux Versi 2.6 untuk
21
Gambar 2.2 Arsitektur System Layer Android (Wei Meng Lee, 2011)
1. Linux Kernel
Linux Kernel adalah layer di mana inti dari operating system dari
lainnya.
2. Android Runtime
Runtime ini berisi Core Libraries dan Dalvik Virtual Machine. Core
pemrograman Java.
22
3. Libraries
C/C++ yang digunakan oleh berbagai komponen yang ada pada sistem
Android.
4. Application Framework
pergantian antar – proses atau program, dan pelacakan lokasi fisik telepon.
kontak, dan lain-lain. Bagi rata-rata pengguna, lapisan inilah yang paling
praktiknya dalam membuat aplikasi android dapat juga menggunakan IDE seperti
Netbeans ataupun yang lain namun eclipse sudah menjadi standar serta paling
23
serta mendapat dukungan dari google sebagai penyedia sdk android, fitur dan
plugin yang berlimpah pada eclipse menjadikan IDE ini menjadi mudah
adalah :
1. terbuka (open),
24
3. Mudah digunakan (easy to use)
1. Folder src merupakan folder letak file sumber java (source) sebagai
3. Folder Android 2.x merupakan folder letak semua file libraries untuk
4. Folder assets merupakan folder letak semua asset raw (raw files). File-
dan gambar.
25
6. Folder drawable-hdpi merupakan folder untuk menyimpan file gambar
sedang.
10. Folder values merupakan folder berisi file XML yang berisi nilai-nilai
sebuah array.
26
11. File Android Manifest.xml merupakan file XML yang berisi segala
File manifest ini juga berisi nama dari paket java aplikasi kita,
aplikasi kita.
seperti target platform jangan sampai hilang setting yang ada pada file
ini.
2.5 UML
UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi
objek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson namun demikian
Language (UML) adalah sebuah “bahasa” yang telah menjadi standar dalam
lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem.
27
Sampai era tahun 1990 puluhan metodologi pemodelan berorientasi objek
wirfs-brock, dsb. Masa itu terkenal dengan masa perang metodologi (method war)
yang berlainan.
Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang
Pada tahun 1995 dirilis draft pertama dari UML (versi 0.8). Sejak tahun 1996
Use case adalah abstraksi dari interaksi antara system dan actor. Use
case bekerja dengan cara mendeskripsikan tipe interaksi antara user sebuah
bagaimana system akan terlihat di mata user. Sedangkan use case diagram
dan client.
28
Tabel 2.3 Simbol Use Case Diagram. (Julius,2004)
Simbol Use
Penjelasan
Case
jaringan.
29
antara use case dengan use case yang
sebelumnya.
dikirim antara objek juga interaksi antara objek, sesuatu yang terjadi pada
Connect(pno)
Create() Connection
Connect(pno)
ConnectionEshabilished()
Disconnect()
End()
Disconnected()
Destroy()
30
2.5.3 Activity Digram
juga digunakan untuk aktifitas lainnya seperti use case atau interaksi.
Keterangan Simbol
mengambil keputusan.
d. UML bisa juga berfungsi sebagai sebuah (blue print) cetak biru karena
sangat lengkap dan detail. Dengan cetak biru ini maka akan bias
31
diketahui informasi secara detail tentang coding program atau bahkan
layanan pengelolaan basis data dan melayani komputer atau program aplikasi
fungsi server basis data, dan beberapa SMBD (seperti halnya MySQL atau
32
BAB III
Bab ini berisi tentang analisis dan perancangan sistem. Analisis berisi
menggunakan UML. Diargram UML yang digunakan antara lain, Use Case
3.1 Analisis
perangkat lunak. Pada tahapan ini menganalisa kebutuhan dasar system. Analisa
berbagai macam informasi dalam kerja di PT. Kyowa Indonesia dalam bentuk
standarnya. aplikasi knowledge base system intruksi kerja berbasis android yang
terdapat pada ponsel tentunya lebih diminati, karena ukuran telepon genggam
33
yang kecil memungkinkan untuk dibawa kemana-mana sehingga dalam
mempelajari WI, OPL dan segala informasi dalam bekerja lebih mudah. Dalam
berbasis android.
system.
a. Masukan :
b. Keluaran :
1. Gambar tahapan proses, gambar mesin atau alat yang digunakan serta
sebuah aplikasi. Diagram dibuat untuk memperjelas kegiatan yang dilakukan oleh
34
3.2.1 Use Case Diagram
pekerja aplikasi dengan aplikasi Login, dimana sebelum user login maka
admin harus memasukan terlebih dahulu biodata user, adapun biodata user
di input oleh admin setelah user dinyatakan lulus dan menjadi pekerja PT.
35
Gambar 3.2 menjelaskan tentang interaksi antara user yang disebut
pekerja aplikasi dengan aplikasi menu utama intruksi kerja, saat melakukan
36
Gambar 3.4 menjelaskan tentang interaksi antara user yang disebut
pekerja aplikasi dengan aplikasi menu pilihan proses kerja, saat melakukan
knowledge base system intruksi kerja berbasis android lalu memasukan kata
nama dan kata sandi setelah berhasil LogIn pekerja memilih menu utama.
37
3.2.3 Squence Diagram
dapat melihat berbagai informasi yang berbeda dari setiap departemen yang
38
3.3 Rancangan Tampilan
harus terlebih dahulu mengisi dan login kedalam aplikasi, form login ini
dimaksutkan untuk menghindari pencurian data atau metode yang digunakan PT.
39
Gambar 3.9 Rancangan layout halaman Menu Pilihan Departemen
navigasi list view dengan pilihan Struktur organisasi, alat pelindung, area rawan
kecelakaan, proses kerja, mesin dan alat kerja dan problem part.
Pada tampilan menu pilihan Proses Kerja akan menampilkan list view
pilihan Proses Kerja adapun jumlah tombol navigasi tergantung dari departemen
user/pekerja memilih salah satu proses kerja maka akan muncul gamar, tulisan
40
dan audio yang menjelaskan mengenai proses kerja yang harus dilakukan atau
Pada tampilan Proses Kerja akan menampilkan gambar, tulisan dan audio,
android, dibutuhkan databases untuk menyimpan data-data user login. Berikut ini
a) Tabel Karyawan
telah diinput oleh admin. Berikut merupakan struktur tabel karyawan pada tabel
3.2.
41
TABEL KARYAWAN
42
Gambar 3.11 adalah gambar dari struktur dari project knowledge base
system intruksi kerja berbasis android yang secara otomatis dibuat saat membuat
project tersebut.
Berikut ini adalah penjelasan dari gambar struktur file project diatas :
a. SRC
Direktori yang berisikan Package dan Class-class java dimana kita akan
mengatur semua logika, alur program. Saat akan memberikan nama Package
untuk aplikasi pastikan nama itu benar karena nama package itulah yang nantinya
kita bisa membuat class dengan berbagai extend seperti Activity, ListActivity,
b. Gen
Berisikan file R.java dimana class R.java ini memuat id, drawable, layout,
string, style, dan lain-lain. File ini lah yang akan mengkoneksikan antara file xml
dengan Java sehingga kita dapat memanipulasi resource yang terdapat dalam
Direktori yang digunakan untuk menyimpan gambar dan gambar yang akan
disimpan dapat diatur lebih spesifik dpi nya dengan memilih xhdpi, hdpi, mdpi,
ldpi.
43
d. RAW
Biasa digunakan untuk menyimpan file sound. perlu anda ketahui saat ini
e. Layout
Berisi file xml yang mengatur tampilan dari sebuah activity. layout yang
dibuat juga dapat diatur size, ratio, orientation dan berbagai konfigurasi yang
f. Values
layout,referensi warna dengan menyimpan hexacode warna dalam sebuah file xml
yang biasa saya beri nama color.xml,`dan beberapa referensi resource lain.
g. Android Manifest.xml
version name dan version code aplikasi, Min SDK Version dan Target SDK
Version, Label dan icon aplikasi, Daftar activity yang digunakan dalam Android
44
BAB IV
IMPLEMENTASI
Pada bab ini dijelaskan mengenai implementasi sistem yang telah di rancang
ke dalam kode program dan tampilan antar muka. Dalam tahapan inmplementasi
berikut ini terdapat beberapa spesifikasi hardware dan software yang dibutuhkan
untuk mendukung jalannya aplikasi knowledge base system intruksi kerja berbasis
android.
Processor : 1 GHZ
Memory Eksternal : 1 GB
45
4.4 Tampilan Antar Muka
pengguna aplikasi, karena aplikasi ini hanya dibuat untuk pekerja di PT.
Kyowa Indonesia.
46
Gambar 4.2 Tampilan Menu Utama
pilihan dari setiap informasi yang di sediakan oleh aplikasi knowledge base
47
4.4.4 Tampilan Sub Menu Departemen
pilihan proses kerja yang terdapat di aplikasi knowledge base system intruksi
base system intruksi kerja berbasis android, menjelaskan tentang peran dan
fungsi alat pelindung diri di area kerja sebagai keamanan dalam bekerja.
48
Gambar 4.5 Tampilan Halaman Alat Pelindung Diri
NG yang terdapat pada setiap departemen berupa gambar dan tulisan pada
kerja berbasis android setiap gambar dapat di zoom hal ini dimaksutkan
49
Gambar 4.7 Zoom Tampilan Hamalan Sample Part NG
Halaman tampilan proses kerja dari sub proses kerja yang terdiri dari
gambar, tulisan dan tombol back dari aplikasi knowledge base system
50
4.4.8 Tampilan Halaman Mesin dan Alat Kerja
Halaman tampilan mesin dan alat kerja yang terdiri dari gambar,
tulisan dan tombol back yang menjelaskan tentang berbagai macam jenis
51
Gambar 4.10 Tampilan Halaman Saran
52
4.4.10 Tampilan Halaman About
sejarah singkat PT. Kyowa Indonesia dan tentang pembuat aplikasi knowledge
base system intruksi kerja berbasis android disertai tombol sebelumnya dan
1. Menurut anda apakah aplikasi knowledge base system intruksi kerja berbasis
a. Tidak butuh = 0%
53
d. Sangat butuh = 50%
a. Tidak menarik = 0%
c. Menarik = 45%
a. Sulit = 0%
b. Sedikit sulit = 0%
d. Mudah = 55%
a. Tidak ada = 0%
a. Tidak perlu = 5%
b. Perlu = 40%
Kesimpulan yang dapat diambil dari hasil responden yang telah diajukan
54
1. Aplikasi knowledge base system intruksi kerja berbasis android sangat
4. Aplikasi knowledge base system intruksi kerja berbasis android ini dirasakan
bermanfaat.
5. Aplikasi knowledge base system intruksi kerja berbasis android ini perlu
55
BAB V
5.1 Kesimpulan
memahami dari setiap pekerjaan yang ada di PT. Kyowa Indonesia secara baik
dan benar karena aplikasi knowledge base system untuk intruksi kerja berbasis
android ini terdiri dari gambar dan tulisan yang menjelaskan tentang gerakan,
sehingga akan sangat membantu jika aplikasi ini bisa dibawa secara digital dalam
ponsel sehingga setiap pekerja tidak mempunyai batasan waktu untuk melihat dan
mempelajari instruksi kerja dan semua informasi dalam aplikasi knowledge base
Selain itu ponsel yang berbasis Android sudah banyak dikenal dan
digunakan oleh berbagai kalangan baik muda ataupun tua, pekerja ataupun
pelajar, karena Android memiliki fitur tampilan yang lebih menarik dan efisien.
5.2 Saran
Berikut ini adalah saran yang dapat digunakan untuk pengembangan lebih
56
1. Sebaiknya aplikasi ini dimiliki semua pekerja PT. Kyowa Indonesi, karena
57
DAFTAR PUSTAKA
Friesen, Jeff. 2011. Learn Java for Android Development. United States of
America: Apress.
Sajja Priti, Arkerkar. 2010. Knowledge Base System. Sudbury, MA, USA: Jones
58
LAMPIRAN
1. Activity_ Image.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="206dp"
android:layout_gravity="center_vertical|right"
android:scrollbarStyle="outsideOverlay"
android:scrollbars="vertical"
android:textIsSelectable="true"
android:text="TextView" />
<TextSwitcher
android:id="@+id/textSwitcher1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TextSwitcher>
59
</LinearLayout>
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/ic_launcher" />
<Button
android:id="@+id/buttonprev"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="Sebelumnya" />
<Button
android:id="@+id/buttonnext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text="Selanjutnya" />
</RelativeLayout>
2. Activity_Main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
60
android:background="@drawable/background" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:orientation="vertical" >
<EditText
android:id="@+id/login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/login"
android:inputType="textEmailAddress" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/passwd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/passwd"
android:imeOptions="actionDone"
android:inputType="textPassword" />
<CheckBox
android:id="@+id/checkBoxSaveLogin"
android:layout_width="wrap_content"
61
android:layout_height="wrap_content"
android:text="@string/checkBoxSaveLogin" />
<Button
android:id="@+id/buttonLogin"
style="?android:attr/buttonStyleSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:text="@string/buttonLogin" />
</LinearLayout>
<ImageView
android:id="@+id/imageView1"
android:contentDescription="@string/app_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/linearLayout1"
android:layout_centerHorizontal="true" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="52dp"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
62
3. ImageActivity.java
package com.example.kyowa;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
ImageView gambar;
TextView textgambar;
int angka =0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image);
this.setTitle(SessionData.data);
gambar = (ImageView)findViewById(R.id.imageView1);
textgambar = (TextView) findViewById(R.id.textView1);
Button bnext = (Button) findViewById(R.id.buttonnext);
63
gambar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent i = new Intent (getBaseContext(), ImageViewActivity.class);
startActivity(i);
}
});
bnext.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
angka++;
if (angka >0) {
int resId = getResources().getIdentifier(result+"_"+angka,
"drawable", getPackageName());
if (resId > 0) {
SessionData.resId = resId;
gambar.setImageResource(resId);
resId = getResources().getIdentifier(result+"_"+angka,
"string", getPackageName());
String nmeee = getResources().getString(resId);
textgambar.setText(nmeee);
} else {
angka--;
}
64
}
}
});
bprev.setOnClickListener(new OnClickListener() {
@Override
gambar.setImageResource(resId);
SessionData.resId = resId;
resId = getResources().getIdentifier(result+"_"+angka,
"string", getPackageName());
String nmeee = getResources().getString(resId);
textgambar.setText(nmeee);
} else {
int resId = getResources().getIdentifier(result,
"drawable", getPackageName());
SessionData.resId = resId;
gambar.setImageResource(resId);
resId = getResources().getIdentifier(result,
"string", getPackageName());
String nmeee = getResources().getString(resId);
65
textgambar.setText(nmeee);
}
} else {
finish();
}
}
});
Bundle b = getIntent().getExtras();
result = b.getString("data");
int resId = getResources().getIdentifier(result,
"drawable", getPackageName());
gambar.setImageResource(resId);
SessionData.resId = resId;
resId = getResources().getIdentifier(result,
"string", getPackageName());
String nmeee = getResources().getString(resId);
textgambar.setText(nmeee);
}
}
4. MainActivity.java
package com.example.kyowa;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
66
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;
67
public class MainActivity extends Activity {
PackageInfo pInfo;
Button btnlogin;
CheckBox chckSave;
private TextView login,passwd;
private Map<String, String> dataIWantToSend = new HashMap<String,
String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
} catch (Exception e) {
// TODO Auto-generated catch block
}
login = (TextView)findViewById(R.id.login);
passwd = (TextView)findViewById(R.id.passwd);
btnlogin = (Button)findViewById(R.id.buttonLogin);
chckSave = (CheckBox)findViewById(R.id.checkBoxSaveLogin);
btnlogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
signIn(login.getText().toString(),passwd.getText().toString());
68
}
});
login.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
});
passwd.setText(prefs.getString("passwd", ""));
chckSave.setChecked(true);
btnlogin.setEnabled(true);
}
}
69
btnlogin.setClickable(false);
dataIWantToSend.put("nama", login);
dataIWantToSend.put("nik", passwd);
new MyAsyncTaskClientLogin().execute(SessionData.server+"login.php");
}
private void readyToLogin() {
btnlogin.setText("Sign In");
btnlogin.setClickable(true);
}
private void loggedIn(String result) {
editor.clear();
editor.commit();
}
Bundle b = new Bundle();
b.putString("data", "mainmenu");
SessionData.data = "Menu Utama";
70
private String postData(String hostTarget) {
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
HttpEntity httpEntity = response.getEntity();
xml = EntityUtils.toString(httpEntity);
} catch (ClientProtocolException e) {
}
private class MyAsyncTaskClientLogin extends AsyncTask<String, Integer,
String>{
@Override
71
protected String doInBackground(String... params) {
}
return result;
}
JSONObject jsonResponse;
String xtError = null, xtNik = null, xtNama = null;
try {
jsonResponse = new JSONObject(result);
/***** Returns the value mapped by name if it exists and is a JSONArray. ***/
/******* Returns null otherwise. *******/
72
/******* Fetch node values **********/
xtError = jsonChildNode.optString("error").toString();
xtNama = jsonChildNode.optString("nama").toString();
xtNik = jsonChildNode.optString("nik").toString();
try {
SessionData.nama = xtNama;
SessionData.nik = xtNik;
} catch (Exception e) {}
}
} catch ( Exception e) {
}
try{
if (xtError.contentEquals("")) {
loggedIn(result);
} else {
Toast.makeText(getApplicationContext(), xtError,
Toast.LENGTH_SHORT).show();
}
} catch (Exception e){}
} else Toast.makeText(getBaseContext(),
getResources().getString(R.string.networkProblem),
Toast.LENGTH_SHORT).show();
readyToLogin();
}
protected void onProgressUpdate(Integer... progress){
}
}
}
73