Skip to content Skip to sidebar Skip to footer

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

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


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

        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


        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"