Minggu, 17 Maret 2013

Pemesanan Tiket Pesawat Terbang



Nama dan Nim Kelompok :
Adrian Davin .P (672011016)
Rachel Beatriks M.Laly (702011165)
Rivafan N.S Lesawengan (672011165)

Pemesanan Tiket Pesawat

Latar Belakang

Kelompok Kami Membuat Aplikasi Pemesanan Tiket Pesawat Online Dikarenakan Dengan Adanya Sistem Pemesanan Tiket Online Seperti Ini Penguna Jasa Pesawat Dapat memesan Tiket Tanpa Harus Pergi Ke Loket – Loket Pemesanan,dalam Kehidupan Nyata Pun Program Seperti ini Sangat Dibutuhkan Karena Menguntungkan dan Menghemat Waktu Baik Segi Maskapai Maupun Penumpang.

Pertama Kita Membuat 2 Kelas Dao:
a.Kelas Dao pertama Berisi : 


    class pnrbnganDAO
    {
        private MySqlCommand perintah = null;
string konfigurasi = "Server=localhost;Port=3306;UID=root;PWD=;Database=tgs2_pv";
MySqlConnection koneksi = new MySqlConnection();
public pnrbnganDAO()
 {
koneksi.ConnectionString = konfigurasi;
 }




public bool insertData(PnrbnganGetset m) // Query Untuk Memasukan Data Dari C# ke Dalam Database
{
    Boolean stat = false;
    try
    {
        koneksi.Open();
        perintah = new MySqlCommand();
        perintah.Connection = koneksi;
        perintah.CommandType = CommandType.Text;
        perintah.CommandText = "INSERT INTO penerbangan VALUES ('"+ m.Username+"','"+ m.Nama + "','" + m.Alamat + "','" + m.No_telp + "','" 
                                + m.Jenis_kelamin + "','" + m.Tanggal + "','" + m.Asal + "','" + m.Tujuan + "','"
                                 +m.Jml_dewasa + "','"+ m.Jml_anak+ "')";
        perintah.ExecuteNonQuery();
        stat = true;

        koneksi.Close();
    }

    catch (MySqlException) { }


    return stat;
}



/*
public bool insertDatalogin(PnrbnganGetset m) // Query Untuk Memasukan Data Dari username dan password ke Dalam Database
{
    Boolean stat = false;
    try
    {
        koneksi.Open();
        perintah = new MySqlCommand();
        perintah.Connection = koneksi;
        perintah.CommandType = CommandType.Text;
        perintah.CommandText = "INSERT INTO penerbangan (Username,Password) VALUES Us('" + m.Username + "','" + m.Password + "')"; ;
        perintah.ExecuteNonQuery();
        stat = true;

        koneksi.Close();
    }

    catch (MySqlException) { }


    return stat;
}
        
        */





public DataSet getData()
{
    DataSet ds = new DataSet();
    try
    {
        koneksi.Open();
        perintah = new MySqlCommand();
        perintah.Connection = koneksi;
        perintah.CommandType = CommandType.Text;
        perintah.CommandText = "SELECT * FROM penerbangan";
        MySqlDataAdapter mdap = new MySqlDataAdapter(perintah);
        mdap.Fill(ds, "penerbangan");
        koneksi.Close();
    }
    catch (MySqlException)
    {
    }
    return ds;
}






public bool updateData(PnrbnganGetset m, string Username)
{
    Boolean stat = false;
    try
    {
        koneksi.Open();
        perintah = new MySqlCommand();
        perintah.Connection = koneksi;
        perintah.CommandType = CommandType.Text;
        perintah.CommandText = "UPDATE penerbangan SET nama='" + m.Nama+ "', Alamat= '" +
            m.Alamat + "',No_Telp = '" +m.No_telp +"',Jenis_kelamin ='" +m.Jenis_kelamin +"',Tanggal = '"+m.Tanggal+"',Asal = '"+
            m.Asal +"',Tujuan= '"+m.Tujuan +"',Jml_Dewasa = '" + m.Jml_dewasa + "', Jml_Anak = '" + m.Jml_anak+"' WHERE Username='" + Username+ "'";
        perintah.ExecuteNonQuery();
        stat = true;
        koneksi.Close();
    }
    catch (MySqlException) { }
    return stat;
}




public bool deleteData(string primary)
{
    Boolean stat = false;
    try
    {
        koneksi.Open();
        perintah = new MySqlCommand();
        perintah.Connection = koneksi;
        perintah.CommandType = CommandType.Text;
        perintah.CommandText = "DELETE FROM penerbangan WHERE Username='" + primary + "'";
        perintah.ExecuteNonQuery();
        stat = true;
        koneksi.Close();
    }
    catch (MySqlException) { }
    return stat;
}



    }
}


