PENGEMBANGAN APLIKASI SISTEM PERIODIK UNSUR KIMIA PADA PONSEL MENGGUNAKAN J2ME
Oleh : KIKI RIZKY MUSLIMUN SINAGA 203091001969
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2010 / 1431 H
i
PENGEMBANGAN APLIKASI SISTEM PERIODIK UNSUR KIMIA PADA PONSEL MENGGUNAKAN J2ME
Skripsi Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh : KIKI RIZKY MUSLIMUN SINAGA 203091001969
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2010 / 1431 H
ii
PENGEMBANGAN APLIKASI SISTEM PERIODIK UNSUR KIMIA PADA PONSEL MENGGUNAKAN J2ME
Skripsi
Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer Pada Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh : KIKI RIZKY MUSLIMUN SINAGA 203091001969
Menyetujui,
Pembimbing I,
Pembimbing II,
Imam M. Shofi, MT NIP. 197202052008011010
Victor Amrizal, M.Kom NIP. 150411 288
Mengetahui, Ketua Program Studi Teknik Informatika
Yusuf Durrachman, M.Sc, M.IT NIP. 197202052008011010
iii
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKONOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA
Dengan ini menyatakan bahwa skripsi yang ditulis oleh : Nama
: Kiki Rezky Muslimun Sinaga
NIM
: 203091001969
Semester
: XIII ( Lima Belas )
Fakultas
: Sains dan Teknologi
Program Studi : Teknik Informatika Judul Skripsi : Pengembangan Aplikasi Tabel Periodik Unsur Kimia Pada Ponsel Menggunakan J2ME Dapat diterima sebagai syarat kelulusan untuk memperoleh gelar Sarjana Komputer pada Program Studi Teknik Informatika, Fakultas Sains dan Teknologi, Universitas Islam Negeri Syarif Hidayatullah Jakarta. Jakarta, Agustus 2010 Menyetujui,
Pembimbing I,
Pembimbing II,
Victor Amrizal, M.Kom NIP. 150411 288
Imam M. Shofi, MT NIP. 197202052008011010 Mengetahui,
Ketua Program Studi Teknik Informatika
Dekan Fakultas Sains dan Teknologi
Yusuf Durrachman, M.Sc, M.IT NIP. 197202052008011010
DR. Syopiansyah Jaya Putra, M.Sis NIP. 150 317 956
iv
PENGESAHAN UJIAN Skripsi yang berjudul “Pengembangan Aplikasi Chatting Pada Telepon Seluler Menggunakan Fasilitas Bluetooth Dengan J2ME’’ yang ditulis oleh Muhammad Zaenal Mutaqin, NIM 203091001977 telah diuji dan dinyatakan lulus dalam Sidang Munaqosyah Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta pada tanggal 26 juni 2009. Skripsi ini telah diterima sebagai salah satu syarat untuk memperoleh gelar Sarjana Strata Satu (S1) Program Studi Teknik Informatika. Jakarta,
September 2010
Penguji II,
Penguji I,
Andrew Fiade, MT NIP. 19820811 200912 1 004
Arini, MT NIP. 197661312009012001
Pembimbing I,
Pembimbing II,
Imam M. Shofi, MT NIP. 197202052008011010
Victor Amrizal, M.Kom NIP. 150411 288
Ketua Program Studi Teknik Informatika
Ketua Program Studi Teknik Informatika
DR. Syopiansyah Jaya Putra, M.Sis NIP. 150 317 956
Yusuf Durrachman, M.Sc, M.IT NIP. 197202052008011010
v
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAUPUN LEMBAGA MANAPUN.
Jakarta, Sepetember 2010
Kiki Rezky Muslimun Sinaga 203091001969
vi
ABSTRAK
Kiki Rezky Muslimun. S – 203091001969, Pengembangan Aplikasi Sistem Periodik Unsur Kimia Pada Ponsel Menggunakan J2ME. dibimbing oleh Imam M Shofi, MT dan Victor Amrizal, M.Kom Perkembanagan teknologi telepon seluler (ponsel) saat ini semangkin pesat. Ponsel tidak lagi berfungsi hanya sebagai media komunikasi saja tetapi dapat membantu sebagai media pembelajaran, contoh nya Aplikasi Sistem Periodik Unsur Kimia dimana aplikasi ini berguna untuk mempermudah siswa-siswi SMAN 8 Tangsel khusus nya kelas 10 dalam penghitungan unsur-unsur kimia. Sehingga siswa harus mengerti dan memahami benar sistem periodik ini karena jika tidak memahami dan mengerti, maka siswa dipastikan akan mengalami kendala dalam belajar kimia dasar. Pada penulisan ini akan dibahas tentang pengembangan Aplikasi Sistem Periodik Unsur Kimia Pada Ponsel dengan menggunakan metode pengembangan sistem Rapid Application Development (RAD) dengan tahapan-tahapan seperti perencanaan, perancangan, konstruksi, dan pelaksanaan. Aplikasi ini mampu menampilkan tabel periodik unsur dimana pengguna dapat melihat keterangan tabel, list unsur atom, dan tentang aplikasi. Adapun bahasa pemrograman yang digunakan untuk membuat aplikasi tersebut adalah J2ME sebagai bahasa pemrograman untuk aplikasi yang dijalankan pada telepon selular yang telah mendukung Java MIDP 2.0.
Kata Kunci: Sistem Periodik unsur,Telepon Seluler, J2ME
vii
KATA PENGANTAR
Puji syukur kehadirat Allah SWT yang telah memberikan nikmat iman, nikmat sehat jasmani dan rohani. Shalawat serta salam tak lupa penulis tujukan kepada Nabi Muhammad SAW, Nabi terakhir yang telah membimbing umatnya menuju jalan yang diridhai Allah SWT. Penulis bersyukur karena dengan izin Allah SWT, pada akhirnya penulis dapat menyelesaikan skripsi ini. Skripsi yang berjudul Pengembangan Aplikasi Sistem Periodik Unsur Kimia Pada Ponsel Menggunkan J2ME merupakan salah satu tugas wajib mahasiswa sebagai persyaratan untuk mengambil gelar Strata 1 (S1) pada program studi Teknik Informatika Universitas Islam Negeri Syarif Hidayatullah Jakarta. Penyusunan skripsi ini tidak mungkin dapat penulis laksanakan dengan baik tanpa bantuan dari berbagai pihak yang terkait. Untuk itu penulis ingin mengucapkan banyak terima kasih secara khusus kepada beberapa pihak, antara lain : 1. DR. Syopiansyah Jaya Putra, M.Sis, selaku Dekan Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta. 2. Bapak Yusuf Durrachman M.Sc MIT sebagai ketua program studi Teknik Informatika dan Ibu Viva Arifin selaku Sekretaris Program Studi Teknik Informatika yang telah banyak membantu dan memberi pengarahan kepada penulis. 3. Bpk. Imam M. Shofi, M.T dan Victor Amrizal, M.Kom selaku Dosen Pembimbing, yang telah memberikan bimbingan, waktu dan perhatiannya dalam penyusunan skripsi ini.
viii
4. Seluruh Dosen Teknik Informatika yang tidak dapat penulis sebutkan satu persatu yang telah memberikan ilmu dan bimbingannya selama penulis menyelesaikan studi di Teknik Informatika. 5. Seluruh staff Jurusan TI/SI dan staff Akademik FST yang telah membantu penulis dalam masa perkuliahan.
Penulis sadar masih banyak sekali kekurangan dari skripsi ini, dan penulis terbuka terhadap segala saran dan kritik yang membangun. Akhir kata penulis mempersembahkan skripsi ini dengan segala kelebihan dan kekurangannya, semoga dapat bermanfaat bagi kita semua, amien.
Jakarta, September 2010
Kiki Rezky Muslimun Sinaga
ix
LEMBAR PERSEMBAHAN
Skripsi ini penulis persembahkan kepada beberapa pihak yang telah memberi dukungan baik berupa dukungan moril maupun materiil, di antaranya : 1.
Keluarga besar Alm. Abu Sofyan Sinaga yaitu Papa (Alm. Abu Sofyan Sinaga) yang sangat mengharapkan untuk dapat menyaksikan saya wisuda, mama (Srihartuti), serta kakak-kakak tersayang yang tak henti-hentinya memberikan dukungan baik moril maupun materil bagi penulis dalam menjalani hidup ini.
2.
My Love Annisa Dermayanti (Queensha Nizky Arizky) yang selalu menemani penulis untuk mencari materi.
3.
Teman-teman dari Prodi Teknik Informatika angkatan 2003 (Achmad NS, Ahmad Zainul M, Asep Taufik M, Bodrex, Dodoy, Juhaeri, Upil, Odang, Yuga, Zilan, Maya, Abu, Teted, Hadi, Ozet (Thx materi dan support nya), Ahmad Syahrullah & Hira (Thx for everythings), (Monot, Tanto, Tompel, Ita, Qomar, Sultan, Adit, Taufik, Lebe) yang telah melewatkan waktu bersama selama masa kuliah.
4.
Temen-teman Kost Subuh FC depan air mancur UIN (Tile, Tommy, Camen, Heri) yang telah banyak menghibur di dalam kejenuhan dalam penyelesaian skripsi ini.
5.
Teman-teman Batik Madrim(Band) dan Fila Music Qommunity yang memberikan semangat pada penulis.
6.
Teman-teman Nursery (Putra Riadex, Yunus, Wendy) yang selalu dapat menghibur penulis.
x
Dan kepada Seluruh pihak dan teman-teman penulis yang lain yang tidak bisa disebutkan namanya satu per satu yang telah memberi dukungan kepada penulis sehingga skripsi ini dapat terselesaikan dengan baik.
Jakarta, September 2010
Penulis
xi
DAFTAR ISI Halaman Halaman Sampul ........................................................................................
i
Halaman Judul .............................................................................................
ii
Lembar Persetujuan Pembimbing ..........................................................
iii
Lembar Pengesahan Skripsi .....................................................................
iv
Lembar Pernyataan
.................................................................................
v
Abstrak .......................................................................................................
vi
Kata Pengantar ............................................................................................
vii
Lembar Persembahan
............................................................................
ix
Daftar Isi ......................................................................................................
xi
Daftar Tabel ................................................................................................
xvi
Daftar Gambar .............................................................................................
xvii
BAB I PENDAHULUAN ............................................................................
1
1.1 Latar Belakang Masalah...........................................................................
1
1.2 Perumusan Masalah ...............................................................................
2
1.3 Batasan Masalah .....................................................................................
2
1.4 Tujuan Penelitian ....................................................................................
3
1.5 Manfaat Penelitian ..................................................................................
3
1.6 Metodologi Penelitian ............................................................................
4
1.6.1 Metode Pengumpulan Informasi dan Data ................................
4
1.6.2 Metode Pengembangan Sistem .................................................
6
xii
Halaman 1.7 Sistematika Penulisan..............................................................................
7
BAB II LANDASAN TEORI ......................................................................
9
2.1 Sistem Periodik ....................................................................................
9
2.1.1 Periode ........................................................................................
10
2.1.2 Golongan .....................................................................................
11
2.1.3 Unsur Transisi dan Transisi Dalam ..............................................
12
2.1.4 Hubungan Konfigurasi Eloktron dengan Sistem Periodik.............
13
2.2 Perkemabangan Dasar Pengelompokan Unsur ......................................
14
2.2.1 Pengelompokan atas Logam dan Nonlogam ................................
15
2.2.2 Triede Dobereiner .......................................................................
15
2.2.3 Hukum Oktaf Newlands ..............................................................
16
2.2.4 Sistem Periodik Mendeleev .........................................................
16
2.2.5 Sistem Periodik Modern dari Hennry G. Moseley ........................
18
2.3 Sifat-Sifat Periodik Unsur ....................................................................
18
2.3.1 Jari-jari Atom ..............................................................................
19
2.3.2 Jari-jari Ion ..................................................................................
20
2.3.3 Energi Ionisasi.............................................................................
21
2.3.4 Energi Ionisasi Kedua, Ketiga, dan Seterusnya ............................
21
2.4 Beberapa Golongan Unsur Dalam Sistem Periodik ...............................
22
2.4.1 Golongan VIIIA (Gas Mulia) ......................................................
22
xiii
Halaman 2.4.2 Golongan VIIA (Halogen) ...........................................................
23
2.4.3 Golongan IA (Logam Alkali) .......................................................
24
2.4.4 Golongan IIA (Logam Alkali Tanah) ...........................................
24
2.4.5 Golongan B (Unsur Transisi) ......................................................
25
2.5 Pembahasan Umum Java ......................................................................
25
2.6 Java 2 Micro Edition (J2ME) ...............................................................
30
2.6.1 Sekilas Tentang J2ME .................................................................
30
2.6.2 Java Messaging ...........................................................................
32
2.6.3 J2ME Profile ...............................................................................
33
2.6.4 Kilo Virtual Machine (KVM) ......................................................
35
2.6.5 Connected Limited Device Configuration (CLDC) ......................
35
2.7 Device ponsel yang mendukung J2ME .................................................
36
2.8 Java ME SDK 3.0 ................................................................................
38
2.8.1 Fitur Utama .................................................................................
38
2.8.2 Persyaratan Sistem ......................................................................
39
2.9 Flowchart .............................................................................................
41
xiv
Halaman 2.9.1 Pengertian Flowchart .................................................................
41
2.9.2 Flowchart Materi.........................................................................
41
2.9.3 Flowchart Program......................................................................
42
2.9.4 Simbol-simbol Flowchart ...........................................................
42
2.9.5 Langkah-langkah pembuatan Flowchart ......................................
45
2.10 Pengujian Black box .........................................................................
47
2.10.1 Black box testing ......................................................................
47
BAB III METODOLOGI PENELITIAN .................................................
49
3.1 Metode Pengumpulan Data Dan Informasi ...........................................
49
3.2 Metode Pengembangan Sistem . ...............................................................
50
3.3 Alasan Menggunakan RAD ..................................................................
50
3.4 Siklus Penerapan RAD untuk mengembangkan Aplikasi Sistem Periodik Kimia ...................................................................................................
55
BAB IV ANALISA DAN PEMBAHASAN ................................................
56
4.1 Fase menentukan Tujuan dan Syarat-syarat Informasi ...........................
56
4.1.1 Tujuan Informasi . ...........................................................................
56
4.1.2 Syarat-syarat Informasi. .................................................................
57
xv
Halaman 4.1.2.1 Studi Fesibilitas .. ................................................................
57
4.1.2.2 Kelengkapan data yang digunakan .....................................
58
4.1.2.3 Kelengkapan Software yang digunakan .. ...........................
58
4.1.2.4 Kelengkapan Hardware yang digunakan ..........................
58
4.2 Fase Perancangan .....................................................................................
59
4.2.1 State Transition Diagram (STD) .................................................
59
4.2.2 Flowchart Diagram . .......................................................................
60
4.2.3 Perancangan Antarmuka . ................................................................
63
4.3 Fase Konstruksi........................................................................................
69
4.4 Fase Pelaksanaan .....................................................................................
72
4.4.1 Spesifikasi Ponsel yang digunakan . ...............................................
73
4.4.2 Transfer Aplikasi dari PC ke dalam Ponsel dan Instalasi.. .............
74
4.4.3 Pengujian Aplikasi . ........................................................................
75
4.4.3.1 Pengujian Black Box mandiri .. ...........................................
75
4.4.4 Hasil Pengujian ...........................................................................
83
4.4.4.1 Hasil Pengujian Black Box Mandiri ..................................
83
4.4.4.2 Hasil Analisis Dan Respon User ......................................
83
BAB V KESIMPULAN DAN SARAN ......................................................
86
5.1 Kesimpulan..............................................................................................
86
5.2 Saran .......................................................................................................
87
DAFTAR PUSTAKA ..................................................................................
88
Lampiran I Proses Konstruksi Program dan Hasil Tampilan Aplikasi ..........
I-1
xvi
Lampiran II Source Code ...............................................................................
II-1
Lampiran III Installasi Aplikasi ....................................................................
III-1
Lampiran IV Contoh Angket, Hasil Kuisioner dan Persentase .....................
IV-1
xvii
DAFTAR GAMBAR
Halaman Gambar 2.1 Sistem Priodik Unsur ..............................................................
8
Gambar 2.2 Jari-jari atom...........................................................................
18
Gambar 2.3 Hubungan jari-jari atom dengan nomor atom ..........................
18
Gambar 2.4 Struktur Java Platform ............................................................
30
Gambar 2.5 Struktur MIDP .......................................................................
33
Gambar 2.6 Posisi KVM pada Arsitektur J2ME .........................................
34
Gambar 2.7 Ponsel Nokia N73 ...................................................................
36
Gambar 2.8 Flowchart dasar ......................................................................
45
Gambar 3.1 Fase-fase RAD James Martin ..................................................
51
Gambar 3.2 Siklus RAD Untuk Mengembangkan Aplikasi Chatting pada Telepon Seluler Menggunakan Fasilitas Bluetooth Menggunakan J2ME ....
55
Gambar 4.1 State Transition Diagram (STD) aplikasi Sistem Periodik Unsur Kimia menggunakan J2ME..............................................................
61
Gambar 4.2 Flowchart Aplikasi Sistem Periodik Unsur Kimia ...................
62
Gambar 4.3 Rancangan Tampilan Halaman Pembuka ..................................
64
Gambar 4.4 Rancangan Tampilan Halaman Utama (kiri) ...........................
65
Gambar 4.5 Rancangan Tampilan Halaman Utama (kanan)........................
65
Gambar 4.6 Rancangan Tampilan Halaman Menu Pilihan ..........................
67
Gambar 4.7 Rancangan Tampilan Halaman Keterangan Tabel ...................
67
Gambar 4.8 Rancangan Tampilan Halaman List unsur Atom .....................
68
Gambar 4.9 Rancangan Tampilan Halaman Unsur dari List Unsur Atom ...
69
Gambar 4.10 Rancangan Tampilan Halaman Tentang...................................
69
Gambar 4.11 Tampilan Java ME Software Development Kit 3.0, open project
70
Gambar 4.12 Tampilan properties yang dibutuhkan aplikasi ......................
71
Gambar 4.13 Tampilan folder pada directory aplikasi Tabel Periodik Unsur
72
Gambar 4.14 source code pada Aplikasi Kamus Teknologi Informasi menggunakan Java ME Software Development Kit 3.0...............................
73
Gambar 4.15 Ponsel yang digunakan Nokia N73 ........................................
74
Gambar 4.16 Memulai Aplikasi pada Hand phone Nokia N73 ....................
77
Gambar 4.17 Tampilan Splash Screen . .........................................................
78
xviii
Gambar 4.18 Tampilan Tabel Periodik Unsur sebelah kiri dan kanan .........
79
Gambar 4.19 Tampilan Keterangan Unsur .................................................
80
Gambar 4.20 Tampilan Menu Pilihan .........................................................
81
Gambar 4.21 Tampilan Keterangan Tabel .................................................
81
Gambar 4.22 Tampilan List Unsur Atom ...................................................
82
Gambar 4.23 Tampilan Keterangan Unsur dari List Unsur Atom................
83
Gambar 4.24 Tampilan Tentang Aplikasi ...................................................
84
Gambar 4.25 Diagram Batang Hasil Respon User ......................................
86
Gambar I-1 Jendela Tampilan New Project, Step 1. Choose Project ...........
I-2
Gambar I-2 Jendela Tampilan New Mobile Aplication, Step 2. Name and Location....................................................................................................
I-3
Gambar I-3 Jendela Tampilan New Mobile Aplication, Step 3. Default Platform Selection.....................................................................................
I-4
Gambar I-4 Proses Build Main Project . ........................................................
I-5
Gambar I-5. Proses Run Project (PeriodikTabel) . .........................................
I-6
Gambar I-6 Tampilan nama aplikasi yang akan dijalankan .........................
I-7
Gambar I-7 Tampilan SplashScreen setelah aplikasi dijalankan. ..................
I-7
Gambar I-8 Tampilan Tabel Periodik Unsur sebelah kiri dan sebelah kanan
I-8
Gambar I-9 Tampilan Keterangan Unsur....................................................
I-8
Gambar I-10 Tampilan Menu Ketrangan Tabel dan Tampilan Keterangan Tabel.........................................................................................................
I-9
Gambar I-11 Tampilan Menu List Unsur Atom dan Tampilan List Unsur Atom .........................................................................................................
I-9
Gambar -12 Tampilan Menu Tentang dan TampilanTentang ......................
I-10
Gambar IV.1 Diagram Batang Hasil Respon User . .......................................
IV-4
xix
DAFTAR TABEL
Halaman Tabel 2.1 Tabel Periode .............................................................................
9
Tabel 2.2 Hubungan Sistem Penamaan 8 Golongan dan 18 Golongan ........
10
Tabel 2.3 Konfigurasi Elektron dan Unsur Golongan AI ............................
12
Tabel 2.4 Konfigurasi elektron unsur kedua ...............................................
13
Tabel 2.5 Tiga kelompok unsur Triede .......................................................
14
Tabel 2.6 Sistem Periodik Mendeleev ........................................................
16
Tabel 2.7 Perbandingan CLDC dengan CDC .............................................
35
Tabel 2.8 Spesifikasi ponsel Nokia N73 .....................................................
36
Tabel 2.9 Simbol-simbol flowchart ............................................................
44
Tabel 4.1 Tabel Spesifikasi Ponsel yang digunakan....................................
75
Tabel 4.2 Sebagian hasil presentase dari respon/tanggapan User ................
85
Tabel IV.1 Data Sebelum Diolah. ..................................................................
IV-4
Tabel IV.2 Hasil Persentase Data .. ................................................................
IV-4
Tabel IV-3 Hasil Persentase dari Tanggapan User . .......................................
IV-6
xx
BAB I PENDAHULUAN 1.1 Latar Belakang Sistem pendidikan sekolah di Indonesia mengacu pada sistem kurikulum berbasis kompetensi yang sesuai dengan kurikulum 2004, di mana setiap siswa diharapkan mampu menyelesaikan suatu materi pelajaran secara mandiri. Sistem Periodik Unsur yang terdapat pada pelajaran kimia yang wajib siswa – siswi SMA Negeri 8 Tangsel khususnya untuk kelas 10, dikarnakan untuk mempermudah dalam belajar kimia dasar. Sehingga siswa harus mengerti dan memahami benar sistem periodik
ini karena jika tidak memahami dan mengerti, maka siswa
dipastikan akan mengalami kendala dalam perhitungan unsur – unsur kimia. Selain dengan memberikan pengetahuan tentang unsur – unsur kimia, siswa dapat juga mengetahui struktur atom. Pada saat ini banyak perangkat lunak komputer yang dapat dijadikan sebagai media pembantu pembelajaran tersebut, namun tidak semua orang memiliki akses ke komputer. Lain halnya apabila menggunakan telepon seluler (selanjutnya disebut dengan ponsel), dimana ponsel dapat digunakan sebagai alat bantu belajar yang dimiliki oleh banyak siswa dan dapat digunakan dimana saja dan kapan saja. Untuk lebih mempermudah pembelajaran menggunakan ponsel, materi dibuat dalam bentuk software yang dapat di-install dalam
1
ponsel yang memiliki fasilitas Java. Hampir setiap ponsel keluaran terbaru telah menyertakan dukungan akan teknologi Java. Untuk itu dalam tugas akhir ini penulis akan membahas tentang pengembangan aplikasi sistem periodik unsur kimia pada ponsel menggunakan J2ME yang diharapkan dapat membantu siswa dalam memahami mata pelajaran kimia.
1.2 Perumusan Masalah Berdasarkan Latar Belakang serta indentifikasi masalah yang penulis lakukan, maka penulis merumuskan permasalahan antara lain : 1.
Bagaimana mengembangkan aplikasi sistem periodik unsur kimia pada ponsel mengguunakan J2ME?.
2.
Apakah aplikasi sistem periodik unsur kimia pada telpon seluler menggunakan J2ME dapat digunakan sebagai alat bantu siswa dalam belajar kimia dasar?
1.3
Batasan Masalah Dari beberapa permasalahan yang sudah diungkapkan di atas, penulis membatasi masalah yang akan diteliti pada pengunaan J2ME untuk membuat sistem periodik unsur kimia pada ponsel. Mata pelajaran kimia yang dipergunakan adalah mata pelajaran untuk SMA kelas 10 dan syarat minimum ponsel adalah harus sudah mendukung MIDP 2.0 dan CLDC 1.0 untuk dapat menjalankan aplikasi sistem periodik unsur kimia.
2
1.4
Tujuan Penelitian Ada beberapa maksud dan tujuan yang diharapkan bisa tercapai dari implementasi yang dilakukan, diantaranya adalah : 1.
Membuat media pembelajaran Kimia untuk siswa SMAN 8 Tangsel kelas 10 pada ponsel dengan J2ME.
2.
Untuk memperoleh pengetahuan tentang cara membuat aplikasi untuk ponsel sehingga dapat lebih dikembangkan lagi sesuai dengan kebutuhan.
3.
Memberikan alternatif cara belajar siswa SMAN 8 Tangsel dalam memahami Mata Pelajaran Kimia.
1.5
Manfaat Penelitian Sesuai dengan permasalahan dan tujuan penelitian yang telah disebutkan di atas maka manfaat penelitian dapat dirumuskan sebagai berikut : 1.
Bagi Penulis : a)
Menambah wawasan penulis tentang pemrograman Java khusunya J2ME.
b)
Untuk memenuhi salah satu syarat dalam menempuh gelar S1 (Strata 1) pada Fakultas Sains dan Teknologi Jurusan Teknik Informatika Universitas Islam Negeri Jakarta.
3
2.
Bagi Siswa : a)
Memberikan kemudahan dalam belajar khususnya Mata Pelajaran Kimia.
b) 3.
Alternatif baru dalam belajar selain media buku.
Bagi Universitas : a)
Mengetahui kemampuan mahasiswa dalam menguasai materi baik teori maupun praktek yang telah diperoleh selama masa kuliah.
b)
Mengetahui kemampuan mahasiswa dalam menerapkan ilmunya dan sebagai bahan evaluasi.
1.6
Metode Penelitian Metodologi penelitian yang digunakan dalam penyusunan skripsi ini adalah sebagai berikut :
1.6.1
Metode Pengumpulan Informasi dan Data Metode yang penulis lakukan untuk mendapatkan informasi dan data yaitu Studi Pustaka, yaitu berupa pengumpulan informasi dan data dengan cara mempelajari buku-buku referensi, e-book, dan website yang dapat dijadikan acuan pembahasan dalam masalah ini. Ada pun Studi Literatur yang digunakan penulis sebagai acuan penulisan sekripsi adalah sebuah skripsi dengan judul
4
PEMBUATAN
MEDIA
PEMBELAJARAN
RANGKAIAN
DASAR LISTRIK PADA PONSEL DENGAN J2ME yang ditulis oleh ROKHMAT. Adapun isi dari abstrak
yang terdapat pada
skripsi tersebut adalah, Pembangunan aplikasi ini bertujuan untuk membuat media pembelajaran rangkaian dasar listrik dari salah satu mata pelajaran produktif pada kurikulum Sekolah Menengah Kejuruan (SMK) atau Sekolah Menengah Umum ( SMU ) dengan menggunakan program Java. Media yang dibuat merupakan suatu tampilan pada ponsel yang
berupa modul-modul pembelajaran
rangkaian dasar listrik yang mana dalam pembuatan modulmodulnya menggunakan program Java atau lebih tepatnya dengan menggunakan Java 2 Micro Edition. Di antaranya pengertian dasar resistor, jenis-jenis resistor, rangkaian resitor, pengertian kapasitor, jenis kapasitor, dan rangkaian kapasitor. Media ini dibuat berdasarkan pada kemajuan teknologi komputer serta perubahan kurikulum yang mengacu pada kompetensi peserta didik.Media ini dibuat bertujuan untuk memudahkan peserta didik dalam memahami dan memberikan latihan mengenai rangkaian dasar listrik, modul pembelajaran ini diimplementasikan pada ponsel untuk membuat peserta didik lebih mudah dalam mempelajarinya karena tidak harus lagi membuka buku atau membawa buku kemana-mana untuk belajar, selain itu juga dapat menciptakan semangat dalam kegiatan belajar mengajar.
5
1.6.2
Metode Pengembangan Sistem Metode pengembangan sistem dalam penelitian ini penulis lakukan menggunakan empat fase berdasarkan model RAD yang dibuat oleh James Martin (Kendall & Kendall, 2003). Fase-fase dalam pengembangan aplikasi ini yaitu : 1.
Fase Perencanaan Syarat-syarat Pada fase ini dilakukan beberapa tahap yang menyangkut dengan fase perencanaan.
2.
Fase Perancangan Melakukan perancangan aplikasi Sistem Periodik Unsur Kimia, dan perancangan antarmuka aplikasi.
3.
Fase Konstruksi Dalam fase ini akan dilakukan tahap pembuatan program yang telah dirancang.
4.
Fase Pelaksanaan Melakukan pengujian perangkat lunak yang akan dibuat.
6
1.7
Sistematika Penulisan Dalam penulisan skripsi ini, pembahasan yang akan disajikan terbagi dalam lima bab, sebagai berikut :
BAB I
PENDAHULUAN Pada bab ini akan dijelaskan tentang latar belakang masalah, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan sistematika penulisan.
BAB II LANDASAN TEORI Bab ini akan menjelaskan teori yang dipakai untuk mendukung pengembangan aplikasi yang terdiri dari dasar J2ME, dasar tentang teknologi bluetooth, teori tentang paket bluetooth pada J2ME dan
Sekilas tentang Rapid Application Development
(RAD). BAB III METODOLOGI PENELITIAN Pada bab ini berisi uraian lebih rinci tentang metodologi penelitian yang meliputi metode pengumpulan data dan metode pengembangan sistem. BAB IV PENGEMBANGAN SISTEM Bab
ini
akan
menjelaskan
pengembangan
sistem
yang
menggunakan beberapa tahap pengembangan sistem yang meliputi fase menentukan tujuan dan syarat-syarat informasi, fase perancangan, fase konstruksi, dan fase pelaksanaan.
7
BAB V KESIMPULAN DAN SARAN Bab ini berisi kesimpulan terhadap seluruh penyusunan skripsi yang telah dilakukan. Saran berisi apa yang penulis perlu sarankan mengenai hal-hal yang perlu
diperbaiki dalam
pembuatan aplikasi yang dibuat.
8
BAB II LANDASAN TEORI
2.1.
Sistem Periodik
Sistem priodik unsur adalah suatu daftar unsur – unsur yang disusun dengan aturan tertentu. Semua unsur yang sudah dikenal ada dalam daftar tersebut (Drs. Micheal Purba, M.Si : 58).
Gamabar 2.1. Sistem Priodik Unsur
Sistem periodik unsur modern disusun berdasarkan nomor atom dan kemiripan sifat. Lajur – lajur horizontal disusun berdasarkan kenaikan nomor atom, sedangkan kolom vertikal disusun berdasarkan kemiripan sifat. Itulah sebabnya daftar dimulai dengan hidrogen, sebab hidrogen
9
mempunyai nomor atom 1. litium ditempatkan dibawah hidrogen karena litium mempunyai kemiripan sifat dengan hidrogen. Sebagai mana tampak dalam gambar 2.1, hidrogen diikuti oleh unsur nomor atom 2, kemudian nomor atom 3, dan seterus nya. Unsur – unsur dalam satu kolom vertikal mempunyai kemiripan sifat satu dengan yang lain (Drs. Micheal Purba, M.Si : 58).
2.1.1. Periode Lajur – lajur horizontal dalam sistem periodik disebut periode. Sistem periodik modern terdiri atas 7 periode. Jumlah unsur pada setiap sebagai berikut:
Periode 1
Jumlah Unsur 2
Nomor Atom 1–2
2
8
3 – 10
3
8
11 – 18
4
18
19 – 36
5
18
37 – 54
6
32
55 – 86
7
32
86 – 118
Tabel 2.1. Tabel Periode
Periode 1, 2, dan 3 disebut dengan periode pendek karena berisi relatif sedikit unsur, sedangakan periode 4 dan seterusnya disebut periode panjang (Drs. Micheal Purba, M.Si : 59).
10
2.1.2. Golongan Kolom – kolom vertikal dalam sistem periodik disebut golongan. Sistem perodik terdiri dari 18 kolom vertikal. Ada dua cara penamaan golongan, yaitu :
a. Sistem 8 golongan Menurut cara ini, sistem periodik dibagi menjadi 8 golongan yang masing – masing terdiri atas golongan utama ( golongan A ) dan golongan tambahan ( golongan B ). Unsur - unsur golongan B disebut juga unsur transisi. Nomor golongan ditulis dengan angka Romawi. Golongan – golongan B terletak antara golongan IIA dan IIIA. Golongan VIIIB terdiri atas 3 kolom vertikal.
b. Sistem 18 golongan Menurut cara ini, sistem periodik dibagi kedalam 18 golongan 1 sampai dengan 18, dimulai dari kolom yang paling kiri. Unsur – unsur transisi terletak pada golongan 3 – 12. 1 I A
2 II A
3 III B
4 IV B
5 V B
6 VI B
7 VII B
8 VIII B
9 VIII B
10 VIII B
11 I B
12 II B
13 III A
14 IV A
15 V A
16 VI A
17 VII A
18 VIII A
Tabel 2.2. Hubungan Sistem Penamaan 8 Golongan dan 18 Golongan
11
2.1.3. Unsur Transisi dan Transisi Dalam a. Unsur Transisi
Sebelumnya telah disebutkan bahwa unsur-unsur yang terletak pada golongan – golongan B, yaitu golongan IIIB hingga IIB (golongan 3 sampai dengan 12) disebut unsur transisi atau unsur peralihan. Unsur – unsur tersebut merupan peralihan dari golongan IIA ke golongan IIIA, yaitu unsur – unsur yang harus dialihkan hingga ditemukan unsur yang mempunyai kemripan sifat dengan golongan IIIA.
b. Unsur Transisi Dalam Dua baris unsur yang ditempatkan dibagian bawah Tabel Priodik Unsur disebut unsur transisi dalam, yaitu terdiri dari :
1. Lantanida, yang beranggotakan nomor atom 57 – 70 (14 unsur). Ke- 14 unsur ini mempunyai sifat yang mirip dengan lantanium (La), sehingga disebut lantanoida atau lantanida. 2. Aktanida, yang beranggotakan nomor atom 89 – 102 (14 unsur). Ke- 14 unsur ini sangat mirip dengan aktinium, sehingga disebut aktinoida atau aktinida.
Semua unsur transisi dalam sebenarnya menempati golongan IIIB, yaitu lantanida pada periode keenam dan aktanida pada periode ketujuh.
12
Jadi, golongan IIIB (Golongan 3) periode keenam dan periode ketujuh, masing-masing berisi 15 unsur. Unsur – unsur transisi dalam memiliki sifat – sifat yang sangat bermiripan sehingga ditemptkan dalam satu kotak (Drs. Micheal Purba, M.Si : 60).
2.1.4. Hubungan Konfigurasi Eloktron dengan Sistem Periodik
Kita telah mengetahui bahwa sifat – sifat tersebut berulang secara periodik ketika suatu unsur disusun berdasarkan massa atom atau nomor tomnya. Perhatikan dua hal berikut ini.
a. Mengapa unsur – unsur segolongan mempunyai kemiripan sifat? Seperti yang telah disebutkan, sifat – sifat unsur terjadi karena kesamaan elektron vlensi. Ternyata, unsur-unsur golongan mempunyai
elektron
valensi
yang
menunjukkan kemiripan sifat. Perhtikan
sama,
sehingga
tabel konfigurasi
elektron dan unsur glongan IA dibawah ini. Unsur H Li Na K Rb Cs Fr
Nomor atom 1 3 11 19 37 55 87
K 1 2 2 2 2 2 2
L
M
N
O
P
Q
1 8 8 8 8 8
1 8 18 18 18
1 8 18 32
1 8 18
1 8
1
Tabel 2.3. Konfigurasi Elektron dan Unsur Golongan AI
13
b. Mengapa sifat – sifat unsur berulag secara periodik? Oleh karena sistem periodik disusun berdasarkan kenaikan nomor atom, maka jumlah elektron valensi akan meningkat secara beraturan hingga mencapai 8, kemudian berulang. Perhatikan tabel konfigurasi elektron unsur periode kedua berikut. Unsur Nomor atom Kulit K Kulit L
Li
Be
B
C
N
O
F
Ne
3 2 1
4 2 2
5 2 3
6 2 4
7 2 5
8 2 6
9 2 7
10 2 8
Tabel 2.4. Konfigurasi elektron unsur kedua
Unsur berikutnya, yaitu Na (nomor atom 11) akan mempunyai 1 elektron valensi, sehingga mempunyai sifat yang mirip dengan litium, dan seterusnya. Dengan demikian dapat dijelaskan mengapa sifat – sifat tertentu dapat berulang secara periodik.
2.2.
Perkemabangan Dasar Pengelompokan Unsur Upaya pengelompokan unsur – unsur sudah dilakukan sejak lama, yaitu
sejak
jumlah
unsur
yang
dikenal
sudah cukup
banyak.
Pengelompokan yang baik akan membantu dalam mempelajari sifat-sifat unsur tersebut. Sistem perodik yang digunakan sekarang merupakan puncak dari berbagai upaya yang dilakukan para ahli (Drs. Micheal Purba, M.Si : 65).
14
2.2.1. Pengelompokan atas Logam dan Nonlogam Penggolongan unsur yang pertama dilakukan oleh Lovoisier yang mengelompokkan unsur dalam logam dan nonlogam. Pada waktu itu baru 20 jenis unsur yang dikenal. Oleh karena pengetahuan sifat-sifat unsur sederhan, unsur-unsur tersebut kelihatannya berbeda antara yang satu dengan yang lain, artinya belum terlihat adanya kemiripan antara unsur yang satu dengan unsur yang lainnya. Tentu saja pengelompokan atas logam pun masih banyak perbedaan.
2.2.2. Triede Dobereiner Pada tahun 1892, Johan Wolfgang Dobereiner, seorang profesor kimia di Jerman, mengemukakan bahwa massa atom relatif strontium sangat dekat dengan massa rata-rata dari dua unsur lain yang mirip dengan strontium, yaitu kalsium dan barium. Dobereiner juga menemukan beberapa kelompok unsur lain mempunya gejala seperti itu. Oleh karena itu, Dobereiner mengambil kesimpulan bahwa dapat dikelmpokkan kedalam kolompok-kelompok tiga unsur yang disebut triede. Triade
Ar
Kalsium
40
Stronium
88
Barium
137
Rata-rata Ar unsur pertma dan ketiga
Tabel 2.5. Tiga kelompok unsur Triede
15
2.2.3. Hukum Oktaf Newlands Pada tahun 1864, seorang ahl kimia dari inggris bernama A.R Newlands mengumumkan penemuanya yang disebut hukum oktaf. Newslads menyusun unsur berdasarkan kenaikan massa atom relatif nya. Ternyata unsur yang berselisih 1 oktaf (unsur ke-1 dan ke-8, unsur ke-2 dan unsur ke-9, dan seterusnya) menunjukkan kemiripan sifat. Daftar unsur yang disusun Newlands berdasarkan hukum oktaf diberikan pada tabel 2.2.3. Hukum oktaf Newlands ternyata berlaku untuk unsur-unsur ringan, kira-kira sampai dengan kalsium (Ar = 40). Jika dituruskan, ternyata kemiripan sifat terlalu dipaksakan. Misalnya, Ti mempunyai sifat yang cukup berbeda dengan C maupun Si.
2.2.4. Sistem Periodik Mendeleev Pada tahun 1869, seorang sarjana asal Rusia bernama Dimitri Ivanovich Mendeleev, berdasarkan pengamatannya terhadap 63 unsur yang sudah dikenal ketika itu, menyimpulkan bahwa sifat-sifat unsur adalah fungsi periodik dari massa atom relatifnya. Artinya, jika unsurunsur disusun berdasarkan kenaikan massa atom relatifnyas, maka sifat akan berulang secara periodik. Mendeleeve menempatkan unsur-unsur yang mempunyai kemiripan dalam satu jalur vertikal, yang disebut golongan, dan menyusun unsur-unsur itu berdasarkan kenaikan massa atom relatifnya dalam satu jalur horizontal, yang disebut periode. Daftar
16
periodik Mendeleev yang dipublikasikan tahun 1872 diperlihatkan pada Tabel 2.6. Periode
Gol. I
1
H=1
2
Li = 7
3 4
Gol. II
Gol. III
Be = 9,2
B = 11
Na = 23
Mg = 24
Al = 27,3
K = 39
Ca = 40
- = 44
5
(Cu = 63)
Zn = 65
- = 68
6
Rb = 85
Sr = 87
7
(Ag = 108)
Cd = 112
Gol. IV
C = 12
Gol. V
Gol. VI
Gol. VII
Gol. VIII
N = 14
O = 16
Si = 28
P = 31
S = 32
F = 19 Cl = 35,5
Ti = 48
V = 51
Cr = 52
Mn = 55
- = 72
As = 75
Se = 78
Br = 80
?Yt = 88
Zr = 90
Nb = 94
Mo = 96
- = 100
In = 113
Sn = 118
Sb = 122
Te = 125
J = 127
-
----Os = 195, Ir = 197
F = 56, Co = 59 Ru = 104, Rh = 104 Pd = 106, Ag = 108
8
Cs = 133
Ba = 137
?Di = 138
-
-
-
9
(-)
-
-
-
-
-
10
-
-
?Er = 178
?La = 180
Ta = 182
W = 184
-
11
(Au = 199)
Hg = 200
Ti = 204
Pd = 207
Bi = 208
-
-
12
-
-
-
Th = 231
-
U = 204
-
Pt = 198, Au = 199
----
Tabel 2.6. Sistem Periodik Mendeleev
Sebagaimana
dapat
dilihat
pada
Tabel
2.6.
Mendeleev
mengesongkan beberapa tempat. Hal itu dilakukan untuk menetapkan kemiripan sifat dalam golongan. Mendeleev menempatkan Ti (Ar = 48) pada golongan IV dan membiarkan golongan III kosong, karena Ti lebih mirip dengan C dan Si, dari pada dengan B dan AI. Mendeleev yakin masih ada unsur yang belum dikenal, yang letaknya berdampingan baik secara mendatar maupun tegak. Ketika unsur yang diramalkan itu ditemukan, ternyata sifatnya sangat sesuai dengan ramalan Mendeleev. Salah satu contoh adalah germanium (Ge) yang ditemukan pada tahun 1886, yang oleh Mendeleev pada awalnya dinamai ekasilikon.
17
2.2.5. Sistem Periodik Modern dari Hennry G. Moseley Pada awal abad 20, setelah pertemuan
nomor atom, Henry
Moseley menunjukan bahwa urut-urutan unsur dalam sistem periodik Mendeleev sesuai dengan kenaikan nomor atomnya. Penempatan telurium (Ar = 128) dan iodin (Ar = 127) yang tidak sesuai dengan kenaikan massa atom relatif, ternyata sesuai dengan kenaikan nomor atomnya (nomor atom Te = 52 ; I = 53).
2.3.
Sifat-Sifat Periodik Unsur Sifat periodik adalah sifat yang berubah secara beraturan sesuai dengan kenaikan nomor atom, yaitu dari kiri ke kanan dalam satu periode, atau dari atas kebawah dalam satu golongan. Sifat-sifat periodik yang akan dibahas meliputi jari-jari atom, energi ionisasi, afinitas elektron, keelektronegtifan, titik cair, serta titik didih.
18
2.3.1. Jari-jari Atom Jari-jari atom adalah jarak dari inti hingga kulit elektron terluar (lihat Gambar 2.2.)
Gambar 2.2. Jari-jari atom
Hubungan jari-jari atom dengan nomor atom ditunjukkan pada Gambar 2.2.
Gambar 2.3. Hubungan jari-jari atom dengan nomor atom
Pada gambar 2.3. kecenderungan jari-jari atom dalam sistem periodik. Dari gambar tesebut dapat disimpulkan kecenderungan jari-jari atom sebagai berikut .
a. Dari atas ke bawah dalam satu golongan, jari-jari atom semangkin besar. b. Dari kiri ke kanan dalam satu periode, jari-jari atom semangkin kecil.
Besar kecilnya jari-jari atom terutama ditentukan oleh faktor, yaitu jumlah kulit dan muatan inti. Semangkin banyak kulit atom akan menyebabkan bertambahnya jari-jari atom. Sebaliknya, semangkin besar muatan inti, semangkin kuat gaya tarik terhadap elektron dan menyebabkan berkurangnya jari-jari atom. Dalam satu golongan, terlihat bahwa pengaruh jumlah kulit lebih menentukan. Dari atas kebawah jumlah kulit bertambah sehingga mengakibatkan pertambahan jari-jari atom. Dalam satu periode, jumlah kulit sama, tapi muatan inti semangkin besar. Akibatnya, gaya tarik inti bertambah sehingga jari-jari atom semangkin kecil.
2.3.2. Jari-jari Ion Ion (tunggal) dapat terbentuk dari atom netralnya karena pelepasan atau penyerapan elektron. Ion positif (kation) terjadi karena pelepasan elektron, sedangkan ion negatif (anion) terjadi karena penyerapan elektron.
20
Ion mempunyai jari-jari yang berbeda secara nyata (signifikan) jika dibandingkan dengan jari-jari atom netralnya. Ion positif mempunyai jarijari yang lebih kecil, sedangkan ion negatif mempunyai jari-jari lebih besar.
2.3.3. Energi Ionisasi Suatu atom dapat kehilangan (melepas) elektron, sehingga menjadi ion positif, pelepasan elektron memerlukan energi, yaitu mengatasi gaya tarik intinya. Besarnya energi yang diperlukan untuk melepas satu elektron dari suatu atom netral dalam wujud gas sehingga terbentuk ion berwujud gas dengan muatan +1 disebut energi ionisasi.
2.3.4. Energi Ionisasi Kedua, Ketiga, dan Seterusnya Atom berelektron banyak dapat kehilangan satu, dua, atau lebih elektronnya. Energi yang diperlukan untuk melepas elektron kedua, ketiga, dan seterusnya disebut energi ionisasi kedua, ketiga, dan seterusnya. Energi ionisasi pertama hingga keempat dari berilium (Z = 4) berturutturut adalah 899, 1.757, 14.848 dan 21.006 kJ mol-1. Proses yang menyertainya dapat ditulis sebagai berikut. Ionisasi pertama : Be(g) + 899 kJ
Be+(g) + e
Ionisasi kedua
: Be+(g) + 1.757 kJ
Be2+(g) + e
Ionisasi ketiga
: Be2+(g) + 14.848 kJ
Be3+(g) + e
Ionisasi keempat : Be3+(g) + 21.006 kJ
Be4+(g) + e
21
2.4.
Beberapa Golongan Unsur Dalam Sistem Periodik
Unsur-unsur segolongan bukannya mempunyai sifat yang identik, melinkan hanya mirip. Unsur-unsur tersebut mungkin mempunyai sifat yang sama, tetapi kadarnya berbeda. Salah satu sifat unsur logam alkalin (golongan IA), yaitu berinteraksi dengan air. Akan tetapi, kecepatan reaksinya berbeda. Dari atas ke bawah, unsur-unsur itu akan berinteraksi semangkin dahsyat. Satu hal yang harus disadari bahwa setiap unsur mempunyai ssifat khas yang membedakannya dari unsur lainnya. Pengelompokan unsur dalam satu golongan dapat dibandingkan dengan mengelompokan mahluk hidup.
2.4.1. Golongan VIIIA (Gas Mulia) Unsur-unsur golongan VIIIA, yaitu helium, neon, argon, kripton, xenon, dan radon, disebut gas mulia karena semuanya berupa gas yang sangat stabil, sangat sukar bereaksi dengan unusr lain. Tidak ditemukan satu pun senyawa alami dari unsur-unsur tersebut. Unsur gas mulia terdapat di alam sebagai gas monoatomik (atom-atomnya berdiri sendiri). Menurut para ahli, hal itu disebabkan kulit luarnya yang sudah terisi penuh. Kulit terluar yang terisi penuh menjadukan unsur tidak relatif. Namun demikian, kripton, xenon, neon, dan argon hingga sekarang belum berhasil direaksikan.
22
Gas mulia mempunyai titik leleh dan titik didih yang sangat rendah, titik didihnya hanya beberapa derajat di atas titik lelehnya. Titik leleh dan titik didih gas mulia meningkat dari atas kebawah. Titik leleh dan titik didih helium mendekati 0 K (titik leleh -272,2oC, titik didih 268,9 oC).
Dalam kehidupan sehari-hari, helium digunakan untuk mengisi balon, neon digunakan untuk mengisi lampu tabung, dan argon digunakan untuk mengisi bohlam lampu pijar.
2.4.2. Golongan VIIA (Halogen) Unsur-unsur
golonga
VIIA
merupakan
kelompok
unsur
nonlogamyang sangat reaktif. Hal itu berkaitan dengan elektron valensinya yang berjumlah 7, sehingga hanya memerlukan tambahan 1 elektron untuk mencapai konfigurasi stabil seperti gas mulia. Semua unsur halogen bereaksi dengan tipe yang sama, walaupun kereaktifannya berbeda. Halogen dengan logam berbentuk senyawa yang kita sebut garam, seperti NaF, NaCI, NaBr, dan Nal. Oleh karena itu pula, unsur golongan VIIA disebut hologen yang berarti pembentuk garam. Kereaktifan unsur hologen berkurang dari F ke I. Semua unsur hologen (Golongan VIIA) berupa molekul diatomik (F2, Cl2, Br2, I2,), bewarna, dan bersifat racun. Flourin berwarna kuning muda, klorin berwarna hijua muda, bromin berwarna merah, dan uap iodin berwarna ungu (iodin padat berwarna hitam). Hologen atau senyawa banyak digunakan dalam kehidupan sehari-hari.
23
2.4.3. Golongan IA (Logam Alkali)
Semua logam alkali tergolong logam yang lunak (kira-kira sekeras karet penghapus, dapat diiris dengan pisau) dan ringan (massa jenis Li, Na, dan K kurang dan 1 g cm-3). Logam alkali mempunyai 1 elektron valensi yang mudah leapas, sehingga merupakan kelompok logam yang paling reaktif, dapat terbakar diudara, dan berinteraksi hebat dengan air. Dari litium ke sesium, reaksi dengan air bertambah dahsyat. Litium bereaksi agak pelan, tetapi natrium bereaksi dengan disertai terbentuknya api dan ledakan, sementara yang lainnya bereaksi lebih dahsyat lagi. Oleh karena kereaktifannya dengan air dan uadara, logam alkali biasa disimpan dalam kerosin (minyak tanah).
Litium atau senyawanya digunakan untuk membuat baterai litium yang digunakan dalam barang-barang elektronik, termasuk handphone. Logam natrium digunakan untuk membuat lampu tabung yaitu lampu natrium yang banyak digunakan untuk penerang jalan raya.
2.4.4. Golongan IIA (Logam Alkali Tanah) Unsur-unsur IIA disebut logam alkali tanah. Logam alkali tanah juga tergolong logam aktif, tetapi kereaktifannya kurang dibandingkan dengan logam seperiode, dan hanya akan terbakar diudara bila dipanaskan. Kecuali berilium, logam alkali tanah yang larut dalam air. Magnesium dan strontium digunakan untuk membuat kemabang api. Magnesium
24
memberikan nyala terang yang menyilaukan, sedangkan strontium memberikan nyala berwarna merah terang. Senyawa magnesium, yaitu magnesium hidroksida, {Mg(OH) 2}, diguanakan sebagai antasida dalam obat mag. Batu kapur, pualam, dan marmer aadalah senyawa kalsium, yaitu kalsium karbonat (CaCO3). Salah satu kalsium lainnya, yaitu kalsium hidrosida, {Ca(OH)2}, digunakan sebagai kapur sirih.
2.4.5. Golongan B (Unsur Transisi) Unsur-unsur golongan transisi dalah unsur-unsur yang terdapat dibagian tengah sistem periodik, yaitu unsur-unsur golongan tambahan (Golongan B). Sebagaimana telah dijelaskan, unsur-unsur peralihan merupan unsur-unsur yang harus dialihkan setelah golongan IIA sehingga diperoleh unsur yang menunjukkan kemiripan sifat dengan golongan IIIA. Unsur-unsur transisi mempunyai sifat-sifat yang membedakannya dari unsur golongan utama, diantaranya adalah. a. Semua unsur transisi tergolong logam b. Mempunyai kekerasan, titik leleh, dan titik didih yang relatif tinggi. c. Banyak diantaranya membentuk senyawa-senyawa berwarna. Kebanyakan dari logam yang digunakan dalam kehidupan seharihari maupun dalam industri adalah logam transisi. Misalnya, besi, temabga, kromium, nikel, titanium, perak, emas, dan platina.
25
2.5.
Java 2 Micro Edition (J2ME) 2.6.1. Sekilas Tentang J2ME Teknologi Java merupakan sebuah teknologi yang berkembang sangat pesat akhir-akhir ini dengan teknologi terbarunya Java 2 Micro Edition (J2ME) platform untuk membangun aplikasi pada perangkat bergerak seperti ponsel dan PDA. J2ME adalah program Java yang dikembangkan untuk teknologi yang menggunakan perangkat dengan ukuran memori yang kecil dan terbatas seperti ponsel. Program Java merupakan suatu program yang dapat digunakan di banyak perangkat keras karena aplikasi Java dijalankan di atas Java Virtual Machine (JVM). Sedangkan untuk aplikasi J2ME berjalan di atas Kilo Virtual Machine (KVM) yang ditanam di dalam perangkat ponsel (Muchow, 2002).
Gambar 2. 4. Struktur Java Platform (Paal, 2000 : 6) .
26
J2ME
memiliki
beberapa
keunggulan
yaitu
(http://j2me.winwinfaisal.info): 1. Sebagaimana kekhasan aplikasi yang ditulis dengan bahasa pemrograman JAVA maka aplikasi J2ME memiliki ciri running any where, any time, over any device.
2. Aplikasi dapat dijalankan secara on-line maupun off-line. 3. Memiliki kode yang portable. 4. Safe network delivery. 5. Aplikasi yang ditulis dengan J2ME akan memiliki kompatibilitas yang tinggi dengan platform J2SE dan J2EE Tetapi selain memiliki beberapa keunggulan, teknologi J2ME juga memiliki beberapa keterbatasan, terutama jika diaplikasikan pada ponsel. J2ME sangat tergantung pada perangkat (device) yang digunakan, bisa dari segi merk ponsel, maupun kemampuan ponsel, dan dukungannya terhadap teknologi J2ME. Misalnya, jika sebuah ponsel tidak memiliki kamera maka jelas J2ME pada ponsel tersebut tidak dapat mengakses kamera. Keterbatasan lainnya adalah pada ukuran aplikasi, karena memori pada ponsel sangat terbatas. (Shalahuddin, Rosa, 2006 : 6).
2.6.2. Java Messaging J2ME menyediakan antarmuka (interface) untuk messaging pada paket javax.wireless.Messaging. Sebuah message memiliki dua bagian yaitu bagian alamat (address port) dan bagian data (data port).
27
Message direpresentasikan dengan sebuah kelas yang mengimplementasi antarmuka pada paket javax.wireless.Messaging. Antarmuka messaging yang terdapat dalam paket
tersebut
dasar untuk
adalah
antarmuka
Message. Untuk bagian data pada message, API (Aplication Programming Interface) messaging ini mendukung dua jenis data yaitu
text message
dan binary message. Kedua jenis pesan ini direpresentasikan oleh subantarmuka
dari
antarmuka
Message
yaitu TextMessage dan
BinaryMessage. Untuk pengiriman dan penerimaan pesan, J2ME menyediakan antarmuka MessageConnection. Antar muka ini menyediakan method dasar untuk melakukan pengiriman dan penerimaan pesan. Instansiasi dari MessageConnection
diperoleh dengan memanggil method
Connect.Open(). Setelah objek MessageConnection terbentuk, pengiriman pesan dilakukan oleh objek tersebut dengan memanggil method send().
2.6.3. J2ME Profile Profile melengkapi Configuration dengan menambahkan kelas-kelas
tambahan yang menyediakan fitur-fitur yang lebih spesifik yang sesuai bagi jenis-jenis device tertentu (Kim Topley, 2002 : 16). Salah satu profile yang terdapat dalam arsitektur J2ME adalah MIDP atau Mobile Information Device Profile.
28
Mobile Information Device Profile (MIDP) dikombinasikan dengan Connected Limited Device Configuration (CLDC) adalah suatu Java Runtime Environtment untuk informasi perangkat bergerak saat ini seperti telepon atau PDA kelas rendah. Secara global MIDP telah ditanamkan ke dalam jutaan perangkat ponsel dan PDA, serta mendapat dukungan penuh dari Java teknologi IDE (Integrated Development Environment). Perusahaan besar di seluruh dunia telah mengambil keuntungan dari MIDP untuk konsumen dalam jangkauan yang luas dan aplikasi bergerak. MIDP memungkinkan secara penuh aplikasi jaringan dengan pengalaman pengguna dalam perangkat bergerak. Untuk mendownload suatu aplikasi MIDP, pengguna melihat daftar aplikasi yang tersimpan dalam server jaringan. Ketika aplikasi sudah dipilih, perangkat akan memeriksa apakah dapat menjalankan aplikasi tersebut. Bila perangkat dapat menjalankan, maka perangkat tersebut akan mengambil aplikasi tersebut dan kemudian melakukan verifikasi dan mengkompilasi kode Java sehingga dapat berjalan di perangkat tersebut. MIDP juga menyediakan navigasi secara mudah dan pemasukan data secara sederhana dengan mengoptimalkan keypad pada ponsel, tombol tambahan seperti tombol panah, layar sentuh dan keyboard kecil. Aplikasi MIDP diinstal dan dijalankan secara lokal, dapat beroperasi dalan keadaan terhubung dengan jaringan atau tidak terhubung, dan memiliki kemampuan menyimpan dan mengatur data lokal (Muchow, 2002 : 46).
29
Posisi MIDP pada arsitektur J2ME dapat dilihat pada gambar
Gambar 2. 5. Struktur MIDP (Paal, 2000)
2.6.4. Kilo Virtual Machine (KVM) KVM atau Kilo Virtual Machine adalah paket JVM yang di desain untuk perangkat yang kecil. Posisi KVM pada arsitektur J2ME dapat dilihat pada gambar 2.20 di bawah ini (Shalahuddin,Rosa, 2006 : 8).
MIDP
CLDC
Kumpulan Library
KVM Sistem Operasi
Gambar 2.6. Posisi KVM pada Arsitektur J2ME (Shalahuddin, Rosa, 2006 : 6)
2.6.5. Connected Limited Device Configuration (CLDC) CLDC adalah suatu konfigurasi yang mendefinisikan minimum Java Libraries dan kapabilitas yang dipunyai oleh para developer J2ME. Artinya antara mobile device yang Java enabled maka akan ditemui CLDC yang sama. CLDC hanyalah mengatur hal-hal yang berkaitan dengan kesamaan dari perangkat keras, sehingga memastikan kompatibilitas antar devices. Konfigurasi ini ditentukan perkembangannya oleh JCP (Java Community Process), inilah badan non-profit yang berkutat dengan perkembangan teknologi Java. Saat ini telah didefinisikan dua buah konfigurasi yaitu CDC & CLDC dengan perbandingan sebagai berikut: CLDC (Connected Limited Device Configuration)
CDC (Connected Device Configuration)
Mengimplementasikan subset dari J2SE JVM yang digunakan adalah KVM Digunakan pada perangkat handheld (ponsel, PDA, twoway pager) dengan memory terbatas (160-512 kb). Prosesor : 16/32 bit
Mengimplementasikan seluruh fitur dari J2SE JVM yang digunakan adalah CVM Digunkaan pada perangkat handheld(internet TV, Nokia communicator, car TV) denagn memory minimal 2 MB. Prosesor : 32 bit
Tabel 2.7. Perbandingan CLDC dengan CDC (Muchow, 2002 : 163)
2.6.
Device ponsel yang mendukung J2ME Untuk mengembangkan sebuah aplikasi pada ponsel, dibutuhkan spesifikasi minimal, antara lain (Shalahuddin, Rosa, 2006 : 10): 1. Mendukung aplikasi JAVA MIDP versi 2.0 dan CLDC 1.0
31
2. Memiliki memori minimal 500 Kilobyte atau lebih untuk proses instalasi aplikasi. 3. Bluetooth atau Infrared Pada saat ini hampir semua ponsel memiliki dukungan-dukungan seperti di atas. Setiap produsen ponsel berupaya memberikan teknologi terbaru
di
dalamnya,
hal
ini
mempermudah
pengguna
dalam
pemanfaatannya. Berikut beberapa ponsel yang dapat mewakili untuk membangun sebuah aplikasi pada ponsel :
Gambar 2.7. Ponsel Nokia N73
32
Merk & Tipe
Nokia N73
Ponsel Layar
TFT dengan resolusi 240x320 piksel 262.000 warna
Spesifikasi : Network
GSM 900/1800/1900 MHz
Operating System
Symbian
Transfer data
GPRS kelas 10, 3G
Browser
Browsing WAP 2.0/xHTML, HTML
JAVA
Java MIDP 2.0
Konektivitas
Bluetooth 2.0, Nokia Connectivity Cable (USB) CA-53, CD-ROM containing software (PC Suite and Adobe Package), User guide, Quick Start guide, and Add-on Application guide
Memori Eksternal
Multi Media Card (MMC) 2GB MU-1
Memori Internal
Shared Memory 42 MB
Tabel 2.8. Spesifikasi ponsel Nokia N73
Ponsel-ponsel tersebut telah memenuhi kebutuhan spesifikasi minimal ponsel yang digunakan untuk aplikasi ini.
2.8.
Java ME SDK 3.0 Java ME Platform SDK adalah untuk mengembangkan aplikasi mobile.
Menyediakan emulasi perangkat, sebuah lingkungan pengembangan mandiri , dan kumpulan utilitas untuk pengembangan cepat aplikasi Java ME. Pada Windows, Java ME SDK 3,0 adalah penerus ke Java Wireless Toolkit 2.5.2 populer dan Java Toolkit 1.0 untuk CDC. Hal tersebut terintegrasi CLDC, CDC dan Blu-ray Disc Java (BD-J) teknologi menjadi satu SDK.
33
Java ME SDK 3,0 sekarang tersedia untuk Windows XP dan Vista 32-bit, dan untuk Mac OS. Rilis Mac OS membawa dukungan untuk pengembangan CLDC mobile untuk pengguna Mac untuk pertama kalinya. Java ME Platform SDK termasuk alat canggih ditemukan di Java Wireless Toolkit 2.5.2 (untuk CLDC) dan Sun Java Toolkit 1,0 (untuk CDC). Kemampuan emulasi diperluas termasuk over-the-air (OTA) persaingan dan mendukung push registri, GPS, sensor, dan fitur baru yang lebih banyak.
2.8.1. Fitur Utama Java ME SDK menyediakan emulasi perangkat, sebuah lingkungan pengembangan
mandiri,
dan
sebuah
kumpulan
utilitas
untuk
pengembangan cepat aplikasi Java ME. Java ME SDK menyediakan fitur berikut, yang akan dijelaskan secara rinci di bawah ini: a.
Integrasi dengan pihak ketiga dan emulator perangkat Windows Mobile
b.
Pada perangkat penyebaran dan debugging pada perangkat
c.
CLDC / MIDP, CDC / FP / AGUI, dan BD-J Terintgrasi kedalam satu SDK (Windows Only)
d.
CLDC HosSport Virtual Machine baru
e.
Stack dengan ekstensi Optimized MSA 1,1
f.
Profil dukungan
g.
BD-J dukungan (Windows Only)
h.
Integrasi Lightweight UI Toolkit (LWUIT)
34
i.
Perangkat database pencarian terintegrasi di SDK
j.
Termasuk JavaFX Mobile Emulator
2.8.2. Persyaratan Sistem Bagian ini berisi perangkat keras minimum dan persyaratan untuk instalasi perangkat lunak pada PC Anda. Kebutuhan perangkat lunak BD-J dan persyaratan lingkungan dapat diatasi perangkat yang diperlukan setelah instalasi.
a.
b.
Perangkat keras minimal yang digunakan •
Hard Disk minimal 300-350 MB
•
RAM 1 GB
•
1 GHz CPU Pentium
Software yang diperlukan •
Microsoft Windows XP atau Vista 32-bit dengan service pack terbaru atau Mac OS X 10.5.8 dengan pembaruan perangkat lunak terbaru
•
Java SE Development Kit - JDK 1.6 atau lebih tinggi
•
Apple
QuickTime
player
(dibutuhkan
untuk
memutar media AMR pada Windows)
35
c.
BD-J Perangkat lunak (Windows Only) Hanya dibutuhkan untuk pengembangan BD-J •
Player yang dibutuhkan untuk pengembangan Bluray, seperti WinDVD, atau ArcSoft TotalMedia Theater
d.
Perangkat pendukung •
4,5 ActiveSync untuk Windows (windows Only)
•
Windows Mobile perangkat
dengan
6.0 platform diinstal pada target
kontivitas
jaringan,
microprosessor 32 bit berbasis RISC, dan minimun 64 MB RAM •
2.9.
Microsoft Divice Emulator (Windows Only)
Flowchart 2.9.1. Pengertian Flowchart Spesifikasi kebutuhan aplikasi Tabel Periodik Unsur, maka dibuat flowchart yang bertujuan untuk mempermudah pengembangan aplikasi yang sedang di bangun (Suyoto, 2005 : 26). Pengertian flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis
36
alternatif-alternatif lain dalam pengoperasian (Suyoto, 2005 : 26). Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut. Dalam pengembangan aplikasi Tabel Periodik Unsur Kimia ini menggunakan 2 buah flowchart diagram yang disesuaikan dengan materi ajar, yaitu Flowchart Materi, dan Flowchart Program.
2.9.2. Flowchart Materi Flowchart Materi merupakan bagan yang menunjukkan alur kerja atau apa yang sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari prosedur-prosedur yang ada di dalam sistem. Dengan kata lain, flowchart ini merupakan deskripsi secara grafik dari urutan prosedur-prosedur yang terkombinasi yang membentuk suatu sistem (Suyoto, 2005 : 28).Flowchart Materi terdiri dari data yang mengalir melalui sistem dan proses yang mentransformasikan data itu.
2.9.3. Flowchart Program Flowchart Program dihasilkan dari Flowchart Materi. Flowchart Program merupakan keterangan yang lebih rinci tentang bagaimana setiap langkah program atau prosedur sesungguhnya dilaksanakan (Suyoto, 2005 : 29). Flowchart ini menunjukkan setiap langkah program atau prosedur dalam urutan yang tepat saat terjadi Analis sistem menggunakan flowchart
37
program untuk menggambarkan urutan tugas-tugas pekerjaan dalam suatu prosedur atau operasi.
2.9.4. Simbol-simbol Flowchart Simbol-simbol flowchart yang biasanya dipakai adalah simbolsimbol flowchart standar yang dikeluarkan oleh ANSI dan ISO. Simbol-simbol yang dipakai antara lain :
Flow Direction symbol Yaitu simbol yang digunakan untuk menghubungkan antara simbol yang satu dengan simbol yang lain. Simbol ini disebut juga connecting line.
Terminator Symbol
Yaitu simbol untuk permulaan (start) atau akhir (stop) dari suatu kegiatan.
Connector Symbol
Yaitu simbol untuk keluar – masuk atau penyambungan
proses dalam lembar / halaman yang sama.
Connector Symbol
Yaitu simbol untuk keluar – masuk atau penyambungan proses
pada lembar / halaman yang berbeda.
38
Processing Symbol
Simbol yang menunjukkan pengolahan yang dilakukan oleh komputer.
Simbol Manual Operation
Simbol yang menunjukkan pengolahan yang
tidak dilakukan oleh komputer.
Simbol Decision
Simbol pemilihan proses berdasarkan kondisi yang ada.
Simbol Input-Output
Simbol yang menyatakan proses input dan output tanpa tergantung
dengan jenis peralatannya.
Simbol Manual Input
Simbol untuk pemasukan data secara manual on-line keyboard.
Simbol Preparation
Simbol untuk mempersiapkan penyimpanan yang
akan digunakan sebagai tempat pengolahan di dalam storage
Simbol Predefine Proses
Simbol untuk pelaksanaan suatu bagian (sub-program)/procedure
39
Simbol Display
Simbol yang menyatakan peralatan output yang digunakan
yaitu layer, plotter, printer dan sebagainya.
Simbol disk and On-line Storage
Simbol yang menyatakan input yang berasal dari
disk atau disimpan ke disk.
Simbol magnetik tape Unit
Simbol yang menyatakan input berasal dari
pita magnetik atau output disimpan ke pita magnetik.
Simbol Punch Card
Simbol yang menyatakan bahwa input berasal
dari kartu atau output ditulis ke kartu.
Simbol Dokumen
Simbol yang menyatakan input berasal dari dokumen dalam bentuk
kertas atau output dicetak ke kertas.
Tabel 2.9. Simbol-simbol flowchart
40
2.9.5. Langkah-langkah pembuatan Flowchart Dalam pembuatan flowchart tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisa suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan pemrogram lainnya (Suyoto, 2005 : 35). Namun secara garis besar, setiap pengolahan selalu terdiri dari tiga bagian utama, yaitu; 1. Input berupa bahan mentah 2. Proses pengolahan 3. Output berupa bahan jadi. Untuk pengolahan data dengan komputer, dapat dirangkum urutan dasar untuk pemecahan suatu masalah, yaitu; 1. START
: Berisi instruksi untuk persiapan perlatan
yang diperlukan sebelum menangani pemecahan masalah. 2. READ
: Berisi instruksi untuk membaca data dari
suatu peralatan input. 3. PROCESS
: Berisi kegiatan yang berkaitan dengan
pemecahan persoalan sesuai dengan data yang dibaca. 4. WRITE
: Berisi instruksi untuk merekam hasil
kegiatan ke perlatan output. 5. END
: Mengakhiri kegiatan pengolahan
41
Gambar berikut memperlihatkan flowchart dari kegiatan dasar diatas. START
READ
PROCESS
WRITE
END
Gambar 2.8. Flowchart dasar
Dari gambar flowchart di atas terlihat bahwa suatu flowchart harus terdapat proses persiapan dan proses akhir. Walaupun tidak ada kaidahkaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran yaitu : 1. Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat 2. Penggambaran flowchart yang simetris dengan arah yang jelas. 3. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.
42
2.10.
Rapid Application Development (RAD) Menurut Kendal & Kendal (2003, 237), RAD adalah suatu pendekatan berorientasi objek terhadap pengembangan sistem yang mencakup suatu metode pengembangan serta perangkat-perangkat lunak. Menurut Roger, S.Pressman (2003:42), RAD adalah sebuah model proses perkembangan perangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier di mana perkembangan cepat dicapat dengan menggunakan pendekatan konstruksi berbasis komponen. Jika kebutuhan dipahami dengan baik, proses RAD memungkinkan tim pengembangan menciptakan “sistem fungsional yang utuh” dalam periode waktu yang sangat pendek (kira-kira 60 sampai 90 hari).
2.10.1.
Alasan Menggunakan RAD Dari lima macam model-model perangkat lunak yang dikemukakan oleh Roger S. Pressman, penulis memilih model RAD sebagai metode pengembangan sistem dengan alasanalasan sebagai berikut : 1.
Aplikasi yang dirancang dan dikembangkan merupakan aplikasi yang sederhana dan tidak memerlukan waktu yang lama. Hal ini sesuai dengan tujuan dari model RAD yang dikemukakan oleh Kenneth E. Kendall dan Julie E. Kendall
43
yaitu RAD digunakan untuk mempersingkat waktu antara perancangan dan penerapan sistem informasi (Kendall dan Kendall, 2006 : 237). 2.
Dengan menggunakan metode RAD akan dicapai suatu sistem fungsional yang utuh dalam periode waktu yang sangat pendek jika kebutuhan dapat dipahami dengan baik (Roger S. Pressman, 2002 : 42).
3.
Salah satu fase dalam model sekuensial adalah fase pemeliharaan (Roger S. Pressman, 2002 : 38). Aplikasi yang akan dibuat ini tidak memerlukan fase pemeliharaan dalam implementasinya di lapangan.
4.
Pelanggan sangat berperan penting dalam pengembangan perangkat lunak dalam model prototipe (Asep Herman Suyanto, 2005). Aplikasi ini hanya sedikit mengikut sertakan user hanya pada akhir proses dalam implementasi untuk masukkan atau tanggapan sebagai bahan evaluasi bagi penulis dan rekan-rekan yang berkeinginan untuk mengembangkan aplikasi sejenis dengan ini.
2.10.2.
Fase-fase RAD Dalam gambar dibawah ini diberikan konseptualisasi fase asli RAD James Martin.
44
1.
Pada fase pertama Martin dibahas perencanaan syaratsyarat. Disini, pengguna tingkat tinggi memutuskan fungsi apa yang harus difiturkan oleh aplikasi tersebut.
2.
Pada fase kedua, disebut fase desain pengguna, Martin menandai pengguna diminta membahas aspek-aspek desain
non-teknis dari sistem,
dengan bimbingan
penganalisis. Workshop Desain RAD memadukan fase pengguna dan fase konstruksi, karena tingginya sifat interaktif dan visual dari desain serta memperbaiki proses yang terjadi dalam hal yang bersifat interaktif dan partisipatif tersebut. 3.
Pada fase konstruksi, dilakukan banyak kegiatan yang berbeda. Setiap desain yang diciptakan dalam fase sebelumnya
selanjutnya
ditingkatkan
dengan
menggunakan perangkat-perangkat RAD, begitu fungsi yang baru tersedia, selanjutnya fungsi-fungsi baru tersebut
ditunjukkan
kepada
pengguna
untuk
mendapatkan interaksi, komentar dan revisi. Dengan perangkat-perangkat
RAD,
penganalisis
mampu
melanjutkan perubahan dalam desain aplikasi. 4.
Sedangkan pada fase keempat dan terakhir, fase pelaksanaan,
aplikasi
yang
baru
dikembangkan
menggantikan aplikasi lama. Sembari dijalankan secara
45
paralel dengan aplikasi lama, aplikasi baru diujicoba, pengguna dilatih dan prosedur-prosedur organisasional diubah sebelum pelaksanaan terjadi. (Kendall & Kendall, 2006:239).
Gambar 2.9 Fase RAD James Martin. (Kendall & Kendall, 2006:238).
2.10.3.
Kelebihan RAD Kelebihan menggunakan metode RAD antara lain menurut situs Roger s. Pressman.inc : (http://csweb.cs.bgsu.edu) : 1.
Siklus dan fase pengembangan sistem yang cepat.
2.
Lebih cepat terlihat aplikasinya, dikarenakan ada proses prototyping, dalam hal ini perancangan Grhapic User Interface (GUI).
3.
Fleksibilitas lebih tingi karena pengembang dapat mendisain ulang jika ada perubahan karena bersifat life cycles.
4.
Mengurangi biaya dan waktu pengembangan.
46
2.10.4.
Kekurangan RAD Kekurangan menggunakan metode RAD antara lain (Kendall & Kendall 2006:241): 1.
Penganalisis selalu terburu-buru.
2.
Detail dan dokumentasi yang kurang, menyebabkan programer yang tidak biasa menggunakan model ini akan kesulitan menyelesaikan pekerjaannya.
3.
pemrogram dan penganalisa ditunut untuk menguasai kemampuan-kemampuan baru sementara pada saat yang bersamaan mereka harus mengembangkan sistem.
2.11.
Pengujian Black box 2.11.1. Black box testing Pengujian black box merupakan pendekatan komplementer dari teknik white box, karena pengujian black box diharapkan mampu mengungkap kelas kesalahan yang lebih luas dibandingkanteknik white box. Pengujian black box berfokus pada pengujian persyaratan fungsional perangkat lunak, untuk mendapatkan serangkaian kondisi input yang sesuai dengan persyaratan fungsional suatu program (Perry, 1995 : 14). Pengujian black box adalah pengujian aspek fundamental sistem tanpa memperhatikan struktur logika internal perangkat lunak. Metode ini digunakan untuk mengetahui apakah perangkat lunak berfungsi dengan benar. Pengujian black box merupakan metode perancangan data uji yang didasarkan pada spesifikasi perangkat lunak. Data uji dibangkitkan,
47
dieksekusi pada perangkat lunak dan kemudian keluaran dari perangkat lunak dicek apakah telah sesuai dengan yang diharapkan (Perry, 1995 : 15). Pengujian black box berusaha menemukan kesalahan dalam kategori : 1. Fungsi-fungsi yang tidak benar atau hilang, 2. Kesalahan interface, 3. Kesalahan dalam struktur data atau akses database eksternal, 4. Kesalahan kinerja, 5. Inisialisasi dan kesalahan terminasi. Pengujian black box harus dapat menjawab pertanyaan sebagai berikut (Perry, 1995 : 17) : 1. Bagaimana validitas fungsional diuji 2. Kelas input apa yang akan membuat kasus pengujian menjadi lebih baik 3. Apakah sistem akan sangat sensitif terhadap harga input tertentu 4. Bagaimana batasan dari suatu data diisolasi 5. Kecepatan data apa dan volume data apa yang akan ditoleransi oleh sistem 6. Apa pengaruh kombinasi tertentu dari data terhadap sistem operasi.
48
BAB III METODOLOGI PENELITIAN
Dalam menyusun skripsi, diperlukan langkah-langkah yang nyata untuk dapat menghasilkan karya ilmiah yang baik. Untuk itulah diperlukan adanya datadata dan informasi yang lengkap guna mendukung dalam proses pembuatannya.
3.1
Metode Pengumpulan Informasi dan Data Pada proses penyusunan skripsi ini menggunakan metode studi pustaka yaitu dengan cara pengumpulan data dan informasi dengan cara membaca buku-buku referensi, e-book dan website. Adapun sumber bukubuku referensi, e-book, dan website dapat dilihat selengkapnya pada daftar pustaka. Penggunaan studi literatur juga dilakukan dalam penyusunan skripsi ini sebagai acuan penyusunan skripsi. Ada pun kelebihan dan kekurangan antara skripsi yang penulis susun (Pengembangan Aplikasi Sistem Periodik Unsur Kimia Pada Ponsel Menggunakan J2ME) dengan skripsi yang dijadikan studi literatur (Pembuatan Media Pembelajaran Rangkaian Dasar Listrik Pada Ponsel Dengan J2ME ) oleh penulis adalah : 1.
Sama-sama menggunkan Ponsel sebagai media pembelajaran dan menggunakana J2ME sebagai bahasa pemograman dan RAD sebagai pengembangan sistem nya.
49
2.
Penulis melakukan pengembangan aplikasi sistem periodik unsur yang khususnya ada dalam pelajaran kimia.
3.
Aplikasi yang penulis buat tidak memiliki form latihan tidak seperti literatur buat karena sistem peridik unsur kimia hanya memberikan keterangan unsur-unsur atom yang dibutuhkan saja.
3.2
Metode Pengembangan Sistem Pengembangan sistem yang dilakukan menggunakan empat tahap siklus pengembangan model RAD (Rapid Application Development), yaitu fase perencanaan syarat dan tujuan informasi, fase perancangan, fase konstruksi, dan fase pelaksanaan. Model RAD digunakan karena melihat dari aplikasi yang dikembangkan, merupakan aplikasi yang sederhana dan tidak membutuhkan waktu yang lama, metode RAD adalah metode yang diperuntukkan untuk jangka pendek sesuai dengan aplikasi yang akan dibuat.
3.3
Alasan Menggunakan RAD Dari lima macam model-model perangkat lunak yang dikemukakan oleh Roger S. Pressman, dipilih model RAD sebagai metode pengembangan sistem dengan alasan-alasan sebagai berikut : 5.
Aplikasi yang dirancang dan dikembangkan merupakan aplikasi yang sederhana dan tidak memerlukan waktu yang lama. Hal ini sesuai dengan tujuan dari model RAD yang dikemukakan oleh Kenneth E. Kendall dan Julie E. Kendall yaitu RAD digunakan
50
untuk mempersingkat waktu antara perancangan dan penerapan sistem informasi (Kendall dan Kendall, 2006 : 56). 6.
Dengan menggunakan metode RAD akan dicapai suatu sistem fungsional yang utuh dalam periode waktu yang sangat pendek jika kebutuhan dapat dipahami dengan baik (Roger S. Pressman, 2002 : 156).
7.
Salah satu fase dalam model sekuensial adalah fase pemeliharaan (Roger S. Pressman, 2002 : 140). Aplikasi yang akan dibuat ini tidak memerlukan fase pemeliharaan dalam implementasinya di lapangan.
8.
Pelanggan
sangat
berperan
penting
dalam
pengembangan
perangkat lunak dalam model prototype (Asep Herman Suyanto, 2005 : 45). Aplikasi ini tidak ada campur tangan pelanggan atau user dari awal sampai akhir prosesnya. Kekurangan dalam pengembangan metode formal antara lain banyak memakan waktu dan mahal (Roger S. Pressman, 2002 : 134). Aplikasi ini sederhana dan tidak banyak memakan waktu dan biaya. Model pengembangan RAD yang dibuat oleh James Martin melingkupi fase-fase sebagai berikut (Kendall & Kendall, 2003 : 238) :
Gambar 3.1. Fase-Fase RAD James Martin (Kendall & Kendall, 2003 : 238)
51
1.
Fase Menentukan Tujuan dan Syarat-Syarat Informasi Pada tahap ini dilakukan Studi Feasibilitas, Kelengkapan Data yang Digunakan dan terakhir Kelengkapan Software dan Hardware yang Digunakan
2.
Fase Perancangan Pada tahap ini dilakukan beberapa tahapan antara lain : a)
Perancangan proses-proses dan yang akan terjadi didalam sistem akan direpresentasikan dengan State Transition Diagram (STD).
b)
Pembuatan Flowchart Diagram
c)
Perancangan Antar Muka Antar muka pemakai memberikan fasilitas komunikasi antar pemakai dan sistem, memberikan berbagai fasilitas informasi dan berbagai keterangan yang bertujuan untuk membantu mengarahkan alur penelusuran masalah sampai ditemukan solusi.
3.
Fase Konstruksi
Pada tahapan ini dilakukan tahap pengembangan aplikasi yang telah dirancang sebelumnya menggunakan Java ME SDK 3.0 untuk membuat dan menjalankan program dalam PC (Personal Computer). 4.
Fase Pelaksanaan Pada fase ini dilakukan beberapa tahapan, antara lain :
52
a)
Transfer Aplikasi dari PC ke Ponsel dan Instalasi Menjelaskan tahapan-tahapan transfer aplikasi dari PC ke dalam ponsel Nokia N73 dengan media kabel data dan bluetooth, kemudian dilakukan proses instalasi aplikasi dalam ponsel.
b)
Pengujian aplikasi Menjelaskan
proses
pengujian
aplikasi
yang
bertujuan untuk melihat jalannya aplikasi. Pada tahap pengujian aplikasi ini dilakukan dengan dua tahap pengujian, yaitu : 1)
Pengujian dengan cara Black box Mandiri, yaitu dengan
melakukan
pengujian
langsung
pada
beberapa ponsel dalam pengujian ini digunakan ponsel Nokia N73, guna mendapatkan validitas aplikasi media pembelajaran ini. 2)
Pengujian dengan cara Black box oleh user (pengguna), yaitu dengan melakukan test case, dengan cara tes langsung kepada pengguna dalam hal ini pelajar SMAN 8 Tangsel kelas 10 untuk mencoba aplikasi media pembelajaran ini. Pengguna akan di berikan angket yang berisikan pendapat tentang hasil aplikasi ini. Pengujian ini akan menambah validitas aplikasi media pembelajaran
53
yang telah dibuat. Pengujian dilakukan terhadap 20 – 30 siswa – siswi kelas 10, yang diambil dari SMAN8 Tangsel sekolah. c)
Analisis hasil pengujian Analisis hasil pengujian untuk mengetahui apakah aplikasi ya ng d ib a ngu n dapat berjalan dengan baik pada
po nse l
yang memenuhi kriteria
spesifikasi
minimum perangkat lunak serta memenuhi syarat-syarat pengembangan media pembelajaran. Pada tahap analisis hasil pengujian aplikasi ini, merupakan hasil dari tahap pengujian aplikasi, yang juga dilakukan dengan dua tahap yaitu : 1)
Analisis hasil pengujian dengan cara Black box Mandiri, yaitu menganalisa hasil pengujian yang telah didapatkan, melalui pengujian langsung terhadap beberapa ponsel.
2)
Analisis hasil pengujian dengan cara Black box oleh user, yaitu menganalisa tingkat kepuasan pengguna terhadap aplikasi yang telah dibangun, berdasarkan pengujian langsung terhadap pengguna dan dari angket yang diberikan kepada pengguna.
54
3.4. Siklus penerapan RAD untuk membangun aplikasi sistem periodik unsur kimia Pada Gambar 3.2 diberikan siklus RAD yang diimplementasikan untuk membangun sebuah media pembelajaran rangkaian dasar listrik.
1.1
1. Fase Perencanaan Mendefinisikan Masalah 1.1.1
1.1.2
Perancangan
Analisis Struktur Aplikasi Priodik
2.1.1
Flow Chart Materi
Unsur Kimia
2.1.2
Flow Chart Program
Analisis Kriteria Pengembangan
1.1.3
2. Fase Perancangan
2.1
2.2
Perancangan Antar Muka
Aplikasi Unsur Kimia
2.2.1
Form Halaman Pembuka
Analisis Dampak Sistem
2.2.2
Form Halaman Utama
1.2
Analisis Kebutuhan Perangkat Lunak
2.2.3
Form Keterangan Unsur Kimia
1.3
Analisis Kebutuhan Ponsel
2.2.4
Form Keterangan Tabel
1.4
Spesifikasi Ponsel yang di gunakan
2.2.5
Form List Unsur Atom
2.2.6
From Tentang
4. Fase Pelaksanaan 4.1
4.2
Transfer Aplikasi dari PC ke Ponsel
3. Fase Konstruksi 3.1 Melakukan tahap pengkodean
dan Installasi
terhadap hasil rancangan yang sudah didefinisikan
Pengujian Aplikasi
sebelumnya untuk dijadikan program aplikasi, dengan
4.2.1 Pengujian Blackbox Mandiri
menggunakan Sun Java ME SDK 3.0
4.2.2 Pengujian Blackbox oleh
User 4.3
Analisis Hasil Pengujian
4.3.1 Analisis Blackbox Mandiri 4.3.2 Analisi Blackbox oleh User
Gambar 3.2 Siklus RAD Untuk Membangun Media Pembelajaran Rangkaian Dasar Listrik.
55
BAB IV ANALISA DAN PEMBAHASAN
Untuk pengembangan sistem, penulis menggunakan metode RAD (Rapid Application Development) yang terdiri atas fase menentukan tujuan dan syaratsyarat informasi, fase perancangan, fase konstruksi, dan fase pelaksanaan sesuai dengan fase-fase Pengembangan Aplikasi Tabel Periodik Unsur Kimia pada Telepon Seluler menggunakan J2ME yang telah digambarkan pada gambar 3.2 pada bab 3.
4.1
Fase menentukan Tujuan dan Syarat-syarat Informasi 4.1.1 Tujuan Informasi Sebenarnya ada tiga tujuan dikembangkannya aplikasi ini seperti yang penulis uraikan dalam BAB I, namun dua tujuan adanya aplikasi ini antara lain : 1.
Memberikan kemudahan siswa SMAN 8 Tangsel kelas 10 dalam belajar khususnya Mata Pelajaran Kimia.
2.
Menghasilkan sebuah aplikasi yang bersifat open source dalam pengertian aplikasi ini terbuka bagi siapa saja yang ingin mengembangkan lebih jauh fungsi atau fitur aplikasi ini dikarenakan source code aplikasi ini akan penulis berikan atau lampirkan dan penulis izinkan untuk dikembangkan.
56
4.1.2
Syarat-syarat Informasi Pengembangan Aplikasi Sitem Periodik Unsur Kimia ini harus memenuhi syarat-syarat pembuatan aplikasi mobile device menggunakan J2ME yang meliputi kelengkapan data dan software.
4.1.2.1 Studi Feasibilitas Ada tiga aspek yang akan dianalisa dalam studi feasibilitas ini yaitu (Roger S. Pressman, 2002 : 299): 1.
Fesibilitas Ekonomis Aplikasi layak secara ekonomi dikembangkan dikarenakan dapat memberikan alernatif dalam belajar unsur kimia dasar yang dilakukan bersifat gratis tanpa biaya yang dikeluarkan untuk beli buku. Faktor pendukungnya pun bersifat gratis seperti Java ME SDK 3.0 yang dapat di download secara gratis di website nya. Untuk pendistribusian, penulis juga merencanakan untuk memberikan secara gratis, baik sebagai contoh dan pemanfaatan secara luas. Secara sosial aplikasi dapat membantu untuk mencerdaskan siswa-siswi SMA kelas 8 khususnya
57
dalam belajar kimia dasar dan mahasiswa atau pun seseorang yang tertarik untuk mengembangkan aplikasi ini pemrograman java khususnya J2ME dikarenakan bersifat open source yang source code aplikasi ini akan penulis berikan (Lampiran).
2.
Feasibilitas Teknis Pengembangan aplikasi ini layak secara teknis dikarenakan adanya kebutuhanan akan komunikasi yang mudah digunakan baik dari user interface maupun kompatibilitas dalam hal ini ponsel yang mendukung MIDP 1.0 dan 2.0 sudah sangat banyak..
3.
Feasibilitas Legal Secara kontrak aplikasi ini tidak bersangkutan dengan kontrak kerja dengan perusahaan manapun, dikarenakan pengembangan sistem ini sebagai penelitian yang dilakukan penulis dalam skripsi.
4.1.2.2 Kelengkapan data yang digunakan 1.
Berbagai Literatur dapatkan
dari
atau artikel yang penulis
beberapa
sumber
diantaranya
58
beberapa source code Aplikasi Kamus Teknologi Informasi
yang
penulis
dapatkan
dari
www.forum.nokia.com. 2.
Arsitektur, jenis layanan dan semua keterangan tentang Tabel peiodik unsur yang penulis dapatkan dari website resmi kimia yaitu http://www.chem-istry.org/tabel-periodik/ dan beberapa artikel yang mendukung.
4.1.2.3 Kelengkapan software yang digunakan 1.
Java Development Kit 1.6.0_13 sebagai platform JAVA yang membuat Java ME SDK dapat berjalan.
2.
Java ME SDK versi 3.0 sebagai emulator untuk aplikasi
MIDlet
dan
sebagai
Integrated
Development Environment (IDE) untuk membantu membuat source code dan analisa kesalahan sintak . 3.
Sistem Operasi Windows XP service pack 2 yang berjalan pada PC (Personal Computer).
4.1.2.4 Kelengkapan hardware yang digunakan 1.
Satu buah PC untuk membuat program dengan spesifikasi sebagai berikut: a)
Processor 1600 MHz.
59
2.
b)
Memory 384 MB.
c)
Harddisk 80 GB.
d)
Mouse.
e)
Keyboard.
f)
Monitor dengan resolusi 1024 x 768 pixel.
Sebuah Kabel Data Nokia CA-53 untuk mentransfer file aplikasi dari PC ke mobile device.
3.
Ponsel atau mobile device yang telah mendukung aplikasi JAVA MIDP versi 2.0, dalam hal ini, penulis
menggunakan perangkat
ponsel Sony
Ericsson P1i dan Nokia 7210 Supernova
4.2
Fase Perancangan Dalam perancangan Aplikasi Tabel Periodik Unsur ini, terdiri dari perancangan Struktur Navigasi, Flowchart Diagram dan perancangan antarmuka (user interface).
4.2.1
State Transition Diagram (STD) State Transition Diagram (STD) atau Diagram Transisi Keadaan merepresentasikan tingkah laku dari suatu sistem dengan menggambarkannya keadaan dan kejadian yang menyebabkan sistem mengubah keadaan. STD juga menunjukkan bahwa aksi
60
(seperti aktifasi proses) diambil dari akibat dari suatu kajadian khusus. (Roger S. Pressman, 2002 : 373). Berikut ini merupakan STD dari aplikasi yang akan dibuat.
Gambar 4.1 State Transition Diagram (STD) Aplikasi Sistem Periodik Unsur Kimia menggunakan J2ME 4.2.2 Flowchart Diagram Agar lebih memudahkan dalam pembuatan program, maka penulis membuat diagram Flowchart yang akan menggambarkan alur program secara umum. Flowchart tersebut dapat digambarkan sebagai berikut :
61
Gambar 4.2 Flowchart Aplikasi Sistem Periodik Unsur Kimia
Flowchart pada Gambar 4.2 menggambarkan alur proses dan urutan-urutan prosedur dalam aplikasi secara garis besar terutama pada proses inti. Aplikasi ini menampilkan sebuah tabel unsur-unsur kimia yang bisa dipilih dan terdiri dari empat menu, yaitu menu Keterangan Tabel,
menu List Unsur Atom, menu
Tentang dan menu Selesai. Jika user memilih salah satu unsur atom yang terdapat pada tampilan Sistem Periodik Unsur, maka program
62
akan menjalankan fungsi untuk menampilkan keterangan unsur yang dipilih tersebut dan user dapat kembali ke tabel periodik unsur. Kemudian jika user masuk ke menu pilihan dan memilih menu keterangan tabel, maka akan menampilkan keterangan dari tabel periodik unsur tersebut, dan user juga dapat kembali ke tabel periodik unsur. Sedangkan jika user memilih list unsur atom maka user melakukan perinntah untuk menampilkan unsur-unsur atom dalam bentuk list, disini user juga dapat memilih 1 sampai 108 unsur atom yang tedapat pada list tersebut. Dan jika user memilih salah satu unsur atom maka keterangan dari unsur atom tersebut akan muncul. Dari halamanan keterangan unsur atom tersebut user juga dapat kembali ke halaman list unsur atom. Dari halaman list unsur atom user bisa keluar untuk mengakhiri aplikasi atau user juga dapat mengembalikan tampilan dalam bentuk tabel periodik unsur. Jika user memilih tentang, maka akan menampilkan halaman tentang penulis aplikasi. Dan jika user menekan tombol keluar maka akan mengakhiri atau menutup aplikasi. 4.2.3
Perancangan Antarmuka Tampilan merupakan salah-satu hal yang penting dalam merancang sebuah aplikasi. Perancangan tampilan ini diperlukan untuk mengetahui seperti apa bentuk tampilan yang akan digunakan pada aplikasi. Aplikasi dengan tampilan yang menarik
63
dan user friendly tentunya akan memberikan nilai tambah pada aplikasi itu sendiri. Rancangan tampilan aplikasi ini meliputi tampilan halaman pembuka, halaman menu, halaman Server, halaman client, halaman chatting dan halaman help serta halaman about. Berikut penulis uraikan beberapa halaman tersebut sebagai berikut. 1.
Halaman Pembuka Halaman pembuka
ini manggunakan splash screen
merupakan halaman yang akan ditampilkan pertama kali, saat user mengakses aplikasi ini. Pada halaman ini akan ditampilkan sebuah gambar logo dari aplikasi dan tombol quit untuk membatalkan sebelum selesai loading dan tombol OK untuk masuk ke dalam aplikasi.
Gambar 4.3 Rancangan Tampilan Halaman Pembuka
64
2.
Halaman Utama Halaman
menu
merupakan
halaman
yang
akan
menampilkan tabel periodik unsur kimia sebelah kiri dan untuk menampilakan tabel periodik sebelah kanan dapat menggunkan navi key. Pada halaman ini juga tedapat navi key untuk mecari unsur atom yang terdapat pada tabel periodik dan memilihnya menggunakan tombol select. Pada halaman ini juga terdapat tombol menu yang berfungsi untuk menampilakan menu-menu.
Gambar 4.4 Rancangan Tampilan Halaman Utama (kiri)
Gambar 4.5 Rancangan Tampilan Halaman Utama (kanan)
65
3.
Halaman Keterangan Unsur Merupakan
halaman
yang
akan
ditampilkan
jika
sebelumnya user memilih salah satu unsur atom yang terdapat pada tabel periodik unsur yang terdapat pada halaman utama. Pada halaman ini ditampilkann tombol kembali agar user dapat kembali ke halaman utama.
Gambar 4.6 Rancangan Tampilan Halaman Keterangan Unsur
4.
Halaman Menu Pilihan Merupakan
halaman
yang
akan
ditampilkan
jika
sebelumnya user memilih menu Browse pada halaman menu. Pada halaman ini akan ditampilkan hasil pencarian definisi dari istilah-istilah yang dicari pada menu Browse yang terkoneksi dengan internet. Dan juga ditampilkan tombol Browse yang berfungsi untuk memulai pencarian lagi, serta tombol kembali berfngsi untuk kembali ketampilan menu utama.
66
Gambar 4.7 Rancangan Tampilan Halaman Menu Pilihan
5.
Halaman Keterangan Tabel Halaman ini merupakan halaman yang menampilkan list keterangan warna dari unsur yang menentukan jenis unsur tersebut seperti Non-logam, Gas Mulia, Logam Alkalin, Alkali Tanah, Metaloid, Hologen, Logam Transisi, Logam Lainnya, Lantanida, dan Aksanida. Selain itu untuk memudahkan user, pada halaman ini terdapat tombol kemabali untuk menampilkan lagi halaman tabel.
Gambar 4.8 Rancangan Tampilan Halaman Keterangan Tabel
67
6.
Halaman List Unsur Atom Halaman list unsur Atom menampilakan seruruh unsur atom yang terdapat pada tabel periodik dalam bentuk list yang berjumlah 118 unsur. Untuk memilih antara unsur atom yang satu dengan unsur atom yang lain menggunakan navi key. Kemudian jika user ini melihat keterangan dari unsur tesebut, pada halan ini juga terdapat tombol select. Jika user ingin melihat kembali unsur dalam bentuk tabel pada halaman ini juga terdapat tombol tampilkan tabel.
Gambar 4.9 Rancangan Tampilan Halaman List unsur Atom
7.
Halaman Keterangan Unsur dari List Unsur Atom Halaman ini memiliki isi yang sama dengan halaman keterangan unsur. Halaman ini akan muncul ketika memilih salah satu unsur yang terdapat pada halaman list unsur
68
atom. Pada halaman ini juga terdapat tombol kembali yang menuju halaman list unsur atom.
Gambar 4.10 Rancangan Tampilan Halaman Keterangan Unsur dari List Unsur Atom
8.
Halaman Tentang Aplikasi Pada halaman ini terdapat tentang aplikasi sistem periodik unsur.
Gambar 4.11 Rancangan Tampilan Halaman Tentang
69
4.3
Fase Konstruksi Pada tahap ini, penulis melakukan tahap konstruksi program (source code pada lampiran) terhadap hasil rancangan yang sudah didefinisikan sebelumnya untuk dijadikan program aplikasi. Pembuatan aplikasi menggunakan beberapa tools atau software antara lain Java Development Kit 1.6.0_18 sebagai platform JAVA yang membuat Java ME SDK dapat berjalan, Java ME Sofrware Development Kit 3.0 sebagai emulator untuk aplikasi MIDlet. Sekilas tentang bagaimana penulis mengembangkan sebuah aplikasi dapat di uraikan sebagai berikut: 1.
Instalasi Java D evelopment Kit versi 1.6.0_18
2.
Instalasi Java ME Software Development Kit versi 3.0 Prosesnya awal klik tombol Start → All Programs → Java ME
Software Development Kit 3.0 → Ktoolbar. Kemudian pilih menu File → Open Project, dan klik project yang mau dibuka.
Gambar 4.12 Tampilan Java ME Software Development Kit 3.0, open project
70
Kemudian ceklist kompenen tambahan agar aplikasi dapat berjalan sesuai keinginan seperti gambar dibawah ini.
Gambar 4.13 Tampilan properties yang dibutuhkan aplikasi
Setelah selesai, penulis mengetikkan kode program pada notepad yang penulis save dengan ekstension titik java (.java) dan penulis simpan pada folder src yang telah disediakan untuk meletakkan file source code, untuk file gambar atau icon penulis letakkan pada folder res.
71
Gambar 4.14 Tampilan folder pada directory aplikasi Tabel Periodik Unsur
Selama proses, banyak terjadi kesalahan sintak dan berbagai persoalan, untuk itu penulis menggunakan satu tool atau software untuk menyelesaikan persoalan itu yaitu menggunakan Java ME Software Development Kit 3.0 seperti gambar dibawah ini.
Gambar 4.15 source code pada Aplikasi Kamus Teknologi Informasi menggunakan Java ME Software Development Kit 3.0
72
Untuk proses konstruksi program, tampilan hasil pada simulator, source code program dan proses installasi aplikasi pada ponsel dapat dilihat selengkapnya pada Lampiran I, II dan III. 4.4
Fase Pelaksanaan Pada fase pelaksanaan, penulis melakukan pengujian aplikasi secara Black box mandiri dan secara Black Box oleh User. Untuk pengujian Black Box penulis menganalisis spesifikasi kebutuhan ponsel yang dapat digunakan untuk menerapkan aplikasi ini dan diputuskan untuk menggunakan ponsel user yaitu Nokia N73, setelah melakukan uji coba untuk mengetahui apakah aplikasi dapat bekerja dengan baik pada kedua ponsel tersebut, penulis juga meminta tanggapan user untuk aplikasi yang telah penulis buat ini.
4.4.1
Spesifikasi Ponsel yang digunakan Ponsel yang dapat digunakan untuk menjalankan aplikasi ini harus memiliki spesifikasi minimal sebagai berikut : 1.
Mendukung aplikasi JAVA MIDP versi 2.0
2.
Memiliki memori minimal 256 Kilobyte atau lebih untuk proses instalasi aplikasi
3.
Memiliki layar minimal 240 x 320 piksel
4.
Memiliki fasilitas Bluetooth versi 2.0 sebagai media transfer data
73
Dalam pengimplementasian aplikasi yang dilakukan oleh penulis, ponsel yang digunakan adalah Nokia N73 yang dapat dilihat pada gambar 4.20. Ketiga ponsel tersebut telah memenuhi kebutuhan spesifikasi minimal ponsel yang digunakan yang telah disebutkan di atas.
Gambar 4.16 Ponsel yang digunakan Nokia N73
Berikut ini adalah tabel spesifikasi ketiga ponsel yang digunakan dalam pengujian Aplikasi Kamus Teknologi Informasi ini. Merk & Tipe Ponsel Layar
TFT dengan resolusi 240x320 piksel 262.000 warna
Spesifikasi : Network
GSM 900/1800/1900 MHz
Operating System
Symbian
Transfer data
GPRS kelas 10, 3G
Browser
Browsing WAP 2.0/xHTML, HTML
JAVA
Java MIDP 2.0
Konektivitas
Memori Eksternal
Bluetooth 2.0, Nokia Connectivity Cable (USB) CA-53, CD-ROM containing software (PC Suite and Adobe Package), User guide, Quick Start guide, and Add-on Application guide Multi Media Card (MMC) 2GB MU-1
Memori Internal
Shared Memory 42 MB
Nokia N73
Tabel 4.1 Tabel Spesifikasi Ponsel yang digunakan (http://www.nokia.co.id)
4.4.2
Transfer Aplikasi dari PC ke dalam Ponsel dan Instalasi Untuk mendistribusikan aplikasi ke dalam ponsel dapat menggunakan beberapa tools di antaranya : bluetooth, card reader, kabel data, dan infra red. Dalam hal ini, penulis menggunakan card reader dan kabel data transfer aplikasi ke dalam ponsel Nokia N73. Proses transfer aplikasi dan instalasi dapat dilihat selengkapnya pada Lampiran III.
75
4.4.3
Pengujian Aplikasi Setelah dilakukan transfer aplikasi dari PC ke dalam ponsel dan instalasi program pada ponsel maka dilakukan pengujian program pada ponsel. Pengujian aplikasi yang telah di buat bertujuan untuk melihat jalannya program, validitas, dan mengetahui tingkat kepuasan pengguna pada aplikasi ini, oleh karena itu pengujian dilakukan dengan dua tahap yaitu dengan pengujian secara Blackbox mandiri dan hasil respon oleh user (pengguna).
4.4.3.1 Pengujian Black box mandiri Pengujian aplikasi secara Black box mandiri yaitu pengujian yang dilakukan secara langsung pada beberapa ponsel yang memiliki syarat minimal untuk menjalankan aplikasi kamus teknologi informasi ini. Pada pengujian ini penulis menggunakan tiga buah ponsel yaitu Nokia N73. Ketiga ponsel itu diharapkan dapat mewakili ponsel-ponsel lain untuk proses pengujian aplikasi. Berikut beberapa hasil pengujian pada ketiga ponsel dibawah ini.
76
1.
Halaman Splash Screen Untuk menguji halaman ini, pengujian dilakukan dengan membuka Tabel Periodik. Pada saat pertama kali halam ini di buka maka pada halaman ini terdapat tulisan Loding… yang menandakan aplikasi masih dalam proses, dan pada halaman ini juga terdapat tombol Quit untuk menghentikan proses dan menutup aplikasi. Jika sudah selesai proses maka pada halam Splash Screen ini akan terdapat tulisan Ready yang menandakan aplikasi sudah bias dimulai, dan pada halaman ini juga terdapat tombol OK yang berfungsi untuk masuk kedalam aplikasi.
Gambar 4.17 Tampilan Splash Screen
2. Halaman Tabel Periodik Unsur Untuk penguian halaman utama ini, terdapat table pertiodik unsur yang memiliki 118 unsur kimia
yang dapat dipilih oleh User sesuai dengan unsur kimia yang diinginkan dengan menggunakan Navi Key dan jika user ingin melihat keterang tentang unsur kimia tersebut, user dapat melihatnya dengan menekan tombol select. Pada haman ini user juga dapat membukan list menu jika ingin memilih menu pilihan seperti yang terdapat pada gambar 2.20.1 dan gambar 2.20.1.
Gambar 4.18 Tampilan Tabel Periodik Unsur sebelah kiri dan kanan
3. Halaman Keterangan Unsur Berikut ini adalah halaman yang tampil pada saat user memilih salah satu unsur yang terdapat pada Tabel
Periodik
Unsur
yang
berisi
tentang
keterangan unsur yang dipilih tersebut. Pada halaman
ini
terdapat
tombol
Kembali
yang
memungkin pengguna untuk nkembali ke halaman Tabel Periodik Unsur.
Gambar 4.19 Tampilan Keterangan Unsur 4. Tampilan Menu Pilihan Pada hamanan ini user dapat memilih menu yang dinginkan agar dapat
menampilkan halaman
selanjutnya atau untuk menutup aplikasi System Periodik Unsur.
Gambar 4.20.1 Tampilan Menu Pilihan
Gambar 4.20.2 Tampilan Menu Pilihan 5. Keterangan Tabel Halaman keterangan table ini penulis mengunakan warna – marna sebagai pengkelasan unsur-unsur atom. Pada halaman ini memiliki tombol kembali agar user kembali pada halaman utama.
Gambar 4.21 Tampilan Keterangan Tabel
6. List Unsur Atom
Pada halaman ini penulis memudahkan user pengguna jika ingin melihat unsur kimia dengan nama lengkap dalam bentul list, maka pengguna dapat masuk dalam list menu dan memilih list unsur atom. Pada halaman ini user juga dapat memilih unsure dan melihat keterangan dari unsur tersebut. Halaman ini dilengkapi tombol Tampilkan Tabel agar pengguna dapat kembali ke table periodic unsur.
Gambar 4.22 Tampilan List Unsur Atom
7. Keterangan Unsur dari List Unsur Atom Halaman ini adalam lanjutan dari halaman List Unsur Atom yang berfungsi untuk menyampaikan keterangan dari unsur atom yang dipilih. Pada halaman
ini terdapat tombol kemabali yang
memmungkinkan user dapat kembali ke List Unsur
Atom dan memilih unsur atom yang lain jika diinginkan.
Gambar 4.23 Tampilan Keterangan Unsur dari List Unsur Atom 8. Tentang Aplikasi Pada halaman ini penulis hanya menyampaikan keterangan dari aplikasi Tabel Periodik unsur. Pada halaman ini user dapat kembali ketabel periodik dengan menggunakan tombol kembali.
Gambar 4.24 Tampilan Tentang Aplikasi
4.4.4
Analisis Hasil Pengujian 4.4.4.1 Analisis Hasil Pengujian Blackbox Mandiri Berdasarkan hasil pengujian yang dilakukan secara Blackbox Mandiri dan ditunjukkan oleh gambar pada sub bab 4.4.3.1, maka dapat disimpulkan bahwa aplikasi berjalan dengan baik pada ponsel Nokia N73. Semua tampilan berjalan dengan baik untuk semua menu-menu yang dirancang.
4.4.4.2 Analisis Hasil Respon user Analisis hasil respon user berupa angket kepada pengguna yang diambil pada SMAN 8 Tangsel kelas 10 dapat dilihat dihalaman 85, menghasilkan penilaian terhadap aplikasi yang dibangun. Dari angket yang di berikan kepada pengguna nilai persentase tingkat kepuasan terhadap aplikasi cukup baik. Ini dapat disimpulkan berdasarkan hasil angket respon user pada pertanyaan no 2, 3, 4 dan 7. Masing-masing dengan penjelasan seperti dibawah ini :
83
No Pertanyaan 2.
3.
4.
7.
Jumlah Persentase (%)
Pertanyaan Menurut anda, apakah aplikasi ini sudah user friendly ? a. Sangat user friendly b. Cukup User friendly c. Biasa-biasa saja d. Kurang user friendly e. Tidak user friendly
• • • • •
30 % 65 % 5% 0% 0%
Bagaimana kemudahan dalam penggunaan aplikasi ini ? a. Sangat mudah b. Mudah c. Sedang d. Sulit e. Sangat sulit
• • • • •
35 % 50 % 15 % 0% 0%
Bagaimana layout tampilan atau interface pada aplikasi ini ? a. Sangat Bagus b. Bagus c. Sedang d. Kurang Bagus e. Tidak Bagus
• • • • •
5% 45 % 50 % 0% 0%
• • • • •
10 % 65 % 15 % 10 % 0%
user
Apakah aplikasi ini sudah cukup memenuhi kebutuhan anda dalam belajar kimia? a. Sangat Cukup b. Cukup c. Sedang d. Kurang e. Sangat Kurang
Tabel 4.2 Sebagian hasil presentase dari respon/tanggapan User.
84
Dengan diagram Batang ditunjukkan pada gambar di bawah ini.
Gambar 4.25 Diagram Batang Hasil Respon User
Untuk hasil keseluruhan dapat dilihat selengkapnya pada Lampiran IV.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan skripsi beserta saran untuk penelitian lebih lanjut.
5.1
Kesimpulan Berdasarkan uraian bab-bab sebelumnya, maka dapat diambil kesimpulan dari penulisan skripsi ini sebagai berikut. 1.
Aplikasi
Sistem
Periodik
Unsur
pada
Telepon
Seluler
menggunakan J2ME ini memiliki kemampuan untuk menyediakan keterangan dari 118 unsur-unsur atom kimia. 2.
Berdasarkan hasil pengujian Black Box Mandiri, aplikasi ini dapat diterapkan pada ponsel Nokia N73, dengan kinerja aplikasi pada ponsel Nokia N73 tersebut dapat dikatakan sudah berjalan dengan baik sesuai dengan hasil yang diperoleh, ponsel Nokia N73 dapat melakukan aplikasi Tabel Periodik Unsur. Berdasarkan analisis hasil respon user atau siswa-siswi SMAN 8 Tangsel kelas 10, aplikasi ini telah sesuai dan cukup baik digunakan sebagai alat bantu siswa dalam belajar kimia dasar.
86
5.2
Saran Berdasarkan penelitian yang diperoleh, ada beberapa saran untuk pengembangan sistem lebih lanjut, sebagai berikut: 1.
Dalam pengembangan aplikasi sistem periodik unsur pada telepon seluler menggunakan J2ME ini diharapkan nantinya dapat dilakukan tidak hanya pada ponsel yang memiliki layar dengan resolusi 240x320 piksel dan 262.000 warna saja melainkan pada banyak ponsel yang memiliki resolusi lebih rendah dalam penggunaan aplikasi tabel periodik unsur tersebut.
2.
Dalam aplikasi sistem periodik unsur pada ponsel ini belum memiliki serching, mungkin bagi yang ingin mengembangkan aplikasi ini bisa menambahkan fitur serching.
3.
Dengan adanya penelitian ini diharapkan akan timbul ide-ide kreatif lainnya untuk menghasilkan produk yang lebih bermanfaat lagi.
4.
Idealnya literatur-literatur pedukung khususnya materi yang penulis angkat tersedia dengan mudah di luar apalagi di dalam kampus, sehingga memudahkan penulis untuk menyelesaikan penelitian ini.
87
DAFTAR PUSTAKA
Echolis, John M. Shadily, Hasan. Kamus Inggris Indonesia An English Indonesia Dictionary, Cet XXV, PT. Gramedia, Jakarta 2003. Ensiklopedia IPTEK, Ensiklopedia Sains Untuk Pelajar Dan Umum, 3 Kimia Dan Unsur Bahan dan Teknologi, PT. Lentera Abadi, Jakarta 2007 Drs. Michael Purba, M.Si, Kimia 1A Untuk SMA Kelas X,Penerbit Erlangga, Jakata 2006 Hopkins, Bruce. Antony, Ranjith. Bluetooth for Java, Apress, New York, 2003. Kenneth E.Kendall, Jullie E. Kendall. Analisis dan Perancangan Sistem, Edisi Kelima, PT Prenhallindo Jakarta, 2003.
Knudsen, Jonathan. Wireless Java Developing with J2ME, Apress, New York, 2003. Situs Kimia Indonesia, http://www.chem-is-try.org/tabel-periodik/, diakses pada 10 September 2009 23:00 WIB Maner, Walter, RAPID APPLICATION DEVELOPMENT, http://csweb.cs.bgsu.edu/maner/domains/RAD.htm#2 diakses pada 4 Feb 2010 00.23 WIB. McGraw-Hill Dictionary of Electrical & Computer Engineering by The McGrawHill Companies.Inc printed in the USA, 2004. Muchow, John W. Core J2ME Technology & MIDP, Sun Microsystem, Prentice Hall PTR, 2002. Nokia Ponsel N73 – Spesifikasi, Nokia N73 Spesifikasi, http://www.nokia.co.id/cari-produk/ponsel/nokia-n73/spesifikasi diakses pada 26 Maret 2009 09:37 WIB. Pressman, Roger S. Rekayasa Perangkat Lunak Panduan Praktisi (Buku Satu), Andi Publisher, Jogjakarta, 2006. Shalahuddin, M., Rosa A.S. PEMROGRAMAN J2ME Belajar Cepat Pemrograman Perangkat Telekomunikasi Mobile, Informatika, Bandung, 2006.
89
Tim Thompson Motorola, Inc. JSR-000082 JavaTM APIs for Bluetooth (Maintenance Release 2), http://jcp.org/aboutJava/communityprocess /mrel/jsr082/index2.html diakses pada 09 April 2010, 21:20 WIB. Topley, Kim. J2ME in a Nutshell, O’Reilly, 2002. Wiryasantika, Faisal. J2ME Overview, http://j2me.winwinfaisal.info diakses pada 03 Mei 2010, 19.40 WIB.
90
LAMPIRAN I PROSES KONSTRUKSI PROGRAM DAN HASIL TAMPILAN APLIKASI
I-1
Proses konstruksi program akan diuraikan sebagai berikut: 1.
Instalasi Java (SE) Development Kit versi 1.6.0.180
2.
Instalasi Java ME Platform SDK 3.0 Prosesnya klik tombol file New
Project hingga
muncul jendela seperti pada gambar di bawah.
Gambar I-1 Jendela Tampilan New Project, Step 1. Choose Project
Pada kotak Project pilih MIDP Aplication, kemudian klik tombol Next, maka akan mucul jendela tampilan Step 2 yang terlihat pada gambar I-2.
I-2
Gambar I-2 Jendela Tampilan New Mobile Aplication, Step 2. Name and Location
Pada kotak Project Name ketikkan nama projek seperti PeriodicTable, lalu pada kotak Project Location tentukan tempat lokasi
penyimpanan
projek
misalnya
C:\Documents
and
Settings\kiki\My Documents\JavaMESDKProjects. Kemudian klik tombol next dan kemudian akan muncul kotak dialok step 3 seperti gambar dibawah ini.
I-3
Gambar I-3 Jendela Tampilan New Mobile Aplication, Step 3. Default Platform Selection
Di tampilan jendela step 3, terdapat kotak divice tentukan menjadi DefaultCldcPhone1. Kemudian pada Divice Configuration pilih CLDC-1.1 dan selanjutnya pada Divice Profile pilih MIDP2.0. kemudian klik tombol Finish. 3.
Menjalankan program Aplikasi Tabel Periodik Unsur Kimia dalam PC
I-4
Untuk
menjalankan
menjalanknanya
dengan
program
cara,
pilih
yang menu
telah
selesai,
penulis
Run→Build
Project
(PeriodicTable) atau tekan tombol F11 pada keyboard, proses build dapat dilihat pada gambar di bawah ini.
Gambar I-4 Proses Build Main Project
Setelah melakukan proses build, lalu pilih menu Run -> Run Project (PeriodicTable) atau tekan tombol F6 pada keyboard, proses run dapat dilihat pada gambar di bawah ini.
I-5
Gambar I-5. Proses Run Project (PeriodicTable)
Setelah proses run, aplikasi akan muncul pada emulator, yang dapat dilihat selengkapnya pada lampiran. 4.
Program yang sudah dibuat dan dilakukan proses build sudah otomatis menjadi file .JAR yang nantinya akan di distribusikan ke dalam ponsel. File .JAR tersebut terdapat pada direktori C:\Documents
and
Settings\kiki\My
Documents\JavaMESDKProjects\PeriodicTable\dist
Setelah proses konstruksi program selesai, penulis menjalankan aplikasi.
I-6
Gambar I-6 Tampilan nama aplikasi yang akan dijalankan.
Gambar I-7 Tampilan Splash Screen.
I-7
Gambar I-8 Tampilan Tabel Periodik Unsur sebelah kiri dan sebelah kanan.
Gambar I-9 Tampilan Keterangan Unsur
I-8
Gambar I-10 Tampilan Menu Ketrangan Tabel dan Tampilan Keterangan Tabel
Gambar I-11 Tampilan Menu List Unsur Atom dan Tampilan List Unsur Atom
I-9
Gambar I-12 Tampilan Menu Tentang dan TampilanTentang
I-10
LAMPIRAN II SOURCE CODE
I.
II.
II-1
File MainMidlet.java package com.periodic.ui; import javax.microedition.lcdui.Display; import javax.microedition.midlet.*; /** * The MIDlet class * * @author Kiki Rezky Muslimun.S */ public class MainMidlet extends MIDlet { /** The main canvas used to draw elements. */ MainCanvas canvas; /** Splash screen. */ SplashScreen splash; /** Display object. */ Display disp; /* * (non-Javadoc) * * @see javax.microedition.midlet.MIDlet#startApp() */ public void startApp() { disp = Display.getDisplay(this); splash = new SplashScreen(disp, this); canvas = new MainCanvas(this); canvas.start(); } /** * Proceed from splash screen to canvas. */ public void proceed() { disp.setCurrent(canvas); } /** * Canvas is ready, notify splash screen */ public void ready() { splash.ready(); } /* * (non-Javadoc) * * @see javax.microedition.midlet.MIDlet#pauseApp() */
II-2
public void pauseApp() { } /* * (non-Javadoc) * * @see javax.microedition.midlet.MIDlet#destroyApp(boolean) */ public void destroyApp(boolean unconditional) { } }
II-3
File SplashScreen.java package com.periodic.ui; import java.io.IOException; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Font; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image; /** * The Splash Screen class. * * @author Kiki Rezky Muslimu.S */ public class SplashScreen extends Canvas { /** Menu options. */ private String menu[] = new String[]{"Quit", "OK"}; /**Menampilkan Objek * Display object */ Display disp; /**Mendefinisikan MIDlet * MIDlet parent class */ MainMidlet parent; /**Perintah menampikan objek canvas * State of canvas object */ String state = "Loading..."; /**Animasi Splash * Splash animation */ Image splash[] = new Image[6]; /** Font used to draw state of the canvas object. */ Font stateFont = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_LARGE); /**Besar seluruh huruf * Font's height. */ int fontHeight = stateFont.getHeight(); /** Shows if canvas object is ready to be drawn. */ boolean ready = false; /**Besarnya Splash screen * Splash screen height. */ int splashHeight = 0; /** Animation thread. */ static Thread animationThread = null; /** Index of current animation frame. */ int index = 0; /** * Instantiates a new splash screen. * * @param disp display object * @param parent parent midlet object */ public SplashScreen(Display disp, MainMidlet parent) {
II-4
this.disp = disp; this.parent = parent; setFullScreenMode(true); try { for (int i = 0; i < splash.length; i++) { splash[i] = Image.createImage("/frame" + i + ".png"); } splashHeight = splash[0].getHeight(); } catch (IOException ex) { state = "Resources cannot be loaded."; ready = false; } disp.setCurrent(this); } /* (non-Javadoc) * @see javax.microedition.lcdui.Canvas#paint(javax.microedition.lcdui.Graphics) */ protected void paint(Graphics g) { g.setColor(124, 124, 124); g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(211, 211, 211); g.drawString(state, getWidth() / 2, getHeight() / 2 - splashHeight / 2 - fontHeight, Graphics.BOTTOM | Graphics.HCENTER); drawCommandItem(g); g.drawImage(splash[index], getWidth() / 2, getHeight() / 2, Graphics.VCENTER | Graphics.HCENTER); if (animationThread == null) { animationThread = new Thread() { public void run() { drawThread(); } }; animationThread.start(); } } /* (non-Javadoc) * @see javax.microedition.lcdui.Canvas#keyPressed(int) */ protected void keyPressed(int key) { int softkey = getGameAction(key); if (ready) { parent.proceed(); } else if (key == -7 || softkey == 0) { parent.destroyApp(true); parent.notifyDestroyed(); } } /** * Notifies user that canvas object is ready to be drawn
II-5
*/ public void ready() { ready = true; state = "Ready."; } /**Menjalakan animasi * Play animation */ private void drawThread() { while (!ready) { for (int i = 0; i < splash.length - 1; i++) { index = i; try { Thread.sleep(200); } catch (InterruptedException ex) { ex.printStackTrace(); } new Thread() { public void run() { repaint(); } }.start(); } } index = splash.length - 1; animationThread = null; repaint(); } /** * Draw command items. * * @param g canvas graphics object */ private void drawCommandItem(Graphics g) { g.setColor(130, 130, 130); Font f = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_SMALL); g.setFont(f); int rectHeight = f.getHeight() + 10; int rectWidth = f.stringWidth(ready?menu[1]:menu[0]) + 10; int width = getWidth(); int height = getHeight(); if (width < height) { g.fillRoundRect(width - rectWidth, height - rectHeight, rectWidth, rectHeight, (int) (width / 20), (int) (width / 20)); g.setColor(0xFFFFFF); g.drawString(ready?menu[1]:menu[0], width - 5, height - rectHeight + 5, Graphics.TOP | Graphics.RIGHT); } else {
II-6
g.fillRoundRect(width - rectWidth, 0, rectWidth, rectHeight, (int) (height / 20), (int) (height / 20)); g.setColor(0xFFFFFF); g.drawString(ready?menu[1]:menu[0], width - 5, 5, Graphics.TOP | Graphics.RIGHT); } } }
II-7
File MainCanvas.java package com.periodic.ui; import java.io.IOException; import com.sun.lwuit.plaf.UIManager; import com.sun.lwuit.util.Resources; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Font; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image; import com.periodic.utils.TextWrapEnum; import com.periodic.utils.Utils; import com.periodic.data.Element; /** * Kategori MainCanvas. * * @author Kiki Rezky */ public class MainCanvas extends Canvas { /**Penetapan DRAW_DETAILS * The Constant DRAW_DETAILS. */ private static final int DRAW_DETAILS = 0; /**Penetapan DO_NOTHING. * The Constant DO_NOTHING. */ private static final int DO_NOTHING = 1; /**Penetapan DRAW_MENU. * The Constant DRAW_MENU. */ private static final int DRAW_MENU = 2; /**Penetapan LEGEND * The Constant LEGEND. */ private static final int LEGEND = 3; /**Penetapan ABOUT * The Constant ABOUT. */ private static final int ABOUT = 4; /**Penetapan ACTINIDES_NAV * The Constant ACTINIDES_NAV. */ private static final int ACTINIDES_NAV = 5; /**Penetapan DRAW_ACTINIDES * The Constant DRAW_ACTINIDES. */ private static final int DRAW_ACTINIDES = 6; /**Penetapan LANTHANIDES_NAV * The Constant LANTHANIDES_NAV. */ private static final int LANTHANIDES_NAV = 7; /**Penetapan DRAW_LANTHANIDES * The Constant DRAW_LANTHANIDES. */ private static final int DRAW_LANTHANIDES = 8; /**Arah state * Current state. */ private int state = DO_NOTHING; /** Sebelum state
II-8
* Previous state. */ private int previousState = DO_NOTHING; /** Objek Parent midlet * Parent midlet object. */ private MainMidlet parent; /** Temporary graphics object for double buffering. */ private Graphics tempGraphics; /**Baris dari unsur kimia * Array of chemical elements. */ private Element elements[] = new Element[Element.NO_ELEMENTS]; /**Memilih sebuah unsur * The selected element. */ private Element selectedElement; /**Kembali ke usnur * The element back. */ private static Image elementBack[] = new Image[Element.NO_CLASSES]; /** The temporary image storage of current graphics. */ private Image tempImage; /** The glass landscape. */ private Image backgroundNormal, backgroundRotated, grpr, glassPortrait, glassLandscape; /**huruf unsur * The element font. */ private Font elementFont = Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_PLAIN, Font.SIZE_SMALL); /** The grid font. */ private Font gridFont = Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD, Font.SIZE_MEDIUM); /**Besar huruf Unsur * The element font height. */ private int elementFontHeight = elementFont.getHeight(); /** The grid font height. */ private int gridFontHeight = gridFont.getHeight(); /** The vert border. */ private int horizBorder = 5, vertBorder = 10; /** The cursor y. */ private int cursorX = 0, cursorY = 0; /** The screen shift x. */ private int visibleItems = 0, screenShiftY = 0, screenShiftX = 0; /** The height. */ private int width = getWidth(), height = getHeight(); /** The menu index. */ private int menuIndex = 0; /** Is cellphone in landscape position. */ private boolean isLandscape = false; /** Is canvas started. */ private boolean started = false; /** Menu options. */ private String menu[] = new String[]{"Keterangan Tabel", "List Unsur Atom", "Tentang", "Selesai"}; /** Details font. */ private Font detailsFont = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL); /** Element symbol font. */ private Font elementSymbolFont = Font.getFont(Font.FACE_PROPORTIONAL,
II-9
Font.STYLE_BOLD, Font.SIZE_LARGE); /** Font width. */ private int fontWidth; /** Font height. */ private int fontHeight = detailsFont.getHeight(); ListForm f; /** * Instantiates a new main canvas. * * @param midlet parent midlet object */ public MainCanvas(MainMidlet midlet) { super(); parent = midlet; // Create temporary storage of graphical object tempImage = Image.createImage(getWidth(), getHeight()); tempGraphics = tempImage.getGraphics(); } /** * Start canvas. */ public void start() { setFullScreenMode(true); loadImages(); loadLwuitComponents(); for (int i = 0; i < Element.NO_ELEMENTS; i++) { elements[i] = new Element(i + 1); } if (width > height) { isLandscape = true; horizBorder = 10; vertBorder = 5; } visibleItems = (width - horizBorder - 23) / 23; System.out.println(visibleItems + ""); started = true; parent.ready(); } /* (non-Javadoc) * @see javax.microedition.lcdui.Canvas#paint(javax.microedition.lcdui.Graphics) */ protected void paint(Graphics g) { if (started) { System.out.println(state); // painting on off screen buffer first drawBackGround(tempGraphics); drawElements(tempGraphics);
II-10
drawLanthanides(tempGraphics); drawActinides(tempGraphics); drawGrid(tempGraphics); drawCarret(tempGraphics); switch (state) { case DO_NOTHING: break; case DRAW_MENU: glassEffect(tempGraphics); drawSubMenu(tempGraphics); break; case DRAW_DETAILS: glassEffect(tempGraphics); selectedElement = new Element(Element.getNo(cursorX + 1, cursorY + 1)); drawTitles(tempGraphics); drawDetails(tempGraphics); drawChildWindowMenu(tempGraphics); break; case ABOUT: glassEffect(tempGraphics); drawDescr(tempGraphics); drawChildWindowMenu(tempGraphics); break; case DRAW_ACTINIDES: glassEffect(tempGraphics); selectedElement = new Element(cursorX + Element.ACTINOIDS_LOW - 2); drawTitles(tempGraphics); drawDetails(tempGraphics); drawChildWindowMenu(tempGraphics); break; case DRAW_LANTHANIDES: glassEffect(tempGraphics); selectedElement = new Element(cursorX + Element.LANTHANOIDS_LOW - 2); drawTitles(tempGraphics); drawDetails(tempGraphics); drawChildWindowMenu(tempGraphics); break; case LEGEND: glassEffect(tempGraphics); drawClasses(tempGraphics); drawChildWindowMenu(tempGraphics); break; } // paint it at image on the real screen g.drawImage(tempImage, 0, 0, Graphics.TOP | Graphics.LEFT); } } /** * Harus memasukkan seluruh sumber gambar * Load all necessary image resources. */ private void loadImages() { try {
II-11
backgroundNormal = Image.createImage("/back.png"); backgroundRotated = Utils.rotateImage(backgroundNormal, 270); glassPortrait = Image.createImage("/info_back.png"); glassLandscape = Utils.rotateImage(glassPortrait, 270); grpr = Image.createImage("/grpr.png"); elementBack[Element.ACTINIDE] = Image.createImage("/actinides.png"); elementBack[Element.HALOGEN] = Image.createImage("/otherNonMetals.png"); elementBack[Element.LANTHANIDE] = Image.createImage("/lanthanides.png"); elementBack[Element.ALKALINE_EARTH_METAL] = Image.createImage("/alkaline.png"); elementBack[Element.METALLOID] = Image.createImage("/metalloid.png"); elementBack[Element.NOBLE_GAS] = Image.createImage("/nobleGases.png"); elementBack[Element.NON_METAL] = Image.createImage("/otherNonMetals.png"); elementBack[Element.POOR_METAL] = Image.createImage("/otherMetals.png"); elementBack[Element.TRANSITION_METAL] = Image.createImage("/inerTrans.png"); elementBack[Element.ALKALI_METAL] = Image.createImage("/alkali.png"); } catch (IOException ex) { ex.printStackTrace(); } } /** * Load all necessary lwuit resources and components. */ private void loadLwuitComponents(){ com.sun.lwuit.Display.init(parent); try { Resources r = Resources.open("/theme.res"); UIManager.getInstance().setThemeProps(r.getTheme(r.getThemeResourceNames()[0])); } catch (IOException ioe) { ioe.printStackTrace(); System.out.println("LWUIT RES can't be loaded"); } f = new ListForm(parent, this); f.init(); } /** * Draws all chemical elements * * @param g canvas graphics object */ private void drawElements(Graphics g) { g.setFont(elementFont);
II-12
for (int i = 0; i < elements.length; i++) { if (elements[i].group == 3) { // System.out.println(elements[i].element); } if (elements[i].category < 8) { g.drawImage(elementBack[elements[i].category], screenShiftX + horizBorder + (23 * elements[i].group), screenShiftY + vertBorder + (23 * elements[i].period), Graphics.TOP | Graphics.LEFT); int width = elementFont.substringWidth(elements[i].symbol, 0, elements[i].symbol.length()); g.drawString(elements[i].symbol, screenShiftX + horizBorder + 23 * elements[i].group + 23 / 2 - width / 2, screenShiftY + vertBorder + 23 * elements[i].period + 23 / 2 - elementFontHeight / 2, Graphics.TOP | Graphics.LEFT); } } } // Screen was rotated /* (non-Javadoc) * @see javax.microedition.lcdui.Canvas#sizeChanged(int, int) */ public void sizeChanged(int w, int h) { width = w; height = h; if (w > h) { isLandscape = true; horizBorder = 10; vertBorder = 5; } else { isLandscape = false; horizBorder = 5; vertBorder = 10; } visibleItems = (w - horizBorder - 23) / 23; tempImage = Image.createImage(w, h); tempGraphics = tempImage.getGraphics(); repaint(); } /** * Draw periodic table grid. * * @param g canvas graphics object */ private void drawGrid(Graphics g) { if (isLandscape) { g.drawImage(backgroundRotated, 0, 0, Graphics.TOP | Graphics.LEFT); } else { g.drawImage(backgroundNormal, 0, 0, Graphics.TOP | Graphics.LEFT); }
II-13
g.setFont(gridFont); for (int i = 1; i < (width - screenShiftX - horizBorder) / 23 && i < 19; i++) { g.drawString(i + " ", screenShiftX + horizBorder + 23 * i, screenShiftY + 10 + 23 / 2 - gridFontHeight / 2, Graphics.TOP | Graphics.LEFT); } for (int i = 1; i < 8/* (getHeight() - vertBorder*2) / 23 */; i++) { g.drawString(i + " ", screenShiftX + horizBorder, screenShiftY + vertBorder + 23 * i + 23 / 2 - gridFontHeight / 2, Graphics.TOP | Graphics.LEFT); } g.drawString("* Lanta.", screenShiftX + 0, screenShiftY + vertBorder + 23 * 8 + 23 / 2 - gridFontHeight / 2, Graphics.TOP | Graphics.LEFT); g.drawString("** Akt.", screenShiftX + 0, screenShiftY + vertBorder + 23 * 9 + 23 / 2 - gridFontHeight / 2, Graphics.TOP | Graphics.LEFT); g.drawImage(grpr, horizBorder, vertBorder, Graphics.TOP | Graphics.LEFT); } /** * Draw lanthanides. * * @param g canvas graphics object */ private void drawLanthanides(Graphics g) { g.drawImage(elementBack[Element.LANTHANIDE], screenShiftX + horizBorder + (23 * 3), screenShiftY + vertBorder + (23 * 6), Graphics.TOP | Graphics.LEFT); int width = elementFont.substringWidth("*", 0, 1); g.drawString("*", screenShiftX + horizBorder + 23 * 3 + 23 / 2 - width / 2, screenShiftY + vertBorder + 23 * 6 + 23 / 2 - elementFontHeight / 2, Graphics.TOP | Graphics.LEFT); for (int i = 56; i < 71; i++) { if (elements[i].category == 8) { g.drawImage(elementBack[elements[i].category], screenShiftX + horizBorder + (23 * (i - 56 + 3)), screenShiftY + vertBorder + (23 * elements[i].category), Graphics.TOP | Graphics.LEFT); width = elementFont.substringWidth(elements[i].symbol, 0, elements[i].symbol.length()); g.drawString(elements[i].symbol, screenShiftX + horizBorder + 23 * (i - 56 + 3) + 23 / 2 - width / 2, screenShiftY + vertBorder + 23 * elements[i].category + 23 / 2 - elementFontHeight / 2, Graphics.TOP | Graphics.LEFT);
II-14
} } } /** * Draw actinides. * * @param g canvas graphics object */ private void drawActinides(Graphics g) { g.drawImage(elementBack[Element.ACTINIDE], screenShiftX + horizBorder + (23 * 3), screenShiftY + vertBorder + (23 * 7), Graphics.TOP | Graphics.LEFT); int width = elementFont.substringWidth("**", 0, 2); g.drawString("**", screenShiftX + horizBorder + 23 * 3 + 23 / 2 - width / 2, screenShiftY + vertBorder + 23 * 7 + 23 / 2 - elementFontHeight / 2, Graphics.TOP | Graphics.LEFT); for (int i = 88; i < 103; i++) { if (elements[i].category == 9) { g.drawImage(elementBack[elements[i].category], screenShiftX + horizBorder + (23 * (i 88 + 3)), screenShiftY + vertBorder + (23 * elements[i].category), Graphics.TOP | Graphics.LEFT); width = elementFont.substringWidth(elements[i].symbol, 0, elements[i].symbol.length()); g.drawString(elements[i].symbol, screenShiftX + horizBorder + 23 * (i - 88 + 3) + 23 / 2 width / 2, screenShiftY + vertBorder + 23 * elements[i].category + 23 / 2 - elementFontHeight / 2, Graphics.TOP | Graphics.LEFT); } } } /** * Draw periodic table back ground. * * @param g canvas graphics object */ private void drawBackGround(Graphics g) { g.setColor(24, 24, 24); g.fillRect(0, 0, width, height); g.setColor(231, 231, 231); } /** * Draw current element position. * * @param g canvas graphics object */ private void drawCarret(Graphics g) { g.setColor(255, 255, 255); g.drawRect(screenShiftX + horizBorder + 23 + cursorX * 23, screenShiftY + vertBorder + 23 + cursorY * 23, 22, 23); } /** * Gets the action key. *
II-15
* @param key button pressed */ private void getAction(int key) { int softkey = getGameAction(key); if (key == -7 || softkey == 0) { if (state == DO_NOTHING || state == ACTINIDES_NAV || state == LANTHANIDES_NAV) { previousState = state; state = DRAW_MENU; } else if (state == DRAW_LANTHANIDES) { previousState = state; state = LANTHANIDES_NAV; } else if (state == DRAW_ACTINIDES) { previousState = state; state = ACTINIDES_NAV; } else { state = previousState; } } else if (softkey == UP || key == KEY_NUM2) { if (state == DO_NOTHING) { if (cursorY >= 0) { if (!Element.isEmpty(cursorX + 1, (cursorY - 1) % 9 + 1)) { cursorY = (cursorY - 1) % 9; } else { cursorY = -1; } } if (cursorY < 0) { if (cursorX > 0) { cursorX = (cursorX - 1) % 18; } else { cursorX = 17; } for (int i = 8; i > 0; i--) { if (!Element.isEmpty(cursorX + 1, i + 1)) { cursorY = i; break; } } } } else if (state == DRAW_MENU) { menuIndex--; if (menuIndex < 0) { menuIndex = menu.length - 1; } } else if (state == ACTINIDES_NAV) { cursorX = 2; cursorY = 6; state = DO_NOTHING; } else if (state == LANTHANIDES_NAV) { cursorX = 2; cursorY = 5; state = DO_NOTHING; } else if (state == DRAW_ACTINIDES || state == DRAW_LANTHANIDES || state == DRAW_DETAILS) {
II-16
return; } } else if (softkey == DOWN || key == KEY_NUM8) { if (state == DO_NOTHING) { if (cursorY <= 8) { if (!Element.isEmpty(cursorX + 1, (cursorY + 1) % 9 + 1)) { cursorY = (cursorY + 1) % 9; } else { cursorY = 9; } } if (cursorY > 8) { cursorX = (cursorX + 1) % 18; for (int i = 0; i < 8; i++) { if (!Element.isEmpty(cursorX + 1, i + 1)) { cursorY = i; break; } } } } else if (state == DRAW_MENU) { menuIndex++; if (menuIndex > menu.length - 1) { menuIndex = 0; } } else if (state == DRAW_ACTINIDES || state == DRAW_LANTHANIDES || state == DRAW_DETAILS) { return; } } else if (softkey == LEFT || key == KEY_NUM4) { if (state == DO_NOTHING) { if (cursorX >= 0) { if (!Element.isEmpty((cursorX - 1) % 18 + 1, cursorY + 1)) { cursorX = (cursorX - 1) % 18; } else { if (cursorX != 0) { for (int i = cursorX - 1; i > -1; i--) { if (!Element.isEmpty(i + 1, cursorY + 1)) { cursorX = i; break; } } } else { cursorX = -1; } } } if (cursorX < 0) { if (cursorY > 0) { cursorY = (cursorY - 1) % 7; } else { cursorY = 6; } for (int i = 17; i > 0; i--) { if (!Element.isEmpty(i + 1, cursorY + 1)) {
II-17
cursorX = i; break; } } } } else if (state == ACTINIDES_NAV) { int act = Element.getActinoids().length + 1; if (cursorX > 3) { cursorX--; } else { cursorX = act; } } else if (state == LANTHANIDES_NAV) { int lanth = Element.getLanthanoids().length + 1; if (cursorX > 3) { cursorX--; } else { cursorX = lanth; } } else if (state == DRAW_ACTINIDES || state == DRAW_LANTHANIDES || state == DRAW_DETAILS) { return; } } else if (softkey == RIGHT || key == KEY_NUM6) { if (state == DO_NOTHING) { if (cursorX <= 17) { if (!Element.isEmpty((cursorX + 1) % 18 + 1, cursorY + 1)) { cursorX = (cursorX + 1) % 18; } else { for (int i = cursorX + 1; i < 18; i++) { if (!Element.isEmpty(i + 1, cursorY + 1)) { cursorX = i; break; } } } } if (cursorX > 17) { cursorY = (cursorY + 1) % 8; for (int i = 0; i < 17; i++) { if (!Element.isEmpty(i + 1, cursorY + 1)) { cursorX = i; break; } } } } else if (state == ACTINIDES_NAV) { int act = Element.getActinoids().length + 1; if (cursorX < act) { cursorX++; } else { cursorX = 2; } } else if (state == LANTHANIDES_NAV) { int lanth = Element.getLanthanoids().length + 1;
II-18
if (cursorX < lanth) { cursorX++; } else { cursorX = 2; } } else if (state == DRAW_ACTINIDES || state == DRAW_LANTHANIDES || state == DRAW_DETAILS) { return; } } else if (softkey == FIRE) { if (state == DO_NOTHING) { if (cursorX == 2 && cursorY == 5) { state = LANTHANIDES_NAV; cursorY = 7; } else if (cursorX == 2 && cursorY == 6) { state = ACTINIDES_NAV; cursorY = 8; } else { previousState = DO_NOTHING; state = DRAW_DETAILS; } } else if (state == ACTINIDES_NAV) { state = DRAW_ACTINIDES; } else if (state == LANTHANIDES_NAV) { state = DRAW_LANTHANIDES; } else if (state == DRAW_MENU) { switch (menuIndex) { case 0: // Legend state = LEGEND; break; case 1: // Toggle List View if(previousState == DO_NOTHING){ f.showIt(Element.getNo(cursorX + 1, cursorY + 1)); } else if(previousState == ACTINIDES_NAV){ f.showIt(cursorX + Element.ACTINOIDS_LOW - 2); } else if(previousState == LANTHANIDES_NAV){ f.showIt(cursorX + Element.LANTHANOIDS_LOW - 2); } state = previousState; break; case 2: // About state = ABOUT; break; case 3: // Exit parent.destroyApp(true); parent.notifyDestroyed(); break; } } else if (state == DRAW_ACTINIDES || state == DRAW_LANTHANIDES || state == DRAW_DETAILS) { return; } repaint(); return; }
II-19
if (cursorX > (int) ((width - horizBorder) / 23) - 2) { screenShiftX = ((int) ((width - horizBorder) / 23) * -1 * 23); } else if (cursorX < (width / 23) - 1) { screenShiftX = 0; } repaint(); } /* (non-Javadoc) * @see javax.microedition.lcdui.Canvas#keyPressed(int) */ protected void keyPressed(int key) { getAction(key); } /** * Draw sub menu. * * @param g canvas graphics object */ private void drawSubMenu(Graphics g) { g.setColor(24, 24, 24); Font f = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_SMALL); g.setFont(f); int rectHeight = menu.length * f.getHeight() + 10; int rectWidth = 0; for (int i = 0; i < menu.length; i++) { if (f.stringWidth(menu[i]) > rectWidth) { rectWidth = f.stringWidth(menu[i]) + 10; } } if (width < height) { g.fillRoundRect(width - rectWidth, height - rectHeight, rectWidth, rectHeight, (int) (width / 20), (int) (width / 20)); } else { g.fillRoundRect(width - rectWidth, 0, rectWidth, rectHeight, (int) (height / 20), (int) (height / 20)); } int offset = 5; for (int i = 0; i < menu.length; i++) { g.setColor(0xFFFFFF); if (i == menuIndex) { g.setColor(0x00FFFF); } if (width < height) { g.drawString(menu[i], width - 5, height - rectHeight + offset, Graphics.TOP | Graphics.RIGHT); } else { g.drawString(menu[i], width - 5, offset, Graphics.TOP | Graphics.RIGHT); }
II-20
offset += f.getHeight() + 1; } } /** * Glass effect. * * @param g canvas graphics object */ private void glassEffect(Graphics g) { if (isLandscape) { g.drawImage(glassLandscape, 0, 0, Graphics.TOP | Graphics.LEFT); } else { g.drawImage(glassPortrait, 0, 0, Graphics.TOP | Graphics.LEFT); } } /** * Draw about info * * @param g canvas graphics object */ private void drawDescr(Graphics g) { g.setColor(231, 231, 231); g.setFont(detailsFont); int y = 0; String text = "Aplikasi Periodik Tabel ini di bangun dengan menggunakan \n" + "bahasa pemograman Java (J2ME).\n" + "Apliksi ini dibuat sebagai salah satu syarat untuk menyelesaikan study S1.\n" + "Aplikasi ini berguna bagi siswa-siswi SMA(SMU) kelas 1\n\n" + "Kiki Rezky Muslimun.S \n" + "203091001969 \n" + "Fakultas Sains and Teknologi\n" + "Universitas Islam Negeri\n" + "Syarif Hidayahtullah Jakarta \n" + ""; TextWrapEnum e = new TextWrapEnum(detailsFont, text, width); while (e.hasMoreElements()) { g.drawString(e.nextElement().toString().replace('\n', ' '), 0, y, Graphics.TOP | Graphics.LEFT); y += fontHeight; } } /** * Draw child window menu. * * @param g canvas graphics object */ private void drawChildWindowMenu(Graphics g) { g.setColor(24, 24, 24); Font f = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_SMALL); g.setFont(f);
II-21
int rectHeight = f.getHeight() + 10; int rectWidth = f.stringWidth("Kembali") + 10; if (width < height) { g.fillRoundRect(width - rectWidth, height - rectHeight, rectWidth, rectHeight, (int) (width / 20), (int) (width / 20)); g.setColor(255, 255, 255); g.drawString("Kembali", width - 5, height - rectHeight + 5, Graphics.TOP | Graphics.RIGHT); } else { g.fillRoundRect(width - rectWidth, 0, rectWidth, rectHeight, (int) (height / 20), (int) (height / 20)); g.setColor(255, 255, 255); g.drawString("Kembali", width - 5, 5, Graphics.TOP | Graphics.RIGHT); } } /** * Draw classes/categories of chemical elements. * * @param g canvas graphics object */ private void drawClasses(Graphics g) { g.setColor(231, 231, 231); g.setFont(detailsFont); int backHight = MainCanvas.elementBack[0].getHeight(); for (int i = 0; i < Element.NO_CLASSES; i++) { // Draw class background g.drawImage(MainCanvas.elementBack[i], 0, (backHight * i) + 10, Graphics.TOP | Graphics.LEFT); // Draw class description g.drawString(Element.classes[i], 25, (backHight * i) + 10, Graphics.TOP | Graphics.LEFT); } } /** * Draw titles of chemical elements. * * @param g canvas graphics object */ private void drawTitles(Graphics g) { tempGraphics.setColor(231, 231, 231); tempGraphics.setFont(elementSymbolFont); String temp = selectedElement.element + " (" + selectedElement.symbol + "):"; g.drawString(temp, 0, 0, Graphics.TOP | Graphics.LEFT); g.setFont(detailsFont); fontWidth = detailsFont.stringWidth("Period in periodic table:"); g.drawString("Nama:", 0, fontHeight + 10, Graphics.TOP | Graphics.LEFT); g.drawString("Lambang Atom:", 0, fontHeight * 2 + 10, Graphics.TOP | Graphics.LEFT); g.drawString("Masa Atom:", 0, fontHeight * 3 + 10, Graphics.TOP | Graphics.LEFT);
II-22
g.drawString("Nomor Atom:", 0, fontHeight * 4 + 10, Graphics.TOP | Graphics.LEFT); g.drawString("Kategori:", 0, fontHeight * 5 + 10, Graphics.TOP | Graphics.LEFT); g.drawString("Golongan Unsur:", 0, fontHeight * 6 + 10, Graphics.TOP | Graphics.LEFT); g.drawString("Periode Unsur:", 0, fontHeight * 7 + 10, Graphics.TOP | Graphics.LEFT); } /** * Draw chemical element details. * * @param g canvas graphics object */ private void drawDetails(Graphics g) { g.drawString(selectedElement.element + "", fontWidth, fontHeight + 10, Graphics.TOP | Graphics.LEFT); g.drawString(selectedElement.symbol + "", fontWidth, fontHeight * 2 + 10, Graphics.TOP | Graphics.LEFT); g.drawString(selectedElement.mass + "", fontWidth, fontHeight * 3 + 10, Graphics.TOP | Graphics.LEFT); g.drawString(selectedElement.number + "", fontWidth, fontHeight * 4 + 10, Graphics.TOP | Graphics.LEFT); g.drawString(Element.classes[selectedElement.category] + "", fontWidth, fontHeight * 5 + 10, Graphics.TOP | Graphics.LEFT); g.drawString(selectedElement.group + "", fontWidth, fontHeight * 6 + 10, Graphics.TOP | Graphics.LEFT); g.drawString(selectedElement.period + "", fontWidth, fontHeight * 7 + 10, Graphics.TOP | Graphics.LEFT); } // Needs to be rewritten, the real wtf right now. // Works fine though. public void setPosition(int position){ boolean actinoid = Element.isActinoid(position); boolean lanthanoid = Element.isLanathanoid(position); if(actinoid) state = ACTINIDES_NAV; else if(lanthanoid) state = LANTHANIDES_NAV; else state = DO_NOTHING; if(state == DO_NOTHING){ int xy[] = Element.getPosition(position); cursorX = xy[0]-1; cursorY = xy[1]-1; } else if(state == LANTHANIDES_NAV){ cursorX = (position+1) - (Element.LANTHANOIDS_LOW-2); cursorY = 7; } else if(state == ACTINIDES_NAV){ cursorX = (position+1) - (Element.ACTINOIDS_LOW-2); cursorY = 8; } if (cursorX > (int) ((width - horizBorder) / 23) - 2) { screenShiftX = ((int) ((width - horizBorder) / 23) * -1 * 23);
II-23
} else if (cursorX < (width / 23) - 1) { screenShiftX = 0; } } }
File Element.java package com.periodic.data; /** * Penggolongan Unsur * The Class Element. * * @Kiki Rezky Muslimun.s * 203091001969 */ public class Element{ /** Jumlah nomor dari elemen dalam periodik tabel * Total number of elements in periodic table. */ public static final int NO_ELEMENTS = 118; /**Jumlah nomor dari kategori unsur dalam periodik tabel * Total number of classes/categories in periodic table.*/ public static final int NO_CLASSES = 10; /**Nomor awal unsur aktinium dalam periodik tabel * The first actinoid number in periodic table. */ public static final int ACTINOIDS_LOW = 89; /**Nomor akhir unusr aktinium dalam periodik tabel * The last actinoid number in periodic table. */ public static final int ACTINOIDS_HIGH = 103; /**Nomor awal unsur latanum dalam periodik tabel * The first lanthanoid number in periodic table. */ public static final int LANTHANOIDS_LOW = 57; /** Nomor akhir unsur latanum dalam periodik tabel * The last lanthanoid number in periodic table. */ public static final int LANTHANOIDS_HIGH = 71; /** kategiri Non-Logam * Non-metal category. */ public static final int NON_METAL
= 0;
/** Kategori Gas Mulia * Noble gas category. */ public static final int NOBLE_GAS
= 1;
/** Kategori Logam Alkali * Alkali metal category. */ public static final int ALKALI_METAL
= 2;
II-24
/**Kategori Alkali Tanah * Alkaline earth metal category. */ public static final int ALKALINE_EARTH_METAL = 3; /** Kategori Metalloid * Metalloid category. */ public static final int METALLOID /** Kategori Hologen * Halogen category. */ public static final int HALOGEN
= 4;
= 5;
/** Kategori Logam Transisi * Transition metal category. */ public static final int TRANSITION_METAL /** Kategori Logam Lainnya * Poor metal category. */ public static final int POOR_METAL
= 7;
/** Kategori lantanida * Lanthanide category. */ public static final int LANTHANIDE
= 8;
/** Kategori Aksinida * Actinide category. */ public static final int ACTINIDE
= 6;
= 9;
/** Pengelompokan Kategori * The classes. */ public static final String classes[] = {"Non-Logam", "Gas Mulia", "Logam Alkali", "Alkali Tanah", "Metalloid", "Halogen", "Logam Transisi", "Logam Lainnya", "Lantanida", "Aksinida"}; /** Unsur- unsur * The elements. */ private static final String elements[] = {"Hidrogen / Hydrogen", "Helium", "Litium / Lithium", "Berilium / Beryllium", "Boron", "Karbon / Carbon", "Nitrogen", "Oksigen / Oxygen", "Fluor / Fluorine", "Neon", "Natrium / Sodium", "Magnesium", "Aluminium", "Silikon / Silicon", "Fosfor / Phosphorus", "Belerang / Sulfur", "Klor / Chlorine", "Argon", "Kalium / Potassium", "Kalsium / Calcium", "Skandium / Scandium", "Titanium", "Vanadium", "Krom / Chromium", "Mangan / Manganese", "Besi / Iron", "Kobal / Cobalt", "Nikel / Nickel", "Tembaga / Copper", "Seng / Zinc", "Galium / Gallium", "Germanium", "Arsen / Arsenic", "Selenium", "Brom / Bromine", "Kripton / Krypton", "Rubidium", "Strontium", "Itrium / Yttrium", "Zirkonium / Zirconium", "Niobium", "Molibdenium / Molybdenum", "Teknesium / Technetium", "Rutenium / Ruthenium", "Rodium / Rhodium", "Paladium / Palladium", "Perak / Silver", "Kadium / Cadmium", "Indium", "Timah / Tin", "Antimon / Antimony", "Telurium / Tellurium", "Yodium / Iodine", "Xenon", "Sesium / Caesium",
II-25
"Barium", "Lantanum / Lanthanum", "Serium / Cerium", "Praseodinium / Praseodymium", "Neodinium / Neodymium", "Prometium / Promethium", "Samarium", "Europium", "Gadolinium", "Terbium", "Disprosium / Dysprosium", "Holmium", "Erbium", "Tulium / Thulium", "Iterbium / Ytterbium", "Lutisium / Lutetium", "Hafnium", "Tantalum", "Tungsten", "Renium / Rhenium", "Osmium", "Iridium", "Platinum", "Emas / Gold", "Raksa / Mercury", "Talium / Thallium", "Timbal / Lead", "Bismut / Bismuth", "Polonium", "Astatin / Astatine", "Radon", "Fransium / Francium", "Radium", "Aktinium / Actinium", "Torium / Thorium", "Protaktinium / Protactinium", "Uranium", "Neptunium", "Plutonium", "Amerisium / Americium", "Kurium / Curium", "Berkelium", "Kalifornium / Californium", "Einsteinium", "Fermium", "Mendelevium", "Nobelium", "Lawrensium / Lawrencium", "Rutherfordium", "Dubnium", "Seaborgium", "Bohrium", "Hassium", "Meitnerium", "Darmstadtium", "Roentgenium", "Ununbium", "Ununtrium", "Ununquadium", "Ununpentium", "Ununhexium", "Ununseptium", "Ununoctium"}; /** Lambang-lambang * The symbols. */ private static final String symbols[] = {"H", "He", "Li", "Be", "B", "C", "N", "O", "F", "Ne", "Na", "Mg", "Al", "Si", "P", "S", "Cl", "Ar", "K", "Ca", "Sc", "Ti", "V", "Cr", "Mn", "Fe", "Co", "Ni", "Cu", "Zn", "Ga", "Ge", "As", "Se", "Br", "Kr", "Rb", "Sr", "Y", "Zr", "Nb", "Mo", "Tc", "Ru", "Rh", "Pd", "Ag", "Cd", "In", "Sn", "Sb", "Te", "I", "Xe", "Cs", "Ba", "La", "Ce", "Pr", "Nd", "Pm", "Sm", "Eu", "Gd", "Tb", "Dy", "Ho", "Er", "Tm", "Yb", "Lu", "Hf", "Ta", "W", "Re", "Os", "Ir", "Pt", "Au", "Hg", "Tl", "Pb", "Bi", "Po", "At", "Rn", "Fr", "Ra", "Ac", "Th", "Pa", "U", "Np", "Pu", "Am", "Cm", "Bk", "Cf", "Es", "Fm", "Md", "No", "Lr", "Rf", "Db", "Sg", "Bh", "Hs", "Mt", "Ds", "Rg", "Uub", "Uut", "Uuq", "Uup", "Uuh", "Uus", "Uuo"}; /** Massa-massa * The masses. */ private static final String masses[] = {"1.00794(7)", "4.002602(2)", "6.941(2)", "9.012182(3)", "10.811(7)", "12.0107(8)", "14.0067(2)", "15.9994(3)", "18.9984032(5)", "20.1797(6)", "22.98976928(2)", "24.3050(6)", "26.9815386(8)", "28.0855(3)", "30.973762(2)", "32.065(5)", "35.453(2)", "39.948(1)", "39.0983(1)", "40.078(4)", "44.955912(6)", "47.867(1)", "50.9415(1)", "51.9961(6)", "54.938045(5)", "55.845(2)", "58.933195(5)", "58.6934(4)", "63.546(3)", "65.38(2)", "69.723(1)", "72.64(1)", "74.92160(2)", "78.96(3)", "79.904(1)", "83.798(2)", "85.4678(3)", "87.62(1)", "88.90585(2)", "91.224(2)", "92.90638(2)", "95.96(2)", "[98.9063]", "101.07(2)", "102.90550(2)", "106.42(1)", "107.8682(2)", "112.411(8)", "114.818(3)", "118.710(7)", "121.760(1)", "127.60(3)", "126.90447(3)", "131.293(6)", "132.9054519(2)", "137.327(7)", "138.90547(7)", "140.116(1)", "140.90765(2)", "144.242(3)", "[146.9151]", "150.36(2)", "151.964(1)", "157.25(3)", "158.92535(2)", "162.500(1)", "164.93032(2)", "167.259(3)", "168.93421(2)", "173.054(5)", "174.9668(1)", "178.49(2)", "180.9479(1)", "183.84(1)", "186.207(1)", "190.23(3)", "192.217(3)", "195.084(9)", "196.966569(4)", "200.59(2)", "204.3833(2)", "207.2(1)", "208.98040(1)", "[208.9824]", "[209.9871]", "[222.0176]", "[223.0197]", "[226.0254]", "[227.0278]", "232.03806(2)", "231.03588(2)", "238.02891(3)", "[237.0482]", "[244.0642]", "[243.0614]", "[247.0704]", "[247.0703]", "[251.0796]", "[252.0829]", "[257.0951]", "[258.0986]", "[259.1009]", "[264]", "[265]", "[268]", "[272]", "[273]", "[276]", "[279]",
II-26
"[278]", "[283]", "[285]", "[287]", "[289]", "[291]", "[293]", "[295]", "[294]"}; /** Kategori-kategori * The categories. */ private static final int categories[] = {0, 1, 2, 3, 4, 0, 0, 0, 5, 1, 2, 3, 7, 4, 0, 0, 5, 1, 2, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 4, 4, 0, 5, 1, 2, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 4, 4, 5, 1, 2, 3, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 4, 5, 1, 2, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 5, 1};
/** Periode-periode * The periods. */ private static final int periods[] = {1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}; /** Golongan-golongan * The groups. */ private static final int groups[] = {1, 18, 1, 2, 13, 14, 15, 16, 17, 18, 1, 2, 13, 14, 15, 16, 17, 18, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18};
/** Nomor unsur dalam periodik tebel * Element's number in periodic table */ public int number; /** Golongan unsur dalam periodik tabel * Element's group in periodic table. */ public int group; /** Periode usnur dalam periodik tabel * Element's period in periodic table. */ public int period; /**Kategori dari unsur * Category of the element */ public int category; /** massa unsur-unsur * Element's mass. */ public String mass; /** Lambang usnur-unsur * Element's symbol. */ public String symbol;
II-27
/**Nama unsur-unsur * Element's name. */ public String element; /** * Instantiates a new element. * * @param nomor unsur dalam tabel periodik * @param number element number in periodic table */ public Element(int number){ this.number = number; element = elements[number-1]; symbol = symbols[number-1]; group = groups[number-1]; period = periods[number-1]; mass = masses[number-1]; category = categories[number-1]; } /** * menanggil actinoids * Gets the actinoids. * * @return array dari lambang actinoid * @return array of actinoid symbols */ public static String[] getActinoids(){ String result[] = new String[15]; for (int i = 89; i < 104; i++) { result[i-89] = symbols[i]; } return result; } /** * Memanggil lanthanoids * Gets the lanthanoids. * * @return array dari lambang lanthanoid * @return array of lanthanoid symbols */ public static String[] getLanthanoids(){ String result[] = new String[15]; for (int i = 57; i < 72; i++) { result[i-57] = symbols[i]; } return result; } /** * periksa spesipikasi unsur jika golongan dan periode kosong * Checks if element at specified group and period is empty. *
II-28
* @param nomor golongan - golongan * @param group group number * @param nomor periode-periode * @param period period number * * @return benar, jika unsur ternyata tidak keluar, maka ada kesalahan * @return true, if the element does not exist, else false is returned. */ public static boolean isEmpty(int group, int period){ int j = 0; int temp[] = new int[periods.length]; for (int i = 0; i < periods.length; i++) { if(periods[i] == period){ temp[j++] = i; } } for (int i = 0; i < j; i++) { if(groups[temp[i]] == group){ return false; } } return true; } /** * Mencari nomor elemen pada spesipikadi golongan dan periode * Gets number of element at at specified group and period. * * @param nomor golongan - golongan * @param group group number * @param nomor periode-periode * @param period period number * * @return jika nomor elemen ada, maka kembali ke -1 * @return number of the element if it exists, else -1 is returned. */ public static int getNo(int group, int period){ int j = 0; int temp[] = new int[periods.length]; for (int i = 0; i < periods.length; i++) { if(periods[i] == period){ temp[j++] = i; } } for (int i = 0; i < j; i++) { if(groups[temp[i]] == group){ return temp[i]+1; } } return -1; }
/** * Memanggil golongan dan periode dari spesipikasi unsur
II-29
* Gets group and period of specified element * * @param elementPosition nomor elemen * @param elementPosition element number * * @return golongan [0] dan periode[1] * @return group [0] and period [1] */ public static int[] getPosition(int elementPosition){ int result[] = new int[2]; result[0] = groups[elementPosition]; result[1] = periods[elementPosition]; return result; } /** * Kembali keseluruh unsur * Gets all elements. * * @return array dari unsur-unsur * @return array of elements */ public static String[] getElements(){ return elements; } public static boolean isActinoid(int no){ if(no <= ACTINOIDS_HIGH && no >= ACTINOIDS_LOW) return true; return false; } public static boolean isLanathanoid(int no){ if(no <= LANTHANOIDS_HIGH && no >= LANTHANOIDS_LOW) return true; return false; } }
File TextWrapEnum.java package com.periodic.utils; import java.util.Enumeration; import java.util.NoSuchElementException; import javax.microedition.lcdui.*; /** * @Kiki rezky Muslimun.s */ public class TextWrapEnum implements Enumeration { private Font font;
II-30
private String text; private int width; private int position; private int length; private int start = 0; public TextWrapEnum(Font font, String text, int width) { this.font = font; this.text = text; this.width = width; this.length = text.length(); }
public boolean hasMoreElements() { return (position < length); } public Object nextElement() throws NoSuchElementException { try { return text.substring(start,(start = next())); } catch ( IndexOutOfBoundsException e ) { throw new NoSuchElementException(e.getMessage()); } catch ( Exception e ) { throw new NoSuchElementException(e.getMessage()); } }
private int next() { int index = length; for (int i = position; i < length && font.stringWidth(text.substring(position,i)) <= width; i++){ //System.out.print(text.charAt(i)); if(text.charAt(i) == ' '){ index = i+1; } else if(text.charAt(i) == '\n'){ index = i+1; break; } } position = index; return position; } }
File ListSearchable.java
II-31
// Ini adalah kode yang dimodifikasi yang diambil dari contoh dibawah ini: // This is modified code taken from this example: // http://lwuit.blogspot.com/2009/09/lost-again-searchable-list-with-text.html package com.periodic.ui; import com.sun.lwuit.Command; import com.sun.lwuit.Display; import com.sun.lwuit.Graphics; import com.sun.lwuit.List; import com.sun.lwuit.TextField; import com.sun.lwuit.plaf.Style; public class ListSearchable extends List { public ListSearchable(String[] items) { super(items); } private long lastSearchInteraction; private TextField search = new TextField(3) { protected Command instalCommand(Command clear, Command t9) { return clear; } public void keyPressed(int keyPressed) { lastSearchInteraction = System.currentTimeMillis(); } public void keyReleased(int keyPressed) { super.keyReleased(keyPressed); lastSearchInteraction = System.currentTimeMillis(); String t = search.getText(); int modelSize = getModel().getSize(); for (int iter = 0; iter < modelSize; iter++) { String v = getModel().getItemAt(iter).toString(); if (v.startsWith(t)) { setSelectedIndex(iter); return; } } } }; { search.setMaxSize(3); search.setInputModeOrder(new String[]{"Abc"}); search.setReplaceMenu(false); search.setFocus(true); } public void keyPressed(int code) { int game = Display.getInstance().getGameAction(code); if (game > 0) {
II-32
super.keyPressed(code); } else { search.keyPressed(code); } } public void keyReleased(int code) { int game = Display.getInstance().getGameAction(code); if (game > 0) { super.keyReleased(code); } else { search.keyReleased(code); } } public void paint(Graphics g) { super.paint(g); if (System.currentTimeMillis() - 1500 < lastSearchInteraction || search.isPendingCommit()) { search.setSize(search.getPreferredSize()); Style s = search.getStyle(); search.setX(getX() + getWidth() - search.getWidth() - s.getPadding(RIGHT) s.getMargin(RIGHT)); search.setY(-1 * getAbsoluteY() + 47); search.paintComponent(g, true); } } public boolean animate() { boolean val = super.animate(); if (lastSearchInteraction != -1) { search.animate(); if (System.currentTimeMillis() - 1500 > lastSearchInteraction && !search.isPendingCommit()) { lastSearchInteraction = -1; search.clear(); } return true; } return val; } }
File ListForm.Java
II-33
package com.periodic.ui; import com.sun.lwuit.layouts.BorderLayout; import com.sun.lwuit.layouts.BoxLayout; import com.periodic.data.Element; import com.sun.lwuit.Command; import com.sun.lwuit.Dialog; import com.sun.lwuit.Form; import com.sun.lwuit.List; import com.sun.lwuit.events.ActionEvent; import com.sun.lwuit.events.ActionListener; public class ListForm extends Form implements ActionListener { MainMidlet parent; MainCanvas canvas; Command exitCommand = new Command("Keluar"); Command toggleCommand = new Command("Tampilkan Tabel"); List l; public ListForm(MainMidlet parent, MainCanvas canvas) { super("List Unsur Atom"); this.canvas = canvas; this.parent = parent; } public void init() { setLayout(new BoxLayout(BoxLayout.Y_AXIS)); String[] items = Element.getElements(); l = new ListSearchable(items); l.setFixedSelection(List.FIXED_NONE_CYCLIC); l.addActionListener(this); addComponent(l); addCommand(exitCommand); addCommand(toggleCommand); //setCommandListener(this); addCommandListener(this); } public void showIt(final int position) { show(); System.out.println(position); // Harus membuat Thread, jika tidak maka sekrol tidak bisa dipindahkan Thread t = new Thread() { public void run() { try { Thread.sleep(100); } catch (InterruptedException ex) { ex.printStackTrace(); } l.setSelectedIndex(position - 1, true); }
II-34
}; t.start(); } public void actionPerformed(ActionEvent ae) { if (ae.getSource() == l) { Element element = new Element(l.getSelectedIndex() + 1); String content = "Nama: " + element.element + "\nLambang Atom: " + element.symbol + "\nMasa Atom: " + element.mass + "\nNomor Atom: " + element.number + "\nKategori unsur: " + Element.classes[element.category] + "\nGolongon Unsur: " + element.group + "\nPeriode Unsur: " + element.period; Dialog.setDefaultDialogType(Dialog.TYPE_INFO); Dialog.setDefaultDialogPosition(BorderLayout.CENTER); Dialog.show(element.symbol, content, "Kembali", null); } if (ae.getCommand() == exitCommand) { parent.notifyDestroyed(); } else if (ae.getCommand() == toggleCommand) { this.setVisible(false); canvas.setPosition(l.getSelectedIndex()); javax.microedition.lcdui.Display.getDisplay(parent).setCurrent(canvas); } } }
File Utils.Java
II-35
package com.periodic.utils; import javax.microedition.lcdui.Image; /** * @Kiki rezky Muslimun.s */ public class Utils { public static Image rotateImage(Image image, int angle) { if (angle == 0) { return image; } int width = image.getWidth(); int height = image.getHeight(); int[] rowData = new int[width]; int[] rotatedData = new int[width * height]; int rotatedIndex = 0; for (int i = 0; i < height; i++) { image.getRGB(rowData, 0, width, 0, i, width, 1); for (int j = 0; j < width; j++) { rotatedIndex = angle == 90 ? (height - i - 1) + j * height : (angle == 270 ? i + height * (width - j - 1) : width * height - (i * width + j) - 1); rotatedData[rotatedIndex] = rowData[j]; } } if (angle == 90 || angle == 270) { return Image.createRGBImage(rotatedData, height, width, true); } else { return Image.createRGBImage(rotatedData, width, height, true); } } }
II-36
LAMPIRAN III INSTALASI APLIKASI TABEL PERIODIK UNSUR PADA TELEPON SELULER MENGGUNAKAN FASILITAS BLUETOOTH DENGAN J2ME
I.
II.
III.
III.
III-1
Pada lampiran ini, akan dilakukan instalasi aplikasi chatting pada telepon seluler menggunakan fasilitas bluetooth dengan J2ME dengan spesifikasi minimum telepon selular yang dapat diintall aplikasi ini adalah memiliki MIDP 2.0, CLDC 1.0 dan sisa memori 110 KB. Di bawah ini akan diuraikan langkah-langkah menginstall aplikasi pada telepon Nokia N 73: 1. Lakukan instalasi PC Suite yang terdapat dalam CD ROM paket penjualan
atau
dapat
di
download
dari
situs
nokia
di
http://www.nokia.co.id/dukungan-dan-software/software/nokia-pcsuite/download. Kemudian pilih PC Suite sesuai dengan tipe telepon selular. 2. Setelah instalasi selesai, Nokia PC Suite akan secara otomatis meminta mode koneksi yang akan digunakan (Kabel/Infrared/Bluetooth). 3. Pada layar Nokia PC Suite pilih menu Install Java and Symbian SIS applications to your phone atau pilih menu File lalu pilih Install Applications. 4. Browse lokasi aplikasi yang akan diinstall (*.jar). 5. Tekan tombol install, maka secara otomatis pada telepon selular akan meminta ferifikasi untuk menginstall program baru, klik yes. 6. Ketika layar warning muncul, klik continue, kemudian pilih lokasi aplikasi akan diinstall (pada memori telepon atau memori eksternal).
III-2
IV .
LAMPIRAN IV CONTOH ANGKET, HASIL KUISIONER DAN PERSENTASE
IV-1
Program Studi Teknik Informatika Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta Kuisioner Penelitian Saya Kiki Rizki Muslimun S, dengan NIM 203091001969, Mahasiswa Teknik Informatika Program Non-Reguler Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta, sedang melakukan Penelitian berjudul ”Pengembangan Aplikasi Tabel Periodik Unsur Kimia Menggunakan J2ME”, dengan ini memohon kesediaannya untuk mengisi kuisioner (pertanyaan) di bawah ini dengan lengkap sesuai dengan petunjuk yang telah ditetapkan. Atas kesediaan dan kerjasamanya kami ucapkan terima kasih. Nama Sekolah Anda : ___________________________ Daftar Pertanyaan Kuisioner Jawablah pertanyaan di bawah ini dengan benar menurut anda ! 1. Apakah anda memiliki ponsel yang sudah mendukung aplikasi JAVA MIDP 2.0 ? a. Ya, Merk ponsel anda ____________________ seri _______ b. Tidak 2. Menurut anda, apakah aplikasi ini sudah user friendly ? a. Sangat user friendly b. Cukup User friendly c. Biasa-biasa saja d. Kurang user friendly e. Tidak user friendly 3. Bagaimana kemudahan dalam penggunaan aplikasi ini ? a. Sangat mudah b. Mudah c. Sedang d. Sulit e. Sangat sulit 4. Bagaimana layout tampilan atau user interface pada aplikasi ini ? a. Sangat Bagus b. Bagus c. Sedang d. Kurang Bagus e. Tidak Bagus 5. Sesering apa anda belajar kimia ? a. Setiap saat b. Cukup sering c. Kadang-kadang d. Sekali saja e. Tidak pernah
IV-2
6. Apakah setiap aplikasi ini dijalankan sering timbul gangguan berupa aplikasi hang atau error ? a. Sangat sering b. Sering c. Jarang d. Kadang-kadang e. Tidak pernah 7. Apakah aplikasi ini sudah cukup memenuhi kebutuhan anda dalam belajar kimia? a. Sangat Cukup b. Cukup c. Sedang d. Kurang e. Sangat Kurang 8. Apa saran anda terhadap pengembangan aplikasi ini ? a. Pengguna bukan hanya bisa melihat keterangan unsur tapi pengguna bisa menghitung masa atom unsur b. Ditaambahkan animasi yang bisa membuat daya tarik dalam belajar kimia c. Lebih banyak materinya. d. Tampilan dibuat lebih menarik e. Lain-lain ______________________________
IV-3
HASIL KUISIONER Dari 20 (sepuluh) orang responden, masing-masing jawabannya sebagai berikut : Tabel IV.1 Data Sebelum Diolah No 1 2 3 4 5 6 7 8
A 18 6 7 1 2 0 2 13
B 2 13 10 9 13 0 13 1
Jawaban Soal C 0 1 3 10 4 2 3 1
D 0 0 0 0 0 2 2 3
E 0 0 0 0 1 16 0 2
Tabel IV.2 Hasil Presentase Data di atas No 1 2 3 4 5 6 7 8
A 90 30 35 5 10 0 10 65
B 10 65 50 45 65 0 65 5
Jawaban Soal C 0 5 15 50 20 10 15 5
D 0 0 0 0 0 10 10 15
E 0 0 0 0 5 80 0 10
Hasil Kuisioner
Presentase
100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0%
E D C B A 1
2
3
4
5
Nomor Soal
IV-4
6
7
8
Gambar IV.1 Diagram Batang Hasil Respon User Hasil Persentase dari kuisioner yang dibagikan kepada 20 user adalah sebagai berikut: No
1. 2.
3.
4.
5.
6.
7.
Jumlah Persentase (%)
Pertanyaan Apakah anda memiliki ponsel yang sudah mendukung aplikasi JAVA MIDP 2.0 ? a. Ya b. Tidak Menurut anda, apakah aplikasi ini sudah user friendly ? b. Sangat user friendly c. Cukup User friendly d. Biasa-biasa saja e. Kurang user friendly f. Tidak user friendly
• •
90 % 10 %
• • • • •
30 % 65 % 5% 0% 0%
Bagaimana kemudahan dalam penggunaan aplikasi ini ? a. Sangat mudah b. Mudah c. Sedang d. Sulit e. Sangat sulit
• • • • •
35 % 50 % 15 % 0% 0%
Bagaimana layout tampilan atau user interface pada aplikasi ini ? a. Sangat Bagus b. Bagus c. Sedang d. Kurang Bagus e. Tidak Bagus
• • • • •
5% 45 % 50 % 0% 0%
• • • • •
10 % 65 % 20 % 0% 5%
Apakah setiap aplikasi ini dijalankan sering timbul gangguan berupa aplikasi hang atau error ? a. Sangat sering b. Sering c. Jarang d. Kadang-kadang e. Tidak pernah
• • • • •
0% 0% 10 % 10 % 80 %
Apakah aplikasi ini sudah cukup memenuhi kebutuhan anda dalam belajar kimia? a. Sangat Cukup b. Cukup
• •
10 % 65 %
Sesering apa anda belajar kimia ? a. Setiap saat b. Cukup sering c. Kadang-kadang d. Sekali saja e. Tidak pernah
IV-5
8.
c. d. e. Apa ini? a.
b.
c. d. e.
Sedang Kurang Sangat Kurang saran anda terhadap pengembangan aplikasi
• • •
15 % 10 % 0%
Pengguna bukan hanya antara dua orang saja, melainkan banyak orang, seperti umumnya chatting dalam room. Ditambah fitur tumbnail (gambar kecil) untuk foto sehingga terlihat dengan siapa kita chatting. Karakter yang dikirimkan harus lebih banyak. Tampilan dibuat lebih menarik Lain-lain
•
65 %
•
5%
•
5%
• •
15 % 10 %
Tabel IV-3 Hasil Presentase dari Tanggapan User
Hasil kuisioner diatas menunjukan semua user menyatakan bahwa Aplikasi Tabel Periodik Unsur ini sudah sesuai dengan keinginan user.
IV-6