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...
databasenya mana gan?
BalasHapusDatabase nya
BalasHapusdatabase mana ya bro ?
BalasHapus