DAFTAR PUSTAKA. Ariyus, Dony Keamanan Multimedia. Yogyakarta : Penerbit Andi

dokumen-dokumen yang mirip

DAFTAR PUSTAKA. [1] Dennis, Alan. Barbara, H.W. and Roberta, M.R. Systems analysis and design 4th ed. John Wiley&Sons,Inc, 2012.

DAFTAR PUSTAKA. Kurniawan Rulianto PHP & MySQL untuk orang awam. Pelmbang: Maxikom.

DAFTAR PUSTAKA. /jaenal-mutaqin docx diakses pada 14, Juni Pukul Wib

Membuat Menu Login Sederhana [Full Coding]

Pemrograman Berbasis Java PERSEWAAN PELAMPUNG. Riska Nony Oktaviani Kelas 21 Teknik Informatika Teknologi Informasi

LAMPIRAN. 1.Coding Loading Bar. 2.Coding Menu Utama. 3.Coding Menu Pemilihan Daerah. 4.Coding Augmented Reality.

DAFTAR PUSTAKA. Fowler, Martin, UML Distilled Edisi 3. Jakarta : Penerbit Andi. Mulyanto, Agus, Sistem Informasi Konsep dan Aplikasi.

DAFTAR PUSTAKA. R.T. Azuma, 1997, A Survey of Augmented Reality, Teleoperators and Virtual Environments 6 (4):

Program Data Pelanggan Toko Bandung Fashion

Tugas Java. : Evannata Dwiyan. Nim : : Sistem Informasi. Kelas : 21. : Informasi Restoran

ANALISA DAN PERANCANGAN SISTEM INFORMASI PELAYANAN PASIEN RAWAT JALAN DI RS PATRIA IKKT

BAB IV PERANCANGAN Perancangan Proses Kriptanalisis

KONEKSI KE DATABASE DENGAN JDBC

Belajar Java 2 Tambah, Simpan & Cari Data di Netbeans dengan Database MySQL

TUGAS PEMROGRAMAN BERBASIS JAVA Penyewaan ps

TUGAS PEMROGRAMAN BERBASIS JAVA. Disusun Oleh : NAMA : Rendy Rangga Yudha NIM :

DAFTAR PUSTAKA. Basuki, A., Fatchurrochman, & Palandi, J. F. (2005). Pengolahan Citra Menggunakan Visual Basic. Yogyakarta: Graha Ilmu.

TUGAS PEMROGRAMAN BERBASIS JAVA ADARA HIJAB

KA2173 Pemrograman Berorientasi Objek. 10 BAB X PENGAKSESAN DATABASE. H a l 64

Aplikasi Santri TPQ AL FATIH Masjid Al Iman Klebengan Caturtunggal Depok Sleman Yogyakarta. NIM : Nama : M. Bagus Kurniawan Kelas: 22

PEMROGRAMAN JAVA SISTEM PARKIR

Pemrograman Database Java

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

KA2173 Pemrograman Berorientasi Objek. 9 BAB IX PEMROGRAMAN GUI: SWING. H a l 56

BAB I PENDAHULUAN BAB II DATABASE

Tutorial Jasper Report with JDBC Prerequisites: Jasper Report, ireport installed, MySQL installed, and NetBeans IDE

Badiyanto, S.Kom., M.Kom. PBO java

BAB IV IMPLEMENTASI DAN PEMBAHASAN SISTEM. Pada tahap ini merupakan tahapan implementasi dari

SISTEM INFORMASI GAJI KARYAWAN

MODUL 7 - EXCEPTION HANDLING

BAB II VARIABEL DAN TIPE DATA

2 TIPE DATA DAN VARIABEL

DAFTAR PUSTAKA. 103

visit :

JDBC. Oleh : HANDOYO

DAFTAR PUSTAKA.

MODUL PRAKTIKUM KE 9

Tugas Pemrograman Java P7 EL Event Handler & Menu. Disusun oleh: RIDLO PAMUJI / 22

