PENGEMBANGAN APLIKASI SISTEM PERIODIK UNSUR...
Transcript of PENGEMBANGAN APLIKASI SISTEM PERIODIK UNSUR...
i
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
ii
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
iii
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,
Mengetahui,
Ketua Program Studi Teknik Informatika
Yusuf Durrachman, M.Sc, M.IT
NIP. 197202052008011010
Pembimbing I,
Pembimbing II,
Imam M. Shofi, MT
NIP. 197202052008011010 Victor Amrizal, M.Kom
NIP. 150411 288
iv
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,
Mengetahui,
Pembimbing II,
Pembimbing I,
Ketua Program Studi Teknik Informatika
Yusuf Durrachman, M.Sc, M.IT
NIP. 197202052008011010
Dekan Fakultas Sains dan Teknologi
DR. Syopiansyah Jaya Putra, M.Sis
NIP. 150 317 956
Imam M. Shofi, MT
NIP. 197202052008011010
Victor Amrizal, M.Kom
NIP. 150411 288
v
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 I,
Penguji II,
Pembimbing II,
Victor Amrizal, M.Kom
NIP. 150411 288
Pembimbing I,
Imam M. Shofi, MT
NIP. 197202052008011010
Ketua Program Studi Teknik Informatika
Yusuf Durrachman, M.Sc, M.IT
NIP. 197202052008011010
Ketua Program Studi Teknik Informatika
DR. Syopiansyah Jaya Putra, M.Sis
NIP. 150 317 956
Arini, MT
NIP. 197661312009012001
Andrew Fiade, MT
NIP. 19820811 200912 1 004
vi
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
vii
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
viii
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.
ix
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
x
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.
xi
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
xii
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
xiii
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
xiv
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
xv
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
xvi
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
xvii
Lampiran II Source Code ............................................................................... II-1
Lampiran III Installasi Aplikasi .................................................................... III-1
Lampiran IV Contoh Angket, Hasil Kuisioner dan Persentase ..................... IV-1
xviii
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
xix
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
xx
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
1
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
2
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.
3
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.
4
2. Bagi Siswa :
a) Memberikan kemudahan dalam belajar khususnya Mata
Pelajaran Kimia.
b) Alternatif baru dalam belajar selain media buku.
3. 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
5
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 modul-
modulnya 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.
6
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.
7
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.
8
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.
9
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
10
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 Jumlah Unsur Nomor Atom 1
2
3
4
5
6
7
2
8
8
18
18
32
32
1 – 2
3 – 10
11 – 18
19 – 36
37 – 54
55 – 86
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).
11
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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
I II III IV V VI VII VIII VIII VIII I II III IV V VI VII VIII
A A B B B B B B B B B B A A A A A A
Tabel 2.2. Hubungan Sistem Penamaan 8 Golongan dan 18 Golongan
12
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.
13
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 sama, sehingga
menunjukkan kemiripan sifat. Perhtikan tabel konfigurasi
elektron dan unsur glongan IA dibawah ini.
Unsur Nomor atom K L M N O P Q
H 1 1
Li 3 2 1
Na 11 2 8 1
K 19 2 8 8 1
Rb 37 2 8 18 8 1
Cs 55 2 8 18 18 8 1
Fr 87 2 8 18 32 18 8 1
Tabel 2.3. Konfigurasi Elektron dan Unsur Golongan AI
14
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 Li Be B C N O F Ne Nomor atom 3 4 5 6 7 8 9 10
Kulit K 2 2 2 2 2 2 2 2
Kulit L 1 2 3 4 5 6 7 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).
15
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 Rata-rata Ar unsur pertma dan ketiga
Kalsium
Stronium
Barium
40
88
137
Tabel 2.5. Tiga kelompok unsur Triede
16
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 unsur-
unsur 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
17
periodik Mendeleev yang dipublikasikan tahun 1872 diperlihatkan pada
Tabel 2.6.
Periode Gol. I Gol. II Gol. III Gol. IV Gol. V Gol. VI Gol. VII Gol. VIII
1 H = 1
2 Li = 7 Be = 9,2 B = 11 C = 12 N = 14 O = 16 F = 19
3 Na = 23 Mg = 24 Al = 27,3 Si = 28 P = 31 S = 32 Cl = 35,5
4 K = 39 Ca = 40 - = 44 Ti = 48 V = 51 Cr = 52 Mn = 55 F = 56, Co = 59
5 (Cu = 63) Zn = 65 - = 68 - = 72 As = 75 Se = 78 Br = 80
6 Rb = 85 Sr = 87 ?Yt = 88 Zr = 90 Nb = 94 Mo = 96 - = 100 Ru = 104, Rh = 104
Pd = 106, Ag = 108
7 (Ag = 108) Cd = 112 In = 113 Sn = 118 Sb = 122 Te = 125 J = 127
8 Cs = 133 Ba = 137 ?Di = 138 - - - - -----
9 (-) - - - - -
10 - - ?Er = 178 ?La = 180 Ta = 182 W = 184 - Os = 195, Ir = 197
Pt = 198, Au = 199
11 (Au = 199) Hg = 200 Ti = 204 Pd = 207 Bi = 208 - -
12 - - - Th = 231 - U = 204 - ----
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.
18
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.
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
20
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.
21
Ion mempunyai jari-jari yang berbeda secara nyata (signifikan) jika
dibandingkan dengan jari-jari atom netralnya. Ion positif mempunyai jari-
jari 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) berturut-
turut 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 � Be
2+(g) + e
Ionisasi ketiga : Be2+
(g) + 14.848 kJ � Be3+
(g) + e
Ionisasi keempat : Be3+(g) + 21.006 kJ � Be4+(g) + e
22
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.
23
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.
24
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
25
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 sehari-
hari maupun dalam industri adalah logam transisi. Misalnya, besi,
temabga, kromium, nikel, titanium, perak, emas, dan platina.
26
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) .
27
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).
28
Message direpresentasikan dengan sebuah kelas yang mengimplementasi
antarmuka pada paket
javax.wireless.Messaging. Antarmuka dasar untuk
messaging yang terdapat dalam paket tersebut 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.
29
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).
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).
Gambar 2.6. Posisi KVM pada Arsitektur J2ME
(Shalahuddin, Rosa, 2006 : 6)
MIDP
CLDC
Kumpulan Library
KVM
Sistem Operasi
31
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
Mengimplementasikan seluruh fitur
dari J2SE
JVM yang digunakan adalah KVM JVM yang digunakan adalah CVM
Digunakan pada perangkat
handheld (ponsel, PDA, twoway
pager) dengan memory terbatas
(160-512 kb).
Digunkaan pada perangkat
handheld(internet TV, Nokia
communicator, car TV) denagn
memory minimal 2 MB.
Prosesor : 16/32 bit 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
32
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
33
Merk & Tipe
Ponsel
Nokia N73
Layar TFT dengan resolusi 240x320 piksel 262.000 warna
Spesifikasi :
Network
Operating System
Transfer data
Browser
JAVA
Konektivitas
Memori Eksternal
Memori Internal
GSM 900/1800/1900 MHz
Symbian
GPRS kelas 10, 3G
Browsing WAP 2.0/xHTML, HTML
Java MIDP 2.0
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
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.
34
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)
35
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. Perangkat keras minimal yang digunakan
• Hard Disk minimal 300-350 MB
• RAM 1 GB
• 1 GHz CPU Pentium
b. 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)
36
c. BD-J Perangkat lunak (Windows Only)
Hanya dibutuhkan untuk pengembangan BD-J
• Player yang dibutuhkan untuk pengembangan Blu-
ray, seperti WinDVD, atau ArcSoft TotalMedia
Theater
d. Perangkat pendukung
• 4,5 ActiveSync untuk Windows (windows Only)
• Windows Mobile 6.0 platform diinstal pada
perangkat dengan target kontivitas jaringan,
microprosessor 32 bit berbasis RISC, dan minimun
64 MB RAM
• Microsoft Divice Emulator (Windows Only)
2.9. 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
37
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
38
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 simbol-
simbol 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.
39
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
40
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
41
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
42
Gambar berikut memperlihatkan flowchart dari kegiatan dasar
diatas.
Gambar 2.8. Flowchart dasar
Dari gambar flowchart di atas terlihat bahwa suatu flowchart harus
terdapat proses persiapan dan proses akhir. Walaupun tidak ada kaidah-
kaidah 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.
START
READ
PROCESS
WRITE
END
43
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 alasan-
alasan 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
44
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.
45
1. Pada fase pertama Martin dibahas perencanaan syarat-
syarat. 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
46
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.
47
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,
48
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.
49
BAB III
METODOLOGI PENELITIAN
Dalam menyusun skripsi, diperlukan langkah-langkah yang nyata untuk
dapat menghasilkan karya ilmiah yang baik. Untuk itulah diperlukan adanya data-
data 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 buku-
buku 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.
50
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
51
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)
52
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 :
53
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
54
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 yang d iba ngu n dapat berjalan dengan baik
pada ponse 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.
55
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.
Gambar 3.2 Siklus RAD Untuk Membangun Media Pembelajaran Rangkaian Dasar Listrik.
1. Fase Perencanaan
1.1 Mendefinisikan Masalah
1.1.1 Analisis Struktur Aplikasi Priodik
Unsur Kimia
1.1.2 Analisis Kriteria Pengembangan
Aplikasi Unsur Kimia
1.1.3 Analisis Dampak Sistem
1.2 Analisis Kebutuhan Perangkat Lunak
1.3 Analisis Kebutuhan Ponsel
1.4 Spesifikasi Ponsel yang di gunakan
2. Fase Perancangan
2.1 Perancangan
2.1.1 Flow Chart Materi
2.1.2 Flow Chart Program
2.2 Perancangan Antar Muka
2.2.1 Form Halaman Pembuka
2.2.2 Form Halaman Utama
2.2.3 Form Keterangan Unsur Kimia
2.2.4 Form Keterangan Tabel
2.2.5 Form List Unsur Atom
2.2.6 From Tentang
3. Fase Konstruksi
3.1 Melakukan tahap pengkodean
terhadap hasil rancangan yang sudah didefinisikan
sebelumnya untuk dijadikan program aplikasi, dengan
menggunakan Sun Java ME SDK 3.0
4. Fase Pelaksanaan
4.1 Transfer Aplikasi dari PC ke Ponsel
dan Installasi
4.2 Pengujian Aplikasi
4.2.1 Pengujian Blackbox Mandiri
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
56
BAB IV
ANALISA DAN PEMBAHASAN
Untuk pengembangan sistem, penulis menggunakan metode RAD (Rapid
Application Development) yang terdiri atas fase menentukan tujuan dan syarat-
syarat 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.
57
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
58
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 atau artikel yang penulis
dapatkan dari beberapa sumber diantaranya
59
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-is-
try.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.
60
b) Memory 384 MB.
c) Harddisk 80 GB.
d) Mouse.
e) Keyboard.
f) Monitor dengan resolusi 1024 x 768 pixel.
2. 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
61
(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 :
62
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
63
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
64
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
65
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)
66
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.
67
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
68
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
69
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
70
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
71
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.
72
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
73
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
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
75
Berikut ini adalah tabel spesifikasi ketiga ponsel yang
digunakan dalam pengujian Aplikasi Kamus Teknologi Informasi
ini.
Merk & Tipe
Ponsel Nokia N73
Layar TFT dengan resolusi 240x320 piksel 262.000 warna
Spesifikasi : Network
Operating System
Transfer data
Browser
JAVA
Konektivitas
Memori Eksternal
Memori Internal
GSM 900/1800/1900 MHz
Symbian
GPRS kelas 10, 3G
Browsing WAP 2.0/xHTML, HTML
Java MIDP 2.0
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
Shared Memory 42 MB
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.
76
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.
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
83
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 :
84
No
Pertanyaan Pertanyaan
Jumlah
Persentase
(%)
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
• 30 %
• 65 %
• 5 %
• 0 %
• 0 %
3. Bagaimana kemudahan dalam penggunaan
aplikasi ini ?
a. Sangat mudah
b. Mudah
c. Sedang
d. Sulit
e. Sangat sulit
• 35 %
• 50 %
• 15 %
• 0 %
• 0 %
4. 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 %
7. Apakah aplikasi ini sudah cukup memenuhi
kebutuhan anda dalam belajar kimia?
a. Sangat Cukup
b. Cukup
c. Sedang
d. Kurang
e. Sangat Kurang
• 10 %
• 65 %
• 15 %
• 10 %
• 0 %
Tabel 4.2 Sebagian hasil presentase dari respon/tanggapan User.
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.
86
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.
87
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.
89
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 McGraw-
Hill 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.
90
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.
I-1
LAMPIRAN I
PROSES KONSTRUKSI PROGRAM DAN HASIL
TAMPILAN APLIKASI
I-2
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-3
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-4
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 MIDP-
2.0. kemudian klik tombol Finish.
3. Menjalankan program Aplikasi Tabel Periodik Unsur Kimia dalam
PC
I-5
Untuk menjalankan program yang telah selesai, penulis
menjalanknanya dengan cara, pilih menu 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-6
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-7
Gambar I-6 Tampilan nama aplikasi yang akan dijalankan.
Gambar I-7 Tampilan Splash Screen.
I-8
Gambar I-8 Tampilan Tabel Periodik Unsur sebelah kiri dan sebelah kanan.
Gambar I-9 Tampilan Keterangan Unsur
I-9
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-10
Gambar I-12 Tampilan Menu Tentang dan TampilanTentang
II-1
LAMPIRAN II
SOURCE CODE
I.
II.
II-2
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-3
public void pauseApp() {
}
/*
* (non-Javadoc)
*
* @see javax.microedition.midlet.MIDlet#destroyApp(boolean)
*/
public void destroyApp(boolean unconditional) {
}
}
II-4
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-5
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-6
*/
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-7
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-8
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-9
* 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-10
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-11
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-12
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-13
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-14
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-15
}
}
}
/**
* 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-16
* @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-17
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-18
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-19
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-20
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-21
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-22
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-23
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-24
} 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-25
/**Kategori Alkali Tanah
* Alkaline earth metal category. */
public static final int ALKALINE_EARTH_METAL = 3;
/** Kategori Metalloid
* Metalloid category. */
public static final int METALLOID = 4;
/** Kategori Hologen
* Halogen category. */
public static final int HALOGEN = 5;
/** Kategori Logam Transisi
* Transition metal category. */
public static final int TRANSITION_METAL = 6;
/** 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 = 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-26
"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-27
"[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-28
/**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-29
* @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-30
* 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-31
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-32
// 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-33
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-34
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-35
};
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-36
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);
}
}
}
III-1
LAMPIRAN III
INSTALASI APLIKASI TABEL PERIODIK UNSUR
PADA TELEPON SELULER MENGGUNAKAN
FASILITAS BLUETOOTH DENGAN J2ME
I.
II.
III.
III.
III-2
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-pc-
suite/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).
IV-1
IV .
LAMPIRAN IV
CONTOH ANGKET, HASIL KUISIONER DAN PERSENTASE
IV-2
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-3
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-4
HASIL KUISIONER
Dari 20 (sepuluh) orang responden, masing-masing jawabannya sebagai berikut :
Tabel IV.1
Data Sebelum Diolah
Tabel IV.2
Hasil Presentase Data di atas
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
Presentase
1 2 3 4 5 6 7 8
Nomor Soal
Hasil Kuisioner
E
D
C
B
A
No Jawaban Soal
A B C D E
1 18 2 0 0 0
2 6 13 1 0 0
3 7 10 3 0 0
4 1 9 10 0 0
5 2 13 4 0 1
6 0 0 2 2 16
7 2 13 3 2 0
8 13 1 1 3 2
No Jawaban Soal
A B C D E
1 90 10 0 0 0
2 30 65 5 0 0
3 35 50 15 0 0
4 5 45 50 0 0
5 10 65 20 0 5
6 0 0 10 10 80
7 10 65 15 10 0
8 65 5 5 15 10
IV-5
Gambar IV.1 Diagram Batang Hasil Respon User
Hasil Persentase dari kuisioner yang dibagikan kepada 20 user adalah sebagai berikut:
No Pertanyaan Jumlah Persentase
(%)
1.
Apakah anda memiliki ponsel yang sudah
mendukung aplikasi JAVA MIDP 2.0 ?
a. Ya
b. Tidak
• 90 %
• 10 %
2. 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
• 30 %
• 65 %
• 5 %
• 0 %
• 0 %
3. Bagaimana kemudahan dalam penggunaan aplikasi
ini ?
a. Sangat mudah
b. Mudah
c. Sedang
d. Sulit
e. Sangat sulit
• 35 %
• 50 %
• 15 %
• 0 %
• 0 %
4. 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 %
5. Sesering apa anda belajar kimia ?
a. Setiap saat
b. Cukup sering
c. Kadang-kadang
d. Sekali saja
e. Tidak pernah
• 10 %
• 65 %
• 20 %
• 0 %
• 5 %
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
• 0 %
• 0 %
• 10 %
• 10 %
• 80 %
7. Apakah aplikasi ini sudah cukup memenuhi
kebutuhan anda dalam belajar kimia?
a. Sangat Cukup
b. Cukup
• 10 %
• 65 %
IV-6
c. Sedang
d. Kurang
e. Sangat Kurang
• 15 %
• 10 %
• 0 %
8. Apa saran anda terhadap pengembangan aplikasi
ini?
a. Pengguna bukan hanya antara dua orang saja,
melainkan banyak orang, seperti umumnya
chatting dalam room.
b. Ditambah fitur tumbnail (gambar kecil)
untuk foto sehingga terlihat dengan siapa kita
chatting.
c. Karakter yang dikirimkan harus lebih
banyak.
d. Tampilan dibuat lebih menarik
e. 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.