Kevin H B P – 672011123
Landhung B P – 672011188
Ulfa S P – 672011228
Latar Belakang
Di era yang serba modern ini, kita selalu menggunakan
komputer dalam segala aktivitas yang kita lakukan. Jarang kita menemukan saat
ini di sebuah kantor jasa pengiriman misalnya, belum menggunakan komputer dalam
mobilitas kantornya. Komputer di kantor jasa pengiriman biasanya digunakan
untuk membantu adminitrasi pengiriman barangnya. Namun jika menggunakan
aplikasi sederhana, seperti excel, belum banyak mengurangi kesalahan yang
dibuat manusia. Maka dari itu kami membuat aplikasi untuk pengiriman sepeda
motor yang akan sangat membantu kantor jasa pengiriman sepeda motor. Karena
dengan adanya aplikasi yang kami buat ini, akan mengurangi resiko kesalahan
pengiriman (salah alamat, salah nama penerima, dll), hal ini terjadi jika masih
menulis manual. Kelebihan lainnya adalah dengan aplikasi ini kantor jasa
pengiriman akan lebih mudah dalam memenajemen data selama jangka waktu
tertentu, karena aplikasi kami ini akan menyimpan semua data pengiriman yang
dilakukan setiap waktunya, tidak seperti manual yang misalnya menulis data pengiriman pada sebuah
buku atau menulis data pada lembar kerja excel, karena jika kita ingin mencari
atau ingin mengupdate sebuah data, dalam pencariannya akan sangat sulit dan
membuang waktu yang cukup lama, maka dari itu aplikasi kami akan sangat
membantu dalam mobilitas pelengkapan adminitrasi pengiriman sepeda motor.
Isi
Gambar 1
Setiap karyawan diharuskan memiliki akun yang berisi
username dan password, yang nanti akan digunakan dengan memanggilnya dari
database. ( Untuk contoh anda akan diberi akun dengan username “kevin” dan password “skies” ). Berikut adalah
pengalan kode untuk mengecek apakah data yang dimasukan valid.
string conn = "server=localhost;database=dbaku;uid=root;password=;"; // untuk memudahkan
pemanggilan koneksi ditulis ke variabel string
private bool cekData(String usernm, String passwd)
{
//
variable boolean untuk mengetahui kesuksesan proses
Boolean Success = false;
try
{
MySqlConnection db = new MySqlConnection(conn); // membuat koneksi
ke database
db.Open(); // membuka koneksi ke database
MySqlCommand cmd = db.CreateCommand(); //
membuat command untuk koneksi
string sql = "select
password from logger where username = '" +
usernm + "'"; // query dimana hanya akan
men-select data dengan username tertentu
cmd.CommandText = sql; // memasukan query ke dalam koneksi
MySqlDataReader reader = cmd.ExecuteReader(); // mengeksekusi query dan menampung data
while (reader.Read()) //
ketika reader masih dapat membaca
{
if (reader.GetString(0) ==
passwd) // mengecek apakah password yang
dimasukan sama dengan yang ada didatabase, jika ya variabel success akan diberi
nilai true
{
Success = true;
}
}
reader.Close(); // menutup reader
db.Close(); // menutup koneksi
}
catch (ArgumentOutOfRangeException m) // untuk menghindari error
dibuat dengan try catch
{
MessageBox.Show("Data Masih
Kosong!\nMasukkan data lebih dulu", "Pesan");
Console.Write(m);
}
catch (MySqlException m)
{
MessageBox.Show("Koneksi
database masih salah!", "Pesan");
Console.Write(m);
}
return Success; // mengembalikan
nilai boolean
}
Gambar 2
Setelah login anda akan dihadapkan dengan form untuk
memasukan data. Anda dapat mengisi kotak – kotak sesuai dengan kriteria yang
ditentukan. Untuk melihat data yang sudah berada dalam database anda dapat
mengklik tombol View Current Log atau
tombol Logout untuk keluar.
private void masukanData() {
// id
transaksi akan digenerate secara otomatis
//
berisi tahun, bulan, tanggal, jam, menit, detik, milidetik, dengan menambahkan
huruf t untuk transaksi didepan sehingga tidak ada yang sama dan cukup efektif
String id = "t" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() +
DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
//inputan
textnya ditampung pada suatu variabel string untuk memudahkan proses memasukan
data
String namaPengirim = "" + txtNamaPengirim.Text;
String NIP = "" + txtNIP.Text;
String alamatPengirim = "" + txtAlamatPengirim.Text;
String telpPengirim = "" + txtTelpPengirim.Text;
String posPengirim = "" + txtPOSPengirim.Text;
String namaPenerima = "" + txtNamaPenerima.Text;
String alamatPenerima = "" + txtAlamatPenerima.Text;
String telpPenerima = "" + txtTelpPenerima.Text;
String posPenerima = "" + txtPOSPenerima.Text;
String merkMotor = "" + cmbMerekMotor.SelectedItem.ToString();
String typeMotor = "" + txtTypeMotor.Text;
String platMotor = "" + txtPlatMotor.Text;
try
{
MySqlConnection db = new MySqlConnection(conn); // membuat koneksi
ke database
db.Open(); // membuka koneksi ke database
MySqlCommand cmd = db.CreateCommand(); //
membuat perintah ke koneksi
//
tiap tabel dibedakan variabel querynya sehingga meminimalkan kesalahan
string query = "insert into
pengirim values('" + id + "', '" + NIP +
"', '" + namaPengirim + "',
'" + alamatPengirim + "', '" +
telpPengirim + "', '" + posPengirim + "')";
string query2 = "insert into
penerima values('" + id + "', '" +
namaPenerima + "', '" + alamatPenerima + "',
'" + telpPenerima + "', '" +
posPenerima + "')";
string query3 = "insert into
motor values('" + id + "', '" +
merkMotor + "', '" + typeMotor + "',
'" + platMotor + "')";
cmd.CommandText = query; // mengisi query ke command
MySqlDataAdapter adapter = new MySqlDataAdapter(query, conn); //
membuat adapter dari query dan connection
cmd.ExecuteNonQuery(); // mengeksekusi
perintah di command
cmd.CommandText = query2; // merubah query di command
adapter = new MySqlDataAdapter(query,
conn); // merubah adapter
cmd.ExecuteNonQuery(); // mengeksekusi perintah
cmd.CommandText = query3; // merubah lagi query di command
adapter = new MySqlDataAdapter(query,
conn); // merubah isi adapter
cmd.ExecuteNonQuery(); // mengeksekusi kembali
db.Close(); // menutup koneksi database
MessageBox.Show("Data Insert
Completed", "Done"); // memberikan tanda bahwa proses terlaksana dengan baik
}
catch (ArgumentOutOfRangeException)
{
MessageBox.Show("Data Masih
Kosong!\nMasukkan data lebih dulu");
}
catch (MySqlException)
{
MessageBox.Show("Koneksi
database masih salah!");
}
}
Gambar 3
Setelah tombol next di aktifkan proses penyimpana data akan
berjalan dan bila sudah selesai akan menampilkan Pesan seperti Gambar 3.
Gambar 4
Terdapat 3 mode yang ada dalam form Gambar 4, View, Update,
Delete, yang masing masing mode akan merubah Text dan fungsi dari tombol kanan
bawah. Di dalam view mode tombol akan menampilkan data / binding, dalam mode update tombol akan mengupdate data yang telah
di select. Cara select data adalah dengan mengklik rowhead / kepala baris dari
tabel (yang ada tanda }
) data akan kemudian dipindah ke dapala text box yang disediakan untuk dirubah.
Dalam mode delete tombol akan menghapus data yang telah di select. Untuk
merubah mode anda hanya dapat mengeklik tombol mode yang ada di pojok kiri
atas.
Gambar 5
Gambar 5 menunjukan data yang telah diselect, berikut
potongan kode untuk mengambil data dari database.
public void binding()
{
try
{
int max = 0;
MySqlConnection db = new MySqlConnection(conn); // membuat koneksi
db.Open(); // membuka koneksi
MySqlCommand command = db.CreateCommand(); // membuat perintah koneksi
string query = "select
count(id) from pengirim"; // membuat query untuk mengerahui jumlah data
command.CommandText = query; // memasukan query ke dalam perintah koneksi
MySqlDataReader reader1 = command.ExecuteReader(); // mengeksekusi perintah
while (reader1.Read())
{
max = Convert.ToInt16(reader1.GetValue(0));
// menampung jumlah data ke var max
}
db.Close(); // menutup koneksi
dataGridView1.Rows.Clear(); // mengosongkan jumlah baris di dataGridView1
dataGridView1.Rows.Add(max); // membuat baris sesuai dengan jumlah data
int i = 0;
db.Open(); // membuka koneksi
MySqlCommand secCommand = db.CreateCommand(); // membuat perintah koneksi
string secQuery = "select
* from pengirim"; // membuat query tabel pengirim
secCommand.CommandText =
secQuery; // memasukan query ke perintah koneksi
MySqlDataReader reader2 = secCommand.ExecuteReader(); // mengeksekusi koneksi
while (reader2.Read())
{
// memasukan data sesuai nomor kolomnya
dataGridView1.Rows[i].Cells[0].Value = reader2.GetString(0);
dataGridView1.Rows[i].Cells[1].Value
= reader2.GetString(2);
dataGridView1.Rows[i].Cells[2].Value = reader2.GetString(1);
dataGridView1.Rows[i].Cells[3].Value = reader2.GetString(3);
dataGridView1.Rows[i].Cells[4].Value
= reader2.GetString(4);
dataGridView1.Rows[i].Cells[5].Value = reader2.GetString(5);
i++; // agar baris berganti otomatis
}
reader2.Close(); // menutup reader
i = 0; //
mengosongkan var i
secCommand =
db.CreateCommand(); // membuat perintah koneksi
secQuery = "select * from penerima"; // membuat query tabel
penerima
secCommand.CommandText =
secQuery; // memasukan query ke perintah koneksi
reader2 =
secCommand.ExecuteReader(); // mengeksekusi
koneksi
while (reader2.Read())
{
// memasukan data sesuai nomor kolomnya
dataGridView1.Rows[i].Cells[6].Value = reader2.GetString(1);
dataGridView1.Rows[i].Cells[7].Value = reader2.GetString(2);
dataGridView1.Rows[i].Cells[8].Value = reader2.GetString(4);
dataGridView1.Rows[i].Cells[9].Value =
reader2.GetString(3);
i++; // agar baris berganti otomatis
}
reader2.Close(); // menutup readers
i = 0; // mengosongkan var i
secCommand =
db.CreateCommand(); // membuat perintah koneksi
secQuery = "select * from motor"; // membuat query tabel motor
secCommand.CommandText =
secQuery; // memasukan query ke perintah koneksi
reader2 = secCommand.ExecuteReader(); // mengeksekusi koneksi
while (reader2.Read())
{
// memasukan data sesuai nomor kolomnya
dataGridView1.Rows[i].Cells[10].Value = reader2.GetString(1);
dataGridView1.Rows[i].Cells[11].Value = reader2.GetString(2);
dataGridView1.Rows[i].Cells[12].Value = reader2.GetString(3);
i++; // agar baris berganti otomatis
}
reader2.Close(); // menutup readers
db.Close(); // menutup koneksi
}
catch (ArgumentOutOfRangeException m) // memakai trycatch untuk
meminimalisir kesalahan dan mengoptimalkan penanganan error
{
MessageBox.Show("Database
Kosong!");
Console.Write(m);
}
catch (MySqlException m)
{
MessageBox.Show("Koneksi
database masih salah!");
Console.Write(m);
}
catch (Exception m)
{
MessageBox.Show("Error");
Console.Write(m);
}
//untuk
menghapus inputan text dan kembali ke defaultnya.
txtAlamatPenerima.Text = "Alamat Penerima";
txtAlamatPengirim.Text = "Alamat Pengirim";
txtNamaPenerima.Text = "Nama Penerima";
txtNamaPengirim.Text = "Nama Pengirim";
txtNIP.Text = "Nomor Identitas Pengirim";
txtPlatMotor.Text = "Plat Motor";
txtPOSPenerima.Text = "Kode Pos Penerima";
txtPOSPengirim.Text = "Kode Pos Pengirim";
txtTelpPenerima.Text = "Nomor Telp Penerima";
txtTelpPengirim.Text = "Nomor Telp Pengirim";
txtTypeMotor.Text = "Type Motor";
txtMerkMotor.Text = "Merk Motor";
}
Gambar 6
Setelah anda mengaktifkan tombol save atau delete atau go
akan muncul Kotak pesan apakah proses manghapus, update, atau binding berhasil
atau gagal.
private void deleteData(String id)
{
try
{
MySqlConnection db = new MySqlConnection(conn); // membuat koneksi
ke database
db.Open(); // membuka koneksi ke database
MySqlCommand cmd = db.CreateCommand(); //
membuat perintah ke koneksi
//
tiap tabel dibedakan querynya
string query = "delete from
pengirim where id='" + id + "'";
string query2 = "delete from
penerima where id='" + id + "'";
string query3 = "delete from
motor where id='" + id + "'";
cmd.CommandText = query; // mengisi query ke perintah
MySqlDataAdapter adapter = new MySqlDataAdapter(query, conn);
cmd.ExecuteNonQuery();
cmd.CommandText = query2;
adapter = new MySqlDataAdapter(query,
conn);
cmd.ExecuteNonQuery();
cmd.CommandText = query3;
adapter = new MySqlDataAdapter(query,
conn);
cmd.ExecuteNonQuery();
db.Close(); // menutup koneksi database
MessageBox.Show("Data
Deleting Completed", "Done");
}
catch (ArgumentOutOfRangeException)
{
MessageBox.Show("Database
Kosong!");
}
catch (MySqlException)
{
MessageBox.Show("Koneksi
database masih salah!");
}
}
private void updateData(String id)
{
//inputan
textnya ditampung pada suatu variabel tertentu
String namaPengirim = "" + txtNamaPengirim.Text;
String NIP = "" + txtNIP.Text;
String
alamatPengirim = "" + txtAlamatPengirim.Text;
String telpPengirim = "" + txtTelpPengirim.Text;
String posPengirim = "" + txtPOSPengirim.Text;
String namaPenerima = "" + txtNamaPenerima.Text;
String alamatPenerima = "" + txtAlamatPenerima.Text;
String telpPenerima = "" + txtTelpPenerima.Text;
String posPenerima = "" + txtPOSPenerima.Text;
String merkMotor = "" + txtMerkMotor.Text;
String typeMotor = "" + txtTypeMotor.Text;
String platMotor = "" + txtPlatMotor.Text;
try
{
MySqlConnection db = new MySqlConnection(conn); // membuat koneksi
ke database
db.Open(); // membuka koneksi ke database
MySqlCommand cmd = db.CreateCommand(); //
membuat perintah ke koneksi
//
tiap tabel dibedakan querynya
string query = "update
pengirim set nip='" + NIP + "', nama='" +
namaPengirim + "', alamat='" + alamatPengirim + "',
telp='" + telpPengirim + "', kodepos='" +
posPengirim + "' where id='" + id + "'";
string query2 = "update
penerima set nama='" + namaPenerima + "', alamat='" +
alamatPenerima + "', telp='" + telpPenerima + "',
kodepos='" + posPenerima + "' where id='" +
id + "'";
string query3 = "update motor
set merek='" + merkMotor + "', type='" +
typeMotor + "', plat='" + platMotor + "'
where id='" + id + "'";
cmd.CommandText = query; // mengisi query ke perintah
MySqlDataAdapter adapter = new MySqlDataAdapter(query, conn);
cmd.ExecuteNonQuery();
cmd.CommandText = query2;
adapter = new MySqlDataAdapter(query,
conn);
cmd.ExecuteNonQuery();
cmd.CommandText = query3;
adapter = new MySqlDataAdapter(query,
conn);
cmd.ExecuteNonQuery();
db.Close(); // menutup koneksi database
MessageBox.Show("Data Saving
Completed", "Done");
}
catch (ArgumentOutOfRangeException)
{
MessageBox.Show("Database
Kosong!");
}
catch (MySqlException)
{
MessageBox.Show("Koneksi
database masih salah!");
}
}
Kesimpulan
Dengan adanya aplikasi kami ini kantor jasa pengiriman
sepeda motor akan sangat terbantu dalam memanajemen data pengiriman selama
jangka waktu tertentu, tidak akan ada kesalahan pengiriman (karena salah baca
dikarenakan tulisan tangan tidak jelas), lebih memudahkan untuk mencari dan
mengupdate sebuah data. Melihat data akan lebih cepat, dan efisien. Untuk
Mengunduh / Download anda bisa buka
di sini : Server Mediafire
Tidak ada komentar:
Posting Komentar