A. TUJUAN PEMBELAJARAN

DAFTAR PUSTAKA. Pendergrast, Mark. For God, Country and Coca-Cola, Basic Books, 2000

DAO design pattern diimplementasi dengan beberapa langkah, yaitu :

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

Modul 08. User Interface 01

APLIKASI PERHITUNGAN NILAI MAHASISWA. Untuk membuat aplikasi nilai mahasiswa, langkah-langkahnya adalah sebagai berikut :

Lab Bahasa Pemrograman 2

DAFTAR PUSTAKA.

Lampiran Utama. a. Struktur Organisasi. Factory Manager. Vice Factory Manager. Non Produksi. Produksi. Dept. Power. Dept Greyee. Dept.

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

Materi 5 Pemrograman Visual

Membuat Kalkulator dengan Java

Obyektif : KONTROL ALUR PROGRAM

GUI & Event Handling. Viska Mutiawani, M.Sc. 1 Viska Mutiawani - Informatika FMIPA Unsyiah

SISTEM INFORMASI PENJUALAN SATE BERBASIS JAVA. Disusun oleh : Rahmat Hidayat

Firma Firmansyah Adi B. Resume Web Service

BAB III ANALISA DAN PERANCANGAN

Pengenalan JavaScript

TUGAS AKHIR PEMOGRAMAN VISUAL APLIKASI PETERNAKAN AYAM BERBASIS JAVA DI PETERNAKAN AYAM MANDIRI

MODUL PRAKTIKUM BERORIENTASI OBJEK NINF615 SEMESTER GASAL 2016/2017 PROGRAM STUDI S1 TEKNIK INFORMATIKA

Bab 4 Hasil dan Pembahasan

BAB IV HASIL DAN PEMBAHASAN

SISTEM RANCANAGAN APLIKASI PEMBAYARAN SPP. Di Susun Oleh: Nama : Ikhlas Adi Putra Nim : Kelas : 21/Pagi

BAB III ANALISA DAN PERANCANGAN SISTEM

Percabangan & Perulangan

Membuat Program Aplikasi Akademik dengan Menggunakan NetBeans 6.9

Riwayat Pendidikan: SDK Lemuel II, Pos Pengumben, Jakarta Barat SMPK Lemuel, Pos Pengumben, Jakarta Barat SMUN 78, Kemanggisan, Jakarta Barat

KEAHLIAN PEMROGAMAN JAVA

GUI & Event Handling. Viska Mutiawani, M.Sc

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

LISTING PROGRAM. package app.maximumflow; import java.awt.borderlayout; import java.awt.eventqueue;

SISTEM INFORMASI PENJUALAN OBAT BERBASIS JAVA. Disusun oleh : Rozy Putra Pratama

Pengenalan APLIKASI DATABASE

DAFTAR PUSTAKA. Ballou, R.H. l999. Business Logistics Management: Planning, Organizing, and Controlling the Supply Chain. Prentice Hall Intemation

Struktur Kontrol Pemrograman Java : PERCABANGAN

Tujuan : A. Percabangan Percabangan di dalam Java terdapat 2 macam, yaitu dengan memakai if dan switch.

BAB III ANALISA DAN PERANCANGAN

DAFTAR PUSTAKA. Dennis, Alan(2012). Systems Analys & Design With UML version 2.0 : Fourth Edition.Wiley Global Education.

DASAR PEMOGRAMAN JAVA

KONEKSI KE DATABASE DENGAN JDBC 2

TPI4202 e-tp.ub.ac.id. Lecture 5 Mas ud Effendi

BAHASA PEMROGRAMAN JAVA

DAFTAR PUSTAKA. Belch & Belch, Advertising and Promotion: An Integrated Marketing Communications Perspective, 9th Edition, 2012

LAPORAN MATA KULIAH PERANCANGAN SISTEM BERBASIS JAVA

Praktikum 6a Melakukan koneksi dengan basis data

