ta deden rizal

202
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

Upload: deden-rizal

Post on 25-Jun-2015

649 views

Category:

Documents


13 download

TRANSCRIPT

Page 1: Ta Deden Rizal

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

Page 2: Ta Deden Rizal

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

Page 3: Ta Deden Rizal

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

Page 4: Ta Deden Rizal

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

Page 5: Ta Deden Rizal

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

Page 6: Ta Deden Rizal

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

Page 7: Ta Deden Rizal

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

Page 8: Ta Deden Rizal

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

Page 9: Ta Deden Rizal

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

Page 10: Ta Deden Rizal

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

Page 11: Ta Deden Rizal

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

Page 12: Ta Deden Rizal

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

Page 13: Ta Deden Rizal

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

Page 14: Ta Deden Rizal

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

Page 15: Ta Deden Rizal

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

Page 16: Ta Deden Rizal

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

Page 17: Ta Deden Rizal

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).

Page 18: Ta Deden Rizal

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

Page 19: Ta Deden Rizal

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

Page 20: Ta Deden Rizal

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.

Page 21: Ta Deden Rizal

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

Page 22: Ta Deden Rizal

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

Page 23: Ta Deden Rizal

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.

Page 24: Ta Deden Rizal

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.

Page 25: Ta Deden Rizal

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

Page 26: Ta Deden Rizal

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.

Page 27: Ta Deden Rizal

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.

Page 28: Ta Deden Rizal

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).

Page 29: Ta Deden Rizal

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:

Page 30: Ta Deden Rizal

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

Page 31: Ta Deden Rizal

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

Page 32: Ta Deden Rizal

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)

Page 33: Ta Deden Rizal

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)

Page 34: Ta Deden Rizal

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.

Page 35: Ta Deden Rizal

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)

Page 36: Ta Deden Rizal

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

Page 37: Ta Deden Rizal

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

Page 38: Ta Deden Rizal

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.

Page 39: Ta Deden Rizal

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:

Page 40: Ta Deden Rizal

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.

Page 41: Ta Deden Rizal

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

Page 42: Ta Deden Rizal

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.

Page 43: Ta Deden Rizal

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.

Page 44: Ta Deden Rizal

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

Page 45: Ta Deden Rizal

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.

Page 46: Ta Deden Rizal

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)

Page 47: Ta Deden Rizal

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

Page 48: Ta Deden Rizal

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 :

Page 49: Ta Deden Rizal

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)

Page 50: Ta Deden Rizal

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

Page 51: Ta Deden Rizal

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

Page 52: Ta Deden Rizal

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)

Page 53: Ta Deden Rizal

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)

Page 54: Ta Deden Rizal

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

Page 55: Ta Deden Rizal

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).

Page 56: Ta Deden Rizal

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)

Page 57: Ta Deden Rizal

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):

Page 58: Ta Deden Rizal

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

Page 59: Ta Deden Rizal

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 :

Page 60: Ta Deden Rizal

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.

Page 61: Ta Deden Rizal

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:

Page 62: Ta Deden Rizal

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

Page 63: Ta Deden Rizal

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

Page 64: Ta Deden Rizal

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: _

Page 65: Ta Deden Rizal

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

Page 66: Ta Deden Rizal

53

� Antarmuka berbasis icon

Gambar 2.28 Antarmuka Berbasis Icon, (Santosa, 2004).

Page 67: Ta Deden Rizal

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

Page 68: Ta Deden Rizal

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

Page 69: Ta Deden Rizal

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.

Page 70: Ta Deden Rizal

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

Page 71: Ta Deden Rizal

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

Page 72: Ta Deden Rizal

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

Page 73: Ta Deden Rizal

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):

Page 74: Ta Deden Rizal

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):

Page 75: Ta Deden Rizal

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

Page 76: Ta Deden Rizal

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

Page 77: Ta Deden Rizal

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 :

Page 78: Ta Deden Rizal

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

Page 79: Ta Deden Rizal

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

:

Page 80: Ta Deden Rizal

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

Page 81: Ta Deden Rizal

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.

Page 82: Ta Deden Rizal

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

Page 83: Ta Deden Rizal

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

Page 84: Ta Deden Rizal

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

Page 85: Ta Deden Rizal

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

Page 86: Ta Deden Rizal

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) :

Page 87: Ta Deden Rizal

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

Page 88: Ta Deden Rizal

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

Page 89: Ta Deden Rizal

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

Page 90: Ta Deden Rizal

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):

Page 91: Ta Deden Rizal

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

Page 92: Ta Deden Rizal

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) :

Page 93: Ta Deden Rizal

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):

Page 94: Ta Deden Rizal

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

Page 95: Ta Deden Rizal

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

Page 96: Ta Deden Rizal

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.

Page 97: Ta Deden Rizal

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)

Page 98: Ta Deden Rizal

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 :

Page 99: Ta Deden Rizal

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)

Page 100: Ta Deden Rizal

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

Page 101: Ta Deden Rizal

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 :

Page 102: Ta Deden Rizal

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:

Page 103: Ta Deden Rizal

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';