Kelas DAO Kedua Berisi :


  class DAOlogin
    {
        private MySqlCommand perintah = null;
        string konfigurasi = "Server=localhost;Port=3306;UID=root;PWD=;Database=tgs2_pv";
        MySqlConnection koneksi = new MySqlConnection();
        public DAOlogin()
        {
            koneksi.ConnectionString = konfigurasi;
        }



        public bool insertDatalogin(PnrbnganGetset m) // Query Untuk Memasukan Data Dari C# ke Dalam Database
        {
            Boolean stat = false;
            try
            {
                koneksi.Open();
                perintah = new MySqlCommand();
                perintah.Connection = koneksi;
                perintah.CommandType = CommandType.Text;
                perintah.CommandText = "INSERT INTO login VALUES ('" + m.Username + "','" + m.Password + "')";
                perintah.ExecuteNonQuery();
                stat = true;

                koneksi.Close();
            }

            catch (MySqlException) { }


            return stat;
        }


        public DataSet getDatalogin(PnrbnganGetset m)
        {
            DataSet ds = new DataSet();
            try
            {
                koneksi.Open();
                perintah = new MySqlCommand();
                perintah.Connection = koneksi;
                perintah.CommandType = CommandType.Text;
                perintah.CommandText = "SELECT COUNT (*) FROM login WHERE Username = '" + m.Username + "' AND Password ='" +m.Password +"'";
                MySqlDataAdapter mdap = new MySqlDataAdapter(perintah);
                mdap.Fill(ds, "login");
                koneksi.Close();
            }
            catch (MySqlException)
            {
            }
            return ds;
        }
    
    }
}








Pada Form Log in Pertama User Harus Menginputkan Username sesuai Dengan Username yang ada Pada Password Dimana Jika User belum Memilikinya Maka User harus Memilih Tombol Daftar Source Code Pada Tombol Log in
            
     try
                {
                    // Membuka Koneksi Dengan Database
                    string ConnectionString = "server=localhost;uid=root;" +
                        "pwd=; database=tgs2_pv";
                    con = new MySqlConnection(ConnectionString);
                    con.Open();
                    m.Username = usrtxt.Text;
                    m.Password = passtxt.Text;

                    //Melakukan Pengecekan jika Benar Maka Akan Bernilai 1 Jika Salah Bernilai 0
                    string CommandText = "SELECT count(*) FROM login WHERE Username = '" + m.Username + "' AND Password ='" + m.Password + "'";
                    cmd = new MySqlCommand(CommandText);
                    cmd.Connection = con;



                    // Execute the query
                    rdr = cmd.ExecuteReader();
                 bool coba=false;
                
                
                    while (rdr.Read())    // Membaca Data Yang Ada Pada Database jika Hasilnya 1 maka Bolean coba akan bernilai true lalu jika bolean bernilai True Akan Menampilkan Form1(Form Utama Pemesanan Tiket) sedangkan Jika hasilnya 0 Maka Akan Muncul Pesan Box
                    {

                       
                        if (rdr.GetInt16(0) == 1)
                        {
                             coba=true;
                            
                            break;
                        }
                    }

                  if(coba==true){
                      MessageBox.Show("Selamat Anda Berhasil Log in");
                    Form1 fs1 = new Form1(usrtxt.Text);
                    this.Dispose(false);
                    fs1.Show();
                  }else
                  {
                      MessageBox.Show("Ada Yang Salah Antara Username Dan Password");
                     
                  }



                }
                catch (Exception ex)
                {
                    // Yang Akan DIlakukan Bila Terjadi Error
                    MessageBox.Show(ex.Message);
                }




Daftar :
{if (usrdaftar.Text == "" || passdaftar.Text== "")
       {
               MessageBox.Show ("User Id Gagal Di Buat Silahkan Cek Ulang");
       }  
            m.Username = usrdaftar.Text;
            m.Password = passdaftar.Text;
            dl.insertDatalogin(m);
            MessageBox.Show("Selamat User Id Anda Berhasil Dibuat");
            Form3 f3 = new Form3();
            this.Dispose(false);
            f3.Show();
        }

Penjelasan : Untuk Mengambil Membuat Id mengambil data pada textbox username dan textbox password dimana data tersebut akan masuk ke dalam database jika data berhasil masuk ke dalam database maka akan muncul mesage box dan akan kembali Ke form3(Form log in),Jika textbox username atau password kosong data gagal masuk ke dalam database