PEMROGRAMAN BERORIENTASI OBJEK

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

Bab Hasil Pembuatan Aplikasi

if (ekspresi_boolean) { Pernyataan1; } else { Pernyataan2; }

DAFTAR PUSTAKA. Connolly, dkk, Database system : A Practical Approachto Design, Implementation and Management, Pearson Education.

Tipe if : If tanpa else (if) If dengan else (if-else) Nested if

LAPORAN RESMI PRAKTIKUM II WEB DESAIN PENGENALAN JAVASCRIPT

Koneksi Java GUI-Database

Tutorial Java Desktop 3 Melakukan Pengambilan data pada JavaDB

SISTEM INFORMASI DATA SISWA

DAFTAR PUSTAKA. David, Matthew HTML5 Mobile Websites: Turbocharging HTML5 with jquery, Sencha Touch, and Other Frameworks.

LAMPIRAN. Daftar Pertanyaan(Interview Pengujian Aplikasi) 2. Apakah anda pernah melihat atau menggunakan aplikasi yang serupa?

Pada akhir pertemuan ini, diharapkan mahasiswa memiliki kemampuan untuk: Menggunakan struktur kendali pencabangan bersyarat dalam bahasa pemrograman.

TUTORIAL SEDERHANA, JAVA (Swing) dan MYSQL (SELECT dan INSERT)

PERANCANGAN SISTEM BERBASIS JAVA. ( Penjualan Handphone )

Modul 3 Flow Control dan Input

Transkripsi:

DAFTAR PUSTAKA Ariyus, Dony. 2009. Keamanan Multimedia. Yogyakarta : Penerbit Andi Bahri, Saipul, Dian, dan PS, Susan Dian. April 2012. Studi Dan Implementasi Pengamanan Basis Data Menggunakan Metode Enkripsi MD5. Bina Darma. Vol. X, No. X. http://eprints.binadarma.ac.id/258/1/jurnal%20studi%20dan%20implemen TASI%20PENGAMANAN%20BASIS%20DATA%20MENGGUNAKAN%20MET ODE%20ENKRIPSI%20MD5.pdf. 04 Desember 2016. Komputer, Wahana Semarang. 2004. Memahami Model Enkripsi dan Security Data. Yogyakarta: Penerbit Andi. Komputer, Wahana Semarang. 2006. Membuat Aplikasi Database Dengan Java 2. Yogyakarta: Penerbit Andi. Komputer, Wahana Semarang. 2009. Menguasai Java Programming. Jakarta: Penerbit Salemba Infotek. Komputer, Wahana. 2010. The Best Encryption Tools. Jakarta: PT Elex Media Komputindo. Kromodimoeljo, Sentot. 2009. Teori dan Aplikasi Kriptografi. penerbit SPK IT Consulting Ladjamuddin B, Al-Bahra. 2006. Rekayasa Perangkat Lunak. Yogyakarta: Graha Ilmu. Munir, Rinaldi. 2006. Kriptografi. Bandung: Informatika. Nugroho, Adi. 2005. Analisis Dan Perancangan Sistem Informasi Dengan Metodologi Berorientasi Objek. Bandung: Informatika. Pressman, Roger S. 2002. Rekayasa Perangkat Lunak Buku 1. Yogyakarta: Penerbit Andi. Utami, Ema. 2008. RDBMS Menggunakan MS SQL SERVER 2000. Yogyakarta: Graha Ilmu. 100

Sumber lain : https://en.wikipedia.org/wiki/intellij_idea https://id.wikipedia.org/wiki/kata_sandi https://id.wikipedia.org/wiki/sandi_caesar 101

