Membuat Aplikasi desktop (desktop application) dengan bahasa pemrograman c# dan database sql server 2014
Assalamu’alaikum wr.wb
Kali ini saya akan membahas mengenai “cara membuat aplikasi
dengan bahasa pemrograman c# dan database sql server 2014”. Software yang
dibutuhkan adalah visual studio dan sql server 2014.
Visual studio dibutuhkan untuk menjalankan framework c#. Karena
saat ini visual studio adalah software GUI yang terbaik untuk bahasa
pemrograman c#. Sementara SQL server 2014 digunakan untuk menampung database. Alasan
saya menggunakan SQL server yang versi 2014 adalah karena saat ini di Indonesia
kebanyakan pengguna masih menggunakan PC dengan spesifikasi menengah ke bawah. Dikhawatirkan
jika menggunakan yang terbaru, PC tersebut tidak support. Maka dari itu. untuk
cari aman lebih baik gunakan yang standar saja.
Sebenarnya pemrograman itu adalah hal yang mudah. Ibarat kita
mengubah bahasa manusia menjadi bahasa program yang berisi perintah-perintah. Bertujuan
untuk mengendalikan sistem agar berjalan sesuai keinginan kita. Hal yang
mendasar disini adalah logika. Tapi untuk saat ini sepertinya logika tidak
begitu penting. Karena sudah banyak web-web yang menyediakan solusi dari
permasalahan logika yang ada. Salah satunya blog ini. Namun tidak ada salahnya
jika kita mempelajari logika komputer. Hal ini dilakukan untuk mengatasi
masalah ketika kita kesusahan menemukannya di google.
Oke. Langsung saja kita mulai.
berikut langkah - langkahnya
1. copas program di bawah ini ke sql server 2014, kemudian compile
berikut langkah - langkahnya
1. copas program di bawah ini ke sql server 2014, kemudian compile
create database perkuliahan
use perkuliahan
--MEMBUAT TABEL
CREATE TABLE SISWA(
id_siswa INT IDENTITY PRIMARY KEY,
id_kelas INT NOT NULL FOREIGN KEY REFERENCES KELAS(id_kelas),
nama VARCHAR(50) NOT NULL,
tanggal_lahir DATE NOT NULL,
alamat VARCHAR(100) NOT NULL,
)
CREATE TABLE KELAS(
id_kelas INT IDENTITY PRIMARY KEY,
id_dosen INT FOREIGN KEY REFERENCES DOSEN(id_dosen),
nama_kelas VARCHAR(10) not null,
)
CREATE TABLE DOSEN(
id_dosen INT IDENTITY PRIMARY KEY,
nama_dosen VARCHAR(50) NOT NULL,
tanggal_lahir DATE NOT NULL,
alamat VARCHAR(100) NOT NULL
)
CREATE TABLE DETAIL_MATKUL(
id_detail_matkul int identity primary key,
id_dosen INT FOREIGN KEY REFERENCES DOSEN(id_dosen),
id_matkul INT FOREIGN KEY REFERENCES MATKUL(id_matkul),
)
CREATE TABLE MATKUL(
id_matkul INT IDENTITY PRIMARY KEY,
nama_matkul VARCHAR(30) NOT NULL,
jenis_matkul VARCHAR(20) NOT NULL
)
--MATKUL
CREATE PROCEDURE tambahMatkul(@nama varchar(30), @jenis varchar(20))
AS BEGIN TRANSACTION
INSERT INTO MATKUL(nama_matkul, jenis_matkul) VALUES(@nama, @jenis)
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE ubahMatkul(@id int,@nama varchar(30), @jenis varchar(20))
AS BEGIN TRANSACTION
UPDATE MATKUL SET nama_matkul = @nama, jenis_matkul = @jenis WHERE id_matkul = @id
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE hapusMatkul(@id int)
AS BEGIN TRANSACTION
DELETE MATKUL WHERE id_matkul = @id
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE viewMatkul
AS BEGIN TRANSACTION
SELECT * FROM MATKUL
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
-- KELAS
CREATE PROCEDURE tambahKelas(@id_dosen int, @nama_kelas varchar(20))
AS BEGIN TRANSACTION
INSERT INTO KELAS (id_dosen, nama_kelas) VALUES (@id_dosen, @nama_kelas)
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE ubahKelas(@id int,@id_dosen int, @nama_kelas varchar(20))
AS BEGIN TRANSACTION
UPDATE KELAS SET id_dosen = @id, @nama_kelas=@nama_kelas WHERE id_kelas = @id
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE hapusKelas(@id int)
AS BEGIN TRANSACTION
DELETE KELAS WHERE id_kelas = @id
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE viewKelas
AS BEGIN TRANSACTION
SELECT k.id_kelas, k.id_dosen, d.nama_dosen, k.nama_kelas FROM KELAS k
JOIN DOSEN d on k.id_dosen = d.id_dosen
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
--DOSEN
CREATE PROCEDURE tambahDosen( @nama_dosen varchar(50), @tgl_lahir date, @alamat varchar(100))
AS BEGIN TRANSACTION
INSERT INTO DOSEN (nama_dosen, tanggal_lahir, alamat) VALUES(@nama_dosen, @tgl_lahir, @alamat)
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE ubahDosen(@id int, @nama_dosen varchar(50), @tgl_lahir date, @alamat varchar(100))
AS BEGIN TRANSACTION
UPDATE DOSEN SET nama_dosen = @nama_dosen, tanggal_lahir=@tgl_lahir, alamat=@alamat WHERE id_dosen = @id
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE hapusDosen(@id int)
AS BEGIN TRANSACTION
DELETE DOSEN WHERE id_dosen = @id
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE viewDosen
AS BEGIN TRANSACTION
SELECT * FROM DOSEN
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
--SISWA
CREATE PROCEDURE tambahSiswa( @nama_siswa varchar(50), @tgl_lahir date, @alamat varchar(100), @id_kelas int)
AS BEGIN TRANSACTION
INSERT INTO SISWA (nama, tanggal_lahir, alamat, id_kelas) VALUES(@nama_siswa, @tgl_lahir, @alamat,@id_kelas)
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE ubahSiswa(@id int, @nama_siswa varchar(50), @tgl_lahir date, @alamat varchar(100), @kelas int)
AS BEGIN TRANSACTION
UPDATE SISWA SET nama = @nama_siswa, tanggal_lahir=@tgl_lahir, alamat=@alamat, id_kelas = @kelas WHERE id_siswa = @id
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE hapusSiswa(@id int)
AS BEGIN TRANSACTION
DELETE SISWA WHERE id_siswa = @id
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE viewSiswa
AS BEGIN TRANSACTION
SELECT s.id_siswa, s.nama, s.id_kelas, k.nama_kelas, s.tanggal_lahir, s.alamat FROM SISWA S
JOIN KELAS K ON S.id_kelas = K.id_kelas
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
--DETAIL MATKUL
CREATE PROCEDURE tambahDetailMatkul( @id_dosen int, @id_matkul int)
AS BEGIN TRANSACTION
INSERT INTO DETAIL_MATKUL(id_dosen, id_matkul) VALUES (@id_dosen, @id_matkul)
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE ubahDetailMatkul(@id int, @id_dosen int, @id_matkul int)
AS BEGIN TRANSACTION
UPDATE DETAIL_MATKUL SET id_dosen = @id_dosen, id_matkul = @id_matkul where id_detail_matkul = @id
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE hapusDetailMatkul(@id int)
AS BEGIN TRANSACTION
DELETE DETAIL_MATKUL WHERE id_detail_matkul = @id
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
CREATE PROCEDURE viewDetail
AS BEGIN TRANSACTION
SELECT DM.id_detail_matkul, DM.id_dosen, D.nama_dosen, DM.id_matkul, M.nama_matkul FROM DETAIL_MATKUL DM
JOIN DOSEN D ON DM.id_dosen = D.id_dosen
JOIN MATKUL M ON DM.id_matkul = M.id_matkul
IF @@ERROR =0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
apabila masih belum jelas mengenai source diatas, ataupun cara mengcompilenya, silahkan lihat disini
2. kemudian download file disini . file tersebut merupakan file project visual studio yang berisikan design form dan class class kosong yang diperlukan.
3. extract file tersebut, kemudian buka dengan visual studio
4. selanjutnya. di menu sebelah kanan klik kanan pada project, pilih add reference. kemudian centang sistem configuration. klik ok
3. extract file tersebut, kemudian buka dengan visual studio
4. selanjutnya. di menu sebelah kanan klik kanan pada project, pilih add reference. kemudian centang sistem configuration. klik ok
5. selanjutnya pada tab sebelah kiri, pilih datasource, lalu add datasource
6. pilih database
7. pilih dataset
8. pada tampilan selanjutnya, ada script koneksi database, jika belum, silahkan klik new connection
9. selanjutnya, pada project, pilih app config. lalu ketik script dibawah ini tepat dibawah </startup>
<connectionstrings>
<add connectionstring="*paste cannection string disini*" name="ConnectionStringHT" providername="System.Data.SqlClient">
</add></connectionstrings>
10. selanjutnya kita buka class koneksiDatabase di folder Koneksi. tambahkan using System.Configuration; diatas, kemudian copas script dibawah ini didalam class KoneksiDatabase
11. koneksi telah selesai. sekarang silahkan copas dibawah ini
entitas
EntitasSiswa
private SqlConnection conn;
private SqlCommand cmd;
private SqlDataAdapter da;
private DataTable dt;
private int affect = 0;
public SqlConnection getConn()
{
string strconn = ConfigurationManager.ConnectionStrings["ConnectionStringHT"].ToString();
conn = new SqlConnection(strconn);
return conn;
}
public bool eksekusiQuery(string query, SqlParameter[] p, bool condition)
{
try
{
conn.Open();
cmd = new SqlCommand(query, conn);
cmd.CommandType = CommandType.StoredProcedure;
da = new SqlDataAdapter();
da.SelectCommand = cmd;
if (condition)
{
//.......
}
else
{
int count = p.GetUpperBound(0) + 1;
for (int i = 0; i < count; i++)
cmd.Parameters.AddWithValue(p[i].ParameterName, p[i].Value);
affect = cmd.ExecuteNonQuery();
}
return true;
}
catch
{
return false;
}
finally
{
conn.Close();
}
}
public SqlDataAdapter viewTable(string table)
{
try
{
dt = new DataTable(table);
da.Fill(dt);
return da;
}
catch { return null; }
}
11. koneksi telah selesai. sekarang silahkan copas dibawah ini
entitas
EntitasSiswa
public int id_siswa { get; set; }
public int id_kelas { get; set; }
public string nama { get; set; }
public DateTime tglLahir { get; set; }
public string alamat { get; set; }
EntitasDosen
public int id { get; set; }
public string nama_dosen { get; set; }
public DateTime tglLahir { get; set; }
public string alamat { get; set; }
EntitasMatkul
public int id { get; set; }
public string nama_matkul { get; set; }
public string jenis_matkul { get; set; }
EntitasDetailMatkul
public int id { get; set; }
public int id_dosen { get; set; }
public int id_matkul { get; set; }
Interface
jangan lupa di using entitasnya
InterfaceSiswa
bool insert(EntitasSiswa e);
bool update(EntitasSiswa e);
bool delete(EntitasSiswa e);
DataTable select();
InterfaceDosen
bool insert(EntitasDosen e);
bool update(EntitasDosen e);
bool delete(EntitasDosen e);
DataTable select();
InterfaceMatkul
bool insert(EntitasMatkul e);
bool update(EntitasMatkul e);
bool delete(EntitasMatkul e);
DataTable select();
InterfaceDetailMatkul
bool insert(EntitasDetailMatkul e);
bool update(EntitasDetailMatkul e);
bool delete(EntitasDetailMatkul e);
DataTable select();
InterfaceKelas
bool insert(EntitasKelas e);
bool update(EntitasKelas e);
bool delete(EntitasKelas e);
DataTable select();
implement
untuk implement, saya akan memberi contoh pada dosen, untuk yang lainnya sama aja kok. tinggal disesuaikan saja
class ImplementDosen : InterfaceDosen
{
private KoneksiDatabase conn;
private DataTable dtb;
private SqlParameter[] dbParams;
private string table;
private string query;
private bool condition;
private bool status;
public ImplementDosen()
{
conn = new KoneksiDatabase();
conn.getConn();
}
public bool delete(EntitasDosen e)
{
query = "hapusDosen";
dbParams = new SqlParameter[]
{
new SqlParameter("@id",e.id)
};
condition = conn.eksekusiQuery(query, dbParams, false);
return condition;
}
public bool insert(EntitasDosen e)
{
query = "tambahDosen";
dbParams = new SqlParameter[]
{
new SqlParameter("@nama",e.nama_dosen),
new SqlParameter("@tgl_lahir",e.tglLahir),
new SqlParameter("@alamat",e.alamat)
};
condition = conn.eksekusiQuery(query, dbParams, false);
return condition;
}
public DataTable select()
{
query = "viewDosen";
table = "DOSEN";
dtb = new DataTable();
condition = conn.eksekusiQuery(query, dbParams, true);
if (condition)
{
conn.viewTable(table).Fill(dtb);
}
return dtb;
}
public bool update(EntitasDosen e)
{
query = "ubahDosen";
dbParams = new SqlParameter[]
{
new SqlParameter("@id",e.id),
new SqlParameter("@nama",e.nama_dosen),
new SqlParameter("@tgl_lahir",e.tglLahir),
new SqlParameter("@alamat",e.alamat)
};
condition = conn.eksekusiQuery(query, dbParams, false);
return condition;
}
}
lalu di factory
yang terakhir di view. frmDosen
kemudian, masih di frmDosen, masuk ke design dan double klik. maka akan muncul script. dan isi seperti ini
Begitulah langkah – langkah untuk membuat aplikasi desktop. Mungkin beberapa dari kita bertanya-tanya. Saat ini aplikasi yang populer adalah aplikasi android dan web. Lalu untuk apa belajar desktop?
private static InterfaceDetailMatkul inDetailMatkul;
private static InterfaceDosen inDosen;
private static InterfaceKelas inKelas;
private static InterfaceMatkul inMatkul;
private static InterfaceSiswa inSiswa;
public static InterfaceDetailMatkul getDetailMatkul() {
inDetailMatkul = new ImplementDetailMatkul();
return inDetailMatkul;
}
public static InterfaceDosen getDosen()
{
inDosen = new ImplementDosen();
return inDosen;
}
public static InterfaceKelas getKelas()
{
inKelas = new ImplementKelas();
return inKelas;
}
public static InterfaceMatkul getMatkul()
{
inMatkul = new ImplementMatkul();
return inMatkul;
}
public static InterfaceSiswa getSiswa()
{
inSiswa = new ImplementSiswa();
return inSiswa;
}
yang terakhir di view. frmDosen
private InterfaceDosen inDosen;
private EntitasDosen enDosen;
public FrmDosen()
{
InitializeComponent();
inDosen = Factory_.getDosen();
dgvData.DataSource = inDosen.select();
}
kemudian, masih di frmDosen, masuk ke design dan double klik. maka akan muncul script. dan isi seperti ini
private void btnTambah_Click(object sender, EventArgs e)
{
enDosen = new EntitasDosen();
enDosen.nama_dosen = txtNamaDosen.Text;
enDosen.tglLahir = dtmTanggalLahir.Value;
enDosen.alamat = txtAlamat.Text;
inDosen.insert(enDosen);
}
Begitulah langkah – langkah untuk membuat aplikasi desktop. Mungkin beberapa dari kita bertanya-tanya. Saat ini aplikasi yang populer adalah aplikasi android dan web. Lalu untuk apa belajar desktop?
Begini para pembaca yang baik hati. Memang benar saat ini
aplikasi desktop sudah ketinggalan jaman. Namun pembuatan aplikasi desktop ini
adalah yang paling mudah. Dengan belajar aplikasi desktop, kita bisa belajar
membuat aplikasi dengan cepat paham. Apalagi jika teman-teman ingin belajar
tentang OOP.
Lagipula web digunakan untuk perusahaan yang level menengah
keatas. Sementara perusahaan menengah kebawah lebih membutuhkan desktop. Dan dengan
mempelajari desktop, kita bisa lebih memahami untuk apa program sistem
informasi dan langkah-langkah pembuatannya dengan lebih cepat. Setelah kita
benar-benar paham dengan desktop, ketika kita belajar web atau android, kita
hanya perlu menyesuaikan saja.
Jadi tidak ada yang sia – sia dalam belajar. Demikian tutorial
yang saya berikan. Apabila ada kekurangan, saya mohon maaf, Assalamu’alaikum
wr.wb
Post a Comment for "Membuat Aplikasi desktop (desktop application) dengan bahasa pemrograman c# dan database sql server 2014"