Source Pada Setiap Tombol:
Insert :

              if (namatxt.Text == "" || alamattxt.Text == "" || no_telptxt.Text == "" ||asalbox.Text == "" ||   // Proteksi Sebeum Data Masuk Ke Database
                tujuanbox.Text == "" || dateTimePicker1.Text == "" || dwsabox.Text == "" || anakbox.Text == "" || dwsabox.Text==""
                || asalbox.Text == "-Pilih Awal Penerbangan-" || tujuanbox.Text == "-Pilih Tujuan Penerbangan-")
            {
           
            MessageBox.Show("Data Gagal Ditambahkan Silahkan Ulangi Program");}

            else{
           m.Username = id.Text;
            m.Nama = namatxt.Text;
            m.Alamat = alamattxt.Text;
            m.No_telp = Convert.ToInt32(no_telptxt.Text);
            if (lk_btn.Checked)
            {
                m.Jenis_kelamin = lk_btn.Text;
            }
            else {
                m.Jenis_kelamin = wnt_btn.Text;
            }
            m.Tanggal = dateTimePicker1.Text;
            m.Asal = asalbox.Text;
            m.Tujuan = tujuanbox.Text;
            m.Jml_dewasa = Convert.ToInt32(dwsabox.Text);
            m.Jml_anak = Convert.ToInt32(anakbox.Text);
            md.insertData(m);
             MessageBox.Show("Data Berhasil Ditambahkan");
             lihatSemuaData();
        
           
        }
        }
        private void asalbox_SelectedIndexChanged(object sender, EventArgs e)
        {
            tujuanbox.DroppedDown = true;
        }

Penjelasan : Dimana Pada Sourcecode Untuk Tombol Ini mengunakan fungsi untuk mengambil text data baik yang ada dalam GUI textbox,button,combobox,Agar Masuk Ke Database Menggunakan Fungsi Gettersetter Dan Method insertdata(Dimana Method Ini Bisa di Lihat Dalam Program) Jika Data Berhasil Masuk Ke Database Maka Akan Muncul Pesan Data Berhasil Ditambahkan Dan Data Akan Ditampilkan Ke Table Dengan Mengunakan Method LihatSemuaData(Mempelajari Method ini Ada Dalam Program),Untuk Insert Data satu Username Hanya Bisa Memasukan satu data jika Lebih dari satu maka pada Saat Insert Data Selanjutnya program akan error Hal Tersebut di karenakan Username di database penerbangan Menjadi Primary Key.Juga Terdapat beberapa Proteksi Pada Awal Code.

Update
             if (Username == id.Text)
             {
                 m.Nama = namatxt.Text;
                 m.Alamat = alamattxt.Text;
                 m.No_telp = Convert.ToInt32(no_telptxt.Text);
                 if (lk_btn.Checked)
                 {
                     m.Jenis_kelamin = lk_btn.Text;
                 }
                 else
                 {
                     m.Jenis_kelamin = wnt_btn.Text;
                 }
                 m.Tanggal = dateTimePicker1.Text;
                 m.Asal = asalbox.Text;
                 m.Tujuan = tujuanbox.Text;
                 m.Jml_dewasa = Convert.ToInt32(dwsabox.Text);
                 m.Jml_anak = Convert.ToInt32(anakbox.Text);
                 md.updateData(m, Username);
                 MessageBox.Show("Data Berhasil Di Update");
                 lihatSemuaData();

             } else if(Username != id.Text){
                 MessageBox.Show("Anda Tidak Boleh Mengupdate Data Yang Bukan Milik Anda");
            
             }


Penjelasan :Pada Fungsi Update Ini User hanya Boleh Mengupdate Data Yang Dia Buat Mengunakan Usernamenya Sendiri Sehingga Ia Tida Bisa Mengupdate Data Milik User Lain,Mungkin Coding update Hampir Sama seperti Coding di Tombol Insert,mengambil data text Pada Setiap Gui Hanya saja Pada tombol Update ini yang Kita Gunakan Adalah Method Update() dimana Data Yang Sebelumnya Ditumpuk Dengan data yang Baru.dan dalam Database pemilihan data yang Ditumpuk Berdasarkan Username.
Jika Data Berhasil di Update Maka Akan Muncul pesanDialog setelah Itu Data Akan Ditampilkan Dalam table / data yang Ada dalam table akan di refresh Data Hanya bisa Di Update Jika Login Dengan User Yang Sesuai Pada Data Sehingga 1 data Hanya Bisa di Update Oleh 1 User Hal Tersebut Dikarenakan Username Sebagai primary Key

    Clear   namatxt.Text = "";
            alamattxt.Text = "";
            no_telptxt.Text = "";
            dwsabox.Text = "";
            anakbox.Text = "";
            lk_btn.Checked = false;
            wnt_btn.Checked = false;
            dateTimePicker1.Text = "";
            asalbox.Text = "-Pilih Awal Penerbangan- ";
            tujuanbox.Text = "-Pilih Tujuan Penerbangan-";
           