Page 104: Ta Deden Rizal

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

Page 105: Ta Deden Rizal

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)

Page 106: Ta Deden Rizal

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) :

Page 107: Ta Deden Rizal

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

Page 108: Ta Deden Rizal

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 :

Page 109: Ta Deden Rizal

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):

Page 110: Ta Deden Rizal

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

Page 111: Ta Deden Rizal

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) :

Page 112: Ta Deden Rizal

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) :

Page 113: Ta Deden Rizal

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

Page 114: Ta Deden Rizal

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

Page 115: Ta Deden Rizal

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

Page 116: Ta Deden Rizal

103

5. PentatatanDanModifikasiDataUI

Gambar 4.18: Form Input Data Alumni

6. Server

Berikut prototipe antarmuka server :

Gambar 4.19 : Interface server side

Page 117: Ta Deden Rizal

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.

Page 118: Ta Deden Rizal

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.

Page 119: Ta Deden Rizal

LAMPIRAN-LAMPIRAN

Page 120: Ta Deden Rizal

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

Page 121: Ta Deden Rizal

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 :

Page 122: Ta Deden Rizal

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

Page 123: Ta Deden Rizal

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.

Page 124: Ta Deden Rizal

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)

Page 125: Ta Deden Rizal

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

Page 126: Ta Deden Rizal

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.

Page 127: Ta Deden Rizal

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.

Page 128: Ta Deden Rizal

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;

Page 129: Ta Deden Rizal

} 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;

Page 130: Ta Deden Rizal

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();

Page 131: Ta Deden Rizal

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();

Page 132: Ta Deden Rizal

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) {

Page 133: Ta Deden Rizal

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.

Page 134: Ta Deden Rizal

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>

Page 135: Ta Deden Rizal

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(); } }

Page 136: Ta Deden Rizal

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 }

Page 137: Ta Deden Rizal

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); }

Page 138: Ta Deden Rizal

}); 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

Page 139: Ta Deden Rizal

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

Page 140: Ta Deden Rizal

, "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();

Page 141: Ta Deden Rizal

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 }

Page 142: Ta Deden Rizal

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();

Page 143: Ta Deden Rizal

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

Page 144: Ta Deden Rizal

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);

Page 145: Ta Deden Rizal

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");

Page 146: Ta Deden Rizal

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) {

Page 147: Ta Deden Rizal

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; }

Page 148: Ta Deden Rizal

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); }

Page 149: Ta Deden Rizal

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) { }

Page 150: Ta Deden Rizal

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) {

Page 151: Ta Deden Rizal

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;

Page 152: Ta Deden Rizal

/** * * @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");

Page 153: Ta Deden Rizal

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)

Page 154: Ta Deden Rizal

.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)

Page 155: Ta Deden Rizal

.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);

Page 156: Ta Deden Rizal

}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 =

Page 157: Ta Deden Rizal

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";

Page 158: Ta Deden Rizal

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){

Page 159: Ta Deden Rizal

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>

Page 160: Ta Deden Rizal

<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"/>

Page 161: Ta Deden Rizal

</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>

Page 162: Ta Deden Rizal

<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"/>

Page 163: Ta Deden Rizal

<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>

Page 164: Ta Deden Rizal

<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">

Page 165: Ta Deden Rizal

<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>

Page 166: Ta Deden Rizal

<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>

Page 167: Ta Deden Rizal

<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"/>

Page 168: Ta Deden Rizal

</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,

Page 169: Ta Deden Rizal

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>

Page 170: Ta Deden Rizal

<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"

Page 171: Ta Deden Rizal

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"/>

Page 172: Ta Deden Rizal

</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["" +

Page 173: Ta Deden Rizal

$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>

Page 174: Ta Deden Rizal

</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>

Page 175: Ta Deden Rizal

<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"/>

Page 176: Ta Deden Rizal

<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"/>

Page 177: Ta Deden Rizal

<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"/>

Page 178: Ta Deden Rizal

</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"

Page 179: Ta Deden Rizal

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>

Page 180: Ta Deden Rizal

<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>

Page 181: Ta Deden Rizal

<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"/>

Page 182: Ta Deden Rizal

</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[

Page 183: Ta Deden Rizal

$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 184: Ta Deden Rizal

"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,

Page 185: Ta Deden Rizal

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>

Page 186: Ta Deden Rizal

<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>

Page 187: Ta Deden Rizal

<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>

Page 188: Ta Deden Rizal

<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"

Page 189: Ta Deden Rizal

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/>

Page 190: Ta Deden Rizal

<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();

Page 191: Ta Deden Rizal

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

Page 192: Ta Deden Rizal

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))

Page 193: Ta Deden Rizal

.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;

Page 194: Ta Deden Rizal

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());

Page 195: Ta Deden Rizal

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){

Page 196: Ta Deden Rizal

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;

Page 197: Ta Deden Rizal

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 {

Page 198: Ta Deden Rizal

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;

Page 199: Ta Deden Rizal

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;

Page 200: Ta Deden Rizal

}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; } }

Page 201: Ta Deden Rizal
Page 202: Ta Deden Rizal