Program ini gue buat kemarin sbagai tugas praktikum Alpro. . .ya sekalian dibikin program client server. . .(smbil belajar :D)
(yah sekedar cerita sja) Awal idenya udah mulai dlu seblum gue mengenyam bangku kuliah. . . akhirnya terwujud juga. . .mulai dri yg console base smpek yg gni nih. .
Lanjut : dalam program absensi ini, krena gue pke pemrograman client server (meki belum bagus
Dalam program ini konsepnya gini User Interface -- Business Logic -- Database. Dalam coretan ini gue cuma mosting beberapa hal yg gue anggap perlu aja untuk selebihnya bisa mbaca di laporan gue!! :D hehehe
Program absensi yg ini bisa menghasilkan laporan alias di-save dimana aja dengan format xml. Nah untuk programnya dri desain databasenya gue buat kyak gni :
N untuk class diagramnya (class aplication) gue buat seperti ini :
(masih belum menggunakan konsep modulariti, krna wktu mbikin ini belum dapat ilmunya. hehehe)
Nah dari class aplication diatas, kelihatan ada 2 kelompok kelas yg berbeda, dari keduanya terdapat persamaan yaitu terdiri dari 3 class, hanya saja fungsi dari class tersebut berbeda sedikit antara si server dan si client. Berikut sekedar samplenya :
class koneksi : digunakan untuk membuka n menutup koneksi kedatabase
string alamat = "server=localhost; database=masterabsensi; uid=root; pwd=''";
public MySqlConnection koneksi;
//membuka koneksi
public void Buka()
{
koneksi = new MySqlConnection(alamat);
koneksi.Open();
}
//menutup koneksi
public void Tutup()
{
koneksi = new MySqlConnection(alamat);
koneksi.Close();
}
class baca : digunakan untuk mengambil data dari database yg dikirimkan ke form
MySqlCommand comand;
KONEKSI clasKoneksi;
MySqlDataAdapter adapter;
string sql;
DataTable tabel;
//membaca semua field pada database dalam parameter
public DataTable BacaSemua(string db)
{
clasKoneksi = new KONEKSI();
sql = string.Format("call bacaSemua('{0}');",db);
tabel = new DataTable();
try
{
clasKoneksi.Buka();
comand = new MySqlCommand(sql,clasKoneksi.koneksi);
adapter = new MySqlDataAdapter(comand);
comand.ExecuteNonQuery();
adapter.Fill(tabel);
}
catch (Exception)
{}
clasKoneksi.Tutup();
return tabel;
}
//membaca beberapa field yg diinginkan
public DataTable BacaKondisi(string db,string kolom,string kondisi)
{
clasKoneksi = new KONEKSI();
sql = string.Format("select {0} from {1} where {2}",kolom,db,kondisi);
tabel = new DataTable();
try
{
clasKoneksi.Buka();
comand = new MySqlCommand(sql,clasKoneksi.koneksi);
adapter = new MySqlDataAdapter(comand);
comand.ExecuteNonQuery();
adapter.Fill(tabel);
}
catch (Exception)
{}
clasKoneksi.Tutup();
return tabel;
}
//membaca dari beberapa tabel yg berbeda, hanya untuk absensi server
public DataTable BacaJoin(string mk, string kelas)
{
clasKoneksi = new KONEKSI();
sql = string.Format("call joinServer('{0}','{1}')",mk,kelas);
tabel = new DataTable();
try
{
clasKoneksi.Buka();
comand = new MySqlCommand(sql,clasKoneksi.koneksi);
adapter = new MySqlDataAdapter(comand);
comand.ExecuteNonQuery();
adapter.Fill(tabel);
}
catch (Exception)
{}
clasKoneksi.Tutup();
return tabel;
}
class kirim : digunakan untuk mengirim data dari form ke database
MySqlCommand comand;
string sql;
//memasukkan data ke tabel
public void InsertData(string namaDb, string namaKol, string nilai){
KONEKSI konek = new KONEKSI();
konek.Buka();
sql = string.Format("insert into {0} ({1}) values({2})",namaDb, namaKol, nilai);
try {
comand = new MySqlCommand(sql, konek.koneksi);
comand.ExecuteNonQuery();
} catch (Exception) {}
konek.Tutup();
}
//mengupdate data
public void UpdateData(string namaDb, string kolomNilai, string kondisi){
KONEKSI konek = new KONEKSI();
konek.Buka();
sql = string.Format("update {0} set {1} where {2}", namaDb,kolomNilai,kondisi);
try {
comand = new MySqlCommand(sql, konek.koneksi);
comand.ExecuteNonQuery();
} catch (Exception) {}
konek.Tutup();
}
//menyimpan laporan kedalam format xml
public void KirimXml(string namaFile, DataTable tabel)
{
XmlWriterSettings setting = new XmlWriterSettings();
setting.Indent = true;
XmlWriter writer = XmlWriter.Create(namaFile,setting);
writer.WriteStartDocument();
writer.WriteStartElement("AbsensiMahasiswa");
for (int i = 1;i < tabel.Rows.Count;i++)
{
writer.WriteStartElement("row");
for (int j = 0;j < tabel.Columns.Count;j++)
{
writer.WriteElementString(tabel.Rows[0][j].ToString(),tabel.Rows[i][j].ToString());
}
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
MessageBox.Show("Data Berhasil Disimpan");
}
diatas merupakan contoh class-nya yg keterangannya tidak gue msukkin kedalam laporan.
ya cukup disini saja,untuk masalah event2 dan stored procedure-nya bisa mbaca laporannya atau lngsung programnya!
untuk laporannya bisa didownload disini!
untuk program dan databasenya bisa didownload disini!
bagi yg berminat bisa dikembangkan jauh lebih sempurna. .
untuk sran n kritiknya mkasih. . ^_^




6 comments:
mantap sob,.. sering sering aw koyog ngene........
Thxu bro. . .
insya gue lnjutkan. .hehehe
bro bisa bantuin skripsi ku...hehehe
mahasiswa 07
wah bos,ilmu gue msh kurang nh,maklum adek tngkat. . .hehehe
ji,,,,kari pelit lak ngeke'i gambar,,,,,kari cilik,,,,,g iso di zoom in...
kari tego a'
wahhh makasih mas buat ilmu yg di share :)
Posting Komentar