PEMBUATAN SURAT IJIN MENGEMUDI (DRIVING LICENSE)
Febrian Hendro (672011240)
Glory A. Patiassina (672011245)
Vito Ivan (672011250)
Latar Belakang
Program
ini berfungsi untuk membuat surat ijin mengemudi jenis apapun (A, B, B1umum, C,
D, Internasional). Latar belakang pembuatan aplikasi ini untuk memudahkan admin
dalam manajemen data (insert, update, delete) dan User dalam registrasi, karena
sampai saat ini user/pemohon masih mengisi formulir secara manual.
Untuk Login Seorang Admin harus mengisikan Username dan Password
Dengan source code:
namespace FormSIM
{
public partial class logincs : Form
{
public
logincs()
{
InitializeComponent();
}
private
void button1_Click(object
sender, EventArgs e)
{
Dao
dao=new Dao();
Form1
fo=new Form1();
try
{
int
cek = dao.count("SELECT * FROM admin WHERE
username='" + txtUser.Text + "'
and password='" + txtPass.Text + "'");
if
(cek == 1)
{
MessageBox.Show("Selamat Datang", "Confirmation", MessageBoxButtons.OK,
MessageBoxIcon.Information);
this.Visible
= false;
fo.Visible = true;
}
else
{
MessageBox.Show("UserName atau Password Salah", "Confirmation", MessageBoxButtons.OK,
MessageBoxIcon.Stop);
}
}
catch
(Exception ex)
{
MessageBox.Show("Error : " + ex);
}
}
private
void logincs_Load(object
sender, EventArgs e)
{
}
}
}
Setelah Klik button1 (Login) maka akan muncul Form1 atau form pengisian data seperti pada gambar
namespace FormSIM
{
public partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
Dao
dao = new Dao();
Bitmap
gambarku;
string
alamatGambarku;
private
void radioButton6_CheckedChanged(object sender, EventArgs
e)
{
}
void
clear()
{
txtNamadepan.Text = "";
txtNamabelakang.Text = "";
rbBaru.Checked = false;
rbHilang.Checked = false;
rbPanjang.Checked = false;
rbA.Checked = false;
rbB.Checked = false;
rbC.Checked = false;
rbB1.Checked = false;
rbD.Checked = false;
rbInter.Checked = false;
txtAlamat.Text = "";
txtRt.Text = "";
txtRw.Text = "";
txtKel.Text = "";
txtKec.Text = "";
txtKab.Text = "";
txtKodepos.Text = "";
rbPria.Checked = false;
rbWanita.Checked = false;
txtTempatlahir.Text = "";
txtPekerjaan.Text = "";
numericUpDownTinggi.Value = 0;
numericUpDownBerat.Value = 0;
txtNoktp.Text = "";
pictureBoxFoto.Image=null;
}
private
void Form1_Load(object
sender, EventArgs e)
{
}
private
void btnOk_Click(object
sender, EventArgs e)
{
data
d = new data();
string pesan =
"";
if
(txtKab.Text == "")
{
pesan += "silahkan isikan kabupaten\n";
}
if
(txtNamadepan.Text == "")
{
pesan += "silahkan isikan nama depan\n";
}
if
(txtKel.Text == "")
{
pesan += "silahkan isikan kelurahan\n";
}
if
(txtKec.Text == "")
{
pesan += "silahkan isikan kecamatan\n";
}
if
(txtKodepos.Text == "")
{
pesan += "silahkan isikan kode pos\n";
}
if
(txtRt.Text == "")
{
pesan += "silahkan isikan Rt\n";
}
if
(txtTempatlahir.Text == "")
{
pesan += "silahkan isikan tempat lahir\n";
}
if
(txtPekerjaan.Text == "")
{
pesan += "silahkan isikan pekerjaan\n";
}
if
(txtRw.Text == "")
{
pesan += "silahkan isikan Rw\n";
}
if
(txtAlamat.Text == "")
{
pesan += "silahkan isikan alamat\n";
}
if
(pictureBoxFoto.Image == null)
{
pesan += "silahkan masukkan foto\n";
}
if
(txtNoktp.Text == "")
{
pesan += "silahkan masukkan nomor ktp\n";
}
if
(rbBaru.Checked == false && rbPanjang.Checked==false && rbHilang.Checked == false) {
pesan += "pilih salah satu jenis permohonan\n";
}
if
(rbA.Checked == false && rbB.Checked ==
false && rbInter.Checked == false && rbC.Checked==false && rbD.Checked==false
&& rbB1.Checked==false)
{
pesan += "pilih salah satu jenis golongan sim\n";
}
if
(rbPria.Checked == false &&
rbWanita.Checked == false) {
pesan += "pilih salah satu jenis kelamin\n";
}
d.Namadepan = txtNamadepan.Text;
d.Namabelakang =
txtNamabelakang.Text;
if
(rbBaru.Checked)
{
d.Jenis = rbBaru.Text;
}
else
if (rbHilang.Checked)
{
d.Jenis = rbHilang.Text;
}
else
if (rbPanjang.Checked)
{
d.Jenis = rbPanjang.Text;
}
else
{
d.Jenis = "";
}
if
(rbA.Checked)
{
d.Golongan = rbA.Text;
}
else
if (rbB.Checked)
{
d.Golongan = rbB.Text;
}
else
if (rbB1.Checked)
{
d.Golongan = rbB1.Text;
}
else
if (rbC.Checked)
{
d.Golongan = rbC.Text;
}
else
if (rbD.Checked)
{
d.Golongan = rbD.Text;
}
else
if (rbInter.Checked)
{
d.Golongan = rbInter.Text;
}
else
{
d.Golongan = "";
}
d.Alamat = txtAlamat.Text;
d.Rt = txtRt.Text;
d.Rw = txtRw.Text;
d.Kelurahan = txtKel.Text;
d.Kecamatan = txtKec.Text;
d.Kabupaten = txtKab.Text;
d.Kodepos = txtKodepos.Text;
if
(rbPria.Checked)
{
d.Kelamin = rbPria.Text;
}
else
if (rbWanita.Checked)
{
d.Kelamin = rbWanita.Text;
}
else
{
d.Kelamin = "";
}
d.Tempat = txtTempatlahir.Text;
d.Tanggal =
dateTimePicker1.Value.ToShortDateString();
d.Pekerjaan = txtPekerjaan.Text;
d.Tinggi = Convert.ToInt16(numericUpDownTinggi.Value);
d.Berat = Convert.ToInt16(numericUpDownBerat.Value);
d.No = txtNoktp.Text;
if
(pesan == "")
{
dao.insertData(d);
File2SqlBlob(alamatGambarku);
clear();
}
else
{
MessageBox.Show(pesan);
}
}
private
void btnView_Click(object
sender, EventArgs e)
{
Tabel
ftbl = new Tabel();
try
{
ftbl.Show();
}
catch(Exception){
MessageBox.Show("tidak ada data");
}
}
//method
untuk menyimpan file gambar ke dalam database
private
void File2SqlBlob(string
SourceFilePath)
{
try
{
MySqlCommand
cmd = new MySqlCommand("update tbsim set foto=?Picture where no='"
+ txtNoktp.Text + "'",dao.koneksi
);
System.IO.FileStream fs = new
System.IO.FileStream(SourceFilePath,
System.IO.FileMode.Open, System.IO.FileAccess.Read);
Byte[]
b = new Byte[fs.Length];
fs.Read(b, 0, b.Length);
fs.Close();
MySqlParameter
P = new MySqlParameter("?Picture", MySqlDbType.LongBlob,
b.Length, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, b);
cmd.Parameters.Add(P);
dao.koneksi.Open();
if
(cmd.ExecuteNonQuery() == 1)
MessageBox.Show("Gambar berhasil di simpan ke database");
dao.koneksi.Close();
}
catch
(MySqlException ex)
{
MessageBox.Show(ex.Message);
}
}
private
void btnBrowse_Click(object
sender, EventArgs e)
{
if
(DialogResult.OK ==
openFileDialog1.ShowDialog())
{
gambarku = new Bitmap(openFileDialog1.FileName);
pictureBoxFoto.Image =
gambarku;
alamatGambarku =
openFileDialog1.FileName.ToString();
}
}
private
void btnClear_Click(object
sender, EventArgs e)
{
clear();
}
private
void numericUpDownTinggi_ValueChanged(object sender, EventArgs
e)
{
}
private
void numericUpDownBerat_ValueChanged(object sender, EventArgs
e)
{
}
}
}
Dalam form ini
setiap field harus terisi karena terdapat proteksi jika terdapat data yg
kosong. Untuk memasukan foto dapat dilakukan dengan tombol browse lalu akan
muncul openFileDialog untuk memilih gambar.
Klik OK untuk
memasukan gambar, dan form secara otomatis akan clear.
Klik View untuk
melihat table dari database dan proses selanjutnya yaitu delete, update,
browse, dan
menampilkan SIM (preview).
menampilkan SIM (preview).
Pada form table ini dapat menampilkan seluruh value dari
databse termasuk foto dari setiap value. Dapat pula mem’filter data / mencari
data tertentu dengan memilih kategori (search By) lalu mengetikan Keyword.
Delete dapat dilakukan dengan memilih salah satu dari value di dalam
dataGridView lalu klik tombol Delete.
Berikut source codenya:
namespace FormSIM
{
public partial class Tabel : Form
{
public
Tabel()
{
InitializeComponent();
}
Dao
dao = new Dao();
data d = new data();
private
void Tabel_Load(object
sender, EventArgs e)
{
lihatSemuaData();
loadFromDatabase();
}
public void lihatSemuaData()
{
DataSet
data = dao.getData();
dataGridView1.DataSource = data;
dataGridView1.DataMember = "tb_sim";
}
//method
untuk mengambil data yang berupa gambar dari database
private
void loadFromDatabase()
{
string
noKtp = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[17].Value.ToString();
string
namadepan =
dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();
string
path = "C:/" + noKtp + ".jpeg";
Byte[] blob
= null;
FileStream
fs = null;
dao.koneksi.Open() ;
MySqlCommand
cmd = new MySqlCommand("select foto from tbsim where no='" +
noKtp + "'", dao.koneksi);
MySqlDataReader
sdr = cmd.ExecuteReader();
sdr.Read();
blob = new
Byte[(sdr.GetBytes(0, 0, null, 0, int.MaxValue))];
sdr.GetBytes(0, 0, blob, 0,
blob.Length);
sdr.Close();
dao.koneksi.Close();
fs = new
FileStream(path, FileMode.Create,
FileAccess.Write);
fs.Write(blob, 0, blob.Length);
fs.Close();
pictureBoxFoto.LoadAsync(path);
}
private
void btnDelete_Click(object
sender, EventArgs e)
{
d.No =
dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[17].Value.ToString();
dao.deleteData(d.No);
lihatSemuaData();
}
private
void btnSearch_Click(object
sender, EventArgs e)
{
string
pesan="";
if
(txtCari.Text == "") {
pesan+="masukkan
keyword yang ingin di cari\n";
}
if
(cbxKategori.SelectedIndex < 0) {
pesan += "pilih salah satu kategori pencarian";
}
if
(pesan == "")
{
String
query = "SELECT
namadepan,namabelakang,jenis,golongan,alamat,rt,rw,kelurahan,kecamatan,kabupaten,kodepos,kelamin,tempat,tanggal,pekerjaan,tinggi,berat,no
FROM tbsim WHERE " + cbxKategori.SelectedItem + " LIKE '%" + txtCari.Text + "%'";
dao.searchData(query);
dataGridView1.DataSource =
dao.DS;
dataGridView1.DataMember = "data";
}
else
{
MessageBox.Show(pesan);
}
}
private
void btnRefresh_Click(object
sender, EventArgs e)
{
lihatSemuaData();
}
private
void btnUpdate_Click(object
sender, EventArgs e)
{
if
(dataGridView1.RowCount != 0)
{
string
no =
dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[17].Value.ToString();
Ubah
u = new Ubah(no);
u.ShowDialog();
}
}
private
void btnSim_Click(object
sender, EventArgs e)
{
if
(dataGridView1.RowCount != 0)
{
string
noKtp = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[17].Value.ToString();
Tampil
tpl = new Tampil(noKtp);
tpl.ShowDialog();
}
}
private
void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs
e)
{
if
(dataGridView1.RowCount != 0)
{
loadFromDatabase();
string
noKtp =
dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[17].Value.ToString();
string
path = "C:/" + noKtp + ".jpeg";
pictureBoxFoto.ImageLocation = path;
}
}
}
}
Sedangkan Untuk Update akan muncul form baru seperti Form1
Kemudian tombol SIM paa form table adalah untuk menampilkan
(preview) dari SIM itu sendiri. Dengan cara pilih salah satu value dari
dataGridView lalu tekan tombol SIM. Maka akan muncul seperti gambar di bawah
ini:
Dengan source code:
namespace FormSIM
{
public partial class Tampil : Form
{
string
noKtp;
List<string> list;
public
Tampil(string noKtp)
{
InitializeComponent();
this.noKtp
= noKtp;
}
private
void lblAlamat_Click(object
sender, EventArgs e)
{
}
private
void Tampil_Load(object
sender, EventArgs e)
{
loadData();
}
//method
untuk mengambil data dari database kemudian memasukkan ke list
public void loadData()
{
Dao
dao = new Dao();
list = new
List<string>();
list = dao.loadData("SELECT * FROM tbsim WHERE no='" + noKtp
+ "'");
//mengisi
label.text dari list
if
(list[3].Length == 5)
{
lblKode.Text =
list[3].Substring(4, 1);
}
else
if (list[3].Length >= 5)
{
lblKode.Text =
list[3].Substring(4, 2);
}
lblNama.Text = list[0] + " " + list[1];
lblAlamat.Text = list[4];
lblRt.Text = list[5];
lblRw.Text = list[6];
lblKelurahan.Text = list[7];
lblKabupaten.Text = list[9];
lblTempat.Text = list[12];
lblTanggal.Text = list[13];
lblTinggi.Text = list[15];
lblPekerjaan.Text = list[14];
pictureBox2.ImageLocation = "C:/" + list[17] + ".jpeg";
}
}
}
Kesimpulan
Dengan adanya program ini diharapkan dapat mempermudah
proses pembuatan surat ijin mengemudi. Program ini sementara hanya dapat
diakses oleh seorang admin. Program ini masih memiliki kekurangan. Diharakan ke
depanya program ini dapat diakses oleh seorang user agar mempermudah dalam
proses pendaftaran pembuatan SIM. Sehingga pengisian Form tidak lagi dilakukan
secara manual.
Untuk lebih jelasnya silahkan download di link berikut:
Tidak ada komentar:
Posting Komentar