Upload
deden-rizal
View
657
Download
13
Embed Size (px)
Citation preview
PERANCANGAN SISTEM INFORMASI PENGOLAHAN
DATA ALUMNI MENGGUNAKAN TEKNOLOGI
JAVA REMOTE METHOD INVOKES (JAVA-RMI)
DENGAN METODELOGI BERORIENTASI OBJEK
(Studi Kasus di SMK Negeri 2 Garut)
Tugas Akhir
Diajukan Untuk Memenuhi Salah Satu Syarat Kelulusan
Program Sarjana Strata 1
Disusun Oleh:
DEDEN RIZAL NOPAWIJAYA
NPM. 0606017
JURUSAN TEKNIK INFORMATIKA
SEKOLAH TINGGI TEKNOLOGI GARUT
2010
LEMBAR PENGESAHAN
PERANCANGAN SISTEM INFORMASI PENGOLAHAN
DATA ALUMNI MENGGUNAKAN TEKNOLOGI
JAVA REMOTE METHOD INVOKES (JAVA-RMI)
DENGAN METODELOGI BERORIENTASI OBJEK
Tugas Akhir telah dibaca dan disetujui oleh komisi pembimbing untuk diajukan
dalam sidang sarjana pada Jurusan Teknik Informatika Sekolah Tinggi Teknologi
Garut.
Menyetujui,
Pembimbing I
Pembimbing II
Prof. Dr. H. M. Ali Ramdhani, STP, MT .
NIDN : 0406117101
H. Eko Retnadi, M.Kom.
NIDN : 0410086401
Mengetahui,
Ketua Jurusan Teknik Informatika
Dini Destiani SF., MT.
NIP : 132055640
i
DEDEN RIZAL NOPAWIJAYA, 0606017 Perancangan Sistem Informasi Pengolahan Data Alumni Menggunakan Teknologi Java Remote Method Invokes (Java-RMI) dengan Metodelogi Berorientasi Objek Dibawah bimbingan : Bapak Prof. Dr. H. M. Ali Ramdhani, STP, MT selaku Pembimbing I Dan Bapak H. Eko Retnadi, M.Kom. selaku Pembimbing II 105 Halaman+xi/12 Tabel/72 Gambar/14 Pustaka (1997-2009)/79 Lampiran
ABSTRAK
Pengelolaan data alumni merupakan proses yang di lakukan sekolah untuk
mengkoordinir data alumni yang pada saat ini proses pencatatan data alumni di SMKN 2 Garut masih terpaku pada buku induk. Oleh karena itu masalah yang sering terjadi adalah belum adanya pengklasifikasian data alumni secara khusus, pencarian data dan informasi dibutuhkan waktu yang relatif lama. Adapun yang menjadi tujuan dalam pelaksanaan tugas akhir ini adalah untuk merancang Sistem Informasi Pengolahan Data Alumni Menggunakan Teknologi Java Remote Method Invokes (Java-RMI) dengan Metodelogi Berorientasi Objek di SMK Negeri 2 Garut.
Dalam pengembangan Sistem Informasi Pengolahan Data Alumni di SMK Negeri 2 Garut merupakan salah satu bentuk pengembangan sistem dalam bidang teknologi informasi. Hal ini membuktikan bahwa teknologi informasi telah mempengaruhi aktifitas bisnis suatu lingkungan kerja termasuk salah satunya SMK Negeri 2 Garut. Dilatarbelakangi oleh jumlah alumni yang mencapai lebih dari 10.192 dan jumlah alumni yang makij kesini semakin bertambah banyak, maka di perlukan suatu Sitem Pengolahan Data Alumni tang terkomputerisasii dan terintegrasi.
Metode pengembangan sistem informasi yang dirancang menggunakan metodologi berorientasi objek oriented dan bahasa pemrograman Java serta DBMS MySql cukup mampu mewakili proses manajerial pada pengelolaan data alumni di SMK Negeri 2 Garut. Sistem informasi dengan teknologi RMI memungkinkan terjadinya proses integrasi data antar masing-masing bagian yang ada pada sistem. Proses pelaporan yang dihasilkan dengan sistem yang terintgrasi mampu menampilkan data alumni untuk kegiatan monitoring dan evaluasi secara realtime antar bagian karena dirancang dengan arsitektur client server. Perancangan sistem dengan arsitektur client-server dengan mengimplementaikan java RMI mampu mewakili proses-proses service yang direquest oleh mesin client.
Berdasarkan hasil penelitian ini akhirnya dapat ditarik kesimpulan bahwa perancangan Sistem Informasi Pengolahan Data Alumni dengan arsitektur client-server dengan mengimplementaikan java RMI mampu mewakili proses-proses service yang diminta oleh mesin client. Selain itu, informasi yang dihasilkan telah mengakomodasi kebutuhan user sebagai pengguna sistem.
Kata Kunci : Sistem, Informasi, Alumni, Objeck Oriented, Java RMI
ii
KATA PENGANTAR
Assalamu’alaikum Wr. Wb.
Puji dan syukur penulis panjatkan kehadirat Allah SWT atas limpahan
rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan Laporan Tugas
Akhir ini. Shalawat serta salam tak lupa penulis curahkan kepada Nabi Besar
Muhammad SAW.
Laporan ini disusun sebagai salah satu syarat kelulusan untuk menempuh
jenjang Strata Satu (S1) di Jurusan Teknik Informatika Sekolah Tinggi Teknologi
Garut (STTG). Adapun judul dari Tugas Akhir ini adalah : “PERANCANGAN
SISTEM INFORMASI PENGOLAHAN DATA ALUMNI
MENGGUNAKAN TEKNOLOGI JAVA REMOTE METHOD INVOKES
(JAVA-RMI) DENGAN METODELOGI BERORIENTASI OBJEK (St udi
Kasus di SMK Negeri 2 Garut)”.
Dalam penyusunan Laporan Tugas Akhir ini penulis banyak sekali
mendapatkan bantuan, dorongan, bimbingan dan petunjuk dari berbagai pihak,
oleh karena itu rasa terima kasih dan penghargaan yang setinggi-tingginya penulis
sampaikan kepada yang terhormat :
1. Ibunda Yeti Roswati dan Ayahanda Asep Rukruk R. tercinta, beserta Kakak
Neneng Intan Novianti, Heri dan adik tersayang Cecep Rezza MY, Haniifah
Hasnaa Husniyyah yang tak pernah lelah memberikan dorongan dan
bimbingan moril maupun materil yang tak ternilai harganya, sehingga penulis
dapat menyelesaikan laporan ini.
2. Bapak Prof. Dr. H. M. Ali Ramdhani, STP, MT., selaku Ketua Sekolah Tinggi
Teknologi Garut dan selaku pembimbing I yang telah banyak meluangkan
waktu, tenaga dan pikirannya dalam memberikan motivasi dan arahan dalam
penyusunan tugas akhir ini.
3. Bapak H. Eko Retnadi, M.Kom., selaku pembimbing II dan Pembantu Ketua
III Bidang Kemahasiswaan yang telah banyak meluangkan waktu, tenaga dan
pikirannya dalam memberikan motivasi dan arahan dalam penyusunan tugas
iii
akhir ini dan juga banyak berkerja bareng di urusan kemahasiswaan
ukhusunya BEM, HIMA dan UKM.
4. Ibu Dini Destiani SF, Dra., MT selaku Ketua Jurusan Teknik Informatika
Sekolah Tinggi Teknologi Garut.
5. Bapak Asep Deddy Supriatna, Ir., M.Kom., selaku Sekretaris Jurusan Teknik
Informatika.
6. Sahabat-sahabat seperjuangan Teknik Informatika 2006 terutama anak-anak
Lima Bunga Matahari (Susane, Iepe, Nuy, Eva, Dian na Rio) tetep tebarkan
cinta dan kasih sayangnya ya.
7. Para Senior Teknik Informatika 2005 Zamzam Bz, Nur Holisoh, Isma yang
banyak membantu pencerahan dalam penyususnan Laporan Tugas Akhir ini.
8. Para senior-senior dan junior-junior yang banyak memeberikan pelajaran
berharga selama di kehidupan organisasi kampus baik di BEM, MAPALA,
LDK maupun di HIMIF.
9. Seluruh staf dosen dan civitas akademika di Sekolah Tinggi Teknologi Garut.
10. Seluruh pihak yang membantu penyusuan laporan tugas akhir ini yang tidak
dapat disebutkan satu persatu.
11. Dan buat yang terakhir yang paling rewel, nyebelein, suka ganggu, bikin
buyar konsentrasi dalam penyusunan tugas akhir ini tapi tetep slalu nganenin
itu adalah kau LINA KARLINA my lovely.
Penulis menyadari bahwa dalam penyusunan Laporan Tugas Akhir ini
masih jauh dari kesempurnaan, oleh karena itu kritik dan saran yang membangun
demi perbaikan di masa yang akan datang selalu penulis nantikan. Akhirnya
penulis berharap semoga Laporan Tugas Akhir ini dapat bermanfaat bagi penulis
khususnya dan bagi para pembaca pada umumnya.
Amin…
Wassalamu’alaikum Wr. Wb.
Garut, September 2010
Penulis
iv
DAFTAR ISI
Halaman
ABSTRAKSI ................................................................................................... i
KATA PENGANTAR .................................................................................... ii
DAFTAR ISI ................................................................................................... iv
DAFTAR GAMBAR ...................................................................................... vii
DAFTAR TABEL .......................................................................................... xi
BAB I PENDAHULUAN ............................................................................... 1
1.1. Latar Belakang Masalah............................................................................ 1
1.2. Identifikasi Masalah .................................................................................. 7
1.3. Tujuan ....................................................................................................... 8
1.4. Batasan Masalah ....................................................................................... 8
1.5. Motode Penelitian ..................................................................................... 8
1.6. Kerangka Pemikiran .................................................................................. 12
1.7. Sistematika Penulisan ............................................................................... 13
BAB II TINJAUAN PUSTAKA .................................................................... 15
2.1 Sistem Informasi Manajemen ................................................................ 15
2.1.1. Sistem .............................................................................................. 15
2.1.2. Informasi .......................................................................................... 16
2.1.3. Manajemen ...................................................................................... 17
2.1.4. Konsep Sistem Informasi Manejemen ............................................. 18
2.2 Pengembangan Sistem Berorentasi Objek (Object Oriented System
Development) ............................................................................................ 19
2.2.1 Konsep Objek ................................................................................. 20
2.2.1.1 Kelas................................................................................ 20
2.2.1.2 Enkapsulasi ..................................................................... 21
2.2.1.3 Pewarisan (Inheritence) ................................................... 23
2.2.2 Metodelogi Berorientasi Objek .................................................... 24
v
Halaman
2.2.3 Pemodelan Menggunakan Unified Modelling Language
(UML) ............................................................................................ 25
2.2.3.1 Diagram pada UML ........................................................ 26
2.2.3.1.1 Class Diagram........................................................ 26
2.2.3.1.2 Use-case diagram ................................................... 28
2.2.3.1.3 Interaction Diagram ............................................... 30
2.2.3.1.4 Activity Diagram ................................................... 31
2.2.4 Analisis Berorientasi Objek .......................................................... 32
2.2.4.1 Identifikasi Aktor ............................................................ 33
2.2.4.2 Analisa Proses Bisnis ...................................................... 34
2.2.4.3 Identifikasi Use Case ...................................................... 34
2.2.4.4 Pemodelan Interaksi Menggunakan Interaction
Diagram .............................................................................. 35
2.2.4.5 Perancangan Kelas .......................................................... 35
2.2.5 Perancangan (Design) Sistem Berorientasi Objek ..................... 37
2.2.5.1 Penerapan Desain Axiom terhadap desain kelas ............. 39
a. Refine atribut................................................................... 39
b. Refine method ................................................................. 39
2.2.5.2 Perancangan Lapisan Akses (Access Layer) .................. 40
2.2.5.2.1 Database Manajemen Sistem (DBMS) ........................... 40
2.2.5.2.2 Database Terdistribusi pada Arsitektur Client-Servetr ... 41
2.2.5.3 Perancangan Lapisan View (View Layer) ...................... 43
2.3 Java RMI ................................................................................................. 44
2.3.1 Arsitektur RMI ................................................................................ 45
2.3.2 Objek Remote .................................................................................. 46
2.3.3 Stub dan Skeleton ............................................................................ 46
2.3.4 Remote Exception ........................................................................... 47
2.3.5 Tahap Pemrograman Java-RMI ....................................................... 47
2.4 Interaksi Manusia dan Komputer ......................................................... 48
2.4.1 Definisi Interaksi Manusia dan Komputer....................................... 48
vi
Halaman
2.4.2 Strategi Perkembangan Antar Muka................................................ 48
2.4.3 Ragam Dialoh .................................................................................. 49
BAB III ANALISIS SISTEM ........................................................................ 52
3.1. Identifikasi Aktor (Actors) ................................................................ 52
3.2 Deskripsi Aktivitas (Business process) ............................................. 56
3.3 Identifikasi Use Case .......................................................................... 57
3.4 Identifikasi Interaksi Antar Objek Menggunakan Inte raction
diagrams .............................................................................................. 63
3.5 Perancangan Kelas (Classification) ................................................. 71
3.5.1 Identifikasi Kelas (Class) ................................................................. 71
3.5.2 Identifikasi Relationship .................................................................. 77
3.5.3 Identifikasi Atribut (Attributes) ....................................................... 79
3.5.4 Identifikasi Method .......................................................................... 80
BAB IV DESAIN SISTEM ............................................................................ 82
4.1 Desain Axiom Kelas ................................................................................ 82
4.1.1 Refine Atribut-atribut kelas .............................................................. 82
4.1.2 Refine Method-method kelas ............................................................. 86
4.2 Perancangan layer akses (data storage) ................................................ 88
4.2.1 Perancangan Database. ...................................................................... 88
4.2.2 Perancangan Struktur Tabel ............................................................... 89
4.2.3 Penerapan Atribut dan Tipe data....................................................... 89
4.3 Perancangan Layer View ....................................................................... 92
4.3.1 Struktur Navigasi Menu ..................................................................... 95
4.3.2 Rancangan Antarmuka (Interface) ..................................................... 96
4.3.3 Prototipe Antarmuka (Interface Prototype) ....................................... 101
BAB V KESIMPULAN DAN SARAN ......................................................... 105
5.1 Kesimpulan .............................................................................................. 105
5.2 Saran ........................................................................................................ 105
DAFTAR PUSTAKA
LAMPIRAN-LAMPIRAN
vii
DAFTAR GAMBAR
Halaman
Gambar 1.1 : Rangkaian Aktivitas Tata Usaha .............................................. 4
Gambar 1.2 : Kerangka Pemikiran ................................................................. 13
Gambar 2.1 : Model Aktivitas Sistem ............................................................ 16
Gambar 2.2 : Proses Pembentukan Informasi ................................................ 17
Gambar 2.3 : Sumber Informasi yang Dibutuhkan Setiap Tingkatan
Manajemen ............................................................................... 18
Gambar 2.4 : Contoh Objek pada Kelas Employee ........................................ 21
Gambar 2.5 : Contoh Tingkat Visibilitas Kelas pada Konsep Enkapsulasi ..... 23
Gambar 2.6 : Contoh Hierarki Super Kelas dan Sub Kelas yang Menggambarkan Konsep Pewarisan ........................................ 24
Gambar 2.7 : Contoh Classes ........................................................................... 27
Gambar 2.8 : Contoh Class Diagrams .............................................................. 28
Gambar 2.9 : Contoh Use Case Diagrams ....................................................... 30
Gambar 2.10 : Contoh Sequence Diagrams ..................................................... 31
Gambar 2.11 : Contoh Activity Diagrams ....................................................... 32
Gambar 2.12 : Tahapan Analisis pada Pengembangan Berorientasi Objek ... 33
Gambar 2.13 : Perbedaan Aktor dengan Pengguna ..................................... 34
Gambar 2.14 : Activity Diagram (AD) Menunjukan Beberapa Aktivitas
Dilakukan Aktor ...................................................................... 34
Gambar 2.15 : Contoh Use Case Diagram Pada SistemPerpustakaan ............ 35
Gambar 2.16 : Tiga Kategori Kelas ................................................................. 36
Gambar 2.17 : Proses Perancangan Berorientasi Objek dengan Pendekatan
Unified ...................................................................................... 39
Gambar 2.18 : Sistem Database Vs Sistem File .............................................. 42
Gambar 2.19 : Sistem Client-server dengan Arsitektur Two-tier ................... 43
Gambar 2.20 : Sistem Client-server dengan Arsitektur Three-tier ................. 43
viii
Halaman
Gambar 2.21 : Contoh Desin Interface Dialog Box dengan Banyak Tab pada
Microsoft Multimedia Setup..................................................... 44
Gambar 2.22 : Arsitektur RMI ........................................................................ 45
Gambar 2.23 : Layanan Naming ..................................................................... 46
Gambar 2.24 : Stub dan Skeleton ..................................................................... 46
Gambar 2.25 : Contoh Sistem Menu Dasar .................................................... 50
Gambar 2.26 : Contoh Sistem Menu Tarik ..................................................... 50
Gambar 2.27 : Contoh Dialog Berbasis Pengisian Barang ............................. 51
Gambar 2.28 : Antar Muka Berbasis Icon ...................................................... 51
Gambar 3.1 : Perbedaan User dan Aktor ........................................................ 55
Gambar 3.2 : Diagram Aktivitas Pengelolaan Data Alumni .......................... 57
Gambar 3.3 : Package pada Sistem Informasi Pengolahan Data Alumni ...... 59
Gambar 3.4 : Use Case Diagram pada Kegiatan Login dan Verifikasi
Sistem ....................................................................................... 60
Gambar 3.5 : Use Case Diagram untuk Proses Pencatatan dan Modifikasi
Data........................................................................................... 61
Gambar 3.6 : Use Case Diagram untuk Proses Melihat Laporan .................. 62
Gambar 3.7 : Use Case Diagram untuk Proses Administrasi Sistem ............. 62
Gambar 3.8 : Sequence Diagram pada Package Use Case Login dan
Verifikasi Sistem ...................................................................... 63
Gambar 3.9 : Collaboration Diagram pada Package Use Case Login dan
Verifikasi Sistem ...................................................................... 64
Gambar 3.10 : Sequence Diagram pada Use Case Registrasi
Pengguna .................................................................................. 65
Gambar 3.11 : Collaboration Diagram pada Use Case Registrasi Pengguna .. 65
Gambar 3.12 : Sequence Diagram untuk Package Use Case Mencatat dan
Memodifikasi Data ................................................................... 67
Gambar 3.13 : Collaboration Diagram untuk Package Use Case Mencatat
dan Memodifikasi Data ............................................................ 68
ix
Halaman
Gambar 3.14 : Sequence Diagram untuk Package Use Case Melihat
Laporan ..................................................................................... 69
Gambar 3.15 : Collaboration Diagram untuk Package Use Case Melihat
Laporan ..................................................................................... 69
Gambar 3.16 : Sequence Diagram untuk Package Use Case Administrasi
Sistem ....................................................................................... 70
Gambar 3.17 : Collaboration Diagram untuk Package Use Case
Administrasi Sistem.................................................................. 71
Gambar 3.18 : Class Diagram untuk Sistem infomasi Pengolahan Data
Alumni ...................................................................................... 78
Gambar 3.19: Class Diagram dengan Beberapa Agregasi dan Generalisasi .. 79
Gambar 3.20 : Class Diagram dengan Atribut-atribut Kelas .......................... 80
Gambar 3.21 : Class Diagram dengan Atribut-atribut dan Method-method
Kelas ......................................................................................... 81
Gambar 4.1 : Class Diagram dengan Atribut yang Audah Dikaji Ulang
(refine) ...................................................................................... 86
Gambar 4.2 : Class Diagram dengan Method yang Sudah Dikaji Ulang
(refine) ...................................................................................... 88
Gambar 4.3 : Perancangan Koneksi Basisdata pada Sistem .......................... 89
Gambar 4.4 : Desain Tabel User pada MySQL Administrator ...................... 90
Gambar 4.5 : Desain Tabel Alumni pada MySQL Administrator ................. 91
Gambar 4.6 : Kelas Diagram yang Terdiri dari Kelas Objek, Kelas Akses
dan Kelas View......................................................................... 94
Gambar 4.7 : Struktur Menu SI Alumni ........................................................ 95
Gambar 4.8 : Rancangan Menu Utama .......................................................... 97
Gambar 4.9 : Rancangan Form Login pada LoginUI .................................... 97
Gambar 4.10 : Rancangan Form Registrasi Pengguna pada
RegistrasiPenggunaUI .............................................................. 98
Gambar 4.11 : Rancangan Form Input Data Alumni ....................................... 99
Gambar 4.12 : Interface Server Side ................................................................ 100
x
Halaman
Gambar 4.13 : Desain Report Data Alumni ..................................................... 100
Gambar 4.14 : Desain Report Data Alumni Berdasarkan Jurusan ................... 101
Gambar 4.15 : Desain Report Data Alumni Berdasarkan Tahun Lulusan ....... 101
Gambar 4.16 : Splash Screen SI Alumni ......................................................... 102
Gambar 4.17 : Menu Utama ............................................................................. 102
Gambar 4.18 : Form Login pada LoginUI ....................................................... 103
Gambar 4.19 : Form Registrasi Pengguna pada RegistrasiPenggunaUI .......... 103
Gambar 4.20 : Form Input Data Alumni .......................................................... 104
Gambar 4.21 : Interface Server Side ................................................................ 104
xi
DAFTAR TABEL
Halaman
Tebel 1.1 : Animo Masuk SMK Negeri 2 Garut Tahun 1995-2009.............. 2
Tabel 1.2 : Jumlah Kelulusan Siswa SKM Negeri 2 Garut Tahun 2003-
2008 ............................................................................................ 3
Tabel 3.1 : Indentifikasi Aktor ...................................................................... 53
Tabel 3.2 : Kandidat Kelas ............................................................................ 72
Tabel 3.3 : Kandidat Kelas dengan Kategori Kelas ...................................... 74
Tabel 3.4 : Indentifikasi Kelas Redundant .................................................... 75
Tabel 3.5 : Deskripsi Kelas ........................................................................... 77
Tabel 3.6 : Keterhubungan (relationship) antar Kelas .................................. 78
Tabel 4.1 : Refine Method-method Kelas ..................................................... 87
Tabel 4.2 : Struktur Tabel User .................................................................... 90
Tabel 4.3 : Struktur Tabel Alumni ................................................................ 91
Tabel 4.4 : Perancangan Hak Akses Aktor.................................................... 96
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Pesatnya perkembangan ilmu pengetahuan dan teknologi dewasa ini
khususnya teknologi informasi yang berbasis komputer dirasakan telah berperan
penting dalam berbagai aspek kehidupan karena komputer merupakan salah satu
alat bantu manusia yang digunakan dalam proses pengolahan data, baik di bidang
pendidikan, kesehatan, instansi pemerintah, swasta maupun badan usaha lainnya.
Faktor utama yang mendukung dari penggunaan komputer oleh banyak instansi
pemerintah maupun swasta lainnya yaitu untuk menghasilkan pengolahan data
atau informasi dengan cepat, tepat dan akurat.
Kemajuan pesat teknologi komputer didalam bidang ilmu pengetahuan,
pendidikan, bisnis, administrasi perkantoran, komunikasi dan lain-lain kegiatan
dalam kehidupan sehari-hari akan memegang peranan penting yang cukup besar
di negara kita ini dalam proses pembangunan secara menyeluruh.
Di Indonesia ditemukan banyak perusahaan-perusahaan yang
menggunakan teknologi komputer. Peranan komputer dapat membantu
memecahkan permasalahan manajemen seperti telah dibuktikan pemakaiannya di
negara-negara maju. Peranan komputer didalam pemecahan masalah ini sangat
penting dalam mengolah data.
Sehubungan dengan pentingnya data untuk mendapatkan informasi yang
akurat dari segala bidang, maka dalam hal ini penulis membuat suatu
permasalahan dalam bidang pendidikan terutama dalam hal pengolahan data
informasi administrasi pendidikan yang mencakup berbagai masalah dalam hal ini
mengenai data siswa alumni. Sumber data yang penulis ambil adalah pada
Sekolah Menengah Kejuruan Negeri 2 Garut.
STM Negeri Garut berdiri sejak tahun 1965. Seiring perkembangannya
sekolah menengah kejuruan ini melakukan pergantian nama sekolah pada tahun
1978, Pada saat ini, salah satu sekolah bertaraf internasional di Kabupaten Garut
tersebut menggunakan nama barunya yaitu SMK Negeri 1 Tarogong Kaler Garut
2
pada tahun 2002 hingga pada tahun 2009 sesuai dengan Peraturan Bupati Garut
Nomor 446 Tahun 2008 Tentang Penetapan Nama-nama Sekolah Menengah
Pertama Negeri, Sekolah Menengah Atas Negeri dan Sekolah Menengah
Kejuruan Negeri di Lingkungan Pemerintah Kabupaten Garut, dimana SMK
Negeri 1 Tarogong Kaler Garut secara resmi (Formal Yuridis) berubah nama
menjadi SMK Negeri 2 Garut.
SMK Negeri 2 Garut yang sekarang bertempat di Jalan Suherman No. 90
Tarogong Kaler Garut yang memiliki 6 program keahlian yaitu :
1. Teknik Gambar Bangunan
2. Teknik Ketenagalistrikan
3. Teknik Audio Video
4. Teknik Motor Otomotif
5. Teknik Geologi Pertambangan
6. Teknik Multimedia
7. Teknik Broadcasting
Perkembangan animo masyarakat terhadap SMK Negeri 2 Garut ini sangat
pesat hal ini dapat di buktikan pada perkembangan siswa pada SMK Negeri 2
Garut dari tahun 1995 sampai dengan 2009 dapat dilihat pada tabel berikut:
Tabel 1.1 Tabel animo siswa masuk SMK Negeri 2 Garut Tahun 1995-2009
Sumber : Profil SMK 2 Garut 2008-2009
3
Begitu pula dengan perkembangan jumlah kelulusan dari tahun ke tahun,
jumlah siswa yang lulus dari SMK Negeri 2 Garut terus berubah. Angka
perubahan jumlah siswa yang lulus dari SMK Negeri 2 Garut tahun 2003-2008
dapat terlihat pada tabel data jumlah kelulusan dan diagram sebagai berikut
Tabel 1.2 Data Jumlah Kelulusan Siwa SMK Negeri 2 Garut Tahun 2003-2008
Sumber : Profil SMK 2 Garut 2008-2009
Berdasarkan tabel tersebut di atas, diketahui bahwa rata-rata kelulusan
siswa SMK Negeri 2 Garut diatas 98% sehingga dengan jumlah kelulusan dan
jumlah siswa yang terus meningkat dari tahun ketahun akan berpengaruh terhadap
jumlah alumni. Dengan banyaknya jumlah data alumni SMK Negeri 2 Garut yang
sejak pendirian tahun 1965 sampai dengan sekarang terhitung lebih dari 10.192
alumni. Pada saat ini SMK Negeri 2 Garut dalam melakukan pengolahan data
alumni masih bersifat manual yaitu Pada proses pencatatan data alumni, yang
sedang berjalan saat ini masih terpaku pada buku induk dan belum ada buku
khusus yang mencatat tetang data alumni. Oleh karena itu masalah yang sering
terjadi adalah pengklasifikasian data alumni belum rapi, pencarian data dan
informasi dibutuhkan waktu lama, serta penggunaan simpanan konvensional
(dalam hal ini kertas dan buku) rentan terhadap kerusakan data yang diakibatkan
oleh cuaca dan kondisi lingkungan tempat penyimpanan berkas tersebut.
Kebutuhan akan data dan informasi alumni sendiri sangat banyak, baik itu
bagi alumninya sendiri, bagi sekolah maupun bagi pihak luar. Misalnya bagi
alumninya sendiri yaitu pencarian data dan informasi berupa biodata dan nilai-
nilai. Bagi sekolah misalnya untuk kebijakan yang sifatnya strategis dalam
menentukan perubahan atau pengalihan program studi karena dengan adanya data
4
alumni yang terorganisir dengan baik sekolah dapat mengetahui banyak atau
sedikitnya jurusan yang diminati masyarakat khususnya bagi pihak luar dalam hal
ini perusahan-perusahan yang nantinya akan menampung para alumni.
Sedangakan bagi pihak luar dalam hal ini perusahan seringkali meminta data
alumni yang sesuai dengan kualifikasi perusahaan tersebut secara cepat dan
akuran yang nanatinya akan dijadikan karyawannya. Maka dari itu pengelolaan
data yang semula bersifat manual tersebut akan dirubah menjadi komputerisasi,
sehingga pengelolaan datanya diharapkan akan lebih efektif, efisien dan hasilnya
menjadi lebih akurat. Sedangkan penyimpanan data yang tadinya bersifat
konvensional akan diganti dengan penyimpanan data elektronik (Hard Disk)
dengan data yang dikemas dalam sebuah basis data (Data Base), sehingga dengan
demikian proses pencarian, penambahan dan pengurangan akan lebih mudah dan
cepat dilakukan.
Kekurangan dan kelemahan yang terdapat pada prosedur kerja dapat
berdampak pada lambatnya pelayanan administrasi. Adapun pengertian dari
administrasi adalah sebagai berikut :
“Administrasi dalam arti sempit adalah kegiatan penyusunan dan pencatatan data dan informasi secara sistematis dengan tujuan untuk menyediakan keterangan serta memudahkan memperolehnya kembali secara keseluruhan dan dalam satu hubungan satu sama lain. Administrasi dalam arti sempit ini sebenarnya lebih tepat disebut dengan tata usaha”, (Haryadi, 2009).
Gambar 1.1 Rangkaian Aktivitas Tata Usaha,
(Silalahi, 2009).
5
Berdasarkan pengertian administrasi di atas, sistem informasi pengolahan
data alumni yang berada di SMK Negri 2 Garut, termasuk belum dapat mencapai
tujuannya. Hal tersebut terlihat jelas pada prosedur yang sedang berjalan masih
memiliki permasalahan. Oleh karena itu, untuk mengatasi permasalahan tersebut
maka perlu dibuat sebuah sistem baru berbasis teknologi komputer, yaitu SIM.
“Sistem Informasi Manajemen (SIM) adalah sebuah sistem informasi pada level manajemen yang berfungsi untuk membantu perencanaan, pengendalian, dan pengambilan keputusan dengan menyediakan resume rutin dan laporan-laporan tertentu”, (Fatta, 2009).
Menurut pendapat Davis (1995) pada (Rochaety, 2006), sistem informasi
manajemen terdiri dari elemen-elemen berikut : Perangkat keras komputer
(hardware), Perangkat lunak (software), Database, Prosedur dan Petugas
operasional.
Secara teori, komputer tidak harus digunakan didalam SIM, tetapi
kenyataannya tidaklah mungkin SIM yang komplek dapat berfungsi tanpa
melibatkan elemen komputer. Lebih lanjut, bahwa SIM selalu berhubungan
dengan pengolahan informasi yang didasarkan pada komputer (computer-based
information processing), (Fatta, 2009).
Oleh karena itu diperlukan pembaharuan dalam bidang pengolahan data
alumni, sehingga pelayanan yang diberikan dapat lebih efesien dan efektif guna
untuk meningkatkan standar mutu pelayanan yang diberikan. Dengan hadirnya
sistem yang baru, diharapkan pelayanan akan semakin optimal agar dapat
memenuhi semua kebutuhan bagi pihak-pihak yang bersangkutan, serta dapat
menghasilkan suatu kebijakan yang baru dalam hal administrasi dan tujuan dari
dapat dicapai sesuai dengan keinginan semua pihak.
Dalam menganalisis perangkat lunak atau sistem informasi diperlukan
suatu pendekatan yang dapat digunakan dalam memecahkan masalah, diantaranya
adalah pendekatan klasik atau konvensional, pendekatan prosedural, dan
pendekatan berorientasi objek.
Diantara semua pendekatan, pendekatan yang terbaru dan popular saat ini
yaitu pendekatan berorientasi objek. Pendekatan ini merupakan suatu teknik yang
6
memusatkan rancangan pada objek dan antar muka yang dihasilkan. Objek adalah
entity yang berisi data atau variabel dan tingkah laku. Data atau variabel yang
menggambarkan sifat atau keadaan objek dalam dunia nyata (real world)
didefiniskan sebagai attribute, sedangkan tingkah laku yang menggambarkan
aksi-aksi yang dimiliki objek didefinisikan sebagai method.
Metode analisis yang berorientasi objek diantaranya Unified Approach
(UA) dari bukunya Bahrami (1999). Unified Approach (UA) adalah suatu
metodologi pengembangan sistem berbasis objek yang menggabungkan proses
dan metodologi yang telah ada sebelumnya dan menggunakan Unified Modelling
Languge (UML) sebagai standar pemodelannya. Proses dan tahapan yang ada
dalam Unified Approach (UA) merupakan proses-proses terbaik yang diambil
dari metode objek yang telah diperkenalkan oleh Booch, Rumbaugh, dan
Jacobson. Tahap Analisis dalam Unified Approach (UA) ditujukan untuk
mengidentifikasi kelas-kelas yang terdapat dalam sistem.
Untuk melanjutkan ketahap desain maka di perlukan juga bahasa
pemograman yang berorientasi objek. Dalam hal ini penulis mencoba merancang
dengan menggunakan bahasa pemrograman Java karena bahasa pemograman Java
merupakan salah satu bahasa pemrograman yang berorientasi objek dan juga Java
merupakan develpment tool yang fleksibel dan powerful. Salah satu
keunggulannya adalah platform independence. Maksud dari platfrom
independence adalah program yang kita tulis tidak tergantung pada sistem operasi
saat program tersebut dibuat. Java dibangun dengan kekuatan C++. Java
mengambil fitur-fitur terbaik dari C++ dan menghilangkan permasalahan yang
ada. Java memiliki fitur garbage collection (menajemen memori secara otomatis),
multithreading (kemampuan untuk melakukan sesuatu lebih dari satu pada saat
bersamaan) dan keamamanan yang lebih baik. Sehinggan Java menjadi
pemograman yang sederhana, elagan, powerful dan mudah digunakan.
Bersamaan dengan semakin berkembangnya teknologi informasi dan
komunikasi, perancangan Sistem informasi yang terdistribusi, dan terintegrasi
yang dapat memungkinkan terciptanya keterpaduan-keterpaduan di atas dapat
dibangun menggunakan teknologi jaringan berbasis client server. Pada arsitektur
7
client server terdapat dua jenis aplikasi, yaitu aplikasi server dan aplikasi client.
Instruksi-instruksi pengolah data disimpan di aplikasi server, sedangkan aplikasi
client hanya memuat instruksi-instruksi yang berkaitan dengan pembuatan user
interface. Komunikasi yang terjadi antara aplikasi server dengan aplikasi client
terjadi ketika aplikasi client me-request instruksi yang ada pada aplikasi server.
Data diinput di client , lalu client meminta aplikasi di server dan mengirimkan
data yang diinput user ke database di server untuk dimanipulasi atau diolah oleh
aplikasi yang berada di server dan hasilnya akan dikembalikan ke client.
Perancangan aplikasi yang terintegrasi dan berbasis client server salah satunya
dapat menggunakan suatu package dalam bahasa pemograman Java yang dikenal
dengan istilah Remote Methode Invokes (RMI). Dengan package ini suatu sistem
memungkinkan untuk dibangun dalam satu kesatuan subsistem yang terintegrasi
secara sistematis dan terdistribusi (ditributed).
Pada karya ilmiah ini penulis mencoba menerapkan konsep-konsep diatas
pada perancangan Sistem Informasi Pengelolaan Data Alumni di SMK Negeri 2
Garut dengan judul karya Ilmiah “PERANCANGAN SISTEM INFORMASI
PENGOLAHAN DATA ALUMNI MENGGUNAKAN TEKNOLOGI JAVA
REMOTE METHOD INVOKES (JAVA-RMI) DENGAN METODELOGI
BERORIENTASI OBJEK (Studi Kasus di SMK Negeri 2 Garut)” .
1.2 Identifikasi Masalah
Berdasarkan latar belakang masalah yang dikemukakan di atas, terdapat
beberapa permasalahan-permasalahan yang dapat diidentifikasi. Adapun
permasalahan tersebut yaitu pada proses pencatatan data alumni masih tepaku
pada buku induk. Oleh karena itu masalah yang sering terjadi adalah
pengklasifikasian data alumni belum rapi, pencarian data dan informasi
dibutuhkan waktu lama, serta penggunaan simpanan konvensional (dalam hal ini
kertas dan buku). Yang menyebabkan :
a. Proses pencarian data alumni relatif lama.
b. Sekolah kesulitan mengidentifikasi program studi apa yang paling
banyak di butuhkan di dunia kerja.
8
c. Pihak lain dalam hal ini perusahaan kesulitan mendapatkan infromasi
yang cepat dan akurat untuk mendapatkan tenaga kerja yang sesuai
dengan kualifikasi yang dibutuhkan.
1.3 Tujuan
Adapun yang menjadi tujuan dari penelitian ini adalah mengembangkan
sebuah sistem informasi pengolahan data alumni yang berbasis komputer dengan
menggunakan metodelogi berorientasi objek, sehingga dengan adanya sistem
informasi tersebut diharapkan dapat menyelesaikan permasalahan yang
berhubungan dengan pengolahan data alumni di SMK Negeri 2 Garut.
1.4 Batasan Masalah
Adapun batasan masalah dalam tugas akhir ini adalah sebagai berikut :
a. Sistem Informasi yang dibuat adalah sistem yang didasarkan pada
aktifitas bisnis pengolahan data alumni di SMK Negeri 2 Garut. Segala
kegiatan di luar sistem dan pembuatan keputusan tidak dibahas.
b. Penggunaan metode pengembangan sistem menggunakan Unified
Approach (UA) yang terdiri pada tahap analisis (tidak sampai tahap
pemeriksaan) serta perancangan (tidak sampai tahap pengujian).
c. Tahap analisis dan perancangan sistem menggunakan bahasa
pemodelan Unified Modelling Language (UML).
d. Tahap proses desain, pada karya tulis ini akan dirancang sebuah
prototype, tidak berupa program secara utuh melainkan hanya pada
tahap perancangan form pengisian data alumni saja yang dirancang
untuk menggambarkan implementasi Java RMI pada perancangannya.
1.5 Metode Penelitian
1. Metode Pengumpulan data
Adapun metode pengumpulan data yang dilakukan adalah sebagai
berikut:
a. Wawancara
9
Wawancara dilakukan terhadap stakeholder yang terkait dengan
sistem.
b. Observasi lapangan
Selain wawancara, penulis juga mengamati secara langsung
bagaimana setiap prosedur berlangsung, sehingga dapat diketahui
aktifitas bisnisnya yang nantinya akan dimodelkan.
c. Studi kepustakaan
Selain itu, penulis juga mempelajari petunjuk ataupun referensi
berupa buku, dokumen, pedoman ataupun formulir tentang
bagaimana proses maupun prosedur pada kegiatan akademik
dilakukan sebagai bahan untuk melakukan analisis dan desain.
2. Metode Pengembangan Sistem
A. Metode Analisis Sistem
Dalam menganalisis sistem, penulis menggunakan metodologi Unified
Approach (UA) sebagai salah satu metodologi yang terdapat pada
konsep pengembangan sistem berorientasi objek. Adapun tahapan dari
metodologi Unified Approach (UA) adalah sebagai berikut:
a. Mengidentifikasi users/actors yang akan menggunakan sistem.
b. Memodelkan business process menggunakan Activity diagrams.
c. Mengidentifikasi Use Case menggunakan Use-case diagrams
d. Mengembangkan Use Case yang telah teridentifikasi dengan
Interaction diagrams, diantaranya menggunakan:
1). Sequence diagrams
2). Collaboration diagrams
e. Membuat klasifikasi menggunakan Class diagrams berdasarkan
Use-case diagrams dan Interaction diagrams dengan langkah-
langkah sebagai berikut:
1). Mengidentifikasi clasess
10
2). Mengidentifikasi relationships
3). Mengidentifikasi attributes
4). Mengidentifikasi methods
B. Metode Desain Sistem
Pada tahapan desain sistem pada penelitian ini penulis menggunakan
metodologi design Unified Approach (UA) yang terdiri dari beberapa
tahapan di bawah ini :
a. Menerapkan desain Axiom pada design Class, beserta atribut-
atributnya, method, asosiasi, struktur dan protokolnya.
1). Memperbaiki dan melengkapi Diagram Class diagram
dengan manambahkan rinciannya. Tahap ini meliputi
aktivitas-aktivitas di bawah ini :
♦ Memperbaiki Atribut
♦ Mendesain method dan protokol
♦ Memperbaiki asosiasi antar kelas
♦ Memperbaiki hirarki kelas
2). Iterasi dan perbaikan ulang
b. Mendesain akses layer
1). Membuat Mirror class.
2). Mengidentifikasi Class relationship pada layer akses.
3). Menyederhanakan beberapa kelas beserta relasinya.
Tujuanya untuk mengeliminasi kelas dan struktur yang
sama (redundant)
♦ Kelas yang redundant : menghilangkan dua atau
lebih kelas yang sama pada kegiatan translate
request dan translate result. Menyederhanakan
dengan memilih salah satu dan mengelimunasi kelas
yang lain.
11
♦ Kelas Method : meninjau kembali kelas-kelas
berada pada satu atau dua method yang
memungkinkan dikombinasikan atau dieleminasu
denagn kelas yang lain.
4). Iterasi dan perbaikan kembali
c. Mendesain tampilan layer kelas
1). Mendesain interface untuk level macro, mengidentifikasi
tampilan layer beberapa objek.
2). Mendesain interface untuk level micro, dengan
mengikutsertakan aktivitas-aktivitas objek.
♦ Mendesain tampilan layer objek dengan
menerapkan desain axiom dan Corollaries.
♦ Membangun prototype dari tampilan layer interface.
3). Mengecek kebutuhan user
4). Iterasi dan perbaikan ulang
d. Iterasi dan perbaikan keseluruhan desain. Menerapkan kembali
desain axiom (jika diperlukan) dan tahapan-tahapan sebelumnya.
12
1.6 Kerangka Pemikiran
Akses data dan Informasi yang dilakukan secara Manual mengakibatkan
dampak yang cukup signifikan pada kualitas manajemen suatu perusahaan atau
lembaga. Proses yang manual seperti inilah yang selama ini menjadi current
system di SMK Negeri 2 Garut khususnya pada Pengolahan Data Alimni. Oleh
karena itu, diperlukannya sebuah Sistem Informasi yang dapat menggantikan
sistem manual tersebut sehingga akses pada data dan informasi lebih cepat, tepat
dan akurat. Dengan begitu, kualitas manajemen data dan informasi lebih
berkualitas. Untuk lebih jelasnya, berikut ini adalah gambaran kerangka pemikiran
perancangan Sistem Informasi Pengolahan Data Alumni SMK Negeri 2 Garut:
Gambar 1.2 Kerangka Pemikiran
OBJECT ORIENTED ANALYSIS (OOA): • Identifikasi Aktor • Pengembangan Diagram Use Case dan Diagram
Aktifitas • Pengembangan Diagram Interaksi • Identifikasi Kelas-kelas, relasi, atribut dan method
• Pemeriksaan terhadap tahap sebelumnya
SISTEM YANG BERJALAN: • Proses pencarian data alumni lambat
• Sekolah kesulitan mengidentifikasi data alumni
• Pihak lain kesulitan mendapatkan informasi yang cepat dan akurat mengenai data alumni
OBJECT ORIENTED DESAIN (OOD): • Perancangan kelas, asosiasi, metode dan atribut • Menyaring (Memeriksa) UML Class Diagram • Perancangan Layer Akses dan Layer Antarmuka • Pengujian
SISTEM YANG AKAN DATANG BERBASIS KOMPUTER
Tantangan dan Peluang
Visi, Misi dan Strategi
Data, Fakta dan Studi Literatur
13
1.7 Sistematika Penulisan
Agar pembahasan pada penyusunan Tugas Akhir ini tersusun
secara sistematis sehingga mudah dipahami oleh pembaca, maka penulis
membaginya ke dalam beberapa Bab dengan Sistematika sebagai berikut :
BAB I PENDAHULUAN
Bab ini akan di bahasa mengenai deskripsi atau gambaran yang
ada pada sistem yang sedang berjalan dengan ruang lingkup
permasalahan, metodologi yang nantinya akan dipakai dan tujuan
akhir yang di harapkan.
BAB II TINJAUAN PUSTAKA
Bab ini akan di bahasa mengenai teori dari berbagai sumber yang
digunakan sebagai referensi baik didalam kegiatan analisis
maupun perancangan untuk menyelesaikan permasalahan dari
studi kasus yang dipilih. Serta memuat konsep-konsep dasar yang
menjadi guidlines sehingga aktivitas analisis maupun desain
sesuai dengan aturan-aturan yang baku.
BAB III ANALISIS SISTEM
Bab ini akan di bahasa mengenai analisis yang menggambarkan
dari current systems dengan menggunakan metodologi Object
Oriented yang merupakan bagian dari konsep pengembangan
sistem berorientasi objek. Pada Bab ini dibahas mulai dari
mengidentifikasi Users/Actors, Memodelkan Bussines proses,
Mengidentifikasi dan mengembangkan Uses case, hingga
membuiat klasifikasi berdasarkan kelas menggunakan Use case
diagram. Selian itu, pada Bab ini dibahas pula mengenai
teknologi Java RMI.
14
BAB IV DESAIN SISTEM
Bab ini akan di bahasa mengenai perancangan sistem kesimpulan
yang dapat ditarik dari pembahasan dan merupakan hasil dari
penyelesaian permasalahan serta saran-saran dari penulis yang
berkaitan dengan kegiatan analisis menggunakan metodologi
berorientasi Objek serta perancangan Sistem Informasi
terdistribusi menggunakan Teknologi Java RMI.
BAB V KESIMPULAN DAN SARAN
Bab ini akan di bahasa mengenai kesimpulan yang dapat ditarik
dari pembahasan dan merupakan hasil dari penyelesaian
permasalahan serta saran-saran dari penulis yang berkaitan
dengan kegiatan analisis menggunakan metodologi berorientasi
Objek, serta proses perancangannya yang merupakan
Implementasi teknologi Java RMI.
DAFTAR PUSTAKA
Berisi kumpulan literature, referensi serta rujukan yang dipakai
dalam menyusun penelitian tugas akhir ini.
15
BAB II
TINJAUAN PUSTAKA
Pada bab ini akan dilakukan pengamatan pendahuluan dari sistem yang
akan dirancang, pengamatan pendahuluan meliputi studi kepustakaan (library
research). Studi kepustakaan dilakukan untuk meninjau teori-teori dari literatur
mengenai konsep-konsep, metodelogi, pendekatan, serta tahap-tahap penelitian
yang akan dilakukan pada fase-fase selanjutnya.
2.1 Sistem Informasi Manajemen
2.1.1 Sistem
Didalam berbagai aktivitas, apapun aktivitasnya selalu terdapat
istilah ”sistem”, dimana sistem ini merupakan sebuah lingkungan
yang mengarahkan sebuah aktivitas agar tetap berada pada kondisi
terkontrol. Sehingga dengan demikian, aktivitas yang dilakukan dapat
memberikan sebuah manfaat dan output yang diinginkan. Terdapat
beberapa pendefinisian sistem dilihat dari berbagai sudut pandang,
diantaranya sebagai berikut:
Dalam mendefinisikan sistem, terdapat dua kelompok
pendekatan, yaitu pendekatan sistem yang menekankan pada prosedur
yang digunakan dalam sistem. Pendekatan ini medefinisikan sistem
sebagai berikut :
“Sistem adalah suatu jaringan kerja dari prosedur-prosedur yang
berhubungan, berkumpul bersama-sama untuk melakukan suatu
kegiatan atau untuk menyelesaikan suatu sasaran tertentu” (Hartono,
1999).
Pendekatan yang kedua lebih menekankan pada elemen atau
komponen penyusun sistem. Pendekatan ini mendefinisikan sistem
sebagai berikut :
“Sistem adalah kumpulan dari elemen-elemen yang saling berinteraksi
untuk mencapai satu tujuan tertentu” (Hartono, 1999).
16
Sedangkan pendapat Kristanto, sebuah sistem dapat
didefinisikan sebagai berikut :
Sistem adalah “kumpulan dari elemen-elemen yang beriteraksi untuk
mencapai suatu tujuan tertentu” (Kristanto, 1999).
Secara umum, definisi sebuah sistem dapat dilihat pada gambar
dibawah berikut:
Gambar 2.1 Model aktivitas sistem (Amsyah, 1997)
2.1.2 Informasi
Tidak berbeda halnya dengan pendefinisian sebuah sistem,
pendefinisian informasipun memiliki pandangan yang berbeda dari
setiap orang, akan tetapi memiliki esensi yang sama. Hal itu dapat
ter;ihat dari pendefinisian informasi berikut:
Informasi didefinisikan sebagai berikut :
Informasi adalah “data yang diolah menjadi bentuk yang lebih berguna
dan lebih berarti bagi yang menerimanya” (Kristanto, 1999).
Informasi adalah “adalah data yang telah diolah menjadi suatu bentuk
yang berarti bagi penerimanya dan bermanfaat dalam pengambilan
keputusan pada saat ini ataupun saat mendatang” (Hartono, 1999).
Secara garis besar, konsep dasar pembentukan sebuah
informasi yang merupakan hasil dari pengolahan data dapat terlihat
pada gambar berikut:
17
Gambar 2.2 Proses pembentukan informasi (Amsyah, 1997)
2.1.3 Manajemen
Secara luas orang sudah banyak mengenal tentang istilah
manajemen, hakikat manajemen secara relatif, yaitu bagaimana sebuah
aktivitas bisa berjalan lebih teratur berdasarkan prosedur dan proses.
Terry (1997) pada buku Rochaety (2006) secara umum
dikatakan bahwa manajemen merupakan proses yang khas yang terdiri
dari tindakan-tindakan perencanaan, pengorganosasian, penggerakan,
dan pengawasan untuk mencapai tujuan yang telah ditetapkan melalui
pemanfaatan sumber daya manusia maupun sumber daya lainnya.
Definisi lain menyatakan bahwa manajemen merupakan proses
perencanaan, pengorganisasian, kepemimpinan, dan pengawasan antar
anggota dengan menggunakan seluruh sumber daya organisasi untuk
mencapai tujuan yang telah ditetapkan (Stoner, 1998) dalam
(Rochaety, 2006).
Pada dasarnya dalam proses penggunaan sistem informasi,
seorang manajer sebelumnya harus memahami posisi dari
hirarki/tingkatan manajemen dimana dia berada, sebagaimana
dikemukakan (McLeod, 2001) dalam (Rochaety, 2006) bahwa
tingkatan manajerial terdiri dari Strategic Planning Level (Top
Management), Management Control Level (Middle Management), dan
Operational Control Level (Lower management). Posisi tersebut sangat
berpengaruh terhadap sumber dan bentuk informasi yang dibutuhkan
oleh seorang manajer (pimpinan) sebagai bahan proses pengambilan
keputusan. Sumber informasi dan bentuk informasi yang dibutuhkan
18
oleh seorang manajer berdasarkan hirarkinya dapat dilihat dalam
gambar di bawah ini :
Gambar 2.3: Sumber informasi yang dibutuhkan setiap tingkatan
manajemen (Rochaety, 2006)
2.1.4 Konsep Sistem Informasi Manajemen
Sistem informasi manajemen (manajement information
system atau sering dikenal dengan singkatannya MIS) merupakan
sistem berbasis komputer yang mengoptimasi kumpulan, transfer, dan
presentasi informasi yang dibutuhkan oleh suatu organisasi yang
mengintegrasikan struktur basisdata dengan aliran informasi (Long,
1997).
Karakteristik dari suatu SIM meliputi hal-hal dibawah ini :
• An MIS supports the data processing functions of transaction handling and record keeping.
• An MIS uses an integrated database and suports a variety of functional areas.
• An MIS provides operational, tactical, and strategic level managers with easy access to timely but, for the most part, structured information.
• An MIS is somewhat flexible and can be adapted to meet changing information needs of the organization.
• An MIS provides an envelope of system security that limits access to authorized personnel (Long, 1997).
Davis (1995) dalam Rochaety (2006) menjelaskan bahwa
sistem informasi manajemen merupakan sebuah sistem manusia dan
19
mesin yang terpadu untuk menyajikan informasi guna mendukung
fungsi operasi, manajemen, dan proses pengambilan keputusan dalam
sebuah organisasi. (Rochaety, 2006).
Laudon dan Laudon (2000) dalam bukunya Management
Information Systems: Managing The Digital Firm :
“A Management Information system is an integrated user-
machine system for providing information to support the operations,
management analysis, and decision making functions.”
2.2 Pengembangan Sistem Berorentasi Objek (Object Oriented System
Development)
Pengembangan software adalah hal yang dinamis dan selalu beriringan
dengan perubahan. Metodelogi yang digunakan di masa yang akan dating
tidak menutup kemungkinan jauh berbeda dengan metodelogi yang ada saat
ini. Salah satu faktornya adalah perubahan pemahaman akan sebuah konsep
pada proses perancangannya.
Saat ini banyak terdapat metodelogi yang diterapkan pada proses
pengembangan sebuah sistem. Pengembangan sistem (system development)
menyangkut seluruh aktivitas yang ada pada perancangan sebuah sistem
informasi. Aktivitas pada System development terdiri dari analisis sistem,
pemodelan, desain/perancangan, impelementassi, testing dan maintenanace.
(Bahrami, 1999)
Pengembangan berorientasi objek merupakan model yang berbeda
dengan pendekatan pada model pengambangan tradisional, berdasarkan fungsi
dan prosedurnya. Dengan kata lain, pengembangan sistem berorientasi objek
adalah suatu cara dalam mengembangangkan software dengan membangun
objek yang dengan mudah ditempatkan, dimodifikasi, dan digunakan kembali.
Dalam sistem berorientasi objek, software merupakan kumpulan dari beberapa
objek-objek tersembunyi yang membungkus suatu data yang memiliki fungsi
sebagaimana fungsinya pada dunia nyata. Setiap objek memiliki atribut (data)
20
dan method (fungsi). Objek-objek tersebut kemudian dikelompokan ke dalam
beberapa kelas (class) (Bahrami, 1999).
2.2.1 Konsep Objek
Istilah objek (object) secara formal pertama kali digunakan
pada bahasa pemrogaraman Simula, objek merupakan ciri khas dari
program Simula untuk mensimulasikan beberapa hal dari dunia nyata.
Istilah objek berarti suatu kombinasi data dan logic yang
merepresentasikan suatu hal pada dunia nyata (Bahrami, 1999).
Contoh Objek Mobil, Mobil dapat menjadi objek pada suatu
pemrograman computer, yang menjadi “data” adalah nama mobil,
warna mobil, plat nomor, harga dll. Sedangkan yang menjadi “logic”
pada objek mobil adalah kumpulan printah pada objek mobil misalkan
maju, berhenti, putar balik dll.
2.2.1.1 Kelas
Objek-objek pada pengembangan software berorientasi objek
kemudian dekelompokan dalam beberapa kelas (Class). Class
digunakan untuk memisahkan suatu objek dari objek yang lain, dengan
kata lain kelas (class) merupakan satu kesatuan objek yang memiliki
struktur dan perilaku (behavior) yang sama/serupa. Setiap kelas
memiliki properties/state/attribute dan prosedur/behavior/method.
(Bahrami, 1999)
21
Gambar 2.4 : Contoh Objek pada Kelas Employee
(Bahrami, 1999)
2.2.1.2 Enkapsulasi
Enkapsulasi adalah pembungkusan objek bersama metode-
metodenya dengan tingkat visibilitas tertentu. Manfaat utama
enkapsulasi adalah penyembunyian rincian-rincian implementasi dari
objek lain. Bagian internal objek mempunyai ketampakan terbatas
dibanding bagian eksternal objek. Penyusunan seperti ini menjaga agar
objek terlindung dari pengaksesan oleh objek lain yang tidak
diinginkan.(Wijono, 2004)
Bagian eksternal objek sering disebut antarmuka objek karena
berlaku sebagai antarmuka terhadap objek lain. Objek lain harus
berkomunikasi dengan objek tersebut hanya melalui antarmuka,
sehingga bagian internal objek dapat dilindungi dari gangguan luar.
Dikarenakan objek luar tidak bisa mengakses implementasi internal
objek, maka implementasi internal objek dapat berubah tanpa
mempengaruhi bagian-bagian yang lain. (Wijono, 2004)
Konsep enkapsulasi ini diimplementasikan oleh kelas. Kelas
membungkus atribut dan metode-metode yang diperlukan untuk
mendeskripsikan objek.
22
Pada konsep enkapsulasi, terdapat tiga macam tingkat visibilias
yang dapat membatasi serta melindungi objek dari akses oleh objek
lain yang tidak diinginkan, yaitu public, protected dan private. Pada
implementasinya tingkat visibilitas ini diterapkan pada metode-metode
dari objek. (Wijono, 2004)
Tingkat visibilitas public memungkinkan sembarang objek dari
kelas manapun dapat mengakses metode-metode dan atribut-atribut
yang dimiliki oleh suatu objek dari suatu kelas. Metode-metode dan
atribut-atribut yang memiliki tingkat visibilitas public inilah yang
menjadi antarmuka objek.
Tingkat visibilitas yang kedua adalah protected. Metode
dengan tingkat visibilitas protected hanya bisa diakses oleh kelas-kelas
lain yang terdapat dalam satu paket beserta kelas turunannya. Kelas-
kelas yang terdapat diluar paket tidak bisa mengakses metode-metode
dan atribut-atribut dengan tingkat visibilitas protected yang dimiliki
oleh suatu kelas pada paket yang berbeda.
Tingkat visibilitas yang ketiga adalah private. Metode dengan
tingkat visibilitas private hanya bisa diakses oleh objek dimana method
tersebut berada. Metode dengan tingkat visibilitas private ini benar-
benar tidak bisa diakses oleh objek yang lain, baik objek-objek yang
satu paket, maupun objek-objek yang berbeda paket. Paket merupakan
kumpulan kelas yang memiliki tema sejenis. Hierarki paket mirip
dengan folder-folder atau direktori yang di dalamnya berisi file-file
atau folder-folder lain. File-file ini bisa dianalogikan sebagai kelas,
sedangkan folder bisa dianalogikan sebagai paket. (Wijono, 2004)
23
Frameheader : FrameHeaderuniqueID : Long
addMessage()setCheckSum()encrypt()
Gambar 2.5 : Contoh tingkat visibilitas kelas pada konsep enkapsulasi
(Booch, et. al, 1999)
2.2.1.3 Pewarisan (Inheritence)
Pewarisan adalah penciptaan kelas baru dengan mewarisi
karakteristik kelas yang telah ada ditambah karakteristik unik kelas
baru itu. Pewarisan adalah mekanisme ampuh yang memungkinkan
kelas mewarisi fungsionalitas kelas yang telah ada. Dengan pewarisan
kita dapat menciptakan kelas umum yang mendefinisikan perilaku
umum dari objek-objek. Kelas ini kemudian dapat diwarisi kelas-kelas
lain. Dengan pewarisan dimungkinkan penciptaan klasifikasi
berhierarki. Artinya, kedudukan kelas yang diwarisi dapat
digambarkan menempati posisi yang lebih tinggi dari pada kelas-kelas
yang mewarisi sehingga tercipta sebuah susunan kelas yang hierarkis.
Kelas yang diwarisi disebut superkelas, sedangkan kelas yang
mewarisi disebut subkelas. Dengan demikian dapat dikatakan bahwa
subkelas adalah versi khusus dari superkelasnya. Subkelas dapat
mewarisi seluruh atau sebagian atribut dan metode yang dimiliki oleh
superkelasnya. (Wijono, 2004)
Jika superkelas telah mendefinisikan kelas yang kita perlukan,
maka kita tidak harus mendefinisikan ulang perilaku-perilaku dari
superkelas atau mengkopi kode dari kelas lain. Kita cukup membuat
subkelas dari superkelas yang dimaksud. Superkelas secara otomatis
akan memberikan perilakunya ke subkelas pewaris. Superkelas itu
24
mungkin saja memperoleh perilakunya dari superkelas-superkelasnya
di hierarki yang lebih atas. Sehingga dengan demikian, subkelas akan
merupakan gabungan seluruh fitur dari superkelas-superkelas di
hierarki ditambah fitur kepunyaan sendiri. (Wijono, 2004)
Pewarisan juga berhubungan dengan konsep enkapsulasi.
Tingkat-tingkat visibilitas dalam konsep enkapsulasi memiliki
pengaruh yang cukup signifikan terhadap pewarisan. Pengaruh tersebut
terutama berhubungan dengan tingkat visibilitas pada pewarisan.
Subkelas hanya dapat mewarisi metode-metode dan atribut-atribut
yang memiliki tingkat visibilitas public atau protected dari
superkelasnya. Sedangkan metode-metode dan atribut-atribut yang
dimiliki oleh superkelas dengan tingkat visibilitas private tidak dapat
diwarisi oleh subkelas-subkelasnya, metode-metode dan atribut-atribut
tersebut hanya bisa diakses atau digunakan oleh kelas itu sendiri.
Vehicle
Car
Mustang ThunderbirdTaurus
Ford
Gambar 2.6 : Contoh hierarki super kelas dan sub kelas yang
menggambarkan konsep pewarisan (Bahrami, 1999)
2.2.2 Metodelogi Berorientasi Objek
Pada tahaun 1980-an, banyak metodelogi yang dikembangkan
pada perancangan berorientasi objek. Metodelogi berorientasi objek
menjadi sangat popular saat itu, dan banyak membantu banyak
25
pengembang dalam mengeksekusi analisa dan desain yang baik.
Berikut metodelogi-metodelogi yang muncul sekitar tahun 1980-1994
(Bahrami, 1999) :
• 1986, Booch mengembangkan konsep desain berorientasi
objek, dikenal dengan Booch method.
• 1987, Sally Shlaer dan Steve mellor membuat konsep recursive
design approach.
• 1989, Beck dan Cunningham membuat class-responsibility-
collaboration card.
• 1990, Wirfs-Brock, Wilkerson dan Wiener muncul engan
responsibility-driven design.
• 1991, Jim Rumbaugh memimpin sebuah tim pada Research
Labs of General Electric untuk mengembangkan Object
Modelling Technique (OMT)
• 1991, Peter Coad dab Ed Yourdon mengembagkan Coad
lightweight dan prototype-oreinted approach.
• 1994, Ivar Jacobson memperkenalkan konsep use case dan
Object oriented Software Engineering (OOSE)
Pendekatan yang digunakan pada penelitian ini adalah
pendekatan unified (unified approach) yang memiliki basis
metodelogi berdasarkan teori Booch, Rumbaugh dan Jacobson. Pada
pendekatan unified (UA) digunakan sebuah framework yang
menggunakan Unified Modelling Language (UML) untuk
menampilkan model, dan dokumentasi pada seluruh proses
pengembangan software. (Bahrami, 1999).
2.2.3 Pemodelan Menggunakan Unified Modelling Language (UML)
Suatu model merupakan representasi abstrak dari suatu sistem,
dirancang untuk memahami sistem secara detail pada tahap
pembangunan atau pengembangan sistem. Efraim Turban menjelaskan
bahwa suatu model adalah representasi dari sistem di dunia nyata.
26
Model merupakan bentuk sederhana dari suatu sistem di dunia nyata
yang begitu kompleks. (Bahrami, 1999)
2.2.3.1 Diagram pada UML
Setiap sistem yang kompleks akan jauh lebih baik jika
direpresentasikan dalam sebuah model yang sederhana yang
menggambarkan sistem secara keseluruhan. UML mendefinisikan
sembilan diagram untuk menjelaskan suatu sistem (Bahrami 1999) :
1. Class diagram
2. Use-case diagram
3. Behavior diagram
3.1. Interaction diagram
3.1.1. Sequence diagram
3.1.2. Collaboration diagram
3.2. Statechart diagram
3.3. Activity diagram
4. Implementation diagram
4.1. Component diagram
4.2. Deployment diagram
2.2.3.1.1 Class Diagram
Class adalah sebuah spesifikasi yang jika diinstansiasi akan
menghasilkan sebuah objek dan merupakan inti dari pengembangan
dan desain berorientasi objek. Class menggambarkan keadaan
(atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk
memanipulasi keadaan tersebut (metoda/fungsi). Class diagram
menggambarkan struktur dan deskripsi class, package dan objek
beserta hubungan satu sama lain. (Bahrami, 1999)
Class diagram memiliki beberapa komponen, diantaranya
adalah:
27
1) Class Name: merupakan nama dari suatu kelas yang disimpan
pada bagian atas, ditulis dalam huruf tebal dan diletakkan di
tengah-tengah. Nama diambil dari domain permasalahan dan
harus sejelas mungkin. Oleh karena itu nama kelas haruslah
berupa kata benda.
2) Attribute: kelas memiliki atribut yang menggambarkan
karakteristik dari objek. Atribut kelas yang benar adalah yang
dapat mencakup informasi yang dilukiskan dan mengenali
instance tertentu dari kelas.
3) Operation: Operasi digunakan untuk memanipulasi atribut atau
menjalankan aksi-aksi. Operasi biasanya disebut dengan fungsi,
tetapi mereka terdapat di dalam kelas dan dapat diaplikasikan
hanya pada objek dalam kelas tersebut. (Bahrami, 1999)
Wallheight : floatwidth : floatthickness : floatisLoadingBiearing : boolean = false
paint()
Gambar 2.7 : Contoh classes (Booch, et. al, 1999)
Class dapat merupakan implementasi dari sebuah interface, yaitu
class abstrak yang hanya memiliki metoda. Interface tidak dapat
langsung diinstansiasikan, tetapi harus diimplementasikan dahulu
menjadi sebuah class. Dengan demikian interface mendukung resolusi
metoda pada saat run-time.
Tiap class diagram bisa memiliki hubungan antar class diagram
lainnya, diantaranya (Bahrami, 1999) :
1. Asosiasi, yaitu hubungan statis antar class. Umumnya
menggambarkan class yang memiliki atribut berupa class lain,
atau class yang harus mengetahui eksistensi class lain. Panah
navigability menunjukkan arah query antar class.
28
2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri
atas”).
3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat
diturunkan dari class lain dan mewarisi semua atribut dan
metoda class asalnya dan menambahkan fungsionalitas baru,
sehingga ia disebut anak dari class yang diwarisinya. Kebalikan
dari pewarisan adalah generalisasi.
4. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-
passing dari satu class kepada, class lain. Hubungan dinamis
dapat digambarkan dengan menggunakan sequence diagram.
Headquarters
ContactInformation
address : String
Company
Officeaddress : Stringvoice : Number
1..*1..*
Personname : NameemployeeID : Integerti tle : String
getPhoto()getSoundBite()getContactInformation()getPersobalRecord()
Departmentname : Name
1..*1..*
** **
1..*
*
1..*
*
*
1..*
*
1..*
PeronnelRecordtaxIDemploymentHistotrsalary
ISecureInformation
Gambar 2.8 : Contoh class diagrams (Booch, et. al, 1999)
2.2.3.1.2 Use-case diagram
Use case diagram menggambarkan fungsionalitas yang
diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang
diperbuat sistem, dan bukan “bagaimana”. Sebuah use case
merepresentasikan sebuah interaksi antara aktor dengan sistem.
Use case merupakan sebuah pekerjaan tertentu, misalnya login ke
sistem, meng-create sebuah daftar belanja, dan sebagainya.
Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin
29
yang berinteraksi dengan sistem untuk melakukan pekerjaan-
pekerjaan tertentu. Use case diagram dapat sangat membantu bila
kita sedang menyusun requirement sebuah sistem,
mengkomunikasikan rancangan dengan klien, dan merancang test
case untuk semua feature yang ada pada sistem.
Terdapat tiga jenis hubungan yang terjadi antara use case
Bahrami (1999) yaitu :
1) Extends relationship : Hubungan generalization dimana
suatu use case memperluas use case yang lainnya dengan
cara penambahan aksi-aksi pada use case yang umum.
2) Uses relationship : Hubungan generalization dimana suatu
use case menggunakan use case yang lain, ini menandakan
sebagai bagian specifilized use case, tingkah laku dari use
case yang umum akan diikutsertakan atau bisa juga disebut
include relationship.
3) Grouping : Ketika sejumlah use case menangani fungsi
yang sama atau dalam beberapa cara berhubungan satu
dengan yang lainnya, mereka dapat diikat (bundle) dalam
UML Package.
Sebuah use case dapat meng-include fungsionalitas use
case lain sebagai bagian dari proses dalam dirinya. Secara umum
diasumsikan bahwa use case yang di-include akan dipanggil setiap
kali use case yang meng-include dieksekusi secara normal. Sebuah
use case dapat di-include oleh lebih dari satu use case lain,
sehingga duplikasi fungsionalitas dapat dihindari dengan cara
menarik keluar fungsionalitas yang common. Sebuah use case juga
dapat meng-extend use case lain dengan behaviour-nya sendiri.
Sementara hubungan generalisasi antar use case menunjukkan
bahwa use case yang satu merupakan spesialisasi dari yang lain.
30
Cellular network
User
Use scheduler
Place conf erence callPlace phone call
<<extend>>
Receiv e additional callReceiv e phone call
<<extend>>
Gambar 2.9 : Contoh use case diagrams (Booch, et. al, 1999)
2.2.3.1.3 Interactiom Diagram
Diagram interaksi adalah diagram yang menguraikan
bagaimana kelompok objek bekerja sama dalam menyelesaikan
suatu pekerjaan. Diagram Interaksi menangkap perilaku dari suatu
Use Case, mempertunjukkan pola interaksi antar objek. Diagram
menunjukkan sejumlah objek contoh dan pesan-pesan lewat antar
objek di dalam use case. Ada dua macam interaksi model, yaitu
sequence diagrams dan collaboration diagram.(Bahrami, 1999)
Sequence diagram menggambarkan interaksi antar objek di
dalam dan di sekitar sistem (termasuk pengguna, display, dan
sebagainya) berupa message yang digambarkan terhadap waktu.
Sequence diagram terdiri antar dimensi vertikal (waktu) dan
dimensi horizontal (objek-objek yang terkait). Sequence diagram
biasa digunakan untuk menggambarkan skenario atau rangkaian
langkah-langkah yang dilakukan sebagai respons dari sebuah event
untuk menghasilkan output tertentu. Diawali dari apa yang men-
trigger aktivitas tersebut, proses dan perubahan apa saja yang
terjadi secara internal dan output apa yang dihasilkan.
31
Masing-masing objek, termasuk aktor, memiliki lifeline
vertikal. Message digambarkan sebagai garis berpanah dari satu
objek ke objek lainnya. Pada fase desain berikutnya, message akan
dipetakan menjadi operasi/metoda dari class. Activation bar
menunjukkan lamanya eksekusi sebuah proses, biasanya diawali
dengan diterimanya sebuah message. (Bahrami, 1999)
c : Client : Transaction p : ODBCProxy
<<create>>
setAction(a, d, o) setValues(d, 3.4)
setValues(a, "CO")<<destroy>>
Gambar 2.10 : Contoh sequence diagrams (Booch, et. al, 1999)
2.2.3.1.4 Activity Diagram
Activity diagram menggambarkan berbagai alir aktivitas
dalam sistem yang sedang dirancang, bagaimana masing-masing
alir berawal, decision yang mungkin terjadi, dan bagaimana
mereka berakhir. Activity diagram juga dapat menggambarkan
proses paralel yang mungkin terjadi pada beberapa eksekusi.
Activity diagram merupakan state diagram khusus, di mana
sebagian besar state adalah action dan sebagian besar transisi di-
trigger oleh selesainya state sebelumnya (internal processing). Oleh
karena itu activity diagram tidak menggambarkan behaviour
internal sebuah sistem (dan interaksi antar subsistem) secara eksak,
tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas
dari level atas secara umum. Sebuah aktivitas dapat direalisasikan
oleh satu use case atau lebih. Aktivitas menggambarkan proses
32
yang berjalan, sementara use case menggambarkan bagaimana
aktor menggunakan sistem untuk melakukan aktivitas.
Sama seperti state, standar UML menggunakan segiempat
dengan sudut membulat untuk menggambarkan aktivitas. Decision
digunakan untuk menggambarkan behaviour pada kondisi tertentu.
Untuk mengilustrasikan proses-proses paralel (fork dan join)
digunakan titik sinkronisasi yang dapat berupa titik, garis
horizontal atau vertikal.
Select site
Commision architect
Develop plan
Bid plan
Do site work Do trade work
Finish construction
[else]
[not accepted]
Gambar 2.11 : Contoh activity diagrams (Booch, et. al, 1999)
2.2.4 Analisis Berorientasi Objek
Fase analisis berorientasi objek (OOA) pada pendeketan
unified (UA) menggunakan aktor dan use-case untuk menjelaskan
sistem dari sudut pandang pengguna. Aktor adalah faktor eternal yang
berinteraksi dengan sistem; sedangkan use-case merupakan scenario
yang menjelaskan bagaimana aktor menggunakan sistem (Bahrami,
1999). Proses analisis berorientasi objek meliputi langka-langkah
berikut ini (Gambar 2.12) Bahrami (1999):
1. Identifikasi aktor
• Siapa atau apa yang menggunakan sistem
• Atau, pada kasus perancangan sistem baru, aktor adalah siapa
atau apa yang akan menggunakan sistem.
33
2. Merancang/mengembangkan proses bisnis sederhana
menggunakan diagram aktifitas
3. Merancang/mengembangkan Use case
• Apa yang user lakukan terhadap sistem
• Atau, pada kasus perancangan sistem baru, apa yang user akan
lakukan terhadap sistem
• Use case dirancanag dengan dokumentasi yang komprehensif
dari sistem selama proses analisa.
4. Mempersiapkan diagram interaksi
• Menentukan diagram sequence
• Merancang diagram Kolaborasi (Collaboration Diagrams)
5. Perancangan Kelas (Class), merancang diagram kelas.
• Mengidentifikasi Kelas (Class)
• Megidentifikasi relasi
• Mengidentifikasi atribut
• Mengidentifikasi method.
6. Iterasi dan perbaikan; jika diperlukan.(Bahrami, 1999)
Gambar 2.12 : Tahapan Analisis pada pengembangan berorientasi
Objek (Bahrami, 1999)
2.2.4.1 Identifikasi Aktor
Mengidentifikasi aktor merupakan hal penting dalam
proses analisis sistem. Istilah aktor menunjukan sekumpulan
pengguna yang beraktivitas pada sistem. Satu pengguna
mungkin saja melakukan satu atu lebih aktivitas pada sistem.
Dalam mengidentifikasi aktor mesti dipahami pula bagaimana
aktor tersebut berinterakasi dengan sistem. (Bahrami, 1999)
34
Gambar 2.13 : Perbedaan Aktor dengan Pengguna
(Bahrami, 1999)
Sedangkan definsi aktor pada Whitten (2004) Aktor
adalah sesuatu yang perlu berinteraksi dengan sistem untuk
pertukaran informasi. Pelaku menginisiasi kegiatan sistem,
yakni sebuah use case, dengan maksud melengkapi beberapa
tugas bisnis yang menghasilkan sesuatu yang dapat diukur.
1. Primary Business Actor (Pelaku Bisnis Utama)
Stakeholder yang terutama mendapatkan keuntungan dari
pelaksanaan use case dengan menerima nilai yang
terukur atau terobservasi. Pelaku bisnis utama
kemungkinan tidak menginisiasi kejadian bisnis. Sebagai
contoh, dalam kejadian bisnis dari seorang karyawan
yang menerima gaji (nilai terukur) dari sistem penggajian
setiap hari jumat, karyawan tidak menginisiasi kejadian
itu, tetapi merupakan penerima utama dari sesuatu yang
bernilai.
2. Primary System Actor (Pelaku Sistem Utama)
Stakeholder yang secara langsung berhadapan dengan
sistem untuk menginisiasi atau memicu kegiatan atau
sistem. Pelaku sistem utama dapat berinteraksi dengan
para pelaku bisnis utama untuk menggunakan sistem
aktual. Mereka memfasilitasi kejadian dengan
menggunakan sistem secara langsung demi mencapai
35
keuntungan para pelaku bisnis utama. Contohnya
operator telepon yang memberikan bantuan kepada
pelanggan dan kasir Bank yang memproses transaksi
Bank. Pelaku bisnis utama dan pelaku sistem utama
kemungkinan memiliki persamaan, yaitu sama-sama
pelaku bisnis yang berhadapan langsung dengan sistem,
misalnya seorang yang melayani jasa penyewaan mobil
via website.
3. External Server Actor (Pelaku Server Eksternal)
Stakeholder yang melayani kebutuhan pengguna use case
(misalnya biro kredit yang memiliki kuasa atas
perubahan kartu kredit).
4. External Receiving Actor (Pelaku Penerima Eksternal)
Stakeholder yang bukan pelaku utama, tapi menerima
nilai yang terukur atau teramati (output) dari use case
(misalnya gudang menerima paket permintaan untuk
menyiapkan pengiriman sesudah seorang pelanggan
memesannya).
2.2.4.2 Analisa Proses Bisnis
Tahap ini tidak selalu mengawali suatu proyek analisis
sistem, akan tetapi jika dibutuhkan, proses bisnis dan
kebutuhan pengguna menjelaskan sampai ke level detail.
Berikut contoh pemodelan proses bisnis menggunakan diagram
aktivitas :
36
Gambar 2.14 : Activity Diagram (AD) menunjukan beberapa
aktivitas dilakukan aktor (Bahrami, 1999)
2.2.4.3 Identifikasi Use Case
Suatu use case adalah interaksi antara aktor dengan sistem.
Suatu use-case menyangkut aktivitass dan respon dari suatu aktor.
Pemodelan use case dapat dilakukan dengan mengambil beberapa
aktor kemudian mendiskusikan apa saja yang akan dilakukan aktor
tersebut terhadap sistem. Setiap use case merepresentasikan apa yang
akan dilakukan oleh aktor (Bahrami, 1999). Berikut contoh use case
diagram pada sistem perpustakaan :
Gambar 2.15 : Contoh Use case diagram pada sistem
perpustakaan (Bahrami, 1999)
37
2.2.4.4 Pemodelan Interaksi Menggunakan Interaction Diagram
Interaction Diagram terdiri dari Sequence diagram dan
Collaboration diagram. Diagram interakasi menjelaskan urutan proses
dan interaksi yang terdapat pada use case atau scenario. Pada
interaction diagram digambarkan interakasi antar suatu objek terhadap
objek yang lain. Pengembangan diagram ini menuntut pengembang
untuk mengidentifikasi seluruh objek dan event yang terjadi pada suatu
use case, hal ini akan sangat membantu untuk perancangan kelas
(class). (Bahrami, 1999)
2.2.4.5 Perancangan Kelas
Class adalah sebuah spesifikasi yang jika diinstansiasi akan
menghasilkan sebuah objek dan merupakan inti dari pengembangan
dan desain berorientasi objek. Class menggambarkan keadaan
(atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk
memanipulasi keadaan tersebut (metoda/fungsi). Class diagram
menggambarkan struktur dan deskripsi class, package dan objek
beserta hubungan satu sama lain (Bahrami, 1999).
Dalam proses identifikasi kelas ada beberapa pendekatan yang
dapat digunakan untuk mengidentifikasi kelas-kelas pada system yang
dirancang : Pendekatan Noun Phrase; pendekatan common class
patterns; pendekatan use-case driven; dan pendekatan Class,
Responsibility and Collaborators (CRC). Adapun pendekatan yang
penulis gunakan dalam penelitian ini adalah noun phrases approach,
dengan kata lain pendekatan ini dilakukan dengan cara mendaftar
sejumlah objek (kata benda atau frase) pada sistem yang dirancang
yang dianggap akan menjadi kandidat kelas. Objek yang telah
teridentifikasi menjadi kandidat kelas tersebut kemudian diidentifikasi
menjadi tiga kategori kelas, Rellevant class, Fuzzy class (kelas
ambigu) dan Irrelevant class. Rellevant class adalah kategori kelas
yang terdiri dari objek-objek yang memiliki keterkaitan dengan sistem
38
yang dirancang serta memiliki attribut dan method. Fuzzy class adalah
kelas yang memiliki makna ambigu dimana kelas ini tidak jelas apakah
relevan atau tidak. Irrelevant class adalah kelas yang tidak mempunyai
pengaruh atau keterkaitan langsung dengan sistem yang akan
dirancang, misalkan proses eliminasi pada kelas yang berupa atribut
atau method (Bahrami, 1999).
Gambar 2.16 : Tiga kategori kelas (Bahrami, 1999)
2.2.5 Perancangan (Design) Sistem Berorientasi Objek
Objek-objek yang teridentifikasi pada tahap analisis dapat
menjadi framework pada tahap design. Kelas-kelas yang teridentifikasi
harus diimplemetasikan pada tahap design untuk penerapannya pada
bahasa pemrograman. Kelas-kelas baru hasil refine mungkin saja
muncul selama tahap design. Pada tahap analisis kelas-kelas yang
teridentifikasi berdasarkan pada proses bisnis pada sistem yang
berjalan. Pada tahap design kelas-kelas tersebut dirancang untuk
kebutuhan implementasi sistem. Berikut tahapan-tahapan pada fase
perancangan sistem (Bahrami, 1999) :
a. Menerapkan desain Axiom pada desain Class, beserta atribut-
atributnya, method, asosiasi, struktur dan protokolnya.
2). Memperbaiki dan melengkapi Diagram Class diagram
dengan manambahkan rinciannya. Tahap ini meliputi
aktivitas-aktivitas di bawah ini :
♦ Memperbaiki Atribut
♦ Mendesain method dan protokol
♦ Memperbaiki asosiasi antar kelas
♦ Memperbaiki hirarki kelas
Irrelevant Class
Fuzzy Class
Relevant Class
39
3). Iterasi dan perbaikan ulang
b. Mendesain akses layer
4). Membuat Mirror class.
5). Mengidentifikasi Class relationship pada layer akses.
6). Menyederhanakan beberapa kelas beserta relasinya.
Tujuanya untuk mengeliminasi kelas dan struktur yang
sama (redundant)
♦ Kelas yang redundant : menghilangkan dua atau
lebih kelas yang sama pada kegiatan translate
request dan translate result. Menyederhanakan
dengan memilih salah satu dan mengelimunasi kelas
yang lain.
♦ Kelas Method : meninjau kembali kelas-kelas
berada pada satu atau dua method yang
memungkinkan dikombinasikan atau dieleminasu
denagn kelas yang lain.
7). Iterasi dan perbaikan kembali
c. Mendesain tampilan layer kelas
8). Mendesain interface untuk level macro, mengidentifikasi
tampilan layer beberapa objek.
9). Mendesain interface untuk level micro, dengan
mengikutsertakan aktivitas-aktivitas objek.
♦ Mendesain tampilan layer objek dengan
menerapkan desain axiom dan Corollaries.
♦ Membangun prototype dari tampilan layer interface.
10). Mengecek kebutuhan user
11). Iterasi dan perbaikan ulang
d. Iterasi dan perbaikan keseluruhan desain. Menerapkan kembali
desain axiom (jika diperlukan) dan tahapan-tahapan sebelumnya.
(Bahrami, 1999)
40
Gambar 2.17 : Proses perancangan berorientasi objek dengan
pendekatan unified (Bahrami, 1999)
2.2.5.1 Penerapan Desain Axiom Terhadap Desain Kelas
Secara definisi, axiom adalah kenyataan asasi yang
selalu diamati agar sesuai/valid tanpa ada pengecualian
(Bahrami, 1999). Pada perancangan kelas pada tahap design
sistem, desain axiom menyangkut atribut, method, struktur dan
prookol yang ada pada suatu kelas. Atribut-atribut dan method-
method tersebut dikaji ulang (refine) sehingga menghasilkan
kelas yang sesuai/valid untuk tahap implementasi.
a. Refine atribut
Dari kelas-kelas yang teridentifikasi pada tahap
analisis, pada tahap ini akan dilakukan refine untuk masing
atribut-atribut pada masing-masing kelas. atribut-atribut
pada masing-masing kelas dikaji ulang dengan
menambahkan beberapa informasi pada masing-masing
atribut. Informasi yang ditambahkan adalah berupa
visibilitas dan tipe data masing-masing atribut. Visibilitas
terdiri dari tiga jenis visibilitas :
+ public visibility (dapat diakses pada seluruh kelas)
# protected visibility (dapat diakses oleh subclass dan
method pada kelas yang bersangkutan)
41
– private visibility (hanya dapat diakses pada kelas yang
memilikinya)
Sedangkan pada refine tipe data, diidentifikasi
berdasarkan nilai yang akan menjadi input pada atribut
yang bersangkutan. Contoh : username[10] : String.
(Bahrami, 1999)
b. Refine method
Berdasarkan method-method yang teridentifikasi
untuk setiap kelas pada atahap analisis, pada tahap ini
method-method tersebut akan ditinjau ulang dengan
menambahkan beberapa informasi berupa visibilitas
(visibility) dari masing-masing method pada kelas. Berikut
format suatu method berdasarkan notasi Unified Modelling
Language (UML) (Bahrami, 1999) :
visibility name : (parameter-list) : return-type-expression
Berikut beberapa visibilitas suatau method :
+ public visibility (dapat diakses pada seluruh kelas)
# protected visibility (dapat diakses oleh subclass dan
method pada kelas yang bersangkutan)
– private visibility (hanya dapat diakses pada kelas yang
memilikinya)
Parameter–list menunjukan daftar parameter, nilainya
berdasarkan tipe dan expresi datanya. Sedangkan return-
type-expression adalah nilai balik yang dihasilkan dari
method yang bersangkutan. Contoh suatu format method :
+getName() : aName
#getAccountnumber (account:type) : account Number
42
2.2.5.2 Perancangan Lapisan Akses (Access Layer)
2.2.5.2.1 Database Management System (DBMS)
Database Management System (DBMS) adalah suatu
program yang memungkinkan untuk membuat dan memelihara
koleksi dari data yang terkait. DBMS juga meliputi program
akses, manipulasi, penjagaan, dan pengelolaan data. Tujuan
utama dari DBMS adalah untuk menyediakan fasilitas layanan
data agar lebih efektif dan efisien. (Bahrami, 1999)
Proses perancangan lapisan akses pada tahap
perancangan sistem berorientasi objek menunjukan fase dimana
pengembang mempersiapkan sistem database untuk kebutuhan
layanan data pada sistem yang dirancang/dikembangkan.
Karakteristik dasar untuk mendifinisikan format data yang
terdapat pada suatu DBMS meliputi tidak hanya data saja, akan
tetapi seluruh format data mesti dikelola, deskripsi ini dikenal
sebagai schema atau metadata. (Bahrami, 1999)
Gambar 2.18 : Sistem database Vs Sistem file
(Bahrami, 1999)
Pada perancangan sistem berorientasi objek dikenal
istilah Object Oriented Database System (OODBMS).
43
OODBMS adalah perkawinan antara pemograman berorientasi
objek dengan teknologi database untuk menghasilkan apa yang
dikenal dengan istilah basisdata berorientasi objek. (Bahrami,
1999)
2.2.5.2.2 Database Terdistribusi pada Arsitektur Client-Server
Arsitektur client server pada suatu sistem komputer
menunjukan pada pemograman modular. Pemograman modular
meujuk pada satu kesatuan sistem yang terdiri dari beberapa
bagian (modul) yang memungkinkan kemudahan
pengembangan dan pemeliharaan (Bahrami, 1999).
Penerapan arsitektur client server pada sistem database
dimanfaatkan untuk perancangan database terdistribusi.
Terdapat dua arsitektur database terdistribusi, arsitektur two-
tier , dan arsitektur three-tier. Pada arsitektur two-tier, suatu
client berkomunikasi langsung dengan server database, tanpa
ada perantara server. Arsitektur tipe pertama ini banyak
digunakan pada lingkungan sistem yang relatif tidak terlalu
besar (Lihat gambar 2.19). Sedangkan pada arsitektur three-
tier, terdapat suatu server yang ada diantara mesin client dan
server database, server ini biasa disebut server aplikasi (lihat
gambar 2.20). (Bahrami, 1999)
Gambar 2.19 : Sistem client-server dengan arsitektur two-tier
(Bahrami, 1999)
44
Gambar 2.20 : Sistem client-server dengan arsitektur three-tier
(Bahrami, 1999)
2.2.5.3 Perancangan Lapisan View (View Layer)
Fase ini adalah fase dimana pengembang merancang
user interface (UI) yang menjadi antarmuka anatar sistem
dengan pengguna. Tujuan utama dari perancangan UI adalah
untuk menampilkan informasi yang dibutuhkan sehingga dapat
diakses oleh pengguna. Desain dari antarmuka software, tanpa
terkeceuali, akan sangat berpengaruh pada proses interaksi
antara pengguna dengan sistem. Sangat penting untuk
merancang suatu desain interface yang menampilkan informasi
kepada pengguna sesuai dengan kebutuhan serta benar-benar
dapat menyelesaikan pekerjaan pengguna dengan benar.
Graphical User Interface (GUI) menggunakan beberapa icon
untuk merepresentasikan suatu objek, pointer untuk melakukan
operasi, diagram untuk menampilkan relasi. (Bahrami, 1999)
Perancangan layer view pada suatu software mesti
memperhatikan dua aspek utama dari suatu aplikasi (Bahrami,
1999):
45
1. Input – respon terhadap interaksi pengguna. Antarmuka
pengguna harus bisa menterjemahkan kasi dari pengguna
seperti klik tombola tau memilih menu, ke dalam respon
yang tepat.
2. Output – menampilkan atau mencetak objek-objek pada
sistem. Layer view harus mampu manmpilkan objek-objek
pada layer bisnis sesuai kebutuhan pengguna. Dalam
beberapa interface, hal ini biasanya ditampilkan dalam list
bo, tabel, data grid untuk menampilkan sekumpulan
ata/objek.
Gambar 2.21 : Contoh desin interface dialog box dengan
banyak tab pada Microsoft multimedia setup (Bahrami, 1999)
2.3 Java RMI
Teknologi Remote Method Invocation (RMI) pada bahasa
pemograman Java memungkinkan objek Java yang satu untuk berkomunikasi
dengan objek Java lainnya menggunakan pemanggilan method seperti pada
46
objek yang sama. Walaupun objek yang satu berada pada jarak yang cukup
jauh. Selama sistem yang berjalan dapat berkomunikasi melalui TCP/IP, maka
aplikasi Client/Server dapat dikembangkan tanpa menggunakan Stream dan
Socket.
Dengan adanya teknologi RMI ini maka para programmer dapat
menghindari protokol komunikasi yang kompleks antara aplikasi yang
dikembangkan, sebagai gantinya dapat digunakan protokol yang berbasis
method. Secara garis besar RMI ini adalah metode komunikasi antar objek
Java hanya dengan menggunakan pemanggilan method seperti memanggil
method pada kelas yang sama. Dengan adanya aplikasi ini diharapkan RMI
dapat digunakan untuk aplikasi Client/Server lainnya. (Muchalil, 2006)
Pada dasarnya, RMI diarancangan untuk membangun komunikasi
antar dua atau lebih program berbasis Java, yang dapat berjalan dalam Java
Visrtual mechine (JVM) yang terpisah,serta melakukan pemanggilan method
dalam suatu proses secara sekaligus. (Grosso, 2001)
2.3.1 Arsitektur RMI
Sesuai dengan penjelasan di atas, untuk membuat sebuah kelas
yang method-method-nya dapat diakses secara remote, pertama-tama kita
harus membuat sebuah interface, di mana interface-interface ini harus
mendeklarasikan method-method tersebut. Sementara untuk pengiriman
dan penerimaan data sudah pun ditangani secara otomatis oleh objek
stream. Kelas ini nantinya harus mengimplementasikan interface tersebut.
Stub dan skeleton adalah objek yang berfungsi untuk melakukan proses
pengiriman dan penerimaan data dari suatu aplikasi RMI. Skeleton adalah
sebuah kelas yang merupakan pasangan dari kelas stub yang berada pada
mesin yang sama dengan objek remote. Kelas ini juga yang akan
menerima koneksi dari kelas stub dan menerjemahkannya ke dalam
pemanggilan method pada objek remote.(Muchalil, 2006)
Untuk lebih jelasnya mengenai proses ini ditunjukkan oleh
Gambar 2.22 :
47
Gambar 2.22 : Arsitektur RMI (Muchalil, 2006)
Untuk memanggil objek remote, pertama-tama client harus mencari objek
tersebut dengan layangan naming. Layanan ini akan menginformasikan objek
remote bahwa ada sebuah client yang melakukan koneksi.
Koneksi client pada layanan Naming ini dapat dilihat pada
Gambar 2.21 :
Gambar 2.23 : Layanan Naming (Muchalil, 2006)
2.3.2 Objek Remote
Objek remote ini sendiri dapat dikategorikan menjadi dua bagian, yaitu:
• Interface yang menggam barkan tentang method dari objek ini yang
dapat dipanggil secara remote.
• Objek yang mengimplementasikan interface tersebut. (Muchalil, 2006)
2.3.3 Stub dan Skeleton
Fungsi utama dari kedua kelas ini adalah untuk melakukan
pengiriman dan penerimaan data baik di sisi server dan di sisi client.
48
Gambar 2.24 : Stub dan Skeleton (Muchalil, 2006)
Proses yang terjadi adalah sebagai berikut :
� Client memanggil method remote, pemanggilan pertama-tama
disampaikan ke stub
� Stub bertanggung jawab untuk mengirimkan pemanggilan remote ke
skeleton sisi server
� Stub membuka soket ke server remote, melakukan “marshalling”
parameter objek dan menyampaikan data stream ke skeleton.
� Skeleton berisi method untuk menerima pemanggilan remote,
melakkan “unmarshalling” paramter dan memanggil implementasi
aktual dari objek remote.(Muchalil, 2006)
2.3.4 Remote Exception
RemoteException merupakan kelas induk dari segala macam
kegagalan atau eksepsi yang dapat terjadi pada aplikasi RMI. Eksepsi ini
akan dilemparkan jika pemanggilan terhadap method remote gagal.
Semua method yang terdapat pada interface remote harus melemparkan
eksepsi ini.(Muchalil, 2006)
2.3.5 Tahap Pemrograman Java-RMI
Ketika menggunakan RMI untuk membuat sebuah aplikasi, ada
beberapa langkah yang harus diikuti. Adapun langkah-langkah tersebut
seperti berikut:
49
1. Mendefinsikan interface remote
2. Mengembangkan objek remote dengan mengimplementasikan
interface remote
3. Mengembangkan program client
4. Mengcompile source file java
5. Membuat stub dan skeleton dengan rmic
6. Mengaktifkan program rmiregistry
7. Menjalankan objek server remote
8. Menjalankan client. (Muchalil, 2006)
2.4 Interaksi Manusia dan Komputer
2.4.1 Definisi Interaksi Manusia dan Komputer
Menurut Insap Santosa definisi Interaksi Manusia Komputer adalah:
“Satu disiplin ilmu yang mengkaji tentang mendesain, mengevaluasi dan menerapkan (implementasi) interaksi antara manusia dan komputer, serta mengkaji tentang komunikasi atau interaksi di antara pengguna dengan sistem,” (Santosa, 2004). Prinsip kerja dalam sebuah sistem komputer adalah input, process, output.
Data masukan komputer dapat berupa angka atau karakter yang kemudian
diproses menjadi keluaran sesuai yang diharapkan oleh pengguna. Ketika
seseorang bekerja dengan sebuah komputer, maka ia akan melakukan interaksi
dengan komputer menggunakan cara-cara tertentu. Cara yang umum digunakan
adalah bahwa pengguna memberikan suatu perintah pada komputer, dan komputer
menanggapinya dengan mencetak atau menuliskan tanggapan pada layar tampilan.
Dengan melalui masukan serta keluaran tersebut pengguna dan komputer saling
berinteraksi.
Dengan dikembangkannya antarmuka berbasis grafis yang dikenal dengan
istilah GUI (Graphical User Interface ) dapat memudahkan manusia dalam
mengoperasikan komputer dan mendapatkan berbagai umpan balik sesuai yang
diperlukan. Para perancang antarmuka manusia-komputer harus mampu membuat
sistem komputer yang mempunyai sifat ramah dengan pengguna sehingga
perancang harus mampu memahami aspek psikologi yang yang dimiliki oleh
50
pengguna, hal ini berhungan dengan faktor manusia. Perancang sistem pun harus
mampu memilih teknik dialog interaktif agar komunikasi antara manusia dengan
komputer lebih mudah, (Santosa, 2004).
2.4.2 Strategi Pengembangan Antarmuka
Secara garis besar, menurut Insap Santosa (2004) pengembangan bagian
antarmuka perlu memperhatikan beberapa hal sebagai berikut:
� Pengetahuan tentang mekanisme fungsi manusia sebagai pengguna
komputer.
� Berbagai informasi yang berhubungan dengan karakteristik dialog yang
cukup lebar, sepeti ragam dialog, struktur, isi tekstual dan grafis,
tanggapan waktu, dan kecepatan tampilan.
� Penggunaan prototype yang didasarkan pada spesifikasi dialog formal
yang di susun secara bersama-sama antara (calon) pengguna dan
perancang sistem, serta peranti bantu yang mungkin dapat digunakan
untuk mempercepat proses pembuatan prototype.
� Teknik evaluasi yang digunakan untuk mengevaluasi hasil proses prototipe
yang telah dilakukan, yaitu secara analitis berdasarkan pada analisis atas
transaksi dialog, secara empirik menggunakan uji coba pada sejumlah
kasus, umpan balik pengguna yang dapat dikerjakan dengan Tanya jawab
maupun kuesioner, dan beberapa analisis yang dikerjakan oleh ahli
antarmuka.
2.4.3 Ragam Dialog
Berbagai teknik dialog interaktif yang memungkinkan terjadinya
komuikasi antara manusia dengan komputer pada saat sekarang ini bervariasi,
dimulai dari yang paling sederhana sampai dengan yang cukup canggih. Secara
umum, ragam dialog dapat dikelompokkan menjadi beberapa kategori,
diantaranya (Santosa, 2004):
� Dialog berbasis bahasa pemrograman
51
Dialog ini merupakan ragam dialog yang memungkinkan pengguna untuk mengemas sejumlah perintah ke dalam suatu bentuk berkas yang disebut dengan batch file.
� Sistem menu
Sistem menu merupakan pilihan yang tepat untuk menunjukkan kemampuan dan fasilitas yang dimiliki oleh sebuah program aplikasi kepada pengguna. Menu adalah “daftar sejumlah pilihan dalam jumlah terbatas, yang biasanya berupa kalimat atau kumpulan kata”, (Santosa, 2004).
Menurut Insap Santosa (2004) Terdapat dua sistem menu, yaitu:
- Sistem menu datar
Sistem ini adalah sistem menu yang menampilkan semua pilihan secara lengkap.
Gambar 2.25 Contoh Sistem Menu Datar, (Santosa, 2004).
- Sistem menu tarik
Sistem ini adalah sistem menu yang menampilkan pilihan ke dalam
kelompok-kelompok tertentu yang berbasis pada hirarki pilihan
(struktur pohon pilihan).
PENGOLAHAN DATA AKADEMIS MAHASISWA “STIMIK PERTIWI” <A> Inisialisasi Berkas Mahasiswa <E> Mencetak Presensi Kuliah <B> Inisialisasi Berkas Mata Kuliah <F> Mencetak Presensi Ujian <C> Inisialisasi Berkas Nilai Ujian <G> Mencetak KRS <D> Membuka Semua Berkas <H> Mencetak Nilai Ujian Pilih salah satu: _
52
Gambar 2.26 Contoh Sistem Menu Tarik, (Santosa, 2004).
� Dialog berbasis pengisian borang
Teknik dialog ini merupakan suatu penerapan langsung dari aktifitas
pengisian borang dalam kehidupan sehari-hari dimana pengguna akan
dihadapkan pada suatu bentuk borang yang ada pada layar komputer yang
digunakan.
Gambar 2.27 Contoh Dialog Berbasis Pengisian Barang, (Santosa, 2004).
MENU UTAMA (PILIHAN DENGAN HIERARKI
SUBMENU
SUB-SUBMENU
53
� Antarmuka berbasis icon
Gambar 2.28 Antarmuka Berbasis Icon, (Santosa, 2004).
54
BAB III
ANALISIS SISTEM
Pada bab ini akan dilakukan analisis terhadap sistem pengolahan data
alumni di SMKN 2 Garut, dimana tahap analisisnya disusun berdasarkan langkah-
langkah analisis yang dijabarkan dalam metodelogi analisis sistem berorientasi
objek dengan pendekatan unified (UA).
3.1 Identifikasi Aktor (Actors)
Melalui kegiatan interview dan observasi dalam melihat bisnis proses
yang sedang berjalan maka proses identifikasi aktor didapatkan berdasarkan
siapa saja yang akan menggunakan dan mempengaruhi sistem. Aktor tidak
selalu berupa manusia tetapi juga bisa berupa hardware ataupun sistem lain
yang mempengaruhi sistem.
Tabel 3.1 : Identifikasi Aktor
No. Aktor Tipe
Aktor Aktivitas
Keuntungan
1. Alumni PBA
- Melihat data individunya untuk memastikan data individunya benar tercatat pada database
- Menerima informasi data alumni
2. Admin PSA
- Melakukan login - Mengakses seluruh
method/prosedur pada sistem - Melakukan perbaikan jika
terjadi kesalahan sistem
- Menerima informasi data alumni
- Menerima semua report sistem yang telah dilakukan oleh opelator dan user
3. Pelaksana
Urusan
Kesiswaan
PSA - Melakukan login - Menginputkan data alumni - Melakukan proses penghapusan
dan update data alumni - Membuat laporan data alumni - Mengklasifikasikan data alumni
- Menerima informasi data siswa yang akan di kelola menjadi data alumni
- Menerima data untuk membuat laporan
55
Tabel 3.1 : Identifikasi Aktor (lanjutan)
No. Aktor Tipe
Aktor Aktivitas
Keuntungan
4. Kasubag
Tata
Usaha
ESA - Melakukan login - Melakukan pemeriksaan
terhadap data alumni
- Menerima informasi data alumni
- Menerima laporan data alumni
5. BP/ BK ESA - Melakukan login - Melihat data berdasarkan
klasifikasi
- Menerima informasi data alunni
- Menerima laporan data alumni berdasarkan klasifikasi tertentu
6. Kepala
Sekolah
ERA - Melakukan login - Melakukan pengawasan
terhadap pengolahan data alumni
- Menerima informasi data alumni
- Menerima laporan data alumni berdasarkan klasifikasi tertentu
Dari Tabel di atas, dapat diketahui apa saja yang dilakukan oleh aktor dalam
Sistem Informasi Administrasi Pengolahan Data Alumni yang ada di SMK Negeri
2 Garut, serta keuntungan yang didapat dari sistem tersebut. Serta dapat diketahui
perbedaan antara User dan Aktor serta aktivitasnya seperti pada gambar berikut :
Gambar 3.1 : Perbedaan antara user dan actor
56
Dari gambar di atas aktor di klasifikasikan lagi berdasarakan
penggunaannya terhadap sistem, misalnya apakah aktor disini menggunakan
sistem sebagai administator, operator atau user yang bisa dipakai nantinya
untuk verifikasi aktor. Pada sistem informasi pengolahan data alumni yang
akan dirancang adalah sebagai berikut :
1. Administrator
Aktor yang dapat mengakses seluruh method/prosedur pada
sistem, serta melakukan perbaikan jika terjadi kerusakan sistem.
2. Operator
Aktor yang Mencatat serta memelihara (Melakukan proses
penghapusan dan update) data seluruh data alumni serta melakukan
klasifikasi alumni berdasarkan program studi, tahun kelulusan,
serta melaporkan progress report dari seluruh data alumni kepada
Kepala sekolah. Secara fungsional Aktor yang berlaku sebagai
operator adalah petugas bagian pelaksana urusan kesiswaan.
3. User
Aktor yang dapat mengakses data alumni, akan tetapi tidak bisa
menambah, menghapus, atau mengupdate data. Aktor ini hanya
dapat melihat data saja untuk digunakan pada proses yang sesuai
dengan fungsi user tersebut. Secara fungsional aktor yang berlaku
sebagai user diantaranya adalah sebagai berikut :
• Kepala Sekolah yang melihat laporan rekapitulasi data
alumni.
• Kasubag Tata Usaha yang melihat daftar alumni untuk
keperluan-keperluan perkembangan sekolah.
• BP/ BK yang melihat data alumni untuk digunakan pada
proses bimbingan penyuluhan dan bimbingan kalier.
• Alumni itu sendiri, alumni dapat melihat data individunya
untuk memastikan data individunya benar tercatat pada
database.
57
3.2 Deskripsi Aktivitas (Business process)
Aktivitas pengolahan data alumni di SMKN 2 Garut berdasarkan
aktor-aktor yang telah teridentifikasi di atas dapat digambarkan pada
diagram aktivitas (activity diagram) berikut ini (Gambar 3.2) :
act Activ ity DiagramActivityInitial
Mencatat/MenambahData
Melakukan perbaikanj ika ada kerusakan
sistem/Update Sistem
Operator
MemodifikasiData
User Melihat DataIndiv idu dan
Rekapitulasi Alumni
Administrator
ActivityFinal
Terdaftar?
MelakukanRegstrasi
Bukan
Ya
Bukan
Ya
Tidak
Gambar 3.2 : Diagram Aktivitas Pengolahan Data Alumni
58
3.3 Identifikasi Use Case
Pada analisis dalam diagram aktivitas di atas, terdapat gambaran
umum dari berbagai aktivitas dari seluruh aktivitas yang menunjukan
interaksi antara aktor dengan sistem. Berdasarkan hal tersebut maka dapat
dikembangkan use case untuk kasus-kasus di bawah ini :
1. Nama Use case : Interaksi dengan Sistem. Aktor melakukan interaksi
dengan sistem setelah melakukan proses verifikasi, use case ini
menyangkut setiap kegiatan yang dilakukan aktor ketika melakukan
proses-proses di lingkungan sistem. Berikut gambaran umum use case
interaksi dengan Sistem :
• Membuka aplikasi
• Melakukan proses Login
• Membuka menu interaksi
• Memilih menu interaksi
• Melakukan Interaksi
• Melakukan Proses Logout
• Keluar dari aplikasi
2. Nama Use case : Proses Verifikasi Aktor. Aktor melakukan proses
verifikasi dengan memasukan username dan password pada sistem,
jika verifikasi berhasil (aktor terdaftar) maka aktor tersebut berhak
melakukan proses berikutnya terhadap sistem. Berikut langkah-
langkahnya :
• Sistem meminta username dan password
• Aktor memasukan username dan password
• Username dan password diverifikasi
3. Nama Use Case : Registrasi Pengguna. Jika pengguna belum terdafatar
pada database sistem, maka pengguna harus melakukan registrasi
terlebih dahulu. Use case ini berkaitan dengan use case verifikasi
aktor.
4. Nama Use Case : Mencatat Data Alumni. Aktor yang berlaku sebagai
operator mencatat (menambah) data Alumni yang belum terdaftar pada
59
sistem. Secara implisit proses yang terjadi pada use caase ini adalah
sebagai berikut :
• Aktor membuka menu pada sistem
• Aktor memilih menu pencatatan/penambahan data alumni
• Aktor menyimpan data alumni yang sudah dicatat
• Aktor keluar dari menu pencatatan/penambahan data alumni
• Aktor keluar dari sistem
5. Nama Use Case : Memodifikasi Data Alumni. Aktor yang berlaku
sebagai operator memodifikasi data (menghapus atau mengupdate)
data alumni sesuai dengan kondisi atau kebijakan yang mengharuskan
hal tersebut.
6. Nama Use Case : Melihat Data Alumni. Aktor khususnya yang berlaku
sebagai User, melihat data alumni sesuai dengan kebutuhan dan fungsi
user tersebut.
Secara keseluruhan, dari seluruh use case di atas dapat
dikelompokan ke dalam beberapa package. Setiap package mencakup
beberapa use case yang berkaitan dengan package tersebut. Package ini
dibangun berdasarkan lingkup aktivitas yang ada pada setiap use case.
Setelah dianalisis seluruh use case di atas dapat dikelompokan dengan
package-package di bawah ini : uc Use Case Model
Package Login dan Verifikasi Sistem
+ Administrator
+ Operator
+ User
+ Interaksi dengan Sistem
+ Proses Verifikasi Aktor
+ Registrasi Pengguna
Package Melihat laporan
+ User
+ Interaksi dengan Sistem
+ Melihat Data alumni
+ Proses Verifikasi Aktor
+ Registrasi Pengguna
Package Administrasi Sistem
+ Administrator
+ Interaksi dengan Sistem
+ Memperbaiki Sistem
+ Proses Verifikasi Aktor
+ Registrasi Pengguna
Package Mencatat dan Memodifikasi Data
+ Operator
+ Interaksi dengan Sistem
+ Memodifikasi data alumni
+ Mencatat Data alumni
+ Proses Verifikasi Aktor
+ Registrasi Pengguna«use»
«use»«use»
Gambar 3.3 : Package pada Sistem Informasi Pengolahan Data Alumni
60
1. Package Use case pada pada kegiatan Login dan Verifikasi Sistem
Package Use case ini meliputi Use case interaksi dengan
sistem, use case verifikasi aktor, dan use case registrasi pengguna.
Berikut ini Use case diagram untuk pacakage ini (Gambar 3.4):
uc Package Login dan Verifikasi Sistem
Interaksi dengan Sistem
Proses Verifikasi Aktor
Administrator
User
Operator
Registrasi Pengguna
«extend»
«uses»
Gambar 3.4 : Use case diagram pada pada kegiatan Login dan Verifikasi
Sistem
2. Package Use case untuk proses Pencatatan dan Modifikasi data
Package Use case ini meliputi Use case interaksi dengan
sistem, verifikasi aktor, registrasi pengguna, mentatat data,
memodifikasi data, dan mencatat data kebutuhan alumni. Berikut ini
Use case diagram untuk pacakage ini (Gambar 3.5):
61
uc Package Mencatat dan Memodifikasi D...
Interaksi dengan Sistem
Proses Verifikasi Aktor
Mencatat Data alumni
Memodifikasi data alumni
Operator
Registrasi Pengguna
«extend»
«extend»
«extend»
«uses»
Gambar 3.5 : Use case diagram untuk proses Pencatatan dan
Modifikasi data
3. Package Use case untuk Melihat Data
Package Use case ini meliputi Use case interaksi dengan
sistem, verifikasi aktor, registrasi pengguna, dan melihat data alumni.
Berikut ini Use case diagram untuk pacakage ini (Gambar 3.6):
62
uc Package Melihat Lapor...
User
Melihat Data alumni
Interaksi dengan Sistem
Proses Verifikasi Aktor
Registrasi Pengguna
«extend»
«uses»
«extend»
Gambar 3.6 : Use case diagram untuk proses Melihat Laporan
4. Package Use case Admnistrasi Sistem
Package Use case ini meliputi Use case interaksi dengan
sistem, verifikasi aktor, dan registrasi pengguna. Berikut ini Use case
diagram untuk pacakage ini (Gambar 3.7):
uc Package Administrasi Sistem
Administrator
Interaksi dengan Sistem
Proses Verifikasi Aktor
Registrasi Pengguna
«uses»
«extend»
Gambar 3.7 : Use case diagram untuk proses Administrasi Sistem
63
3.1.3 Identifikasi Interaksi Antar Objek Menggunakan Interaction
diagrams
Setiap skenario dalam use case dapat digambarkan dalam urutan
interaksi antara aktor dan sistem beserta aktifitasnya. Pengembangan dari
use case yang dapat mengimplementasikan skenario adalah Interaction
Diagram. Untuk mengimplementasikan interaction diagram dapat
menggunakan sequence diagram dan collaboration diagram. Diagram ini
dapat memodelkan analisis lebih spesifik karena memodelkan interaksi
antar objek dalam sistem.
Sequence diagram dan collaboration diagram merepresentasikan
urutan dan interaksi pada use case yang ada untuk mempermudah
identifikasi kelas. Kedua jenis diagram ini juga merepresentasikan suatu
kejadian dan bagaimana objek dalam sistem berinteraksi dengan objek
lain. Berikut Sequence diagram dan collaboration diagram pada sistem
yang dianalisis :
• Diagram Interaksi pada Package Use case Login dan Verifikasi
Sistem sd Sequence diagram for System Login and Verification
Pengguna
MesinHost Proses Login Menu Utama Data Pengguna
SelesaiSelesai
MembukaAplikasi()
Meminta username danpassword()
Memasukan Usename danPassword()
Verifikasi username danpassword()
Username dan passwordValid()
MenampilkanMenu()
MemilihMenu()
Melakukan kegiatan sesuai menu ygdipi lih()
Melakukanlogout()
Menutup Menuutama()Keluar proses()
Keluar dariproses()
Gambar 3.8 : Sequence diagram pada Package Use case Login dan
Verifikasi Sistem
64
analysis Use case System Administration Realization
SI Alumni
Administrator
Proses Login
Menu Utama Data Pengguna
1: buka aplikasi()
1.1: Load proses login()
1.2: Display form login()
1.3: Request username dan password()
1.4: Masukan username dan password()
1.5: Verifikasi username dan password()
1.6: Username dan password valid()
1.7: Load menu utama()
1.8: Menampilkan pesan Sistem bermasalah()
1.9: Memperbaiki kesalahan()
1.10: Sistem berhasil diperbaiki()
1.11: Melakukan logout()
1.12: Keluar Aplikasi()
Gambar 3.9 : Collaboration diagram pada Package Use case Login dan
Verifikasi Sistem
Diagram di atas dapat memperhatikan aktivitas aktor terhadap
sistem secara keseluruhan beserta urutan prosesnya. Pada proses interaksi
juga terdapat use case registrasi pengguna, dimana jika pengguna belum
terdaftar pada sistem maka dilakukan proses registrasi. Proses registrasi
pengguna ditunjukan pada gambar 3.10 dan gambar 3.11 :
65
sd Sequence diagram for User Registration
Pengguna
Proses Login Formulir Registrasi Data Pengguna
SelesaiSelesai
MembukaAplikasi()
Request Username danPassword()
Input username danpassword()
Verifikasi username danpassword()
Username dan password belumterdaftar()
displayformulirregistrasi()
Registerpengguna()
Menyimpan username danpassword()
registrasi berhasil()
Keluardariproses()
Gambar 3.10 : Sequence diagram pada Use case Registrasi pengguna
analysis Use case Registrasi pengguna Realization
Pengguna
Proses Login
Formulir Registrasi
Data Pengguna
1: Membuka Aplikasi()
1.1: Request username dan password()
1.2: input username dan pessword()
1.3: Verifikasi pengguna()
1.4: Username dan password invalid()
1.5: Username dan password invalid()
1.6: Load formulir registrasi()
1.7: Input data pengguna()
1.8: menyimpan data pengguna()
1.9: pesan registrasi sukses()
Gambar 3.11 : Collaboration diagram pada Use case Registrasi pengguna
66
• Diagram Sequensial untuk Package Use case Mencatat dan
memodifikasi Data
Pada proses pencatatan dan modifikasi data, Aktor yang
berlaku sebagai operator menambah atau memodifikasi (hapus atau
update) data alumni. Setelah proses pencatatan dan modifikasi selesai
kemudian data disimpan dalam database, yang kemudian dapat diakses
kemudian hari baik pada tampilan form maupun tampilan report.
Aktivitas ini dilakuakn pada tahap inisialisasi data awal, penambahan
data alumni. Pada sistem yang diusulkan proses pada package usecase
ini dilakukan secara remote, baik method maupun akses pada
databasenya. Aplikasi client yang dapat mengakses server tidak
tergantung pada satu platform melainkan berbagai platform yang
memiliki environtment yang sama dengan server aplikasi. Urutan
proses pada usecase ini ditunjukan pada gambar 3.12 dan gambar 3.13
:
67
sd Sequence diagram for Add and Modify Data
Operator
Mesin Host Data AlumniSI Alumni
SelesaiSelesai
Meminta Username danpassword()
Memasukan Username danpassword()
Verifikasi Username danpassword()
Username dan PasswordValid()
MembukaMenu()
Memilih DataAlumni()
Memberikan dataAlumni()
Memberikan dataAlumni()
Melakukan Proses pencatatanatau modifikasi data()
Menyimpan data yang telah ditambah ataudimodifikasi()
Data berhasildisimpan()
Penambahan atau Modifikasiberhasil()
Keluar dariproses()
Melakukanlogout()
Keluar aplikasi()
Akhiri proses()
Gambar 3.12 : Sequence diagram untuk Package Use case Mencatat dan
memodifikasi Data
68
analysis Use case Add and Data Modification Realization
Operator
SI Alumni
Proses LoginMenu Utama
DB Alumni
Data Alumni
Data Pengguna
1: Buka aplikasi()
1.1: Load proses login()
1.2: Proses login dimulai()
1.3: Verifikasi username dan password()1.4: Username dan password valid()
1.5: Load menu utama()
1.6: Display menu utama()
1.7: Memilih menu tambah/modifikasi data Alumni()
1.8: Load form Alumni()
1.9: Display formulir Alumni()
1.10: Load data Alumni()1.11: Memberikan data Alumni()
1.12: Menambah/memodifikasi data()
1.13: Menyimpan data Alumni yang telah ditambah/dimodifikasi()
1.14: Tutup form data Alumni()
1.15: Melakukan Logout()
1.16: Keluar aplikasi()
Gambar 3.13 : Collaboration diagram untuk Package Use case Mencatat
dan memodifikasi Data
• Diagram Sequensial untuk Package Use case Melihat Laporan
Pada proses melihat data, aktor yang berlaku sebagai User
melihat laporan data alumni, baik data individu alumni maupun
rekapitulasi data alumni secara keseluruhan dan berdasarkan kategori.
Sistem menampilkan Laporan (report) dalam format read only (baca
saja) artinya aktor tidak bisa mengedit data yang ditampilkan oleh
sistem. Aktivitas pada use case ini berkaitan dengan aktivitas
pengawasan dan penilaian data alumning khususnya yag dilakukan
oleh kepala sekolah untuk menghasilkan kepetusuan pada kegiatan
perencanaan perkembangan program studi.
69
sd Sequence diagram for View Rep...
Pengguna
MesinHost Proses Login Menu Utama Data Pengguna Report DataAlumni
SelesaiSelesai
MembukaAplikasi()
Memulaiproseslogin()
request datalogin()
Request usernamedan password()
Memasukan usernamedan password()
Verifikasi Username danpassword()
Username danpassword Valid()
Menampilkan menuUtama()
Memilih menu Report dataAlumni()
Load report dataAlumni()
Memberikan report dataAlumni()
Menampilkan Report DataAlumni()
Melakukanlogout()
Keluaraplikasi()
Endproses()
Gambar 3.14 : Sequence diagram untuk Package Use case Melihat
Laporan
analysis Use CaseView Report Realizati...
User
SI Alumni
Proses LoginMenu Utama
Data Pengguna
Report Data Alumni
1: Membuka aplikasi()
1.1: Load proses login()
1.2: Proses login dimulai()
1.3: Request username dan password()
1.4: Input username dan password()
1.5: Verifikasi username dan password()
1.6: Username dan password Val id()1.7: Load menu utama()
1.8: Display menu utama()
1.9: Memilih menu Report data()
1.10: Load report()1.11: Display report()
1.12: Display report data Alumni()
1.13: Melakukan Logout()
1.14: Keluar aplikasi()
Gambar 3.15 : Collaboration diagram untuk Package Use case Melihat
Laporan
70
• Diagram Sequensial untuk Package Use case Administrasi Sistem
Aktivitas pada use case ini berkaitan dengan kegiatan aktor
yang berlaku sebagai administrator yang melakukan pengguna. Aktor
akan diverifikasi oleh sistem, jika aktor tersebut dikenali sebagai
Administrator maka aktor tersebut mempunyai hak akses terhadap
modul maintenance yang ada pada sistem. Kegiatan ini sekaligus
pemberian hak akses pada setiap pengguna untuk dapat menggunakan
sistem dengan hak akses yang ditentukan berdasarkan tipe
pengunannya.
sd Sequence diagram for System Administration
Pengguna
MesinHost Proses Login Menu Utama Data Pengguna
SelesaiSelesai
Membuka apl ikasi()
Load form login()
Menampilkan form login()
Request username dan password()
Memasukan username dan password()
Veri fikasi username dan password()
Username dan password Valid()
Load Menu Utama()
Menampilkan menu Utama()
Melakukan Registrasi Pengguna()
Melakukan Logout()
Keluar aplikasi()
End proses()
Gambar 3.16 : Sequence diagram untuk Package Use case Administrasi
Sistem
71
analysis Use case System Administration Realization
SI Alumni
Administrator
Proses Login
Menu Utama Data Pengguna
1: buka aplikasi()
1.1: Load proses login()
1.2: Display form login()
1.3: Request username dan password()
1.4: Masukan username dan password()
1.5: Verifikasi username dan password()
1.6: Username dan password valid()
1.7: Load menu utama()
1.8: Menampilkan pesan Sistem bermasalah()
1.9: Memperbaiki kesalahan()
1.10: Sistem berhasil diperbaiki()
1.11: Melakukan logout()
1.12: Keluar Aplikasi()
Gambar 3.17 : Collaboration diagram untuk Package Use case
Administrasi Sistem
3.1.4 Perancangan Kelas (Classification)
Perancangan kelas pada sistem yang diusulkan didasarkan pada use
case diagrams dan interaction diagrams yang diimplementasikan dengan
sequence diagrams dan collaboration diagrams pada tahap sebelumnya.
Adapun tahapan dalam klasifikasinya meliputi:
- Identifikasi Kelas (classes)
- Identifikasi relationships
- Identifikasi attributes
- Identifikasi methods
3.1.4.1 Identifikasi Kelas (Class)
Dalam proses identifikasi kelas ada beberapa pendekatan yang
dapat digunakan untuk mengidentifikasi kelas-kelas pada system yang
dirancang : Pendekatan Noun Phrase; pendekatan common class patterns;
pendekatan use-case driven; dan pendekatan Class, Responsibility and
72
Collaborators (CRC). Adapun pendekatan yang penulis gunakan dalam
penelitian ini adalah noun phrases approach, dengan kata lain pendekatan
ini dilakukan dengan cara mendaftar sejumlah objek (kata benda atau
frase) pada sistem yang dirancang yang dianggap akan menjadi kandidat
kelas. Objek yang telah teridentifikasi menjadi kandidat kelas tersebut
kemudian diidentifikasi menjadi tiga kategori kelas, Rellevant class, Fuzzy
class (kelas ambigu) dan Irrelevant class. Rellevant class adalah kategori
kelas yang terdiri dari objek-objek yang memiliki keterkaitan dengan
sistem yang dirancang serta memiliki attribut dan method. Fuzzy class
adalah kelas yang memiliki makna ambigu dimana kelas ini tidak jelas
apakah relevan atau tidak. Irrelevant class adalah kelas yang tidak
mempunyai pengaruh atau keterkaitan langsung dengan sistem yang akan
dirancang, misalkan proses eliminasi pada kelas yang berupa atribut atau
method.
Berdasarkan use case yang telah dikembangakan sebelumnya,
maka pada lingkungan sistem yang dirancang terdapat kandididat kelas
berikut ini (Tabel 3.2) :
Tabel 3.2 : Kandidat Kelas
1 Package Use Case Interaksi dengan Sistem
1. SI Alumni
2. Menu Utama
3. Proses Login
4. Username
5. Password
6. Pengguna
7. Mesin Host
73
Tabel 3.2 : Kandidat Kelas (Lanjutan)
2 Package Mencatat dan Modifikasi Data
1. Data Alumni
2. Formulir Data Alumni
3. Data Individu
4. Operator
5. Proses Pencatatan Data
6. Proses Modifikasi Data
3 Package Use case Melihat Data
1. Report
2. Report Data Alumni
3. Rekapitulasi
4. User
4 Package Use case memperbaiki Sistem
1. Pesan Kesalahan
2. Administrator
Dari kandidat kelas diatas kemudian dieleminasi object yang tidak
relevan, sehingga kelas terdiri dari seluruh kelas relevan (Relevant class)
atau kelas fuzzy (Fuzzy class). Pada tahap ini maka kandidat kelas
username, password akan dieleminasi karena kandidat kelas ini hany
berupa sebuah atribut dari kelas Pengguna. Begtu pula pada objek Pesan
kesalahan karena hanya berupa eksepsi (pengecualian kesalahan). Tabel
berikut menunjukan deskripsi masing masing kandidat kelas (Tabel 3.3) :
74
Tabel 3.3 : Kandidat kelas dengan kategori kelas
No Kandidat Kelas Kategori Kelas
1 Package Use Case Interaksi dengan Sistem
Kandidat kelas Kategori kelas Deskripsi
1. SI Alumni Relevant Class Menunjukan keseluruhan
Sistem
2. Menu Utama Relevant Class Merupakan antamuka utama
pada system
3. Proses Login Relevant Class Merupakan tampilan awal
saat sistem dijalankan
4. Username Irrelevant Class Atribut pada data pengguna
5. Password Irrelevant Class Atribut pada pengguna
6. Pengguna Relevant Class Aktor pada sistem
7. Mesin Host Relevant Class Merupakan portal untuk
mengakses sistem informasi
2 Package Mencatat dan Modifikasi Data
1. Formulir data
alumni Relevant Class
Tampilan operasi data
Alumni
2. Data Alumni Relevant Class Lapisan akses data alumni
3. Data Individu Relevant Class Atribut pada data alumni
4. Operator Relevant Class Aktor pada sistem
5. Proses Pencatatan
Data Relevant Class Kondisi Akses pada data
6. Proses Modifikasi
Data Relevant Class Kondisi Akses pada data
75
Tabel 3.3 : Kandidat kelas dengan kategori kelas (Lanjutan)
3 Package Use case Melihat Data
1. Report Relevant Class Tampilan laporan data
2. Report Data Alumni Relevant Class
Tampilan laporan data
alumni
3. Rekapitulasi
Alumni Relevant Class Tampilan data rekap alumni
4. User Relevant Class Aktor pada sistem
4 Package Use case memperbaiki Sistem
1. Pesan Kesalahan Relevant Class Antarmuka pesan kesalahan
2. Administrator Relevant Class Aktor pada sistem
Setelah kita menentukan kategori kelas dari kandidat-kandidat
kelas di atas, tahap selanjutnya adalah memeriksa jika terdapat kelas yag
redundant, yaitu kelas yang berbeda akan tetapi memiliki makna yang
sama (same idea). Berikut adalah beberapa kelas redundant yang terdapat
pada kandidat kelas di atas (Tabel 3.4) :
Tabel 3.4 : Iidentifikasi Kelas Redundant
No Kelas Redundant Kelas yang dipilih
1 Administrator, User, Operator, Pengguna Pengguna
2 Data Alumni, Data Individu, Formulir
data alumni Data Alumni
3 Report, report data Alumni, Rekapitulasi
data Alumni Report data alumni
4 SI Alumni, Menu Utama, Proses Login SI Alumni
76
Berdasarkan analisis serta eliminasi di atas maka kandidat kelas
yang tidak relevan atau redundant tidak diidentifikasi sebagai kelas pada
sistem :
1. SI Alumni
2. Menu Utama
3. Proses Login
4. Username
5. Password
6. Pengguna
7. Mesin Host
8. Formulir data Alumni
9. Data alumni
10. Data Individu
11. Operator
12. Proses Pencatatan Data
13. Proses Modifikasi Data
14. Report
15. Report Data Alumni
16. Rekapitulasi Alumni
17. User
18. Pesan Kesalahan
19. Administrator
77
Jika kita pisahkan kelas-kelas yang terpilih maka hasilnya sebagai
berikut (table 3.5):
Tabel 3.5 : Deskripsi Kelas
Nama Kelas Deskripsi
SI Alumni
Kelas yang menunjukan keseluruhan sistem
secara general, didalamnya akan terdapat
kelas-kelas yang lain yang menjadi bagian
dari SI Alumni.
Mesin Host Merupakan portal untuk mengakses sistem
informasi
Report Alumni
Tampilan laporan yang dapat dilihat oleh
user untuk kegiatan penilaian, pengawasan,
perencanaan, serta pendukung pada
pengambilan keputusan.
Pengguna
Kelas yang merupakan aktor pada Sistem,
yang menyimpan data username dan
password serta tipe aktor.
Data Alumni Merupakan database yang menyimpan data
seluruh alumni, baik data individunya.
Proses Pencatatan
Data
Kelas yang menunjukan kondisi Akses pada
data alumni
Proses Modifikasi
Data
Kelas yang menunjukan kondisi Akses pada
data Alumni
3.1.4.2 Identifikasi Relationship
Setelah semua kelas teridentifikasi, maka langkah selanjutnya
yaitu menentukan keterhubungan (relationships) antar kelas. Adapun
relationships dari tiap kelas dapat dilihat pada tabel berikut (tabel
3.6):
78
Tabel 3.6 : Keterhubungan (relationship) antar kelas
Relasi antar beberapa kelas dan Kardinalitasnya Kelas Kelas terkait Hubungan (Relasi) Kardinalitas Pengguna SI Alumni Repair/Update One SI Alumni Pengguna Zero or More Pengguna Data Alumni Catat dan Modifikasi One Data Alumni Pengguna One or More Pengguna Report Data
Alumni Lihat One or More
Report data Alumni
Pengguna One or More
Dari tabel di atas terlihat adanya beberapa relasi/asosiasi dari
beberapa kelas yang telah teridentifikasi serta kardinalitas dari masing-
masing asosiasi/relasinya. Terlihat pada tabel di atas bahwa tidak
semua kelas memiliki asosiasi dengan kelas yang lain, ada pula yang
hanya memiliki hubungan agregasi (Lihat Gambar 3.19). Jika
dimodelkan dalam bentuk Class diagram maka model dari relasi
berdasarkan tabel di atas adalah sebagai berikut (Gambar 3.18) :
class Agregasi Generalisasi Class Diagram
Mesin_Host
Pengguna
Data_Alumni
Report_data_alumni
SI_Alumni
ProsesPencatatanData
ProsesModifikasiData
1..*Display Report
1..*
1
Add or Modify Data1..*
1
Repair/Update System
0..*
Gambar 3.18 : Class diagram untuk Sistem Infomasi Pengolahan
Data Alumni
79
Selain asosiasi berupa relationship, kelas-kelas di atas juga ada
yang mempunya asosiasi dalam bentuk agregasi (agregation) dan
Generalisasi. Agregasi menunjukan hubungan antar kelas yang
menunjukan bahwa suatu kelas adalah bagian dari kelas yang lain.
Sedangkan Generalisasi menunjukan hubungan umum ke khusus dari satu
kelas kepada kelas yang lain. Berikut ini adalah diagram kelas pada sistem
yang akan dirancang yang sudah ditambah beberapa agregasi (Gambar
3.19) :
class Agregasi Generalisasi Class Diagram
Mesin_Host
Pengguna
Data_Alumni
Report_data_alumni
SI_Alumni
ProsesPencatatanData
ProsesModifikasiData
1..*Display Report
1..*
1
Add or Modify Data1..*
1
Repair/Update System
0..*
Gambar 3.19 : Class diagram dengan beberapa Agregasi dan Generalisasi
3.1.4.3 Identifikasi Atribut ( Attributes)
Setelah relasi antar kelas sudah terbentuk, maka langkah
selanjutnya yaitu menentukan attributes dari tiap kelas. Adapun
attributes dari tiap kelas pada perancangan sistem informasi
pengelolaan data alumni yang akan dirancang dapat dilihat pada model
class diagrams dibawah ini (Gambar 3.20) :
80
class Atribut Class Diagram
Mesin_Host
- hostName: String- ipAddress: String
Pengguna
- namaPengguna: String- password: String- tipePengguna: String- username: String
Data_Alumni
- alamat: String- nama: String- noinduk: int- tahunKeluar: String- tempatLahir: String- tglLahir: Date
Report_data_alumni
SI_Alumni
ProsesPencatatanData
- idTrans: String- tglTrans: Date
ProsesModifikasiData
- idTrans: String- tglTrans: Date
1..*
Display Report
1..*
1
Add or Modify Data
1..*
1
Repair/Update System
0..*
Gambar 3.20 : Class diagram dengan atribut-atribut kelas
3.1.4.4 Identifikasi Method
Setelah attributes dari tiap kelas terbentuk, maka langkah
selanjutnya yaitu menentukan methods/behavior dari tiap kelas. Method
pada kelas menunjukan perilaku atau prosedur yang berlaku pada kelas
yang bersangkutan. Adapun methods/behavior dari tiap kelas pada kelas-
kelas yang telah teridentifikasi di atas dapat dilihat pada diagram dibawah
ini (gambar 3.21):
81
class Static Class Diagram
Mesin_Host
- hostName: String- ipAddress: String
Pengguna
- namaPengguna: String- password: String- tipePengguna: String- username: String
+ verifikasiPengguna() : void
Data_Alumni
- alamat: String- nama: String- noinduk: int- tahunKeluar: String- tempatLahir: String- tglLahir: Date
+ getAll() : void+ getById() : void+ getByNeme() : void+ hapus() : void+ insert() : void+ update() : void
Report_data_alumni
SI_Alumni
ProsesPencatatanData
- idTrans: String- tglTrans: Date
- setIdTrans() : void- setTglTrans() : void
ProsesModifikasiData
- idTrans: String- tglTrans: Date
+ setIdTrans() : void+ setTglTrans() : void
1..*
DisplayReport
1..*
1
Add or Modify Data
1..*
1
Repair/UpdateSystem
0..*
Gambar 3.21 : Class diagram dengan atribut-atribut dan
method-method kelas
85
BAB IV
PERANCANGAN SISTEM
Pada bab ini akan dilakukan perancangan terhadap sistem pengelolaan
data alumni di SMK Negeri 2 Garut, dimana tahap perancangannnya disusun
berdasarkan langkah-langkah desain yang dijabarkan dalam metodelogi
perancangan sistem berorientasi objek dengan pendekatan unified (UA).
4.4 Desian Axiom Kelas
Desain axiom pada suatu kelas menyangkut atribut, method, struktur
dan prookol yang ada pada suatu kelas. Pada tahap ini, atribut-atribut dan
method-method pada kelas-kelas yang teridentifikasi dikaji ulang (refine)
sehingga menghasilkan kelas yang sesuai/valid untuk tahap implementasi.
Sebagaimana telah dijelaskan pada bab sebelumnya (lihat Tabel 3.5),
bahwa kelas-kelas yang teridentifikasi pada sistem informasi pengolahan data
alumni yang diusulkan pada penelitian ini adalah sebagai berikut :
1. Kelas Pengguna
2. Kelas SIAlumni
3. Kelas DataAlumni
4. Kelas MesinHost
5. Kelas ProsesPencatatanData
6. Kelas ProsesModifikasiData
7. Kelas ReportAlumni
Kelas-kelas di atas akan dikaji ulang dari sisi atribut serta method-
methodnya.
4.4.1 Refine Atribut-atribut kelas
Dari kelas-kelas yang dijelaskan sebelumnya (lihat gambar
3.20), pada tahap ini akan dilakukan refine untuk masing atribut-
atribut pada masing-masing kelas. atribut-atribut pada masing-masing
kelas dikaji ulang dengan menambahkan beberapa informasi pada
83
masing-masing atribut. Informasi yang ditambahkan adalah berupa
visibilitas dan tipe data masing-masing atribut. Visibilitas terdiri dari
tiga jenis visibilitas :
+ public visibility (dapat diakses pada seluruh kelas)
# protected visibility (dapat diakses oleh subclass dan method
pada kelas yang bersangkutan)
– private visibility (hanya dapat diakses pada kelas yang
memilikinya)
Sedangkan pada refine tipe data, diidentifikasi berdasarkan
nilai yang akan menjadi input pada atribut yang bersangkutan.
Contoh : username[10] : String. Berikut rincian proses refine untuk
masing-masing kelas :
1. Refine atribut pada Kelas Pengguna
Pada tahap analisis (lihat Gambar 3.20), kelas Pengguna
diidentifikasi memiliki atribut-atribut di bawah ini :
username
password
tipePengguna
Setelah dilakukan refine maka atribut-atribut diatas
ditambahkan informasi sebagai berikut :
#username : String
#password : String
#tipePengguna: String
Visibilitas pada seluruh atribut dalam kelas ini adalah
protected, karena seluruh atribut pada kelas pengguna hanya akan
dipakai pada kelas pengguna saja.
2. Refine atribut Kelas Si Alumni
Refine atribut untuk kelas ini SiAlumni disesuaikan dengan
refine pada kelas yang memiliki agregasi dengan kelas ini, yakni
kelas DataAlumni, dan kelas MesinHost.
84
3. Refine atribut Kelas Data Alumni
Berdasarkan atribut yang teridentifikasi pada tahap analisis
(lihat Gambar 3.20), maka refine atribut pada kelas ini adalah
sebagai berikut :
#noInduk : String
#nama : String
#jk : String
#tempatLahir : String
#tglLahir : Date
#alamat : String
#tahunLulus : Date
#jurusan : String
#status : String
#rerataNilai : Integer
4. Refine attribute Kelas MesinHost
Berdasarkan atribut yang teridentifikasi pada tahap analisis
(lihat Gambar 3.20), maka refine atribut pada kelas ini adalah
sebagai berikut :
#hostName : String
#ipAddess : String
5. Refine atribut Kelas Proses Pencatatan Data
Berdasarkan atribut yang teridentifikasi pada tahap analisis
(lihat Gambar 3.20), maka refine atribut pada kelas ini adalah
sebagai berikut :
#idTrans : String
#tglTrans : String
#Pengguna : Pengguna (atribut hasil asosiasi)
#DataAlumni : DataAlumni (atribut hasil asosiasi)
85
6. Refine atribut Kelas Proses Modifikasi Data
Berdasarkan atribut yang teridentifikasi pada tahap analisis
(lihat Gambar 3.20), maka refine atribut pada kelas ini adalah
sebagai berikut :
#idTrans : String
#tglTrans : String
#Pengguna : Pengguna (atribut hasil asosiasi)
#DataAlumni : DataAlumni (atribut hasil asosiasi)
7. Refine atribut Kelas Proses Report Alumni
Berdasarkan atribut yang teridentifikasi pada tahap analisis
(lihat Gambar 3.20), maka refine atribut pada kelas ini adalah
sebagai berikut :
#idReport
#tipeReport
Berikut adalah class diagram dengan atribut yang sudah
dikaji ulang :
86
class Method Class Diagr...
Mesin_Host
- hostName: Sting- ipAddres: Sting
Pengguna
- password: String- tipePengguna: String- userName: String
Data_Alumni
- alamat: String- jk: Sting- jurusan: String- nama: String- rerataNilai: int- status: String- tahunLulus: String- tempatLahir: String- tglLahir: Date
Report_data_alumni
- idReport: int- tipeReport: int
SI_Alumni
ProsesPencatatanData
- dataAlumni: Data Alumni- idTrans: String- pengguna: Pengguna- tglTrans: Date
ProsesModifikasiData
- dataalumni: data alumni- idTrans: String- pengguna: pengguna- tglTrans: Date
1..*
DisplayReport
1..*
1
Add or Modify Data
1..*
1
Repair/UpdateSystem
0..*
Gambar 4.1 : Class Diagram dengan atribut yang sudah dikaji
ulang (refine)
4.4.2 Refine Method-method Kelas
Sebagaimana method-methode yang telah teridentifikasi pada
bab sebelumnya (lihat gambar 3.21), pada tahap ini method-method
tersebut akan ditinjau ulang dengan menambahkan beberapa informasi
berupa visibilitas (visibility) dari masing-masing method pada kelas.
Berikut format suatu method berdasarkan notasi Unified Modelling
Language (UML) :
visibility name : (parameter-list) : return-type-expression
Berikut beberapa visibilitas suatu method :
+ public visibility (dapat diakses pada seluruh kelas)
87
# protected visibility (dapat diakses oleh subclass dan method
pada kelas yang bersangkutan)
– private visibility (hanya dapat diakses pada kelas yang
memilikinya)
Parameter–list menunjukan daftar parameter, nilainya
berdasarkan tipe dan expresi datanya. Sedangkan return-type-
expression adalah nilai balik yang dihasilkan dari method yang
bersangkutan. Contoh suatu format method :
+getName() : aName
#getAccountnumber (account:type) : account Number
Berikut tabel yang menunjukan method pada masing-masing kelas :
Tabel 4.1 : Refine Method-method Kelas
Kelas Method
Kelas Pengguna +verifikasiPengguna()
Kelas SiAlumni +connectToDatabase
Kelas DataAlumni +getAll()
+insertAlumni()
+updateAlumni()
+deleteAlumni()
+getByID()
Kelas MesinHost +connectToServer
Kelas ProsesPencatatanData #setIdTrans()
#setTglTrans()
Kelas ProsesModifikasiData #setIdTrans()
#setTglTrans()
Kelas ReportAlumni #printReport
88
class Method Class Diagr...
Mesin_Host
- hostName: Sting- ipAddres: Sting
+ connectToServer() : void
Pengguna
- password: String- tipePengguna: String- userName: String
+ verifikasiPengguna() : void
Data_Alumni
- alamat: String- jk: Sting- jurusan: String- nama: String- rerataNilai: int- status: String- tahunLulus: String- tempatLahir: String- tglLahir: Date
+ getAll() : void+ getById() : void+ getByName() : void+ hapusAlumni() : void+ insertAlumni() : void+ updateAlumni() : void
Report_data_alumni
- idReport: int- tipeReport: int
- printReport() : void
SI_Alumni
+ connectToDatabase() : void
ProsesPencatatanData
- dataAlumni: Data Alumni- idTrans: String- pengguna: Pengguna- tglTrans: Date
- setIdTrans() : void- setTglTrans() : void
ProsesModifikasiData
- dataalumni: data alumni- idTrans: String- pengguna: pengguna- tglTrans: Date
- setTglTrans() : void- stIdTrans() : void
1..*
DisplayReport
1..*
1
Add or Modify Data
1..*
1
Repair/UpdateSystem
0..*
Gambar 4.2 : Class Diagram dengan method yang sudah dikaji ulang
(refine)
4.5 Perancangan layer akses (data storage)
4.5.1 Perancangan Database.
Sebagaimana dijelaskan sebelumnya bahwa perancangan
basisdata pada sistem yang diusulkan adalah menggunakan MySQL.
Berikut gambaran umum koneksi antar interface sistem dengan sistem
basisdata MySQL :
89
Gambar 4.3 : Perancangan koneksi basisdata pada Sistem
4.5.2 Perancangan Struktur Tabel
Pada basisdata yang dirancang pada sistem terdapat beberapa
tabel yang akan menjadi sumber data pada sistem. Tabel-tabel yang
dirancang diambil dari kelas-kelas yang telah teridentifikasi (lihat tabel
3.5), yang berupa kelas layer akses (kelas yang menunjukan basisdata).
Dari kelas-kelas yang terpilih, berikut adalah kelas-kelas yang
menunjukan kelas layer akses :
1. Pengguna
2. Data Alumni
Jika kita terjemahkan dalam bentuk tabel, maka hasilnya
sebagai berikut :
1. Pengguna: Tabel user
2. Data Alumni : Tabel alumni
4.5.3 Penerapan Atribut dan Tipe data
Tabel-tabel yang ada pada basisdata sistem tentu memiliki
field/atribut serta tipedata untuksetiapfield/atributnya, berikut
penjelasan rinci pada masing-masing tabel pada database :
1. Tabel user
Tabel ini menyimpan data pengguna pada sistem, berikut struktur
dari tabel pengguna:
90
Tabel 4.2 : Struktur Tabel User
Atribut/Field Tipe data Constraint
username Varchar (15) PRIMARY KEY
NOT NULL
password Varchar (15) NOT NULL
Password Char
tipePengguna Varchar (15) NOT NULL
Gambar 4.4 : Desain tabel user pada MySQL administrator
Berikut Statement SQL untuk tabel user :
CREATE TABLE `sialumni`.`user` (
`username` VARCHAR(15) NOT NULL,
`password` VARCHAR(15) NOT NULL,
`tipepengguna` VARCHAR(15) NOT NULL,
PRIMARY KEY(`username`)
)
TYPE = InnoDB
COMMENT = 'tabel data alumni';
91
2. Tabel alumni
Tabel ini menyimpan data alumni pada sistem, berikut struktur
dari tabel alumni :
Tabel 4.3: Struktur Tabel Alumni
Atribut/Field Tipe data Constraint
noInduk Integer PRIMARY KEY
NOT NULL
namaDepan Varchar(25) NOT NULL
namaBelakang Varchar (25) NULL
Jk Varchar(10) NOT NULL
tempatLahir Varcar(25) NOT NULL
alamat Varchar(100) NOT NULL
tglLahir Date NOT NULL
jurusan Varchar (25) NOT NULL
status Varchar (30) NOT NULL
tahunLulus Varchar(4) NOT NULL
rerataNilai Integer NOT NULL
92
Gambar 4.5 : Desain tabel alumni pada MySQL administrator
Berikut Statement SQL untuk tabel alumni :
CREATE TABLE `sialumni`.`alumni` (
`noInduk` INTEGER UNSIGNED NOT NULL
AUTO_INCREMENT,
`namaDepan` VARCHAR(25) NOT NULL,
`namabelakang` VARCHAR(25) NOT NULL,
`jk` VARCHAR(10) NOT NULL,
`tempatLahir` VARCHAR(25) NOT NULL,
`tglLahir` DATETIME NOT NULL,
`jurusan` VARCHAR(25) NOT NULL,
`status` VARCHAR(25) NOT NULL,
`rerataNilai` VARCHAR(25) NOT NULL,
PRIMARY KEY(`noInduk`)
)
TYPE = InnoDB
COMMENT = 'tabel data alumni';
4.6 Perancangan Layer View
Layer view pada sistem yang akan dirancang menunjukan antarmuka
pengguna (user interface / UI) yang menjembatani interaksi antar
pengguna/aktor dengan sistem. Interface yang dirancang berdasarkan interkasi
antar aktor dengan sistem yang telah teridentifikasi pada tahap analisis (lihat
gambar 3.3 – 3.6), user interface akan dirancang untuk seluruh use case yang
memiliki interaksi langsung dengan sistem. Berikut adalah use case yang
berinteraksi langsung dengan sistem :
1. Use case interaksi dengan sistem - merupakan use case yang
berkaitan dengan aktivitas sistem secara keseluruhan. (lihat gambar
3.3)
2. Use case Registrasi pengguna (lihat Gambar 3.6)
3. Use case Mencatat dan Modifikasi data Alumni (lihat Gambar 3.4)
93
4. Use case Melihat data Alumni (lihat gambar 3.5)
Berdasarkan use case di atas maka akan dirancang lima objek user
interface (UI). Pada tahap perancangan, objek interfacenya dirancang
berdasarkan sequence dan collaboration diagram pada bab sebelumnya (lihat
Gambar 3.7-3.17). berikut adalah objek-objek user interface (UI) yang akan di
rancang :
1. MenuUtamaUI untuk Use case interaksi dengan sistem
2. LoginUI untuk Use case interaksi dengan sistem
3. RegistrasiPenggunaUI untuk Use case Registrasi pengguna
4. PentatatanDanModifikasiDataUI untuk Use case Mencatat dan
Modifikasi data Alumni
5. PrintReportUI untuk Use case Melihat data Alumni
Interface-interface di atas merupakan kelas-kelas pada layer view
(view class) pada sistem yang dirancang. Sampai pada tahap ini, telah
teridentifikasi tiga lapisan kelas : kelas-kelas bisnis (lihat Gambar 3.19),
kelas-kelas akses (database), serta kelas-kelas view yang teridentifikasi di atas.
Berikut diagram kelas yang menunjukan relasi antar kelas pada sistem yang
dirancang (Gambar 4.6) :
94
class Class Diagram
Kelas View
Kelas Akses
Kelas Bisnis
Mesin_Host
PenggunaData Alumni
Report_data_alumni
SI_Alumni
ProsesPencatatanData
ProsesModifikasiData
database sialumni
LoginUIRegistrasiPenggunaUI
PencatatanDanModifikasiDataUI
PrintReportUI
MenuUtamaUI
Display report
add or modify
sistemadministration
Gambar 4.6 : kelas diagram yang terdiri dari kelas objek, kelas akses dan kelas view
95
4.6.1 Struktur Navigasi Menu
Navigasi menu digunakan untuk memudahkan pengguna dalam
mengakses suatu perintah atau objek pada sistem yang diusulkan.
Perancangan struktus menu dirancang berdasarkan prinsip interaksi
manusia dan komputer (IMK) serta memperlihatkan alur informasi dari
suatu sistem yang terdiri dari bagian input, output, proses dan data
storage. Berikut adalah struktur menu yang diusulkan :
Gambar 4.7 : Struktur Menu SI Alumni
Sebagaimana analisis pada Bab III, aktor yang akan menjadi
pengguna pada sistem yang diuulkan memiliki hak akses yang berbeda
terhadap sistem. Aktor yang berlaku sebagai Administrator akan
memiliki hak akses yang lebih dibanding aktor yang berlaku sebagai
operator atau user. Berikut adalah tabel hak akses menu pada sistem
untuk masing-masing aktor :
96
Tabel 4.5 : Perancangan Hak Akses Aktor
No Menu Aktor
Administrator Operator User
1 Login � � �
2 Keluar � � �
3 Input data alumni � � �
5 Registrasi pengguna � � �
6 Cetak data alumni � � �
8 Petunjuk � � �
4.6.2 Rancangan Antarmuka (Interface)
Antarmuka yang digambarkan pada tahap ini berdasarkan kelas
view yang teridentifikasi di atas (lihat Gambar 4.7). berikut
rancangannya :
1. MenuUtamaUI
MenuUtamaUI merupakan interface yang menunjukan
aktivitas pengguna dengan sistem secara keseluruhan. Objek ini
merupakan interface dari use case interaksi dengan sistem dan
layer dari kelas S I Alumni (lihat Gambar 4.7). berikut rancangan
tampilannya (Gambar 4.9):
97
Gambar 4.8 : Rancangan Menu Utama
2. LoginUI
LoginUI merupakan interface pada proses verifikasi
pengguna, dimana setiap pengguna diminta untuk memasukan
username dan password untuk dapat mengakses menu utama dari
sistem. Berikut rancangan tampilannya (Gambar 4.11) :
Gambar 4.9 : Rancangan Form Login pada LoginUI
98
3. RegistrasiPenggunaUI
RegistrasiPenggunaUI merupakan interface untuk kelas
Registrasi pengguna, dimana pengguna yang berlaku sebagai
admin melakukan pencatatan dan modifikasi data pengguna yang
nantinya akan diberi hak untuk mengakses sistem. Berikut
rancangan tampilannya (Gambar 4.11) :
Gambar 4.10 : Rancangan Form Registrasi Pengguna pada
RegistrasiPenggunaUI
4. PentatatanDanModifikasiDataUI
PencatatanDanModifikasiUI terdiri dari form pencatatan
data alumni. Form ini disediakan untuk operator untuk proses
pencatatan dan modifikasi data alumni serta menyimpannya ke
dalam database. Berikut rancangan tampilannya (gambar 4.12) :
99
Gambar 4.11 : Rancangan Form Input data Alumni
Pada perancangan di atas terlihat beberapa interface yang akan
dirancang pada sistem, akan tetapi interface-interface di atas belum
mewakili seluruh tampilan pada sistem yang dirancang. Hal ini
dikarenakan sistem yang dirancang berupa aplikasi berbasis client- server
sedangkan pada perancangan di atas hanya rancangan tampilan pada sisi
client.
Tampilan pada sisi server merupakan tampilan yang dieksekusi
untuk menjalankan service-service pada server. Pada rancangan
tampilannya, interface server hanya berupa form yang berisi indikator
serta log massages yang menampilkan koneksi serta method-method yang
dipanggil oleh client. Berikut rancangan tampilannya (Gambar 4.13) :
100
Gambar 4.12 : Interface server side
Pada sistem yang dirancang juga tidak hanya menampilkan data
dalam bentuk form, akan tetapi untuk pengguna yang berlaku sebagai user
data disajikan dalam bentuk report yang bersifat read-only. Berikut
contoh desain report pada sistem yang dirancang (Gambar 4.15 - 4.16) :
Gambar 4.13 : Desain report data Alumni
101
4.6.3 Prototipe Antarmuka (Interface Prototype)
Dari rancangan antarmuka yang dijelaskan sebelumnya, tahap
selanjutnya adalah perncangan prototipe dari antaramuka sistem yang
diusulkan. Dalam merancang prototipe, penulis menggunakan
Netbeans IDE 6.8 sebagai tool perancangannya. Berikut antarmuka
prototipe sistem yang diusulkan :
1. Splash screen
Berikut adalah tampilah splash screen pada sistem
informasi pengolahan data alumni :
Gambar 4.14 : Splash screen SI Alumni
2. MenuUtamaUI
Gambar 4.15 : Menu Utama
102
3. LoginUI
Gambar 4.16 : Form Login pada LoginUI
4. RegistrasiPenggunaUI
RegistrasiPenggunaUI merupakan interface untuk kelas
Registrasi pengguna, dimana pengguna yang berlaku sebagai
admin melakukan pencatatan dan modifikasi data pengguna yang
nantinya akan diberi hak untuk mengakses sistem. Berikut
rancangan tampilannya (Gambar 4.18) :
Gambar 4.17 : Form Registrasi Pengguna pada
RegistrasiPenggunaUI
103
5. PentatatanDanModifikasiDataUI
Gambar 4.18: Form Input Data Alumni
6. Server
Berikut prototipe antarmuka server :
Gambar 4.19 : Interface server side
104
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil kajian dan tinjauan teori yang ada, kesimpulan yang
diambil dari hasil analisis dan pengembangan Sistem Informasi Pengolahan Data
Alumni di SMK Negeri 2 Garut adalah sebagai berikut:
1. Sistem Informasi Pengolahan Data Alumni telah mengakomodasi aktivitas
bisnis yang ada antara lain mempermudah user melakukan pencatatan,
pencarian dan pelaporan data.
2. Unified Approach (UA) dapat digunakan untuk pengembangan Sistem
Informasi Pengolahan Data Alumni di SMK Negeri 2 Garut.
3. Perancangan sistem dengan arsitektur client-server dengan
mengimplementaikan java RMI mampu mewakili proses-proses service
yang diminta oleh mesin client.
4. Sistem Informasi Pengolahan Data Alumni di SMK Negeri 2 Garut dapat
membantu sekolah dalam melaksanakan salah satu tugasnya yaitu
memberikan pelayanan kepada alumni dan pihak lain dalam hal ini yaitu
perusahan yang bekerja sama dengan sekolah yang membutuhkan data-data
alumni dan juga membantu sekolah dalam hal pengembangan program studi
yang ada di SMK Negeri 2 Garut.
5.2 Saran
Sebagaimana yang dijelaskan sebelumnya, bahwa penelitian ini hanya
sampai pada tahapan prototipe, serta modul yang diimplementasikan hanya pada
proses pencatatan data, maka berdasarkan hal itu penulis menyarankan :
1. Mengaharapkan kritik dan saran yang dapat membangun demi
kesempurnaan penyusunan laporan Tugas Akhir ini
2. Diharapkan pada nantinya di rancang Sistem Informasi Pengolahan Data
Alumni secara utuh sampai pada tahap implementasi.
DAFTAR PUSTAKA
Amsyah, Zulkifli, “Manajemen Sistem Informasi”, Gramedia Pustaka Utama,
Jakarta, 1997.
Bahrami, Ali. “ Object Oriented System Development”. Irwin-McGraw-Hill,
Singapore, 1999.
Booch, Grady; Jacobson, Ivar; and Rumbaugh, James., ”The Unified Modeling Language User Guide”., Addison Wesley Longman, Inc., Massachusetts., 1999.
Fatta, Hanif Al, ”Perancangan Sistem Informasi & Analisis Desain”, Andi, Yogyakarta, 2009.
Grosso, William., “Java MI”., O’reilly, 2001.
Hartono, Jogiyanto., MBA., Akt., Ph.D. “Analisis & Desain Sistem Informasi:
Pendekatan terstruktur teori dan praktek aplikasi bisnis”. ANDI,
Yogyakarta, 1999.
Haryadi, Hendi, “Administrasi Perkantoran Untuk Manajer & Staf”, Visimedia, Jakarta, 2009.
Kristanto, Andi., ”Perancangan Sistem Infomasi dan Aplikasinya”., Gavamedia, Yogyakata, 1999
Laudon, Kenneth C. dan Laudon, Jane P., “Management Information Systems : Managing The Digital Firm 9th Edition”., Pearson Prentice Hall, Pearson Education, Inc., 2000.
Long, Larry dan Long Nancy., ”Introduction to Computers & Information
Systems”. Prentice Hall International, 1997.
Muchalil, Sayed., Remote Methode Invocation Pada Bahasa Pemograman Java Sebagai alternatif pemrograman client server., Jurusan Teknik Elekto Univ. Syiah Kuala, 2006.
Rochaety, Eti, “Sistem Informasi Manajemen Pendidikan”, Bumi Aksara, Yogyakarta, 2006.
Santosa, Insap, “Interaksi Manusia dan Komputer Teori dan Praktek”, Andi, Yogyakarta, 2004.
Silalahi, Ulbert, “Studi Tentang Ilmu Administrasi”, Sinar Baru Algensindo, Bandung, 2009.
Wijono, Matius Soesilo.dkk, ” Java2SE dengan Jbuilder”, ANDI Yogyakarta., 2004.
Whitten, Jeffery L., Lonnie D. Bentley, & Kevin C. Dittman. ”Metoda Desain dan Analisis Sistem (Edisi-6)”. ANDI and McGraw-Hill Education, 2004.
LAMPIRAN-LAMPIRAN
Lampiran 1 (Kondisi Objektif SMK Negeri 2 Garut)
Profil SMK Negeri 2 Garut
SMKN 2 Garut atau pada awalnya dikenal sebagau STM Negeri, adalah salah
satu Lembaga Pendidikan tingkat menengah kejuruan negeri yang berada di
kabupaten Garut yang turut serta telah berkiprah meningkatkan berbagai kinerja
dalam rangka mencapai sasaran utama, yaitu unggul, berkembang dan berprestasi
dalam Ilmu Pengetahuan dan Teknologi (IPTEK) serta menghasilkan tamatan yang
mampu bekerja mandiri, dapat bersaing di pasar kerja tingkat nasional dan
internasional dengan dilandasi Iman dan Taqwa.
SMKN 2 Garut didirikan pada tahun 1965 dengan luas tanah 33,160 M2
dengan izin operasional.
Nomor : 118/DIR.PT/B.1/1965
Tanggal : 3 Agustus 1965
SMKN 2 Garut telah berkembang sedemikian rupa menjadi Sekolah Rintisan
Berstandar Internasional, serta telah tersertifikasi ISO 2001 yang merupakan
perwujudan komitmen kepala sekolah, komite, guru dan seluruh stakeholders dalam
membangun sekolah teknik berkualitas Internasional di Garut.
Visi Misi
Visi :
Unggul, berkembang dan berprestasi dalam Ilmu Pengetahuan dan
Teknologi (IPTEK) serta menghasilkan tamatan yang mampu
bekerja mandiri, dapat bersaing di pasar kerja tingkat nasional dan
internasional dengan dilandasi Iman dan Taqwa.
Misi : • Menyelenggarakan pengelolaan sekolah dengan menggunakan
pendekatan manajamen bisnis, sebagai usaha membangun
Sumber Daya Manusia yang handal, dalam pembentukan
manusia cerdas, terampil, mampu mengembangkan potensi
dalam bidang keakhliannya dan dapat hidup mandiri serta
beriman dan bertaqwa Kepada Tuhan Yang Maha Esa
• Mengembangkan dan melaksanakan proses pendidikan dan
pelatihan sejalan dengan perkembangan Ilmu Pengetahuan dan
Teknologi (IPTEK) dan tuntutan pasar kerja melalui
pembelajaran yang berkualitas serta dilandasi iman dan taqwa
kepada Tuhan Yang Maha Esa.
• Mencari peluang-peluang untuk menerapkan pendidikan dan
pelatihan sesuai plat form Internasional dan mencobakan
standar-standar dan plat form Internasional melalui kerja sama
dengan industri, dan mendorong mengadakan Diklat jangka
pendek sesuai kebutuhan industri setempat.
• Pengembangan sistem dan menyelenggarakan asistensi usaha
sendiri dalam pengelolaan bantuan modal usaha, serta melatih
tenaga pendidik untuk mengembangkan unit produksi sekolah
Struktur Organisasi SMKN 2 Garut
Gambar Struktur Organisasi SMKN 2 Garut
Deskripsi Jabatan Tenaga kependidikan
Berdasarkan struktur, tugas pokok dan fungsinya masing-masing, maka
tenaga kependidikan di SMKN 2 Garut dapat dijelaskan dalam tabel di bawah ini :
Tabel Deskripsi jabatan tenaga kependidikan
No Nama Jabatan Deskripsi Tugas
1 Kepala sekolah Bertanggung jawab atas keseluruhan
kegiatan penyelenggaraan pendidikan di
sekolah baik ke dalam maupun ke luar
yakni dengan melaksanakan segala
kebijaksanaan, peraturan dan ketentuan
yang ditetapkan oleh lembaga yang lebih
tinggi.
2 Wakasek
Urusan
Kurikulum
Bertanggung jawab membantu Kepala
sekolah dalam menyelenggarakan
kegiatan-kegiatan yang berkaitan
langsung dengan pelaksanaan kurikulum
dan proses belajar mengajar
3 Wakasek
Urusan
Kesiswaan
Bertanggung jawab membantu kepala
sekolah dalam penyelenggaraan
kegiatan-kegiatan kesiswaan dan ekstra
kurikuler.
4 Wakasek urusan
Sarana Prasana
Bertanggung jawab atas kegiatan-
kegiatan inventarisasi pendayagunaan
dan pemeliharaan sarana dan prasarana
serta keuangan sekolah.
5 Wakasek
Urusan Khusus/
Koordinator
BP/BK
Bertanggung jawab membantu kepala
sekolah dalam penyelenggaraan
pelayanan khusus, seperti hubungan
masyarakat, bimbingan dan penyuluhan,
usaha kesehatan sekolah dan
perpustakaan sekolah.
6 Guru Bertanggung jawab atas pelaksanaan
tugas mengajar peserta didik.
7 Petugas Tata Bertanggung jawab atas penyelenggaraan
Usaha kegiatan-kegiatan dan pelayanan
administratif atau teknis operasional
pendidikan di sekolah.
8 Komite Sekolah Merumuskan/menetapkan program
tahunan sekolah sebagai penjabaran dari
program stratejik sekolah. Memantau
kinerja sekolah secara menyeluruh dan
kontinyu, meliputi konerja dan
kepemimpinan kepala sekolah, kinerja
manajemen sekolah, kinerja guru dan
mutu proses belajar mengajar, hasil
belajar siswa, disiplin dan tata tertib
sekolah, serta prestasi sekolah bidang
akademik maupun non akademik.
Selain jabatan-jabatan di atas, terdapat pula beberapa tenaga teknis maupun
tenaga fungsional diantaranya pustakawan (petugas perpustakaan), laboran,
koordinator ruang multimedia, operator Internet, petugas kebersiahan dan Keamanan.
Batasan Sistem Secara Fungsional
Fungsi Substantif
Pengelolaan data alumni merupakan proses yang di lakukan sekolah untuk
mengkoordinir data alumni yang pada saat ini proses pencatatan data alumni di SMKN
2 Garut masih terpaku pada buku induk. Oleh karena itu masalah yang sering terjadi
adalah pengklasifikasian data alumni belum rapi, pencarian data dan informasi
dibutuhkan waktu lama. Sistem informasi pengolahan data alumni diharapkan proses
pencatatan dan pencarian data alumni lebih cepat. Pada pihak sekolah bertujuan untuk
mengidentifikasi program studi apa yang paling banyak dibutuhkan di dunia kerja yang
nantinya bisa dipakai sekolah untuk perkembangan sekolah dalam hal ini
perkembangan program studi apakah akan ditambah kelas atau ganti dengan program
studi lain. Pada pihak lain dalam hal ini perusahaan akan relatif mudah mendapatkan
informasi data alumni yang sesuai dengan kualifikasi tertentu yang dibutuhkan.
Fungsi Fasilitatif
Fungsi fasilitatif menggambarkan kelompok kegiatan pendukung dari sistem
informasi penjadwalan pelajaran. Adapun perangkat kegiatan pendukung tersebut
meliputi:
1. Kepala Sekolah yang berperan sebagai pengawas dari pengolahan data alumni
agar berjalan dengan lancar dan sesuai dengan keinginan semua pihak.
2. Tata Usaha, berperan sebagai user yang berhubungan dengan sistem dan
mengolah data yang di ambil dari buku induk perprogram studi.
3. Alumni, berperan sebagai penerima data alumni yang telah dibuat.
Lampiran 2 (Analisis Kebutuhan Sistem (System Requirement))
Dalam merancang Sistem Informasi Pengolahan Data Alumni terdapat beberapa
hal yang mesti diperhatikan agar sistem yang dirancang benar-benar dapat
mengakomodasi setiap kegiatan yang ada pada lingkungan sistem, tanpa mengurangi
fungsi-fungsi yang ada pada sistem yang berjalan (current system). Adapun hal-hal
yang harus diperhatikan adalah sebagai berikut :
• Sistem yang dirancang dapat memberikan hak akses pada setiap pengguna baik
untuk administrator, operator maupun user.
• Aktor yang berlaku sebagai Administrator dapat mengakses semua method dari
antarmuka sistem serta melakukan perbaikan kerusakan sistem jika terjadi
kerusakan (crash).
• Sistem yang dirancang memiliki sistem keamanan (verifikasi pengguna)
• Pada sistem yang dirancang terdapat form pencatatan data alumni
• Pada sistem yang dirancanag terdapat form pemeliharaan data alumni (hapus dan
update) data alumni
• Sistem yang dirancang dapat menampilkan laporan rekapitulasi data alumni secara
keseluruhan dan berdasarakan kategori tertentu.
• Sistem yang dirancang menggunakan teknologi Java Remote Method Invocation
(RMI), sehingga sistem memungkinkan untuk diakses secara jaringan dan tidak
tergantung pada satu Sistem Operasi (Multi Platform)
Lampiran 3 Gambaran Umum Sistem yang Di Rancang
Tahap perancangan sistem didasarkan pada tahap analisis sebelumnya. Dalam
metodelogi pengembangan sistem berorientasi objek dengan pendekatan unified, tahap
perancangan sistem terdiri dari beberepa tahapan mulai refine (memperbaiki) kelas-kelas
yang teridentifikasi pada tahap analisis, berdasarkan atribut, struktur, method serta
relasinya.
Kelas-kelas yang teridentifikasi pada tahap analisis akan menjadi ranacangan awal
pada perancangan kelas untuk sistem yang diusulkan. Kelas-kelas tersebut kemudian
ditinjau kembali strukturnya disesuaikan dengan kebutuhan pada tahap perancangan.
Kebutuhan kelas pada sistem yang diusulkan disesuaikan pula dengan basis
pemograman yang digunakan pada tahap perancangan sistem. Seperti yang sudah
dijelaskan pada bab-bab sebelumnya bahwa sistem informasi yang akan dirancang pada
penelitian ini merupakan sistem informasi yang berbasis bahasa pemrograman Java
remote method invokes (Java-RMI) serta arsitektur jaringan menggunakan arsitektur
client-server, dimana pada lapisan view-nya terdapat dua interface, interface client
(bagian yang melakukan request method dan akses basisdata) dan interface server (bagian
yang menyediakan layanan berupa method serta layanan akses basisdata). Berikut
arsitektur pemanggilan method pada aplikasi berbasis Java RMI :
Gambar Arsitektur Java RMI pada sistem yang akan dirancang
Teknologi pada Sistem
Perancangan sistem yang diusulkan ini melibatkan beberapa teknologi yang
membangun sistem secara keseluruhan, berikut deskripsi teknologi yang digunakan
pada sistem yang dirancang :
1. Sistem Informasi yang diusulkan berupa sebuah paket software yang dibangun
menggunakan bahasa pemrograman Java 2 Standar Edition dengan
mengimplementasikan package remote method invokes (java.rmi.*), sedangkan
code generator/editor-nya menggunkan Netbeans IDE 6.8.
2. Pada perancangan lapisan akses manajemen basisdata (DBMS) menggunakan
MySQL versi 5.0 dengan tool MySQL Administrator, MySQL Query browser,
dan MySQL Front 1.0.
3. Sistem Operasi yang digunakan adalah sistem operasi berbasis Microsoft windows
dan sistem operasi berbasis Linux Distro Ubuntu 10.4 dengan Gnome desktop.
4. Arsitektur jaringan pada sistem menggunakan arsitektur client server, dimana
sistem terbadi dua sisi (side), client side dan server side. Port yang digunakan
adalah 1099, yang merupakan port standar koneksi RMI.
5. Media transmisi pada koneksi jaringan menggunakan kabel dan wireless.
Spesifikasi Kebutuhan Minimal Hardware
Pada perancangan sistem informasi pengolahan data alumni yang diusulkan
diharapkan dapat berjalan dengan spesifikasi minimal perangkat keras yang sebagai
berikut :
a. Mesin Server
1. Motherboard dan Processor minimal setara intel Pentium IV, karena software
yang dirancang direncanakan hanya menggunakan CPU usage sekitar 800
MHz - 1 GHz.
2. Memori (RAM) 512 MB, karena penggunaan memory untuk software serta
keseluruhan service pada sistem berkisar sekitar 200-350 Mb.
3. Display Adapter (VGA) 32 Mb untuk kebutuhan grafis pada sistem.
4. Ruang kosong pada hardisk minimal 10 MB untuk aplikasi, dan 100 MB
untuk database.
5. Ethernet card/Wireless Adapter karena sistem yang dirancang dibangun
dengan arsitektur jaringan.
6. Input device: Mouse dan Keyboard
7. Output Device : Monitor
b. Mesin Client
1. Motherboard dan Processor minimal setara intel Pentium IV, karena software
yang dirancang direncakan hanya menggunakan CPU usage sekitar 800 MHz -
1 GHz.
2. Memori (RAM) 128 MB, karena penggunaan memory untuk software serta
keseluruhan service pada sistem berkisar sekitar 200-350 Mb.
3. Display Adapter (VGA) 32 Mb untuk kebutuhan grafis pada sistem.
4. Ruang kosong pada hardisk minimal 10 MB untuk aplikasi.
5. Ethernet card /Wireless Adapter karena sistem yang dirancang dibangun
dengan arsitektur jaringan.
6. Input device: Mouse dan Keyboard
7. Output Device : Monitor, Printer
Arsitektur Sistem
Berdasarkan deskripsi umum serta teknologi yang digunakan maka berikut
gambaran arstiketur pada sistem yang dirancang:
Gambar Arsitektur Sistem yang diusulkan
Pada Gambar di atas terlihat rancangan arsitektur sistem informasi yang
diusulkan. Setiap Client di lingkungan sistem melakukan request kepada sever
aplikasi, serta server aplikasi memberikan respon berupa layanan-layanan sesuai yang
dipanggil oleh client. Begitu juga jika ada pemanggilan basisdata, aplikasi server
melakukan request kepda server database (DBMS), kemudian server database
memberikan data sesuai data yang dipanggil.
Perancangan arsitektur sistem mengimplementasikan arsitektur three-tier,
dimana terdapat dua buah server, yaitu server database dan server aplikasi.
Lampiran 4
Source Code & Screenshoot
SI Alumni Sistem Informasi Pengolahan Data Alumni
SMK Negeri 2 Garut Dibuat Dengan Menggunakan Bahasa Pemrograman Java Versi 1.6
Library package nopawijaya.api.entity; import java.io.Serializable; import java.util.Date; /** * * @author Deden-pc */ public class Alumni implements Serializable { private String noInduk; private String namaDepan; private String namaBelakang; private String alamat; private String jk; private String jurusan; private String tempatLahir; private Date tanggalLahir; private String status; private String tahunLulus; private String rerataNilai; public String getAlamat() { return alamat; } public void setAlamat(String alamat) { this.alamat = alamat; } public String getJk() { return jk; } public void setJk(String jk) { this.jk = jk; } public String getJurusan() { return jurusan; } public void setJurusan(String jurusan) {
this.jurusan = jurusan; } public String getNamaBelakang() { return namaBelakang; } public void setNamaBelakang(String namaBelakang) { this.namaBelakang = namaBelakang; } public String getNamaDepan() { return namaDepan; } public void setNamaDepan(String namaDepan) { this.namaDepan = namaDepan; } public String getNoInduk() { return noInduk; } public void setNoInduk(String noInduk) { this.noInduk = noInduk; } public String getRerataNilai() { return rerataNilai; } public void setRerataNilai(String rerataNilai) { this.rerataNilai = rerataNilai; } public String getStatus() { return status;
} public void setStatus(String status) { this.status = status; } public String getTahunLulus() { return tahunLulus; } public void setTahunLulus(String tahunLulus) { this.tahunLulus = tahunLulus; } public Date getTanggalLahir() { return tanggalLahir; }
public void setTanggalLahir(Date tanggalLahir) { this.tanggalLahir = tanggalLahir; } public String getTempatLahir() { return tempatLahir; } public void setTempatLahir(String tempatLahir) { this.tempatLahir = tempatLahir; } }
package nopawijaya.api.entity; import java.io.Serializable; /** * * @author Deden-pc */ public class Pengguna implements Serializable{ private String username,password, tipePengguna; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getTipePengguna() {
return tipePengguna; } public void setTipePengguna(String tipePengguna) { this.tipePengguna = tipePengguna; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }
package nopawijaya.api.service; import java.rmi.Remote; import java.rmi.RemoteException; import java.util.List; import nopawijaya.api.entity.Alumni; /** * @author Deden-pc */ public interface AlumniService extends Remote {
Alumni insertAlumni (Alumni a)throws RemoteException; void updateAlumni (Alumni a)throws RemoteException; void deleteAlumni (String noInduk)throws RemoteException; Alumni getAlumni(String noInduk)throws RemoteException; List<Alumni> getAlumni()throws RemoteException; public void writeLog(String string) throws RemoteException;
package nopawijaya.api.service; import java.rmi.Remote; import java.rmi.RemoteException; import java.util.List; import nopawijaya.api.entity.Pengguna; /** * * @author Deden-pc */ public interface PenggunaService extends Remote{ Pengguna insertPengguna (Pengguna p)throws RemoteException;
void updatePengguna (Pengguna p)throws RemoteException; void deletePengguna (String username)throws RemoteException; Pengguna getPengguna(String username)throws RemoteException; List<Pengguna> getPengguna()throws RemoteException; public void writeLog(String string) throws RemoteException; }
Interface Client Form Data Alumni
package nopawijaya.client.gui; import java.rmi.RemoteException; import java.util.Date; import java.util.List; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import nopawijaya.api.entity.Alumni; import nopawijaya.api.service.AlumniService; import nopawijaya.client.model.TabelModelAlumni; /** * * @author Deden-pc */
public class FormAlumni extends javax.swing.JFrame { private TabelModelAlumni tabelModelAlumni = new TabelModelAlumni(); private AlumniService as; /** Creates new form FormAlumni */ public FormAlumni(AlumniService alumniService) { this.as = alumniService; try{ tabelModelAlumni.setData(this.as.getAlumni()); }catch(RemoteException ex){ ex.printStackTrace(); } initComponents();
tblAlumni.setModel(tabelModelAlumni); tblAlumni.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { int row = tblAlumni.getSelectedRow(); if(row != -1){ Alumni a = tabelModelAlumni.get(row); txtNoInduk.setText(a.getNoInduk()); txtNamaDepan.setText(a.getNamaDepan()); txtNamaBelakang.setText(a.getNamaBelakang()); txtJk.setSelectedItem(a.getJk()); txtTempatLahir.setText(a.getTempatLahir()); txtTanggalLahir.setValue(a.getTanggalLahir()); txtStatus.setSelectedItem(a.getJk()); txtAlamat.setText(a.getAlamat()); txtJurusan.setSelectedItem(a.getJurusan()); txtStatus.setSelectedItem(a.getStatus()); txtTahunLulus.setText(a.getTahunLulus()); txtRerataNilai.setValue(a.getRerataNilai()); } } }); } /** This method is called from within the constructor to * initialize the form.
* WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); txtNamaDepan = new javax.swing.JTextField(); jLabel3 = new javax.swing.JLabel(); txtNamaBelakang = new javax.swing.JTextField(); jLabel4 = new javax.swing.JLabel(); txtTanggalLahir = new javax.swing.JFormattedTextField(); jLabel6 = new javax.swing.JLabel(); txtTempatLahir = new javax.swing.JTextField(); jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel(); jPanel2 = new javax.swing.JPanel(); btnInsert = new javax.swing.JButton(); btnUpdate = new javax.swing.JButton(); btnDelete = new javax.swing.JButton(); btnRefresh = new javax.swing.JButton(); jLabel12 = new javax.swing.JLabel(); txtAlamat = new javax.swing.JTextField(); txtTahunLulus = new javax.swing.JFormattedTextField(); txtNoInduk = new javax.swing.JTextField(); jScrollPane1 = new javax.swing.JScrollPane(); tblAlumni = new javax.swing.JTable();
txtJk = new javax.swing.JComboBox(); txtJurusan = new javax.swing.JComboBox(); txtStatus = new javax.swing.JComboBox(); jLabel11 = new javax.swing.JLabel(); txtRerataNilai = new javax.swing.JFormattedTextField(); jLabel5 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Si Alumni Client"); jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Alumni")); jPanel1.setFocusable(false); jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); jLabel1.setText("No. Induk"); jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 30, -1, -1)); jLabel2.setText("Nama Depan"); jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 60, -1, -1)); jPanel1.add(txtNamaDepan, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 60, 179, -1)); jLabel3.setText("Nama Belakang"); jPanel1.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 90, -1, -1)); jPanel1.add(txtNamaBelakang, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 90, 179, -1)); jLabel4.setText("Tempat, Tgl Lahir"); jPanel1.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 150, -1, -1));
txtTanggalLahir.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter(java.text.DateFormat.getDateInstance(java.text.DateFormat.LONG)))); txtTanggalLahir.setValue(new java.util.Date()); jPanel1.add(txtTanggalLahir, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 150, 135, -1)); jLabel6.setText("Jenis Kelamin"); jPanel1.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 120, -1, -1)); jPanel1.add(txtTempatLahir, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 150, 135, -1)); jLabel8.setText("Jurusan"); jPanel1.add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(470, 60, -1, -1)); jLabel9.setText("Tahun Lulus"); jPanel1.add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(470, 120, -1, -1)); jLabel10.setText("Rerata Nilai"); jPanel1.add(jLabel10, new org.netbeans.lib.awtextra.AbsoluteConstraints(470, 150, -1, -1)); jPanel2.setLayout(new java.awt.GridLayout(1, 0)); btnInsert.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/disk.png"))); // NOI18N btnInsert.setText("Insert"); btnInsert.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {
btnInsertActionPerformed(evt); } }); jPanel2.add(btnInsert); btnUpdate.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/plugin.png"))); // NOI18N btnUpdate.setText("Update"); btnUpdate.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnUpdateActionPerformed(evt); } }); jPanel2.add(btnUpdate); btnDelete.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/bin_closed.png"))); // NOI18N btnDelete.setText("Delete"); btnDelete.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnDeleteActionPerformed(evt); } }); jPanel2.add(btnDelete); btnRefresh.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/lifebuoy.png"))); // NOI18N btnRefresh.setText("Refresh"); btnRefresh.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnRefreshActionPerformed(evt); } }); jPanel2.add(btnRefresh);
jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 200, 720, 30)); jLabel12.setText("Alamat"); jPanel1.add(jLabel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(470, 30, -1, -1)); jPanel1.add(txtAlamat, new org.netbeans.lib.awtextra.AbsoluteConstraints(610, 30, 276, -1)); jPanel1.add(txtTahunLulus, new org.netbeans.lib.awtextra.AbsoluteConstraints(610, 120, 86, -1)); jPanel1.add(txtNoInduk, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 30, 105, -1)); tblAlumni.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null} }, new String [] { "Title 1", "Title 2", "Title 3", "Title 4" } )); jScrollPane1.setViewportView(tblAlumni); jPanel1.add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 260, 870, 210)); txtJk.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Pilih salah satu..", "Lelaki", "Perempuan" })); jPanel1.add(txtJk, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 120, 179, -1)); txtJurusan.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Pilih salah satu..", "T. Gambar Bangunan", "T.
Ketenagalistrikan", "T. Audio Video", "T. Motor Otomotif", "T. Geologi Pertambangan", "T. Multimedia", "T. Broadcasting" })); jPanel1.add(txtJurusan, new org.netbeans.lib.awtextra.AbsoluteConstraints(610, 60, 179, -1)); txtStatus.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Pilih salah satu..", "Bekerja", "Lanjut Sekolah", "Tidak Lanjut" })); jPanel1.add(txtStatus, new org.netbeans.lib.awtextra.AbsoluteConstraints(610, 90, 179, -1)); jLabel11.setText("Status"); jPanel1.add(jLabel11, new org.netbeans.lib.awtextra.AbsoluteConstraints(470, 90, -1, -1)); jPanel1.add(txtRerataNilai, new org.netbeans.lib.awtextra.AbsoluteConstraints(610, 150, 86, -1)); jLabel5.setFont(new java.awt.Font("Tahoma", 1, 14)); jLabel5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/Open.png"))); // NOI18N jLabel5.setText("Form Data Alumni"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup()
.addGap(61, 61, 61) .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 907, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(28, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(18, 18, 18) .addComponent(jLabel5) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 497, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); pack(); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); java.awt.Dimension dialogSize = getSize(); setLocation((screenSize.width-dialogSize.width)/2,(screenSize.height-dialogSize.height)/2); }// </editor-fold>
private void btnRefreshActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try{ List<Alumni> list = as.getAlumni(); tabelModelAlumni.setData(list); }catch(RemoteException ex){ ex.printStackTrace(); } } private void btnInsertActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try{ Alumni a = new Alumni(); a.setNoInduk(txtNoInduk.getText()); a.setNamaDepan(txtNamaDepan.getText()); a.setNamaBelakang(txtNamaBelakang.getText()); a.setJk((String) txtJk.getSelectedItem()); a.setTempatLahir(txtTempatLahir.getText()); a.setTanggalLahir((Date) txtTanggalLahir.getValue()); a.setAlamat(txtAlamat.getText()); a.setJurusan((String) txtJurusan.getSelectedItem()); a.setStatus((String) txtStatus.getSelectedItem()); a.setTahunLulus(txtTahunLulus.getText()); a.setRerataNilai( txtRerataNilai.getText()); Alumni person1 = as.insertAlumni(a); tabelModelAlumni.insert(person1); }catch(RemoteException exception){ exception.printStackTrace(); }
} private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try{ int row = tblAlumni.getSelectedRow(); if(row == -1){ return; } Alumni person = tabelModelAlumni.get(row); person.setNoInduk(txtNoInduk.getText()); person.setNamaDepan(txtNamaDepan.getText()); person.setNamaBelakang(txtNamaBelakang.getText()); person.setStatus((String) txtStatus.getSelectedItem()); person.setJk((String) txtJk.getSelectedItem()); person.setTempatLahir(txtTempatLahir.getText()); person.setTanggalLahir((Date)txtTanggalLahir.getValue()); person.setAlamat(txtAlamat.getText()); person.setJurusan((String) txtJurusan.getSelectedItem()); person.setTahunLulus(txtTahunLulus.getText()); person.setRerataNilai( (String) txtRerataNilai.getValue()); as.updateAlumni(person); tabelModelAlumni.update(row, person); }catch(RemoteException exception){ exception.printStackTrace(); } }
private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try{ int row = tblAlumni.getSelectedRow(); if(row == -1){ return; } String noInduk = tabelModelAlumni.get(row).getNoInduk(); as.deleteAlumni(noInduk); tabelModelAlumni.delete(row); }catch(RemoteException ex){ ex.printStackTrace(); } } /** * @param args the command line arguments */ // Variables declaration - do not modify private javax.swing.JButton btnDelete; private javax.swing.JButton btnInsert; private javax.swing.JButton btnRefresh; private javax.swing.JButton btnUpdate; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable tblAlumni; private javax.swing.JTextField txtAlamat; private javax.swing.JComboBox txtJk; private javax.swing.JComboBox txtJurusan; private javax.swing.JTextField txtNamaBelakang; private javax.swing.JTextField txtNamaDepan; private javax.swing.JTextField txtNoInduk; private javax.swing.JFormattedTextField txtRerataNilai; private javax.swing.JComboBox txtStatus; private javax.swing.JFormattedTextField txtTahunLulus; private javax.swing.JFormattedTextField txtTanggalLahir; private javax.swing.JTextField txtTempatLahir; // End of variables declaration }
Form Login
package nopawijaya.client.gui; import java.rmi.RemoteException; import javax.swing.GroupLayout; import javax.swing.JOptionPane; import nopawijaya.api.entity.Pengguna; import nopawijaya.api.service.AlumniService; /** * * @author Deden-pc */ public class FormLogin extends javax.swing.JDialog { private AlumniService service; private Pengguna PenggunaAplikasi = null; /** Creates new form FormLogin */ public FormLogin(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); lblLoading.setVisible(false); GroupLayout gl = (GroupLayout) getContentPane().getLayout(); gl.setHonorsVisibility(lblLoading, false); } public Pengguna getPenggunaAplikasi() { return PenggunaAplikasi; } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jTextField1 = new javax.swing.JTextField(); jPasswordField1 = new javax.swing.JPasswordField(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jLabel3 = new javax.swing.JLabel(); lblLoading = new javax.swing.JLabel(); jSeparator1 = new javax.swing.JSeparator(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Login"); jTextField1.addInputMethodListener(new java.awt.event.InputMethodListener() { public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { } public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { jTextField1InputMethodTextChanged(evt); }
}); jTextField1.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { jTextField1KeyTyped(evt); } }); jLabel1.setText("Username"); jLabel2.setText("Password"); jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/key.png"))); // NOI18N jButton1.setText("Login"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/cross.png"))); // NOI18N jButton2.setText("Cancel"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jLabel3.setFont(new java.awt.Font("Tahoma", 1, 24)); jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/Key lock.png"))); // NOI18N jLabel3.setText(" Silahkan Login");
lblLoading.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/loadingpreview.gif"))); // NOI18N lblLoading.setText("Verifikasi Pengguna...."); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(26, 26, 26) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(lblLoading) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 89, Short.MAX_VALUE) .addComponent(jButton1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton2)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel1) .addComponent(jLabel2)) .addGap(30, 30, 30) .addGroup(layout.createParallelGro
up(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(jPasswordField1) .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE))) .addGroup(layout.createSequentialGroup() .addGap(18, 18, 18) .addComponent(jLabel3)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGap(38, 38, 38) .addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 356, Short.MAX_VALUE))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(jLabel1) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_
SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(jLabel2) .addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblLoading) .addComponent(jButton2) .addComponent(jButton1)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-438)/2, (screenSize.height-222)/2, 438, 222); }// </editor-fold> private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { if(new String(jPasswordField1.getPassword()).contains("admin") && jTextField1.getText().contains("admin")){ JOptionPane.showMessageDialog(null
, "Selamat datang " + jTextField1.getText()); PenggunaAplikasi = new Pengguna(); PenggunaAplikasi.setUsername("admin"); PenggunaAplikasi.setPassword("admin"); PenggunaAplikasi.setTipePengguna("Administrator"); try { service.writeLog("Client Berhasil Login, username : admin"); } catch (RemoteException ex) { } dispose(); }else if(new String(jPasswordField1.getPassword()).contains("operator") && jTextField1.getText().contains("operator")){ JOptionPane.showMessageDialog(null, "Selamat datang "+jTextField1.getText()); PenggunaAplikasi = new Pengguna(); PenggunaAplikasi.setUsername("operator"); PenggunaAplikasi.setPassword("operator"); PenggunaAplikasi.setTipePengguna("Operator"); try { service.writeLog("Client Berhasil Login, username : operator"); } catch (RemoteException ex) { } dispose(); }else if(new String(jPasswordField1.getPassword()).contains("user") && jTextField1.getText().contains("user")){ JOptionPane.showMessageDialog(null, "Selamat datang "+jTextField1.getText());
PenggunaAplikasi = new Pengguna(); PenggunaAplikasi.setUsername("user"); PenggunaAplikasi.setPassword("user"); PenggunaAplikasi.setTipePengguna("User"); try { service.writeLog("Client Berhasil Login, username : user"); } catch (RemoteException ex) { } dispose(); }else if(new String(jPasswordField1.getPassword()).contains("coba1") && jTextField1.getText().contains("coba1")){ JOptionPane.showMessageDialog(null, "Selamat datang "+jTextField1.getText()); PenggunaAplikasi = new Pengguna(); PenggunaAplikasi.setUsername("coba1"); PenggunaAplikasi.setPassword("coba1"); PenggunaAplikasi.setTipePengguna("Operator"); try { service.writeLog("Client Berhasil Login, username : coba1"); } catch (RemoteException ex) { } dispose(); }else if(new String(jPasswordField1.getPassword()).contains("coba") && jTextField1.getText().contains("coba")){ JOptionPane.showMessageDialog(null, "Selamat datang "+jTextField1.getText()); PenggunaAplikasi = new Pengguna();
PenggunaAplikasi.setUsername("coba"); PenggunaAplikasi.setPassword("coba"); PenggunaAplikasi.setTipePengguna("User"); try { service.writeLog("Client Berhasil Login, username : coba"); } catch (RemoteException ex) { } dispose(); }else{ JOptionPane.showMessageDialog(null, "Username atau password tidak terdaftar"); jTextField1.requestFocus(); jTextField1.selectAll(); try { service.writeLog("Client Gagal Login"); } catch (RemoteException ex) { } } } private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { dispose(); } private void jTextField1InputMethodTextChanged(java.awt.event.InputMethodEvent evt) { // TODO add your handling code here:
} private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(!jTextField1.getText().equals("")){ lblLoading.setVisible(true); }else{ lblLoading.setVisible(false); } } void setService(AlumniService service) { this.service = service; } // Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPasswordField jPasswordField1; private javax.swing.JSeparator jSeparator1; private javax.swing.JTextField jTextField1; private javax.swing.JLabel lblLoading; // End of variables declaration }
Form Menu Utama SI Alumni
package nopawijaya.client.gui; import java.rmi.RemoteException; import java.sql.Connection; import java.sql.DriverManager; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; import javax.swing.SwingWorker; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.view.JasperViewer; import nopawijaya.api.service.AlumniService; import nopawijaya.api.service.PenggunaService; /** * * @author Deden-pc */ public class FormMain extends javax.swing.JFrame { private AlumniService alumniService; private PenggunaService ps; private Connection conn; /** Creates new form FormMain */ public FormMain() { initComponents(); try{
String url = "jdbc:mysql://localhost:3306/sialumni"; DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //Class.forName("com.mysql.jdbc.Driver").newInstance(); conn = DriverManager.getConnection(url, "root", "root"); }catch(Exception e){ e.printStackTrace(); } mnRegister.setVisible(false); btnRegister.setVisible(false); setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jToolBar1 = new javax.swing.JToolBar(); btnLogin = new javax.swing.JButton();
btnInputAlumni = new javax.swing.JButton(); btnRegister = new javax.swing.JButton(); btnCetakAumni = new javax.swing.JButton(); btnPetunjuk = new javax.swing.JButton(); btnKeluar = new javax.swing.JButton(); jPanel1 = new javax.swing.JPanel(); lblKet = new javax.swing.JLabel(); jLabel1 = new javax.swing.JLabel(); jMenuBar1 = new javax.swing.JMenuBar(); mnAplikasi = new javax.swing.JMenu(); mnLogin = new javax.swing.JMenuItem(); mnKeluar = new javax.swing.JMenuItem(); mnInput = new javax.swing.JMenu(); mnInputAlumni = new javax.swing.JMenuItem(); mnRegister = new javax.swing.JMenuItem(); mnReport = new javax.swing.JMenu(); mnCetakAlumni = new javax.swing.JMenuItem(); jMenuItem1 = new javax.swing.JMenuItem(); jMenuItem2 = new javax.swing.JMenuItem(); jMenuItem3 = new javax.swing.JMenuItem(); jMenuItem4 = new javax.swing.JMenuItem(); mnBantuan = new javax.swing.JMenu(); mnPetunjuk = new javax.swing.JMenuItem(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("SI Alumni Client"); jToolBar1.setRollover(true); btnLogin.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/Key lock.png"))); // NOI18N
btnLogin.setToolTipText("Login"); btnLogin.setFocusable(false); btnLogin.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnLogin.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnLogin.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnLoginActionPerformed(evt); } }); jToolBar1.add(btnLogin); btnInputAlumni.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/Open (2).png"))); // NOI18N btnInputAlumni.setToolTipText("Input Data Alumni"); btnInputAlumni.setEnabled(false); btnInputAlumni.setFocusable(false); btnInputAlumni.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnInputAlumni.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnInputAlumni.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnInputAlumniActionPerformed(evt); } }); jToolBar1.add(btnInputAlumni); btnRegister.setIcon(new javax.swing.ImageIcon(getClass().g
etResource("/nopawijaya/client/image/People.png"))); // NOI18N btnRegister.setToolTipText("Registrasi Pengguna"); btnRegister.setEnabled(false); btnRegister.setFocusable(false); btnRegister.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnRegister.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnRegister.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnRegisterActionPerformed(evt); } }); jToolBar1.add(btnRegister); btnCetakAumni.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/printer_48.png"))); // NOI18N btnCetakAumni.setToolTipText("Cetak Data Pendidik"); btnCetakAumni.setEnabled(false); btnCetakAumni.setFocusable(false); btnCetakAumni.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnCetakAumni.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnCetakAumni.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnCetakAumniActionPerformed(evt); } });
jToolBar1.add(btnCetakAumni); btnPetunjuk.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/Notebook.png"))); // NOI18N btnPetunjuk.setToolTipText("Petunjuk"); btnPetunjuk.setFocusable(false); btnPetunjuk.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnPetunjuk.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnPetunjuk.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnPetunjukActionPerformed(evt); } }); jToolBar1.add(btnPetunjuk); btnKeluar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/cancel_48.png"))); // NOI18N btnKeluar.setToolTipText("Keluar"); btnKeluar.setFocusable(false); btnKeluar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnKeluar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnKeluar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnKeluarActionPerformed(evt); } }); jToolBar1.add(btnKeluar);
getContentPane().add(jToolBar1, java.awt.BorderLayout.PAGE_START); jPanel1.setBorder(javax.swing.BorderFactory.createCompoundBorder(javax.swing.BorderFactory.createEtchedBorder(), javax.swing.BorderFactory.createEmptyBorder(2, 2, 2, 2))); jPanel1.setPreferredSize(new java.awt.Dimension(934, 32)); jPanel1.setLayout(new java.awt.BorderLayout()); lblKet.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/loadingpreview.gif"))); // NOI18N lblKet.setText("-"); jPanel1.add(lblKet, java.awt.BorderLayout.CENTER); getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_END); jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/ground.jpg"))); // NOI18N getContentPane().add(jLabel1, java.awt.BorderLayout.CENTER); mnAplikasi.setText("Aplikasi"); mnAplikasi.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnAplikasiActionPerformed(evt); } }); mnLogin.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/key.png"))); // NOI18N mnLogin.setText("Login"); mnLogin.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { mnLoginActionPerformed(evt); } }); mnAplikasi.add(mnLogin); mnKeluar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/cross.png"))); // NOI18N mnKeluar.setText("Keluar"); mnKeluar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnKeluarActionPerformed(evt); } }); mnAplikasi.add(mnKeluar); jMenuBar1.add(mnAplikasi); mnInput.setText("Input"); mnInput.setEnabled(false); mnInputAlumni.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/user.png"))); // NOI18N mnInputAlumni.setText("Input Data Alumni"); mnInputAlumni.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnInputAlumniActionPerformed(evt); } }); mnInput.add(mnInputAlumni); mnRegister.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/user_business_boss.png"))); // NOI18N mnRegister.setText("Register Pengguna");
mnRegister.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnRegisterActionPerformed(evt); } }); mnInput.add(mnRegister); jMenuBar1.add(mnInput); mnReport.setText("Report"); mnReport.setEnabled(false); mnReport.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnReportActionPerformed(evt); } }); mnCetakAlumni.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/printer.png"))); // NOI18N mnCetakAlumni.setText("Data Alumni"); mnCetakAlumni.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnCetakAlumniActionPerformed(evt); } }); mnReport.add(mnCetakAlumni); jMenuItem1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/printer.png"))); // NOI18N jMenuItem1.setText("Data Alumni Berdasarkan Jurusan"); jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem1ActionPerformed(evt); } }); mnReport.add(jMenuItem1); jMenuItem2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/printer.png"))); // NOI18N jMenuItem2.setText("Data Alumni Berdasarkan Status Lulusan"); jMenuItem2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem2ActionPerformed(evt); } }); mnReport.add(jMenuItem2); jMenuItem3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/printer.png"))); // NOI18N jMenuItem3.setText("Data Alumni Berdasarkan Nilai Tertinggi PerJurusan"); jMenuItem3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem3ActionPerformed(evt); } }); mnReport.add(jMenuItem3); jMenuItem4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/printer.png"))); // NOI18N jMenuItem4.setText("Alumni Jurusan T. Audio Video 2010 Berdasarkan Status "); jMenuItem4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem4ActionPerformed(evt); } }); mnReport.add(jMenuItem4); jMenuBar1.add(mnReport); mnBantuan.setText("Bantuan"); mnPetunjuk.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/lightbulb.png"))); // NOI18N mnPetunjuk.setText("Petunjuk"); mnPetunjuk.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnPetunjukActionPerformed(evt); } }); mnBantuan.add(mnPetunjuk); jMenuBar1.add(mnBantuan); setJMenuBar(jMenuBar1); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-950)/2, (screenSize.height-569)/2, 950, 569); }// </editor-fold> private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: mnLoginActionPerformed(evt); } private void mnInputAlumniActionPerformed(java.awt.event.ActionEvent evt) { FormAlumni f = new FormAlumni(alumniService); f.setVisible(true); }
private void mnPetunjukActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if (lblKet.getText().equals("Server tidak ditemukan")) { JOptionPane.showMessageDialog(null, "Pastikan komputer anda terhubung ke Server, hubungi Administrator untuk keterangan lebih lanjut !!"); } else { JOptionPane.showMessageDialog(null, "selamat Datang di Program SI Alumni v.1.0, ini merupakan program berbasis Java RMI"); } } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: System.exit(0); } private void mnLoginActionPerformed(java.awt.event.ActionEvent evt) { if (mnLogin.getText().equalsIgnoreCase("Logout")) { mnLogin.setText("Login"); btnLogin.setToolTipText("Login"); btnLogin.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jawaxa/simpendikclient/image/Key.png"))); mnRegister.setVisible(false); mnInput.setEnabled(false); mnReport.setEnabled(false); btnInputAlumni.setEnabled(false); btnRegister.setVisible(false); btnRegister.setEnabled(false); btnCetakAumni.setEnabled(false); return; }
FormLogin f = new FormLogin(this, true); f.setService(alumniService); f.setVisible(true); if (f.getPenggunaAplikasi() == null) { mnLogin.setText("Login"); } else if (f.getPenggunaAplikasi().getTipePengguna().equalsIgnoreCase("administrator")) { mnRegister.setVisible(true); mnInput.setEnabled(true); mnReport.setEnabled(true); btnInputAlumni.setEnabled(true); btnRegister.setVisible(true); btnRegister.setEnabled(true); btnCetakAumni.setEnabled(true); mnLogin.setText("Logout"); btnLogin.setToolTipText("Logout"); } else if (f.getPenggunaAplikasi().getTipePengguna().equalsIgnoreCase("operator")) { mnRegister.setVisible(false); mnInput.setEnabled(true); mnReport.setEnabled(true); btnInputAlumni.setEnabled(true); btnRegister.setVisible(false); btnRegister.setEnabled(false); btnCetakAumni.setEnabled(true); mnLogin.setText("Logout"); btnLogin.setToolTipText("Logout"); } else if (f.getPenggunaAplikasi().getTipePengguna().equalsIgnoreCase("user")) {
mnRegister.setVisible(false); mnInput.setEnabled(false); mnReport.setEnabled(true); btnInputAlumni.setEnabled(false); btnRegister.setVisible(false); btnRegister.setEnabled(false); btnCetakAumni.setEnabled(true); mnLogin.setText("Logout"); btnLogin.setToolTipText("Logout"); } } private void btnPetunjukActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if (lblKet.getText().equals("Server tidak ditemukan")) { JOptionPane.showMessageDialog(null, "Pastikan komputer anda terhubung ke Server, hubungi Administrator untuk keterangan lebih lanjut !!"); } else { JOptionPane.showMessageDialog(null, "selamat Datang di Program SI Alumni v.1.0, ini merupakan program berbasis Java RMI"); } } private void mnAplikasiActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void mnKeluarActionPerformed(java.awt.event.Acti onEvent evt) { System.exit(0); }
private void mnRegisterActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: FormRegPengguna f = new FormRegPengguna(ps); f.setVisible(true); } private void mnCetakAlumniActionPerformed(java.awt.event.ActionEvent evt) { try { alumniService.writeLog("Client melihat Report data Alumni"); JasperPrint print = JasperFillManager.fillReport("dataAlumni.jasper",null,conn); JasperViewer.viewReport(print, false); JasperViewer.setDefaultLookAndFeelDecorated(true); } catch (RemoteException ex) { Logger.getLogger(FormMain.class.getName()).log(Level.SEVERE, null, ex); } catch (JRException ex) { ex.printStackTrace(); } } private void btnInputAlumniActionPerformed(java.awt.event.ActionEvent evt) { mnInputAlumniActionPerformed(evt); } private void btnRegisterActionPerformed(java.awt.event.ActionEvent evt) { mnRegisterActionPerformed(evt); } private void btnCetakAumniActionPerformed(java.awt.event.ActionEvent evt) { mnCetakAlumniActionPerformed(evt); }
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) { try { alumniService.writeLog("Client melihat Report data Alumni Berdasarkan Jurusan"); JasperPrint print = JasperFillManager.fillReport("alumniJurusan.jasper",null,conn); JasperViewer.viewReport(print, false); JasperViewer.setDefaultLookAndFeelDecorated(true); } catch (RemoteException ex) { Logger.getLogger(FormMain.class.getName()).log(Level.SEVERE, null, ex); } catch (JRException ex) { ex.printStackTrace(); } } private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) { try { alumniService.writeLog("Client melihat Report data Alumni Berdasarkan Status Lulusan"); JasperPrint print = JasperFillManager.fillReport("alumniStatus.jasper",null,conn); JasperViewer.viewReport(print, false); JasperViewer.setDefaultLookAndFeelDecorated(true); } catch (RemoteException ex) { Logger.getLogger(FormMain.class.getName()).log(Level.SEVERE, null, ex); } catch (JRException ex) { ex.printStackTrace(); } } private void mnReportActionPerformed(java.awt.event.ActionEvent evt) { }
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) { try { alumniService.writeLog("Client melihat Report data Alumni Berdasarkan Nilai Tertinggu Per Jurusan"); JasperPrint print = JasperFillManager.fillReport("nilaiTinggi.jasper",null,conn); JasperViewer.viewReport(print, false); JasperViewer.setDefaultLookAndFeelDecorated(true); } catch (RemoteException ex) { Logger.getLogger(FormMain.class.getName()).log(Level.SEVERE, null, ex); } catch (JRException ex) { ex.printStackTrace(); } } private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) { try { alumniService.writeLog("Client melihat Report data Alumni Jurusan T. Audio Video Berdasarkan Status Lulusan"); JasperPrint print = JasperFillManager.fillReport("av.jasper",null,conn); JasperViewer.viewReport(print, false); JasperViewer.setDefaultLookAndFeelDecorated(true); } catch (RemoteException ex) { Logger.getLogger(FormMain.class.getName()).log(Level.SEVERE, null, ex); } catch (JRException ex) { ex.printStackTrace(); } // TODO add your handling code here: } /**
* @param args the comman d line arguments */ // Variables declaration - do not modify private javax.swing.JButton btnCetakAumni; private javax.swing.JButton btnInputAlumni; private javax.swing.JButton btnKeluar; private javax.swing.JButton btnLogin; private javax.swing.JButton btnPetunjuk; private javax.swing.JButton btnRegister; private javax.swing.JLabel jLabel1; private javax.swing.JMenuBar jMenuBar1; private javax.swing.JMenuItem jMenuItem1; private javax.swing.JMenuItem jMenuItem2; private javax.swing.JMenuItem jMenuItem3; private javax.swing.JMenuItem jMenuItem4; private javax.swing.JPanel jPanel1; private javax.swing.JToolBar jToolBar1; private javax.swing.JLabel lblKet; private javax.swing.JMenu mnAplikasi; private javax.swing.JMenu mnBantuan; private javax.swing.JMenuItem mnCetakAlumni; private javax.swing.JMenu mnInput; private javax.swing.JMenuItem mnInputAlumni; private javax.swing.JMenuItem mnKeluar; private javax.swing.JMenuItem mnLogin; private javax.swing.JMenuItem mnPetunjuk; private javax.swing.JMenuItem mnRegister; private javax.swing.JMenu mnReport; // End of variables declaration public void setservice(final AlumniService service1) {
this.alumniService = service1; if (service1 == null) { lblKet.setText("Server tidak ditemukan"); //lblKet.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jawaxa/simpendikclient/image/notserver.gif"))); } else { lblKet.setText("Server ditemukan, menghubungkan aplikasi ke database .."); //lblKet.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jawaxa/simpendikclient/image/loadingpreview.gif"))); new SwingWorker() { @Override protected Object doInBackground() throws Exception { service1.getAlumni(); lblKet.setText("Server ditemukan, dan server terkoneksi ke database, aplikasi siap dijalankan"); //lblKet.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jawaxa/simpendikclient/image/server.gif"))); return null;
} @Override protected void done() { try { get(); } catch (Exception e) { lblKet.setText("Server ditemukan, namun server tidak terkoneksi ke database"); //lblKet.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jawaxa/simpendikclient/image/notserver.gif"))); } } }.execute(); } } public void setPenggunaservice(PenggunaService service2) { this.ps = service2; } }
Form Registrasi Pengguna
package nopawijaya.client.gui; import java.rmi.RemoteException; import java.util.List; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import nopawijaya.api.entity.Pengguna;
import nopawijaya.api.service.AlumniService; import nopawijaya.api.service.PenggunaService; import nopawijaya.client.model.TabelModelPengguna;
/** * * @author Deden-pc */ public class FormRegPengguna extends javax.swing.JFrame { private TabelModelPengguna tabelModelPengguna = new TabelModelPengguna(); private AlumniService alumniService; private PenggunaService penggunaService; /** Creates new form FormRegPengguna */ public FormRegPengguna(PenggunaService penggunaService) { this.penggunaService = penggunaService; try{ tabelModelPengguna.setData(this.penggunaService.getPengguna()); }catch(RemoteException ex){ ex.printStackTrace(); } initComponents(); tblPengguna.setModel(tabelModelPengguna); tblPengguna.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { int row = tblPengguna.getSelectedRow(); if(row != -1){ Pengguna p = tabelModelPengguna.get(row); txtUsername.setText(p.getUsername()); txtPassword.setText(p.getPassword()); txtTipePengguna.setSelectedItem(p.getTipePengguna()); } } }); }
/** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jLabel1 = new javax.swing.JLabel(); txtUsername = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); txtTipePengguna = new javax.swing.JComboBox(); jPanel1 = new javax.swing.JPanel(); btnInsert = new javax.swing.JButton(); btnUpdate = new javax.swing.JButton(); btnDelete = new javax.swing.JButton(); btnClose = new javax.swing.JButton(); txtPassword = new javax.swing.JPasswordField(); jScrollPane1 = new javax.swing.JScrollPane(); tblPengguna = new org.jdesktop.swingx.JXTable(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setResizable(false); jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18)); jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/Open.png"))); // NOI18N jLabel1.setText("Form Registrasi Pengguna");
jLabel2.setText("Username"); jLabel3.setText("Password"); jLabel4.setText("Tipe Pengguna"); txtTipePengguna.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Pilih salah satu", "Administrator", "Operator", "User" })); btnInsert.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/disk.png"))); // NOI18N btnInsert.setText("Insert"); btnInsert.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnInsertActionPerformed(evt); } }); jPanel1.add(btnInsert); btnUpdate.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/plugin.png"))); // NOI18N btnUpdate.setText("Update"); btnUpdate.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnUpdateActionPerformed(evt); } }); jPanel1.add(btnUpdate); btnDelete.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/bin_closed.png"))); // NOI18N btnDelete.setText("Delete"); btnDelete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { btnDeleteActionPerformed(evt); } }); jPanel1.add(btnDelete); btnClose.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/client/image/lifebuoy.png"))); // NOI18N btnClose.setText("Refresh"); btnClose.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnCloseActionPerformed(evt); } }); jPanel1.add(btnClose); jScrollPane1.setViewportView(tblPengguna); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(10, 10, 10) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 296, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGap(24, 24, 24) .addComponent(jLabel2)
.addGap(71, 71, 71) .addComponent(txtUsername, javax.swing.GroupLayout.PREFERRED_SIZE, 164, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGap(24, 24, 24) .addComponent(jLabel3) .addGap(73, 73, 73) .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 164, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGap(24, 24, 24) .addComponent(jLabel4) .addGap(48, 48, 48) .addComponent(txtTipePengguna, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGap(24, 24, 24) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGap(30, 30, 30) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 360,
javax.swing.GroupLayout.PREFERRED_SIZE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(23, 23, 23) .addComponent(jLabel1) .addGap(30, 30, 30) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel2)) .addComponent(txtUsername, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(6, 6, 6) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel3)) .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(6, 6, 6) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4) .addComponent(txtTipePengguna, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(4, 4, 4) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 273, javax.swing.GroupLayout.PREFERRED_SIZE)) ); pack(); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); java.awt.Dimension dialogSize = getSize(); setLocation((screenSize.width-dialogSize.width)/2,(screenSize.height-dialogSize.height)/2); }// </editor-fold> private void btnInsertActionPerformed(java.awt.event.ActionEvent evt) { try{ Pengguna p = new Pengguna(); p.setUsername(txtUsername.getText()); p.setPassword(txtPassword.getText()); p.setTipePengguna((String) txtTipePengguna.getSelectedItem()); Pengguna pgn = penggunaService.insertPengguna(p);
tabelModelPengguna.insert(pgn); }catch(RemoteException exception){ exception.printStackTrace(); } } private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) { try{ int row = tblPengguna.getSelectedRow(); if(row == -1){ return; } Pengguna p = tabelModelPengguna.get(row); p.setUsername(txtUsername.getText()); p.setPassword(txtPassword.getText()); p.setTipePengguna((String) txtTipePengguna.getSelectedItem()); penggunaService.updatePengguna(p); tabelModelPengguna.update(row, p); }catch(RemoteException exception){ exception.printStackTrace(); } } private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) { try{ int row = tblPengguna.getSelectedRow(); if(row == -1){ return; } String Username = tabelModelPengguna.get(row).getUsername(); penggunaService.deletePengguna(Username); tabelModelPengguna.delete(row);
}catch(RemoteException ex){ ex.printStackTrace(); } } private void btnCloseActionPerformed(java.awt.event.ActionEvent evt) { try{ List<Pengguna> list = penggunaService.getPengguna(); tabelModelPengguna.setData(list); }catch(RemoteException ex){ ex.printStackTrace(); } } /** * @param args the command line arguments */ // Variables declaration - do not modify private javax.swing.JButton btnClose; private javax.swing.JButton btnDelete; private javax.swing.JButton btnInsert;
private javax.swing.JButton btnUpdate; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private org.jdesktop.swingx.JXTable tblPengguna; private javax.swing.JPasswordField txtPassword; private javax.swing.JComboBox txtTipePengguna; private javax.swing.JTextField txtUsername; // End of variables declaration } /* * To change this template, choose Tools | Templates * and open the template in the editor. */
Library package nopawijaya.client.main; import java.net.InetAddress; import java.rmi.NotBoundException; import java.rmi.RemoteException; import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; import javax.swing.SwingUtilities; import nopawijaya.api.service.AlumniService; import nopawijaya.api.service.PenggunaService; import nopawijaya.client.gui.FormMain; /** * * @author Deden-pc */ public class Main {
/** * @param args the command line arguments */ public static void main(String[] args) throws RemoteException, NotBoundException { SwingUtilities.invokeLater(new Runnable() { public void run() { AlumniService service1 = null; PenggunaService service2 = null; try{ Registry registry =
LocateRegistry.getRegistry("192.168.1.1",9999); service1 = (AlumniService) registry.lookup("service1"); service2 = (PenggunaService) registry.lookup("service2"); try{ String s= InetAddress.getLocalHost().toString(); service1.writeLog("Request koneksi dari Client : "+s); }catch(Exception e){} }catch(Exception e){ e.printStackTrace(); } try { Thread.sleep(1500);
} catch (InterruptedException ex) { ex.printStackTrace(); } FormMain formMain = new FormMain(); formMain.setVisible(true); formMain.setservice(service1); formMain.setPenggunaservice(service2); } }); } } /* * To change this template, choose Tools | Templates * and open the template in the editor. */
package nopawijaya.client.model; import java.util.ArrayList; import java.util.List; import javax.swing.table.AbstractTableModel; import nopawijaya.api.entity.Alumni; /** * * @author Deden-pc */ public class TabelModelAlumni extends AbstractTableModel { private List<Alumni> list = new ArrayList<Alumni>(); public TabelModelAlumni() { } public Alumni get(int row){ return list.get(row); } public void insert(Alumni person){ list.add(person); fireTableDataChanged(); } public void update(int row,Alumni person){ list.set(row, person);
fireTableDataChanged(); } public void delete(int row ){ list.remove(row); fireTableDataChanged(); } public void setData(List<Alumni> list){ this.list = list; fireTableDataChanged(); } @Override public String getColumnName(int column) { switch(column){ case 0 : return "No Induk"; case 1 : return "Nama Depan"; case 2 : return "Nama Belakang"; case 3 : return "JK"; case 4 : return "Tempat Lahir"; case 5 : return "Tanggal Lahir"; case 6 : return "Alamat";
case 7 : return "Jurusan"; case 8 : return "Status"; case 9 : return "Tahun Lulus"; case 10 : return "Rerata Nilai"; default: return null; } } public int getRowCount() { return list.size(); } public int getColumnCount() { return 11; } public Object getValueAt(int rowIndex, int columnIndex) { switch(columnIndex){ case 0 : return list.get(rowIndex).getNoInduk(); case 1 : return list.get(rowIndex).getNamaDepan(); case 2 : return list.get(rowIndex).getNamaBelakang(); case 3 : return list.get(rowIndex).getJk();
case 4 : return list.get(rowIndex).getTempatLahir(); case 5 : return list.get(rowIndex).getTanggalLahir(); case 6 : return list.get(rowIndex).getAlamat(); case 7 : return list.get(rowIndex).getJurusan(); case 8 : return list.get(rowIndex).getStatus(); case 9 : return list.get(rowIndex).getTahunLulus(); case 10 : return list.get(rowIndex).getRerataNilai(); default: return null; } } } /* * To change this template, choose Tools | Templates * and open the template in the editor. */
package nopawijaya.client.model; import java.util.ArrayList; import java.util.List; import javax.swing.table.AbstractTableModel; import nopawijaya.api.entity.Pengguna; /** * * @author Deden-pc */ public class TabelModelPengguna extends AbstractTableModel{ private List<Pengguna> list = new ArrayList<Pengguna>(); public TabelModelPengguna(){ } public Pengguna get(int row){ return list.get(row); }
public void insert(Pengguna p){ list.add(p); fireTableDataChanged(); } public void update(int row,Pengguna p){ list.set(row, p); fireTableDataChanged(); } public void delete(int row ){ list.remove(row); fireTableDataChanged(); } public void setData(List<Pengguna> list){ this.list = list; fireTableDataChanged(); } @Override public String getColumnName(int column) { switch(column){
case 0 : return "Username"; case 1 : return "Password"; case 2 : return "Tipe Pengguna"; default: return null; } } public int getRowCount() { return list.size(); } public int getColumnCount() { return 3;
} public Object getValueAt(int rowIndex, int columnIndex) { switch(columnIndex){ case 0 : return list.get(rowIndex).getUsername(); case 1 : return list.get(rowIndex).getPassword(); case 2 : return list.get(rowIndex).getTipePengguna(); default: return null; } } }
Report Data Alumni <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="null" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"> <queryString language="SQL"> <![CDATA[SELECT alumni.`noInduk` AS alumni_noInduk, alumni.`namaDepan` AS alumni_namaDepan, alumni.`namaBelakang` AS alumni_namaBelakang, alumni.`jk` AS alumni_jk, alumni.`tempatLahir` AS alumni_tempatLahir, alumni.`tanggalLahir` AS alumni_tanggalLahir, alumni.`alamat` AS alumni_alamat, alumni.`jurusan` AS alumni_jurusan, alumni.`status` AS alumni_status, alumni.`tahunLulus` AS alumni_tahunLulus, alumni.`rerataNilai` AS alumni_rerataNilai FROM `alumni` alumni]]>
</queryString> <field name="alumni_noInduk" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_namaDepan" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_namaBelakang" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_jk" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tempatLahir" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tanggalLahir" class="java.sql.Date"> <fieldDescription><![CDATA[]]></fieldDescription> </field>
<field name="alumni_alamat" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_jurusan" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_status" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tahunLulus" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_rerataNilai" class="java.lang.Long"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <background> <band splitType="Stretch"/> </background> <title> <band height="123" splitType="Stretch"> <line> <reportElement x="0" y="8" width="555" height="1"/> </line> <line> <reportElement positionType="FixRelativeToBottom" x="0" y="79" width="555" height="1"/> </line> <staticText> <reportElement x="65" y="13" width="424" height="35"/> <textElement textAlignment="Center"> <font fontName="SansSerif" size="26" isBold="true"/>
</textElement> <text><![CDATA[SMK Negeri 2 Garut]]></text> </staticText> <staticText> <reportElement x="65" y="52" width="424" height="35"/> <textElement textAlignment="Center"> <font size="14" isBold="true"/> </textElement> <text><![CDATA[Jalan Suherman No. 9 Tarogong Garut]]></text> </staticText> <staticText> <reportElement x="1" y="88" width="424" height="35"/> <textElement textAlignment="Left"> <font fontName="SansSerif" size="24" isBold="true" isItalic="false" isUnderline="true"/> </textElement> <text><![CDATA[Cetak Data Alumni]]></text> </staticText> </band> </title> <pageHeader> <band splitType="Stretch"/> </pageHeader> <columnHeader> <band height="18" splitType="Stretch"> <staticText> <reportElement mode="Opaque" x="0" y="0" width="50" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/>
</textElement> <text><![CDATA[No Induk]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="50" y="0" width="100" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Nama]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="150" y="0" width="70" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Jk]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="220" y="0" width="120" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Tmpt, Tgl Lahir]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="340" y="0" width="118" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement>
<font size="12"/> </textElement> <text><![CDATA[alumni_jurusan]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="458" y="0" width="62" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Thn Lulus]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="520" y="0" width="35" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[r-Nilai]]></text> </staticText> </band> </columnHeader> <detail> <band height="22" splitType="Stretch"> <textField> <reportElement x="0" y="0" width="50" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_noInduk}]]></textFieldExpression> </textField>
<textField> <reportElement x="50" y="0" width="100" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_namaDepan}+" "+$F{alumni_namaBelakang}]]></textFieldExpression> </textField> <textField> <reportElement x="150" y="0" width="70" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_jk}]]></textFieldExpression> </textField> <textField> <reportElement x="218" y="0" width="120" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_tempatLahir}+","+$F{alumni_tanggalLahir}]]></textFieldExpression> </textField> <textField> <reportElement x="338" y="0" width="120" height="20"/> <textElement> <font size="12"/> </textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_jurusan}]]></textFieldExpression> </textField> <textField> <reportElement x="458" y="0" width="50" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_tahunLulus}]]></textFieldExpression> </textField> <textField> <reportElement x="531" y="0" width="24" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.Long"><![CDATA[$F{alumni_rerataNilai}]]></textFieldExpression> </textField> </band> </detail> <columnFooter> <band splitType="Stretch"/> </columnFooter> <pageFooter> <band height="151" splitType="Stretch"> <textField evaluationTime="Report" pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="512" y="132" width="36" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement> <font size="10"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA["" + $V{PAGE_NUMBER}]]></textFieldExpression> </textField> <textField pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="338" y="132" width="170" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement textAlignment="Right"> <font size="10"/> </textElement>
<textFieldExpression class="java.lang.String"><![CDATA["Page " + $V{PAGE_NUMBER} + " of "]]></textFieldExpression> </textField> <textField pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="1" y="132" width="209" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement> <font size="10"/> </textElement> <textFieldExpression class="java.util.Date"><![CDATA[new Date()]]></textFieldExpression> </textField> <staticText> <reportElement x="493" y="38" width="62" height="20"/> <textElement/> <text><![CDATA[Mengetahuli,]]></text> </staticText> <staticText> <reportElement x="397" y="87" width="158" height="20"/> <textElement>
<font isBold="true"/> </textElement> <text><![CDATA[Kepala Sekolah SMK Negeri 2 Garut]]></text> </staticText> <staticText> <reportElement x="442" y="18" width="113" height="20"/>
<textElement/> <text><![CDATA[Garut, September 2010]]></text> </staticText> </band> </pageFooter> <summary> <band splitType="Stretch"/> </summary> </jasperReport>
Report Data Alumni Jurusan T. Audio Video yang Status Lulusannya Bekerja <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="null" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"> <queryString language="SQL"> <![CDATA[SELECT alumni.`namaDepan` AS alumni_namaDepan, alumni.`noInduk` AS alumni_noInduk, alumni.`namaBelakang` AS alumni_namaBelakang, alumni.`jk` AS alumni_jk, alumni.`tempatLahir` AS alumni_tempatLahir, alumni.`tanggalLahir` AS alumni_tanggalLahir, alumni.`alamat` AS alumni_alamat, alumni.`jurusan` AS alumni_jurusan, alumni.`status` AS alumni_status, alumni.`tahunLulus` AS alumni_tahunLulus, alumni.`rerataNilai` AS alumni_rerataNilai FROM `alumni` alumni where alumni.`jurusan` = "T. Audio Video" and alumni.`status` = "Bekerja" order by alumni.`rerataNilai` desc]]>
</queryString> <field name="alumni_namaDepan" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_noInduk" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_namaBelakang" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_jk" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tempatLahir" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tanggalLahir" class="java.sql.Date"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_alamat" class="java.lang.String">
<fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_jurusan" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_status" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tahunLulus" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_rerataNilai" class="java.lang.Long"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <background> <band splitType="Stretch"/> </background> <title> <band height="58" splitType="Stretch"> <line> <reportElement x="0" y="8" width="555" height="1"/> </line> <line> <reportElement x="0" y="51" width="555" height="1"/> </line> <staticText> <reportElement x="65" y="13" width="424" height="35"/> <textElement textAlignment="Center"> <font size="26" isBold="true"/> </textElement>
<text><![CDATA[Classic template]]></text> </staticText> </band> </title> <pageHeader> <band splitType="Stretch"/> </pageHeader> <columnHeader> <band height="18" splitType="Stretch"> <staticText> <reportElement mode="Opaque" x="0" y="0" width="50" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[No Induk]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="50" y="0" width="100" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Nama]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="150" y="0" width="50" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Jk]]></text> </staticText> <staticText>
<reportElement mode="Opaque" x="200" y="0" width="100" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Tmpt, Tgl Lahir]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="300" y="0" width="50" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[alumni_alamat]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="450" y="0" width="50" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[alumni_tahunLulus]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="500" y="0" width="50" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement>
<text><![CDATA[alumni_rerataNilai]]></text> </staticText> </band> </columnHeader> <detail> <band height="20" splitType="Stretch"> <textField> <reportElement x="0" y="0" width="50" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_noInduk}]]></textFieldExpression> </textField> <textField> <reportElement x="150" y="0" width="50" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_jk}]]></textFieldExpression> </textField> <textField> <reportElement x="200" y="0" width="50" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_tempatLahir}+","+$F{alumni_tanggalLahir}]]></textFieldExpression> </textField> <textField>
<reportElement x="250" y="0" width="50" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.util.Date"><![CDATA[$F{alumni_tanggalLahir}]]></textFieldExpression> </textField> <textField> <reportElement x="300" y="0" width="50" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_alamat}]]></textFieldExpression> </textField> <textField> <reportElement x="450" y="0" width="50" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_tahunLulus}]]></textFieldExpression> </textField> <textField> <reportElement x="500" y="0" width="50" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.Long"><![CDATA[$F
{alumni_rerataNilai}]]></textFieldExpression> </textField> <textField> <reportElement x="50" y="0" width="50" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_namaDepan}+" "+$F{alumni_namaBelakang}]]></textFieldExpression> </textField> </band> </detail> <columnFooter> <band splitType="Stretch"/> </columnFooter> <pageFooter> <band height="26" splitType="Stretch"> <textField evaluationTime="Report" pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="516" y="6" width="36" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement> <font size="10"/>
</textElement> <textFieldExpression class="java.lang.String"><![CDATA["" + $V{PAGE_NUMBER}]]></textFieldExpression> </textField> <textField pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="342" y="6" width="170" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement textAlignment="Right"> <font size="10"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA["Page " + $V{PAGE_NUMBER} + " of "]]></textFieldExpression>
</textField> <textField pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="1" y="6" width="209" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement> <font size="10"/> </textElement> <textFieldExpression class="java.util.Date"><![CDATA[new Date()]]></textFieldExpression> </textField> </band> </pageFooter> <summary> <band splitType="Stretch"/> </summary> </jasperReport>
Report Data Alumni Berdasarkan Jurusan <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports
http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="null" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"> <queryString language="SQL"> <![CDATA[SELECT alumni.`noInduk` AS alumni_noInduk,
alumni.`namaDepan` AS alumni_namaDepan, alumni.`namaBelakang` AS alumni_namaBelakang, alumni.`jk` AS alumni_jk, alumni.`tempatLahir` AS alumni_tempatLahir, alumni.`tanggalLahir` AS alumni_tanggalLahir, alumni.`alamat` AS alumni_alamat, alumni.`jurusan` AS alumni_jurusan, alumni.`status` AS alumni_status, alumni.`tahunLulus` AS alumni_tahunLulus, alumni.`rerataNilai` AS alumni_rerataNilai FROM `alumni` alumni]]> </queryString> <field name="alumni_noInduk" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_namaDepan" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_namaBelakang" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_jk" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tempatLahir" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tanggalLahir" class="java.sql.Date"> <fieldDescription><![CDATA[]]></fieldDescription>
</field> <field name="alumni_alamat" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_jurusan" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_status" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tahunLulus" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_rerataNilai" class="java.lang.Long"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <group name="alumni_jurusan"> <groupExpression><![CDATA[$F{alumni_jurusan}]]></groupExpression> <groupHeader> <band height="27" splitType="Stretch"> <staticText> <reportElement mode="Opaque" x="0" y="0" width="139" height="27" forecolor="#FFFFFF" backcolor="#000000"/> <textElement> <font size="18"/> </textElement> <text><![CDATA[Jurusan]]></text> </staticText>
<textField> <reportElement mode="Opaque" x="139" y="0" width="416" height="27" forecolor="#FFFFFF" backcolor="#000000"/> <textElement> <font size="18" isBold="true"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_jurusan}]]></textFieldExpression> </textField> </band> </groupHeader> <groupFooter> <band height="8" splitType="Stretch"> <line direction="BottomUp"> <reportElement key="line" x="1" y="4" width="554" height="1"/> </line> </band> </groupFooter> </group> <background> <band splitType="Stretch"/> </background> <title> <band height="132" splitType="Stretch"> <line> <reportElement x="0" y="8" width="555" height="1"/> </line> <line> <reportElement positionType="FixRelativeToBottom" x="0" y="67" width="555" height="1"/> </line> <staticText> <reportElement x="75" y="42" width="424" height="35"/>
<textElement textAlignment="Center"> <font size="14" isBold="true"/> </textElement> <text><![CDATA[Jalan Suherman No. 9 Tarogong Garut]]></text> </staticText> <staticText> <reportElement x="75" y="10" width="424" height="35"/> <textElement textAlignment="Center"> <font fontName="SansSerif" size="26" isBold="true"/> </textElement> <text><![CDATA[SMK Negeri 2 Garut]]></text> </staticText> <staticText> <reportElement x="3" y="88" width="501" height="35"/> <textElement textAlignment="Left"> <font fontName="SansSerif" size="22" isBold="true" isItalic="false" isUnderline="true"/> </textElement> <text><![CDATA[Report Data Alumni Berdasarkan Jurusan]]></text> </staticText> </band> </title> <pageHeader> <band splitType="Stretch"/> </pageHeader> <columnHeader> <band height="18" splitType="Stretch"> <staticText> <reportElement mode="Opaque" x="0" y="0" width="65" height="18"
forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[No Induk]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="65" y="0" width="136" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Nama]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="201" y="0" width="80" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Jk]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="281" y="0" width="121" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Tmpt, Tgl Lahir]]></text> </staticText> <staticText>
<reportElement mode="Opaque" x="402" y="0" width="93" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Status]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="495" y="0" width="60" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[r-Nilai]]></text> </staticText> </band> </columnHeader> <detail> <band height="20" splitType="Stretch"> <textField> <reportElement x="0" y="0" width="65" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_noInduk}]]></textFieldExpression> </textField> <textField> <reportElement x="65" y="0" width="136" height="20"/> <textElement> <font size="12"/>
</textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_namaDepan}+" "+$F{alumni_namaBelakang}]]></textFieldExpression> </textField> <textField> <reportElement x="201" y="0" width="80" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_jk}]]></textFieldExpression> </textField> <textField> <reportElement x="281" y="0" width="121" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_tempatLahir}+","+$F{alumni_tanggalLahir}]]></textFieldExpression> </textField> <textField> <reportElement x="402" y="0" width="93" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_status}]]></textFieldExpression> </textField> <textField>
<reportElement x="495" y="0" width="55" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.Long"><![CDATA[$F{alumni_rerataNilai}]]></textFieldExpression> </textField> </band> </detail> <columnFooter> <band splitType="Stretch"/> </columnFooter> <pageFooter> <band height="125" splitType="Stretch"> <textField evaluationTime="Report" pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="518" y="105" width="36" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement> <font size="10"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA["" +
$V{PAGE_NUMBER}]]></textFieldExpression> </textField> <textField pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="344" y="105" width="170" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement textAlignment="Right"> <font size="10"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA["Page " + $V{PAGE_NUMBER} + " of "]]></textFieldExpression> </textField> <textField pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="3" y="105" width="209" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement> <font size="10"/> </textElement> <textFieldExpression class="java.util.Date"><![CDATA[new Date()]]></textFieldExpression> </textField> <staticText> <reportElement x="498" y="36" width="62" height="20"/> <textElement/> <text><![CDATA[Mengetahuli,]]></text> </staticText> <staticText> <reportElement x="384" y="85" width="175" height="20"/> <textElement> <font isBold="true"/> </textElement> <text><![CDATA[Kepala Sekolah SMK Negeri 2 Garut]]></text> </staticText> <staticText> <reportElement x="447" y="16" width="113" height="20"/> <textElement/> <text><![CDATA[Garut, September 2010]]></text> </staticText> </band> </pageFooter> <summary> <band splitType="Stretch"/> </summary>
</jasperReport> Report Data Alumni Bedasarkan Status <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="null" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"> <queryString language="SQL"> <![CDATA[SELECT alumni.`noInduk` AS alumni_noInduk, alumni.`namaDepan` AS alumni_namaDepan, alumni.`jk` AS alumni_jk, alumni.`namaBelakang` AS alumni_namaBelakang, alumni.`tempatLahir` AS alumni_tempatLahir, alumni.`tanggalLahir` AS alumni_tanggalLahir, alumni.`alamat` AS alumni_alamat, alumni.`jurusan` AS alumni_jurusan, alumni.`status` AS alumni_status, alumni.`tahunLulus` AS alumni_tahunLulus, alumni.`rerataNilai` AS alumni_rerataNilai FROM `alumni` alumni]]> </queryString> <field name="alumni_noInduk" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_namaDepan" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_jk" class="java.lang.String">
<fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_namaBelakang" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tempatLahir" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tanggalLahir" class="java.sql.Date"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_alamat" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_jurusan" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_status" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tahunLulus" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_rerataNilai" class="java.lang.Long"> <fieldDescription><![CDATA[]]></fieldDescription> </field>
<group name="alumni_status"> <groupExpression><![CDATA[$F{alumni_status}]]></groupExpression> <groupHeader> <band height="27" splitType="Stretch"> <staticText> <reportElement mode="Opaque" x="0" y="0" width="200" height="27" forecolor="#FFFFFF" backcolor="#000000"/> <textElement> <font size="18"/> </textElement> <text><![CDATA[Status Lulusan Alumni :]]></text> </staticText> <textField> <reportElement mode="Opaque" x="200" y="0" width="355" height="27" forecolor="#FFFFFF" backcolor="#000000"/> <textElement> <font size="18" isBold="true"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_status}]]></textFieldExpression> </textField> </band> </groupHeader> <groupFooter> <band height="8" splitType="Stretch"> <line direction="BottomUp"> <reportElement key="line" x="1" y="4" width="554" height="1"/> </line> </band> </groupFooter>
</group> <background> <band splitType="Stretch"/> </background> <title> <band height="117" splitType="Stretch"> <line> <reportElement x="0" y="8" width="555" height="1"/> </line> <line> <reportElement positionType="FixRelativeToBottom" x="10" y="67" width="555" height="1"/> </line> <staticText> <reportElement x="85" y="41" width="424" height="35"/> <textElement textAlignment="Center"> <font size="14" isBold="true"/> </textElement> <text><![CDATA[Jalan Suherman No. 9 Tarogong Garut]]></text> </staticText> <staticText> <reportElement x="10" y="78" width="530" height="35"/> <textElement textAlignment="Left"> <font fontName="SansSerif" size="22" isBold="true" isItalic="false" isUnderline="true"/> </textElement> <text><![CDATA[Report Data Alumni Berdasarkan Status Lulusan]]></text> </staticText> <staticText> <reportElement x="85" y="9" width="424" height="35"/>
<textElement textAlignment="Center"> <font fontName="SansSerif" size="26" isBold="true"/> </textElement> <text><![CDATA[SMK Negeri 2 Garut]]></text> </staticText> </band> </title> <pageHeader> <band splitType="Stretch"/> </pageHeader> <columnHeader> <band height="18" splitType="Stretch"> <staticText> <reportElement mode="Opaque" x="0" y="0" width="55" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[No Induk]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="55" y="0" width="110" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Nama]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="165" y="0" width="74" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement>
<font size="12"/> </textElement> <text><![CDATA[Jk]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="239" y="0" width="91" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Tmpt, Tgl Lahir]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="330" y="0" width="84" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Alamat]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="414" y="0" width="95" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Jurusan]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="509" y="0" width="46" height="18" forecolor="#FFFFFF" backcolor="#999999"/>
<textElement> <font size="12"/> </textElement> <text><![CDATA[Lulusan]]></text> </staticText> </band> </columnHeader> <detail> <band height="20" splitType="Stretch"> <textField> <reportElement x="0" y="0" width="55" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_noInduk}]]></textFieldExpression> </textField> <textField> <reportElement x="55" y="0" width="110" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_namaDepan}+" "+$F{alumni_namaBelakang}]]></textFieldExpression> </textField> <textField> <reportElement x="165" y="0" width="74" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[
$F{alumni_jk}]]></textFieldExpression> </textField> <textField> <reportElement x="239" y="0" width="91" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_tempatLahir}+","+$F{alumni_tanggalLahir}]]></textFieldExpression> </textField> <textField> <reportElement x="330" y="0" width="84" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_alamat}]]></textFieldExpression> </textField> <textField> <reportElement x="414" y="0" width="95" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_jurusan}]]></textFieldExpression> </textField> <textField> <reportElement x="509" y="0" width="46" height="20"/> <textElement> <font size="12"/>
</textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_tahunLulus}]]></textFieldExpression> </textField> </band> </detail> <columnFooter> <band splitType="Stretch"/> </columnFooter> <pageFooter> <band height="133" splitType="Stretch"> <textField evaluationTime="Report" pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="518" y="108" width="36" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement> <font size="10"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA["" + $V{PAGE_NUMBER}]]></textFieldExpression> </textField> <textField pattern="" isBlankWhenNull="false">
<reportElement key="textField" x="344" y="108" width="170" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement textAlignment="Right"> <font size="10"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA["Page " + $V{PAGE_NUMBER} + " of "]]></textFieldExpression> </textField> <textField pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="3" y="108" width="209" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0"
lineStyle="Solid" lineColor="#000000"/> </box> <textElement> <font size="10"/> </textElement> <textFieldExpression class="java.util.Date"><![CDATA[new Date()]]></textFieldExpression> </textField> <staticText> <reportElement x="385" y="87" width="175" height="20"/> <textElement> <font isBold="true"/> </textElement> <text><![CDATA[Kepala Sekolah SMK Negeri 2 Garut]]></text>
</staticText> <staticText> <reportElement x="448" y="18" width="113" height="20"/> <textElement/> <text><![CDATA[Garut, September 2010]]></text> </staticText> <staticText> <reportElement x="499" y="38" width="62" height="20"/> <textElement/> <text><![CDATA[Mengetahuli,]]></text> </staticText> </band> </pageFooter> <summary> <band splitType="Stretch"/> </summary> </jasperReport>
Report Data Alumni Jurusan T. Audio Video <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="null" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"> <queryString language="SQL"> <![CDATA[SELECT alumni.`noInduk` AS alumni_noInduk, alumni.`namaDepan` AS alumni_namaDepan, alumni.`namaBelakang` AS alumni_namaBelakang, alumni.`jk` AS alumni_jk, alumni.`tempatLahir` AS alumni_tempatLahir, alumni.`tanggalLahir` AS alumni_tanggalLahir,
alumni.`alamat` AS alumni_alamat, alumni.`jurusan` AS alumni_jurusan, alumni.`status` AS alumni_status, alumni.`tahunLulus` AS alumni_tahunLulus, alumni.`rerataNilai` AS alumni_rerataNilai FROM `alumni` alumni where alumni.`jurusan` = "T. Audio Video"]]> </queryString> <field name="alumni_noInduk" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_namaDepan" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field>
<field name="alumni_namaBelakang" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_jk" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tempatLahir" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tanggalLahir" class="java.sql.Date"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_alamat" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_jurusan" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_status" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tahunLulus" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_rerataNilai" class="java.lang.Long"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <group name="alumni_status">
<groupExpression><![CDATA[$F{alumni_status}]]></groupExpression> <groupHeader> <band height="27" splitType="Stretch"> <staticText> <reportElement mode="Opaque" x="0" y="0" width="139" height="27" forecolor="#FFFFFF" backcolor="#000000"/> <textElement> <font size="18"/> </textElement> <text><![CDATA[Status Lulusan]]></text> </staticText> <textField> <reportElement mode="Opaque" x="139" y="0" width="416" height="27" forecolor="#FFFFFF" backcolor="#000000"/> <textElement> <font size="18" isBold="true"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_status}]]></textFieldExpression> </textField> </band> </groupHeader> <groupFooter> <band height="8" splitType="Stretch"> <line direction="BottomUp"> <reportElement key="line" x="1" y="4" width="554" height="1"/> </line> </band> </groupFooter> </group>
<background> <band splitType="Stretch"/> </background> <title> <band height="133" splitType="Stretch"> <line> <reportElement x="0" y="8" width="555" height="1"/> </line> <line> <reportElement x="0" y="71" width="555" height="1"/> </line> <staticText> <reportElement x="10" y="97" width="530" height="35"/> <textElement> <font fontName="SansSerif" size="18" isBold="true" isItalic="false" isUnderline="true"/> </textElement> <text><![CDATA[Report Status Data Alumni Jurusan T. Audio Video tahun 2010]]></text> </staticText> <staticText> <reportElement x="76" y="40" width="424" height="35"/> <textElement textAlignment="Center"> <font size="14" isBold="true"/> </textElement> <text><![CDATA[Jalan Suherman No. 9 Tarogong Garut]]></text> </staticText> <staticText> <reportElement x="76" y="8" width="424" height="35"/> <textElement textAlignment="Center">
<font fontName="SansSerif" size="26" isBold="true"/> </textElement> <text><![CDATA[SMK Negeri 2 Garut]]></text> </staticText> </band> </title> <pageHeader> <band splitType="Stretch"/> </pageHeader> <columnHeader> <band height="18" splitType="Stretch"> <staticText> <reportElement mode="Opaque" x="0" y="0" width="55" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[No Induk]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="55" y="0" width="112" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Nama]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="167" y="0" width="94" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/>
</textElement> <text><![CDATA[Jk]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="261" y="0" width="124" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Tmpt, Tgl Lahir]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="380" y="0" width="115" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Alamat]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="495" y="0" width="60" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[r-Nilai]]></text> </staticText> </band> </columnHeader> <detail> <band height="20" splitType="Stretch"> <textField>
<reportElement x="0" y="0" width="55" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_noInduk}]]></textFieldExpression> </textField> <textField> <reportElement x="55" y="0" width="112" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_namaDepan}+" "+$F{alumni_namaBelakang}]]></textFieldExpression> </textField> <textField> <reportElement x="167" y="0" width="69" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_jk}]]></textFieldExpression> </textField> <textField> <reportElement x="261" y="0" width="124" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[
$F{alumni_tempatLahir}+","+$F{alumni_tanggalLahir}]]></textFieldExpression> </textField> <textField> <reportElement x="380" y="0" width="115" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_alamat}]]></textFieldExpression> </textField> <textField> <reportElement x="495" y="0" width="60" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.Long"><![CDATA[$F{alumni_rerataNilai}]]></textFieldExpression> </textField> </band> </detail> <columnFooter> <band splitType="Stretch"/> </columnFooter> <pageFooter> <band height="134" splitType="Stretch"> <textField evaluationTime="Report" pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="519" y="115" width="36" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0"
lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement> <font size="10"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA["" + $V{PAGE_NUMBER}]]></textFieldExpression> </textField> <textField pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="345" y="115" width="170" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement textAlignment="Right"> <font size="10"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[
"Page " + $V{PAGE_NUMBER} + " of "]]></textFieldExpression> </textField> <textField pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="4" y="115" width="209" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement> <font size="10"/> </textElement> <textFieldExpression class="java.util.Date"><![CDATA[new Date()]]></textFieldExpression> </textField> <staticText>
<reportElement x="385" y="96" width="175" height="20"/> <textElement> <font isBold="true"/> </textElement> <text><![CDATA[Kepala Sekolah SMK Negeri 2 Garut]]></text> </staticText> <staticText> <reportElement x="499" y="47" width="62" height="20"/> <textElement/> <text><![CDATA[Mengetahuli,]]></text> </staticText> <staticText> <reportElement x="448" y="27" width="113" height="20"/> <textElement/> <text><![CDATA[Garut, September 2010]]></text> </staticText> </band> </pageFooter> <summary> <band splitType="Stretch"/> </summary> </jasperReport>
Report Data Alumni Berdasarkan Nilai Terbesar <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="null" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<queryString language="SQL"> <![CDATA[SELECT alumni.`noInduk` AS alumni_noInduk, alumni.`namaDepan` AS alumni_namaDepan, alumni.`namaBelakang` AS alumni_namaBelakang, alumni.`jk` AS alumni_jk, alumni.`tempatLahir` AS alumni_tempatLahir, alumni.`tanggalLahir` AS alumni_tanggalLahir, alumni.`alamat` AS alumni_alamat,
alumni.`jurusan` AS alumni_jurusan, alumni.`status` AS alumni_status, alumni.`tahunLulus` AS alumni_tahunLulus, alumni.`rerataNilai` AS alumni_rerataNilai FROM `alumni` alumni order by alumni.`rerataNilai` desc]]> </queryString> <field name="alumni_noInduk" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_namaDepan" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_namaBelakang" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_jk" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tempatLahir" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tanggalLahir" class="java.sql.Date"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_alamat" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_jurusan" class="java.lang.String">
<fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_status" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_tahunLulus" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="alumni_rerataNilai" class="java.lang.Long"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <group name="alumni_jurusan"> <groupExpression><![CDATA[$F{alumni_jurusan}]]></groupExpression> <groupHeader> <band height="27" splitType="Stretch"> <staticText> <reportElement mode="Opaque" x="0" y="0" width="139" height="27" forecolor="#FFFFFF" backcolor="#000000"/> <textElement> <font size="18"/> </textElement> <text><![CDATA[Jurusan]]></text> </staticText> <textField> <reportElement mode="Opaque" x="139" y="0" width="416" height="27" forecolor="#FFFFFF" backcolor="#000000"/> <textElement>
<font size="18" isBold="true"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_jurusan}]]></textFieldExpression> </textField> </band> </groupHeader> <groupFooter> <band height="8" splitType="Stretch"> <line direction="BottomUp"> <reportElement key="line" x="1" y="4" width="554" height="1"/> </line> </band> </groupFooter> </group> <background> <band splitType="Stretch"/> </background> <title> <band height="127" splitType="Stretch"> <line> <reportElement x="0" y="8" width="555" height="1"/> </line> <line> <reportElement x="1" y="66" width="555" height="1"/> </line> <staticText> <reportElement x="92" y="39" width="424" height="35"/> <textElement textAlignment="Center"> <font size="14" isBold="true"/> </textElement> <text><![CDATA[Jalan Suherman No. 9 Tarogong Garut]]></text> </staticText>
<staticText> <reportElement x="92" y="7" width="424" height="35"/> <textElement textAlignment="Center"> <font fontName="SansSerif" size="26" isBold="true"/> </textElement> <text><![CDATA[SMK Negeri 2 Garut]]></text> </staticText> <staticText> <reportElement x="0" y="87" width="530" height="35"/> <textElement> <font fontName="SansSerif" size="18" isBold="true" isItalic="false" isUnderline="true"/> </textElement> <text><![CDATA[Report Data Alumni Berdasarkan Urutan Nilai Tertinggi Perjurusan]]></text> </staticText> </band> </title> <pageHeader> <band splitType="Stretch"/> </pageHeader> <columnHeader> <band height="18" splitType="Stretch"> <staticText> <reportElement mode="Opaque" x="0" y="0" width="55" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[No Induk]]></text> </staticText> <staticText>
<reportElement mode="Opaque" x="55" y="0" width="110" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Nama]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="165" y="0" width="55" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Jk]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="220" y="0" width="110" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Tmpt, Tgl Lahir]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="330" y="0" width="110" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Alamat]]></text>
</staticText> <staticText> <reportElement mode="Opaque" x="440" y="0" width="55" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[Tahun Lulusan]]></text> </staticText> <staticText> <reportElement mode="Opaque" x="495" y="0" width="55" height="18" forecolor="#FFFFFF" backcolor="#999999"/> <textElement> <font size="12"/> </textElement> <text><![CDATA[r-Nilai]]></text> </staticText> </band> </columnHeader> <detail> <band height="20" splitType="Stretch"> <textField> <reportElement x="0" y="0" width="55" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_noInduk}]]></textFieldExpression> </textField> <textField> <reportElement x="55" y="0" width="110" height="20"/> <textElement>
<font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_namaDepan}+" "+$F{alumni_namaBelakang}]]></textFieldExpression> </textField> <textField> <reportElement x="165" y="0" width="55" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_jk}]]></textFieldExpression> </textField> <textField> <reportElement x="220" y="0" width="110" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_tempatLahir}+","+$F{alumni_tanggalLahir}]]></textFieldExpression> </textField> <textField> <reportElement x="330" y="0" width="112" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_alamat}]]></textFieldExpression> </textField> <textField>
<reportElement x="440" y="0" width="55" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA[$F{alumni_tahunLulus}]]></textFieldExpression> </textField> <textField> <reportElement x="495" y="0" width="55" height="20"/> <textElement> <font size="12"/> </textElement> <textFieldExpression class="java.lang.Long"><![CDATA[$F{alumni_rerataNilai}]]></textFieldExpression> </textField> </band> </detail> <columnFooter> <band splitType="Stretch"/> </columnFooter> <pageFooter> <band height="144" splitType="Stretch"> <textField evaluationTime="Report" pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="516" y="114" width="36" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0"
lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement> <font size="10"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA["" + $V{PAGE_NUMBER}]]></textFieldExpression> </textField> <textField pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="342" y="114" width="170" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement textAlignment="Right"> <font size="10"/> </textElement> <textFieldExpression class="java.lang.String"><![CDATA["Page " + $V{PAGE_NUMBER} + " of "]]></textFieldExpression> </textField>
<textField pattern="" isBlankWhenNull="false"> <reportElement key="textField" x="1" y="114" width="209" height="19" forecolor="#000000" backcolor="#FFFFFF"/> <box> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> </box> <textElement> <font size="10"/> </textElement> <textFieldExpression class="java.util.Date"><![CDATA[new Date()]]></textFieldExpression> </textField> <staticText> <reportElement x="379" y="90" width="175" height="20"/> <textElement> <font isBold="true"/> </textElement> <text><![CDATA[Kepala Sekolah SMK Negeri 2 Garut]]></text> </staticText> <staticText> <reportElement x="442" y="21" width="113" height="20"/> <textElement/>
<text><![CDATA[Garut, September 2010]]></text> </staticText> <staticText> <reportElement x="493" y="41" width="62" height="20"/> <textElement/>
<text><![CDATA[Mengetahuli,]]></text> </staticText> </band> </pageFooter> <summary> <band splitType="Stretch"/> </summary> </jasperReport>
Form Server SI Alumni
package nopawijaya.server.gui; import javax.swing.Icon; /** * * @author Deden-pc */ public class FormServer extends javax.swing.JFrame { public static void setStatus(String s) { lblServerStatus.setText(s); } public static void setDbStatus(String s, Icon i) { lblDbStatus.setText(s); lblDbStatus.setIcon(i); } /** Creates new form FrameServer */ public FormServer() {
initComponents(); } public static void writeLog(String s){ jTextArea1.append(s+"\n"); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jScrollPane1 = new javax.swing.JScrollPane(); jTextArea1 = new javax.swing.JTextArea();
jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); lblServerStatus = new javax.swing.JLabel(); lblDbStatus = new javax.swing.JLabel(); jPanel1 = new javax.swing.JPanel(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); setTitle("Server"); jTextArea1.setColumns(20); jTextArea1.setRows(5); jScrollPane1.setViewportView(jTextArea1); jLabel1.setText("Sistem Informasi Pengolahan Data Alumni"); jLabel2.setFont(new java.awt.Font("Tahoma", 1, 28)); // NOI18N jLabel2.setForeground(new java.awt.Color(0, 102, 102)); jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/server/computer_48.png"))); // NOI18N jLabel2.setText("SI Alumni SMK Negeri 2 Garut"); jLabel3.setFont(new java.awt.Font("Tahoma", 1, 18)); jLabel3.setText("SERVER"); lblServerStatus.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/server/database.png"))); // NOI18N lblServerStatus.setText("Status server"); lblDbStatus.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/server/loadingpreview.gif"))); // NOI18N
lblDbStatus.setText("Mencoba menghubungi database....."); jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/server/stopserver.png"))); // NOI18N jButton1.setText(" Stop Server"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jPanel1.add(jButton1); jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/server/gotray.png"))); // NOI18N jButton2.setText(" Background Mode"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jPanel1.add(jButton2); jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nopawijaya/server/arrow_refresh.png"))); // NOI18N jButton3.setText(" Clear Log"); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jPanel1.add(jButton3); javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel2)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel1)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(22, 22, 22) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(12, 12, 12) .addComponent(lblServerStatus) .addGap(30, 30, 30) .addComponent(lblDbStatus))
.addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 481, Short.MAX_VALUE) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 460, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(432, Short.MAX_VALUE) .addComponent(jLabel3))))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel1) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblServerStatus) .addComponent(lblDbStatus))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 242, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-529)/2, (screenSize.height-477)/2, 529, 477); }// </editor-fold> private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hide(); } private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
System.exit(1); } private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: jTextArea1.setText(""); } /** * @param args the command line arguments */ // Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private static javax.swing.JTextArea jTextArea1; private static javax.swing.JLabel lblDbStatus; private static javax.swing.JLabel lblServerStatus; // End of variables declaration }
package nopawijaya.server.service; import com.mysql.jdbc.Statement; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;
import java.util.ArrayList; import java.util.List; import nopawijaya.api.entity.Alumni; import nopawijaya.api.service.AlumniService; import nopawijaya.server.gui.FormServer;
import nopawijaya.server.utilitiies.DatabaseUtilities; /** * * @author Deden-pc */ public class AlumniServiceServer extends UnicastRemoteObject implements AlumniService { public AlumniServiceServer() throws RemoteException { } public Alumni insertAlumni(Alumni a) throws RemoteException { FormServer.writeLog("Client melakukan proses Insert data Alumni"); PreparedStatement statement = null; try{ statement = DatabaseUtilities.getConnection().prepareStatement( "INSERT INTO alumni (noInduk, namaDepan, namaBelakang, jk, tempatLahir, tanggalLahir, alamat, jurusan, status, tahunLulus, rerataNilai) values (?,?,?,?,?,?,?,?,?,?,?)" ); statement.setString(1, a.getNoInduk()); statement.setString(2, a.getNamaDepan()); statement.setString(3, a.getNamaBelakang()); statement.setString(4, a.getJk()); statement.setString(5, a.getTempatLahir()); statement.setDate(6, new Date(a.getTanggalLahir().getTime())); statement.setString(7, a.getAlamat()); statement.setString(8, a.getJurusan()); statement.setString(9, a.getStatus()); statement.setString(10, a.getTahunLulus()); statement.setString(11, a.getRerataNilai());
statement.executeUpdate(); }catch(SQLException exception){ exception.printStackTrace(); }finally{ if (statement != null){ try{ statement.close(); }catch(SQLException exception){ } } } return a; } public void updateAlumni(Alumni a) throws RemoteException { FormServer.writeLog("Client melakukan proses Update data Alumni"); PreparedStatement statement = null; try{ statement = DatabaseUtilities.getConnection().prepareStatement( "UPDATE alumni SET namaDepan=?,namaBelakang=?,jk=?,tempatLahir=?,tanggalLahir=?,alamat=?,jurusan=?,status=?,tahunLulus=?,rerataNilai=? WHERE noInduk = ?" ); statement.setString(1, a.getNamaDepan()); statement.setString(2, a.getNamaBelakang()); statement.setString(3, a.getJk()); statement.setString(4, a.getTempatLahir()); statement.setDate(5, new Date(a.getTanggalLahir().getTime())); statement.setString(6, a.getAlamat()); statement.setString(7, a.getJurusan());
statement.setString(8, a.getStatus()); statement.setString(9, a.getTahunLulus()); statement.setString(10, a.getRerataNilai()); statement.setString(11, a.getNoInduk()); statement.executeUpdate(); }catch(SQLException exception){ exception.printStackTrace(); }finally{ if(statement != null){ try{ statement.close(); }catch(SQLException exception){ exception.printStackTrace(); } } } } public void deleteAlumni(String noInduk) throws RemoteException { FormServer.writeLog("Client melakukan proses Delete data Alumni"); PreparedStatement statement = null; try{ statement = (PreparedStatement) DatabaseUtilities.getConnection().prepareStatement( "DELETE FROM alumni WHERE noInduk = ?"); statement.setString(1,noInduk); statement.executeUpdate(); }catch(SQLException exception){ exception.printStackTrace(); }finally{ try{ statement.close(); }catch(SQLException exception){ exception.printStackTrace(); } }
} public Alumni getAlumni(String noInduk) throws RemoteException { FormServer.writeLog("Client melakukan pross getByKode"); PreparedStatement statement = null; try{ statement = (PreparedStatement) DatabaseUtilities.getConnection().prepareStatement( "SELECT * FROM alumni WHERE noInduk = ?"); ResultSet result = statement.executeQuery(); Alumni a = null; if(result.next()){ a = new Alumni(); a.setNoInduk(result.getString("noInduk")); a.setNamaDepan(result.getString("namaDepan")); a.setNamaBelakang(result.getString("namaBelakang")); a.setJk(result.getString("jk")); a.setTempatLahir(result.getString("tempatlahir")); a.setTanggalLahir(result.getDate("tanggalLahir")); a.setAlamat(result.getString("alamat")); a.setJurusan(result.getString("jurusan")); a.setStatus(result.getString("status")); a.setTahunLulus(result.getString("tahunLulus")); a.setRerataNilai(result.getString("rerataNilai")); } result.close(); return a; }catch(SQLException exception){
exception.printStackTrace(); return null; }finally{ if (statement != null){ try{ statement.close(); }catch(SQLException exception){ exception.printStackTrace(); } } } } public List<Alumni> getAlumni() throws RemoteException { FormServer.writeLog("Client melakukan proses Load Database Server"); Statement statement = null; try{ statement = (Statement) DatabaseUtilities.getConnection().createStatement(); ResultSet result = statement.executeQuery("SELECT * FROM alumni"); List<Alumni> list = new ArrayList<Alumni>(); while(result.next()){ Alumni alumni = new Alumni(); alumni.setNoInduk(result.getString("noInduk")); alumni.setNamaDepan(result.getString("namaDepan")); alumni.setNamaBelakang(result.getString("namaBelakang")); alumni.setJk(result.getString("jk"));
alumni.setTempatLahir(result.getString("tempatLahir")); alumni.setTanggalLahir(result.getDate("tanggalLahir")); alumni.setAlamat(result.getString("alamat")); alumni.setJurusan(result.getString("jurusan")); alumni.setStatus(result.getString("status")); alumni.setTahunLulus(result.getString("tahunLulus")); alumni.setRerataNilai(result.getString("rerataNilai")); list.add(alumni); } result.close(); return list; }catch(SQLException exception){ exception.printStackTrace(); return null; }finally{ if (statement != null){ try{ statement.close(); }catch(SQLException exception){ exception.printStackTrace(); } } } } public void writeLog(String string) throws RemoteException { FormServer.writeLog(string); } }
package nopawijaya.server.service;
import com.mysql.jdbc.PreparedStatement; import com.mysql.jdbc.Statement; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import nopawijaya.api.entity.Pengguna; import nopawijaya.api.service.PenggunaService; import nopawijaya.server.gui.FormServer; import nopawijaya.server.utilitiies.DatabaseUtiliti es; /** * * @author Deden-pc */ public class PenggunaServiceServer extends UnicastR emoteObject implements PenggunaService { public PenggunaServiceServer() throws RemoteExc eption { } public Pengguna insertPengguna(Pengguna p) thro ws RemoteException { FormServer.writeLog("Client melakukan proses Insert data Pengguna"); PreparedStatement statement = null; try{ statement = (PreparedStatement) DatabaseUtilities.getConnection().prepareStatement( "INSERT INTO user (username,password,tipePengguna) values (?,?,?)" ); statement.setString(1, p.getUsername()); statement.setString(2, p.getPassword()); statement.setString(3, p.getTipePengguna ()); statement.executeUpdate(); }catch(SQLException exception){ exception.printStackTrace(); }finally{ if (statement != null){ try{ statement.close(); }catch(SQLException exception){ } } } return p; } public void updatePengguna(Pengguna p) throws R emoteException {
FormServer.writeLog("Client melakukan prose s Update data Pengguna"); PreparedStatement statement = null; try{ statement = (PreparedStatement) DatabaseUtilities.getConnection().prepareStatement( "UPDATE user SET password=?,tip ePengguna=? WHERE username = ?" ); statement.setString(1, p.getPassword()); statement.setString(2, p.getTipePengguna ()); statement.setString(3, p.getUsername()); statement.executeUpdate(); }catch(SQLException exception){ exception.printStackTrace(); }finally{ if(statement != null){ try{ statement.close(); }catch(SQLException exception){ exception.printStackTrace(); } } } } public void deletePengguna(String username) thr ows RemoteException { FormServer.writeLog("Client melakukan prose s Delete data Pengguna"); PreparedStatement statement = null; try{ statement = (PreparedStatement) DatabaseUtilities.getConnection().prepareStatement( "DELETE FROM user WHERE username = ?"); statement.setString(1,username); statement.executeUpdate(); }catch(SQLException exception){ exception.printStackTrace(); }finally{ try{ statement.close(); }catch(SQLException exception){ exception.printStackTrace(); } } } public Pengguna getPengguna(String username) th rows RemoteException { FormServer.writeLog("Client melakukan pross getByKode"); PreparedStatement statement = null;
try{ statement = (PreparedStatement) DatabaseUtilities.getConnection().prepareStatement( "SELECT * FROM user WHERE usern ame = ?"); ResultSet result = statement.executeQue ry(); Pengguna p = null; if(result.next()){ p = new Pengguna(); p.setUsername(result.getString("use rname")); p.setPassword(result.getString("pas sword")); p.setTipePengguna(result.getString("tipePengguna")) ; } result.close(); return p; }catch(SQLException exception){ exception.printStackTrace(); return null; }finally{ if (statement != null){ try{ statement.close(); }catch(SQLException exception){ exception.printStackTrace(); } } } } public List<Pengguna> getPengguna() throws Remo teException { FormServer.writeLog("Client melakukan prose s Load Data Pengguna"); Statement statement = null; try{ statement = (Statement) DatabaseUtilities.getConnection().createStatement() ; ResultSet result = statement.executeQue ry("SELECT * FROM user"); List<Pengguna> list = new ArrayList<Pen gguna>(); while(result.next()){ Pengguna p = new Pengguna(); p.setUsername(result.getString("use rname")); p.setPassword(result.getString("pas sword")); p.setTipePengguna(result.getString("tipePengguna")) ; list.add(p); } result.close(); return list; }catch(SQLException exception){ exception.printStackTrace(); return null;
}finally{ if (statement != null){ try{ statement.close(); }catch(SQLException exception){ exception.printStackTrace(); } } } } public void writeLog(String string) throws Remo teException { throw new UnsupportedOperationException("No t supported yet."); } } /* * To change this template, choose Tools | Template s * and open the template in the editor. */ package nopawijaya.server.utilitiies; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author Deden-pc */ public class DatabaseUtilities { private static Connection connection; public static Connection getConnection(){ if (connection == null){ try { DriverManager.registerDriver(new com.mysql.jdbc.Driver()); connection = DriverManager.getConnection("jdbc:mysql://Localhost :3306/sialumni","root","root"); } catch (SQLException ex) { Logger.getLogger(DatabaseUtilities.class.getName()) .log(Level.SEVERE, null, ex); } } return connection; } }