LAMPIRAN 1. Class Cesarchiper public class Caesarchiper { private static String Huruf = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private static String Angka = "0123456789"; public static String enkripsi(string Plaintext, int Kunci) { String hasil = ""; int kuncihuruf = Kunci % Huruf.length(); if (kuncihuruf == 0) kuncihuruf = 1; int kunciangka = Kunci % Angka.length(); if (kunciangka == 0) kunciangka = 1; for(int i=0; i<plaintext.length(); i++){ char teksterinput = Plaintext.charAt(i); if(character.isletter(teksterinput)){ char hurufkapital = Character.toUpperCase(teksTerinput); for (int a=0; a<huruf.length(); a++){ if(hurufkapital == Huruf.charAt(a)){ int ab = (a + kuncihuruf) % Huruf.length(); char hasilenkripsihuruf = Huruf.charAt(ab); if(character.islowercase(teksterinput)){ hasil = hasil +Character.toLowerCase(hasilEnkripsiHuruf); else{ hasil = hasil + hasilenkripsihuruf; else if(character.isdigit(teksterinput)){ for (int b=0; b<angka.length(); b++){ if(teksterinput == Angka.charAt(b)){ int bc = (b + kunciangka) % Angka.length(); hasil = hasil + Angka.charAt(bc); else { hasil = hasil + teksterinput; return hasil; public static String dekripsi(string Ciphertext, int Kunci){ String hasil = ""; int kuncihuruf = Kunci % Huruf.length(); if(kuncihuruf == 0) kuncihuruf = 1; int kunciangka = Kunci % Angka.length(); if(kunciangka == 0) kunciangka = 1; for (int i=0; i<ciphertext.length(); i++){ char teksterinput = Ciphertext.charAt(i); if(character.isletter(teksterinput)){ char hurufkapital = Character.toUpperCase(teksTerinput); for (int a=0; a<huruf.length(); a++){ if(hurufkapital == Huruf.charAt(a)){ int ab = (Huruf.length()+ a - kuncihuruf) % Huruf.length(); char hasildekripsihuruf = Huruf.charAt(ab); if(character.islowercase(teksterinput)){ hasil = hasil + Character.toLowerCase(hasilDekripsiHuruf); L1

else{ hasil = hasil + hasildekripsihuruf; else if(character.isdigit(teksterinput)){ for (int b=0; b<angka.length(); b++){ if(teksterinput == Angka.charAt(b)){ int bc = (Angka.length() + b - kunciangka) % Angka.length(); hasil = hasil + Angka.charAt(bc); else{ hasil = hasil + teksterinput; return hasil; 2. Class BasisData import java.sql.*; public class BasisData { public static Connection database; public static Statement statementhelper; public static Connection getdatabase() { return database; public static Statement getstatementhelper() { return statementhelper; public static void connect() throws ClassNotFoundException, SQLException{ if (database == null){ Class.forName("com.mysql.jdbc.Driver"); database = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_aplikasi", "root", ""); statementhelper = database.createstatement(); public static int user(string username, String password, String email, String nama_lengkap, String tanggal_lahir, String asal_kota, char jenis_kelamin, String alamat, String kode_pos, String handphone) throws SQLException{ Statement hitunguser = getstatementhelper(); ResultSet hasil = hitunguser.executequery("select COUNT(*) AS TOTAL FROM table_user"); int no_registrasi = 0; while (hasil.next()){ no_registrasi = hasil.getint("total") + 1; String sql_query = "INSERT INTO table_user VALUES (" + L2

"'," + no_registrasi) + String.valueOf(no_registrasi) + "," + "'" + Caesarchiper.enkripsi(username, no_registrasi) + "'," + "'" + username + "'," + "'" + Caesarchiper.enkripsi(password, no_registrasi) + + "'" + password + "'," + "'" + Caesarchiper.enkripsi(email, no_registrasi) + "'," "'" + email + "'," + "'" + nama_lengkap + "'," + "'" + Caesarchiper.enkripsi(tanggal_lahir, "'," + "'" + tanggal_lahir + "'," + "'" + asal_kota + "'," + "'" + jenis_kelamin + "'," + "'" + alamat + "'," + "'" + kode_pos + "'," + "'" + Caesarchiper.enkripsi(handphone, no_registrasi) + "'," + "'" + handphone + "')"; return getstatementhelper().executeupdate(sql_query); public static HasilLogin login(string username, String password) throws SQLException{ int no_registrasi = 0; String dekripsi_username = ""; String dekripsi_password = ""; HasilLogin hasil = new HasilLogin(); Statement pilih = getstatementhelper(); ResultSet hasil_pilih = pilih.executequery("select no_registrasi, " + "username_cipher, " + "password_cipher, " + "email_cipher, " + "nama_lengkap, " + "tanggal_lahir_cipher, " + "asal_kota, " + "jenis_kelamin, " + "alamat, " + "kode_pos, " + "handphone_cipher " + "FROM table_user"); while (hasil_pilih.next()) { no_registrasi = hasil_pilih.getint("no_registrasi"); dekripsi_username = Caesarchiper.dekripsi(hasil_pilih.getString("username_cipher"), no_registrasi); dekripsi_password = Caesarchiper.dekripsi(hasil_pilih.getString("password_cipher"), no_registrasi); if ((username.equals(dekripsi_username)) && (password.equals(dekripsi_password))){ hasil.issucces = true; return hasil; return hasil; public static boolean validasidatabase(string username) throws L3

SQLException { Statement cariusername = getstatementhelper(); ResultSet cari = cariusername.executequery("select no_registrasi, username_cipher FROM table_user"); while (cari.next()) { int no_registrasi = cari.getint("no_registrasi"); String username_cipher = cari.getstring("username_cipher"); String username_real = Caesarchiper.dekripsi(username_cipher, no_registrasi); if (username_real.equals(username)) { return false; return true; 3. Class HasilLogin public class HasilLogin { public boolean issucces = false; 4. Halaman Utama import com.alee.laf.weblookandfeel; import javax.swing.*; import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.sql.sqlexception; /** * Created by ari on 10/3/2016. */ public class HalamanUtama { private static JFrame frame; private JPanel panelutama; public JPanel getpanelutama() { return panelutama; public static void main (String[] args) { try { BasisData.connect(); catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(frame, e.getlocalizedmessage(), "class tidak ditemukan", JOptionPane.ERROR_MESSAGE); catch (SQLException e) { JOptionPane.showMessageDialog(frame, e.getsqlstate() + "Gagal dijalankan", "SQL Gagal dijalankan?", JOptionPane.ERROR_MESSAGE ); WebLookAndFeel.install(); JMenu menu = new JMenu("Menu"); JMenuItem menuutama = new JMenuItem("Home"); menu.add(menuutama); L4

JMenuItem menuregistrasi = new JMenuItem("Registration"); menu.add(menuregistrasi); JMenuItem menulogin = new JMenuItem("Login"); menu.add(menulogin); menu.addseparator(); JMenuItem menukeluar = new JMenuItem("Close"); menu.add(menukeluar); JMenu bantuan = new JMenu("Help"); JMenuItem menubantuan = new JMenuItem("About"); bantuan.add(menubantuan); JMenuBar menubar = new JMenuBar(); menubar.add(menu); menubar.add(bantuan); frame = new JFrame("Kriptografi"); frame.setcontentpane(new HalamanUtama().panelUtama); frame.setdefaultcloseoperation(windowconstants.exit_on_close); frame.setjmenubar(menubar); frame.setsize(410, 530); frame.setresizable(false); Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize(); frame.setlocation(dimension.width / 2 - frame.getsize().width / 2, dimension.height / 2 - frame.getsize().height / 2); frame.setvisible(true); menukeluar.addactionlistener(new ActionListener() { public void actionperformed(actionevent actionevent) { frame.dispose(); ); menuutama.addactionlistener(new ActionListener() { public void actionperformed(actionevent actionevent) { setcontentpane(new HalamanUtama().getPanelUtama()); ); menuregistrasi.addactionlistener(new ActionListener() { public void actionperformed(actionevent actionevent) { setcontentpane(new FormRegistration().getPanelRegist()); ); menulogin.addactionlistener(new ActionListener() { public void actionperformed(actionevent actionevent) { setcontentpane(new FormLogin(frame).getPanelLogin()); ); menubantuan.addactionlistener(new ActionListener() { public void actionperformed(actionevent actionevent) { setcontentpane(new FormAbout().getPanelAbout()); ); public static void setcontentpane(jpanel pane){ frame.setcontentpane(pane); frame.revalidate(); L5

frame.repaint(); 5. Halaman Registrasi import com.alee.extended.date.webdatefield; import javax.swing.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.mouseadapter; import java.awt.event.mouseevent; import java.sql.sqlexception; import java.text.dateformat; import java.text.simpledateformat; import java.util.arraylist; import java.util.calendar; import java.util.date; import java.util.list; public class FormRegistration { public JPanel panelregist; private JTextField txtpassword; private JButton btnreset; private JTextField txtemail; private JTextField txtusername; private JButton btnregister; private JTextField txtnamalengkap; private JComboBox cmbasalkota; private JComboBox cmbjeniskelamin; private JTextArea txtalamat; private JTextField txtkodepos; private JTextField txthp; private WebDateField DTTanggalLahir; public FormRegistration(){ DTTanggalLahir.setDateFormat(new SimpleDateFormat("EEEE, dd MMMM yyyy")); btnreset.addmouselistener(new MouseAdapter() { public void mouseclicked(mouseevent e) { super.mouseclicked(e); switch (JOptionPane.showConfirmDialog(panelRegist, "Anda yakin ingin mereset?", "Reset Formulir", JOptionPane.OK_CANCEL_OPTION)){ case JOptionPane.OK_OPTION: reset(); break; ); btnregister.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { try { if (BasisData.validasiDatabase(txtUsername.getText())) { if (validasi()) { String username = txtusername.gettext(); String password = txtpassword.gettext(); L6

String email = txtemail.gettext(); String nama_lengkap = txtnamalengkap.gettext(); DateFormat df = new SimpleDateFormat("dd MMMM yyyy"); Date date_tanggal_lahir = DTTanggalLahir.getDate(); String tanggal_lahir = df.format(date_tanggal_lahir); String asal_kota = cmbasalkota.getselecteditem().tostring(); char jenis_kelamin = ' '; switch (cmbjeniskelamin.getselectedindex()) { case 1: jenis_kelamin = 'P'; break; case 2: jenis_kelamin = 'W'; break; String alamat = txtalamat.gettext(); String kode_pos = txtkodepos.gettext(); String handphone = txthp.gettext(); try { switch (BasisData.user( username, password, email, nama_lengkap, tanggal_lahir, asal_kota, jenis_kelamin, alamat, kode_pos, handphone )) { case 1: JOptionPane.showMessageDialog(panelRegist, "Anda berhasil melakukan registrasi.\nsilakan Login.", "Informasi", JOptionPane.INFORMATION_MESSAGE); reset(); break; default: JOptionPane.showMessageDialog(panelRegist, "Anda gagal melakukan registrasi.", "Gagal Registrasi",JOptionPane.ERROR_MESSAGE); catch (SQLException e1) { JOptionPane.showMessageDialog(panelRegist, e1.getlocalizedmessage(), "Kesalahan SQL",JOptionPane.ERROR_MESSAGE); else { JOptionPane.showMessageDialog(panelRegist, "Username sudah ada. Pilih username lain.", "Kesalahan", JOptionPane.ERROR_MESSAGE); catch (SQLException e1) { JOptionPane.showMessageDialog(panelRegist, e1.getlocalizedmessage(), "Kesalahan SQL", JOptionPane.ERROR_MESSAGE); ); private void reset() { txtusername.settext(""); txtpassword.settext(""); L7

txtemail.settext(""); txtnamalengkap.settext(""); DTTanggalLahir.setText(""); cmbasalkota.setselectedindex(0); cmbjeniskelamin.setselectedindex(0); txtalamat.settext(""); txtkodepos.settext(""); txthp.settext("+62"); private boolean validasi() { List<String> errmessage = new ArrayList<String>(); if (txtusername.gettext().isempty()) errmessage.add("username belum terisi."); else if (txtusername.gettext().contains(" ")) errmessage.add("username tidak boleh ada spasi."); else if (txtusername.gettext().length() < 6) errmessage.add("username harus 6 karakter atau lebih."); else if (txtusername.gettext().length() > 15) errmessage.add("username tidak boleh melebihi 15 karakter."); if (txtpassword.gettext().isempty()) errmessage.add("password belum terisi."); else if (txtpassword.gettext().length() < 6) errmessage.add("password harus 6 karakter atau lebih."); else if (txtpassword.gettext().length() > 12) errmessage.add("password tidak boleh melebihi 12 karakter."); if (txtemail.gettext().isempty()) errmessage.add("email belum terisi."); else if (!txtemail.gettext().contains("@")) errmessage.add("email tidak valid."); else if (txtemail.gettext().length() > 35) errmessage.add("email tidak boleh melebihi 35 karakter."); if (txtnamalengkap.gettext().isempty()) errmessage.add("nama lengkap belum terisi."); else if (txtnamalengkap.gettext().length() < 6) errmessage.add("nama lengkap harus 6 karakter atau lebih"); else if (txtnamalengkap.gettext().length() > 50) errmessage.add("nama lengkap tidak boleh melebihi 50 karakter."); Date hariini = new Date(); Calendar calendar = Calendar.getInstance(); calendar.add(calendar.year, -7); Date TenYearBefore = calendar.gettime(); if (DTTanggalLahir.getText().isEmpty()) errmessage.add("tanggal lahir belum terisi."); else if (DTTanggalLahir.getDate().after(hariIni)) errmessage.add("tanggal lahir tidak boleh di masa depan."); else if (DTTanggalLahir.getDate().after(TenYearBefore)) errmessage.add("anda harus berusia 7 tahun atau lebih untuk mendaftar."); if (cmbasalkota.getselectedindex() == 0) errmessage.add("asal kota belum terpilih."); if (cmbjeniskelamin.getselectedindex() == 0) errmessage.add("jenis kelamin belum terpilih."); if (txtalamat.gettext().isempty()) errmessage.add("alamat masih belum terisi."); else if (txtalamat.gettext().length() < 10) errmessage.add("alamat harus 10 karakter atau lebih."); else if (txtalamat.gettext().length() > 100) errmessage.add("alamat tidak boleh melebihi 100 karakter atau L8

lebih."); if (txtkodepos.gettext().isempty()) errmessage.add("kode pos masih belum terisi."); else if (txtkodepos.gettext().length() < 5) errmessage.add("alamat harus 5 karakter atau lebih."); else if (txtkodepos.gettext().length() > 10) errmessage.add("alamat tidak boleh melebihi 10 karakter atau lebih."); if (txthp.gettext().isempty()) errmessage.add("nomor ponsel masih belum terisi."); else if (txthp.gettext().length() < 9) errmessage.add("nomor ponsel tidak lengkap (harus 8 karakter lebih)."); else if (txthp.gettext().length() > 15) errmessage.add("nomor ponsel tidak boleh melebihi 15 karakter lebih)."); if (errmessage.size() == 0) return true; else { String pesankesalahan = "Kesalahan berikut perlu Anda tindak lanjuti :"; int jumlahkesalahan = 1; for (String e: errmessage) { pesankesalahan = pesankesalahan + "\n" + String.valueOf(jumlahKesalahan) + ". " + e; jumlahkesalahan = jumlahkesalahan + 1; JOptionPane.showMessageDialog(panelRegist, pesankesalahan, "Form Belum Lengkap", JOptionPane.ERROR_MESSAGE); return false; public JPanel getpanelregist() { return panelregist; 6. Halaman Login import javax.swing.*; import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.sql.sqlexception; public class FormLogin { private JPanel panellogin; private JTextField txtusername; private JButton btnlogin; private JButton btnregister; private JPasswordField txtpassword; private JFrame formberhasillogin; public JPanel getpanellogin() { return panellogin; public FormLogin(final JFrame formlogin){ btnregister.addactionlistener(new ActionListener() { L9

public void actionperformed(actionevent e) { HalamanUtama.setContentpane(new FormRegistration().getPanelRegist()); ); btnlogin.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { String username = txtusername.gettext(); String password = txtpassword.gettext(); try { HasilLogin hasil = BasisData.login(username, password); if (hasil.issucces){ JOptionPane.showMessageDialog(panelLogin, "Berhasil Login", "Confirmation", JOptionPane.INFORMATION_MESSAGE); formberhasillogin = new JFrame("Display Sistem"); formberhasillogin.setcontentpane(new FormBerhasilLogin(formBerhasilLogin, formlogin).getpanelberhasillogin()); formberhasillogin.setdefaultcloseoperation(windowconstants.exit_on_close); formberhasillogin.setsize(500,520); formberhasillogin.setresizable(false); Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize(); formberhasillogin.setlocation(dimension.width / 2 - formberhasillogin.getsize().width / 2, dimension.height / 2 - formberhasillogin.getsize().height / 2); formberhasillogin.setvisible(true); txtusername.settext(""); txtpassword.settext(""); formlogin.setvisible(false); else{ JOptionPane.showMessageDialog(panelLogin,"Username Dan Password Tidak Cocok", "Confirmation", JOptionPane.INFORMATION_MESSAGE); catch (SQLException e1) { JOptionPane.showMessageDialog(panelLogin, e1.getlocalizedmessage(), "SQL Exeption", JOptionPane.ERROR_MESSAGE); ); 7. Halaman About import javax.swing.*; public class FormAbout { private JPanel panelabout; public JPanel getpanelabout() { return panelabout; 8. Halaman BerhasiLogin import javax.swing.*; import java.awt.*; L10

import java.awt.event.actionevent; import java.awt.event.actionlistener; public class FormBerhasilLogin { public JPanel panelberhasillogin; private JButton btnlogout; public FormBerhasilLogin(final JFrame formberhasillogin, final JFrame formlogin){ btnlogout.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { formberhasillogin.setvisible(false); formlogin.setvisible(true); ); public JPanel getpanelberhasillogin(){ return panelberhasillogin; L11

CURICULUM VITAE Nama : Ari Sandy Maulana Place and date of birth :Tangerang, 29 Maret 1995 Sex : Laki - laki Nationality : Indonesia Marital Status : Mahasiswa ID Number : None Pasport Number : None Email : arisandymaulana@gmail.com Religion : Islam Address : Jl. Parung jaya RT 01/02 Kel. Parung Jaya Kec. Karang Tengah Tangerang Phone Number/Mobile : 087887860953 EDUCATION Elementary School : SDN Pondok Bahar 1 Secondary School : SMPN 24 Tangerang Senior High School : SMAN 13 Tangerang University : Mercu Buana Degree Award : Bachelor Degree Faculty : Ilmu Komputer Title Of Thesis : Studi Kriptanalisis Sistem Kriptografi Monoalphabetik: Studi Kasus Username Dan Password GPA : 3.79 SKILL Languages : B. Inggris Score TOEIC : 800 ORGANIZATION EXPERIENCE No Of Years Title Name Of Organization WORK EXPERIENCE No Of Years Position Employeer ACTIVIES NATIONAL/INTERNATIONAL No Of Years Position Employeer ACHIEVMENT No Of Years Title Honor HOBBIES Sports Various : Badminton, Football : None L12

L13

L14