Minggu, 24 Maret 2013

PEMBUATAN SURAT IJIN MENGEMUDI (DRIVING LICENSE)


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





 Source code:
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).


 

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