*Tombol Clear disini Digunakan Agar Textbox,Button,Combo Box. Di reset Menjadi Seperti Kondisi Mula-Mula

Delete :
             if(Username != id.Text){
                 MessageBox.Show("Anda Tidak Boleh Menghapus Data Yang Bukan Milik Anda");
             }
            md.deleteData(Username);
            lihatSemuaData();


Penjelasan : pada Tombol Delete Menghapus Data Berdasarkan username yang dimana Username Tersebut didapat Dari Data di Table Yang Dipilih,Cara Menghapus Data Di database Terdapat Pada Method deletedata,Penghapusan Dapat Dilakukan Dengan Syarat Username Pada Data Cocok Dengan Username yang Digunakan Untuk Log in.jika Penghapusan Berhasil Maka Data Akan Ditampilkan Atau Data yang Sudah Ada akan di refresh
Show : Berisi Method lihatSemuadata yang digunakan Untuk Menampilkan Data yang Ada Ke tabel
View :  Form2 f2 = new Form2();
            f2.Show();
            this.Dispose(false);


Penjelasan : Pada Tombol View Membuat Tampilan Pemesanan di hiden Lalu Menampilkan Form2 dimana Form 2 digunakan Untuk Melihat Data Tanpa Table









 Show :     try
            {
                // Membuka Koneksi Dengan Database
                string ConnectionString = "server=localhost;uid=root;" +
                    "pwd=; database=tgs2_pv";
                con = new MySqlConnection(ConnectionString);
                con.Open();
            

              //Mengambil Semua Data yang ada Dalam Tabel Penerbangan
                string CommandText = "SELECT * from penerbangan";
                cmd = new MySqlCommand(CommandText);
                cmd.Connection = con;



                // Execute the query
                rdr = cmd.ExecuteReader();
             
                while (rdr.Read())    // Menampilkan data Ke Dalam textbox
                {
               
                  a++;
                  textBox1.Text += "\r\nData Ke :"+a+ "\r\n"
                  + "User Pemesan :" + rdr["Username"].ToString() + "\r\n"
                  + "Nama Pemesan :" + rdr["Nama"].ToString() + "\r\n"
                  + "Alamat Pemesan :" + rdr["Alamat"].ToString() + "\r\n"
                  + "Nomor Telepon Pemesan :" + rdr["No_Telp"].ToString() + "\r\n"
                  + "Jenis Kelamin Pemesan :" + rdr["Jenis_kelamin"].ToString() + "\r\n"
                  + "Tanggal Pemesanan :" + rdr["Tanggal"].ToString() + "\r\n"
                  + "Kota Asal :" + rdr["Asal"].ToString() + "\r\n"
                  + "Kota Tujuan :" + rdr["Tujuan"].ToString() + "\r\n"
                  + "Jumlah Penumpang Dewasa :" + rdr["Jml_Dewasa"].ToString() + "\r\n"
                  + "Jumlah Penumpang Anak:" + rdr["Jml_Anak"].ToString() +"\r\n";
               
                    
                 
                }
             

            }
            catch (Exception ex)
            {
                // Yang Akan DIlakukan Bila Terjadi Error
                MessageBox.Show(ex.Message);
            }
            finally
            {

                if (rdr != null)
                    rdr.Close();

                if (con.State == ConnectionState.Open)
                    con.Close();
            }
        }

Kesimpulan : Dengan Adanya tugas ini membantu kami Untuk Lebih memahami koneksi database dalam C# Mungkin Masih Ada Banyak Kekurangan dan Proteksi-Proteksi yang Belum ada Dalam Program Sistem Pemesanan Tiket Online Kelompok Kami Ini namun Dengan Tugas ini Kami Berharap Dapat Membantu / menjadi Referensi Programer Lain dalam Mempelajari C# dan Menambah Tipe” / Referensi Bagi Program Pemesanan Yang Akan Di Buat Maupun Yang Telah di Buat...

Program Dapat di Download Di Sini  













3 komentar: