Modul Client Server Membuat Apliasi Kasir

A.     PENDAHULUAN
a.       Tujuan
Tujuan dari pembuatan ini untuk syarat agar dapat mengikuti Ujian Akhir Semester
b.      Pengenalan Client Server
Klien-server atau client-server merupakan sebuah paradigma dalam teknologi informasi yang merujuk kepada cara untuk mendistribusikan aplikasi ke dalam dua pihak: pihak klien dan pihak server.

Dalam model klien/server, sebuah aplikasi dibagi menjadi dua bagian yang terpisah, tapi masih merupakan sebuah kesatuan yakni komponen klien dan komponen server. Komponen klien juga sering disebut sebagai front-end, sementara komponen server disebut sebagai back-end. Komponen klien dari aplikasi tersebut dijalankan dalam sebuah workstation dan menerima masukan data dari pengguna. Komponen klien tersebut akan menyiapkan data yang dimasukkan oleh pengguna dengan menggunakan teknologi pemrosesan tertentu dan mengirimkannya kepada komponen server yang dijalankan di atas mesin server, umumnya dalam bentuk request terhadap beberapa layanan yang dimiliki oleh server. Komponen server akan menerima request dari klien, dan langsung memprosesnya dan mengembalikan hasil pemrosesan tersebut kepada klien. Klien pun menerima informasi hasil pemrosesan data yang dilakukan server dan menampilkannya kepada pengguna, dengan menggunakan aplikasi yang berinteraksi dengan pengguna.

Sebuah contoh dari aplikasi client/server sederhana adalah aplikasi web yang didesain dengan menggunakan Active Server Pages (ASP) atau PHP. Skrip PHP atau ASP akan dijalankan di dalam web server (Apache atau Internet Information Services), sementara skrip yang berjalan di pihak klien akan dijalankan oleh web browser pada komputer klien. Klien-server merupakan penyelesaian masalah pada software yang menggunakan database sehingga setiap komputer tidak perlu diinstall database, dengan metode klien-server database dapat diinstal pada suatu komputer sebagai server dan aplikasinya diinstal pada client.

c.       Informasi Pembelajaran
Pemrograman Client Server ini menggunakan bahasa C# berbasis Form, MySQL untuk menyinpan data dan informasi, dan Crystal Repot untuk menampilkan laporan yang akan di Print Out.
d.      Hasil Belajar
Mahasiswa dapat menghasilkan aplikasi/program yang dapat digunakan untuk membantu meringankan pekerjaan.
e.       Tujuan
Mahasiswa mampu menguasi Pemrograman Client Server baik secara teori maupun penerapannya. Agar mahasiswa dapat berkompetisi di dunia kerja maupun di masyarakat

B.     RANGKUMAN
a.       Pembuatan Form
                                                               i.      Form Utama / Induk
Tujuan pembuatan form induk untuk dapat memanggil Sub Form yang lain berisi Input, edit, dan Delete data. Form utama akan dibuat secara otomatis ketika membuat Projek baru.
Membuat menu bar dan sub menu. Pilih pada Toolbox pada Menu & Toolbar Pilih MenuStri dan Klik form utama yang nantinya akan menjadi seperti di atas.


                                                             ii.      Form Data Barang
Membuat form baru klik File > Add > New Project > Pilih Windows Form Aplication C# dan beri nama Data Barang.

Form ini digunakan untuk Input, Edit, Delete, Print, dan Cencele Data.
1.      Pembuatan Textbox
Untuk membuat textboxt pada ToolBox sudah tersedia  Klik dan atur jangan lupa untuk mengganti nama textbox pada propertis  agar mudah saat membuat kodingnya.

2.      Pembuatan Lebel
Fungsi Label untuk memberi nama dan tanda. Pilih pada ToolBox  dan Label

3.      Pembuatan Button
Button atau Tombol fungsinya untuk menjalankan perintah-perintah tertentu berdasarkan fungsi yang di kehendaki pembuatan sama dengan label dan textbox dan menunya ada pada ToolBox.

4.      Pembuatan Data Grid
Data Grid digunakan untuk menampilkan data yang ada pada database. Dan cara pembuatannya sama dengan yang lainya. Silahkan pilih pada ToolBox DataGrid.

                                                            iii.      Form Data Suplaiyer
Pembuatan Form Suplaiyer sama seperti dengan Form Data Barang.
                                                           iv.      Form Kasir
Pembuatan Form Kasir sama seperti dengan Form Data Barang.

b.      Pembuatan Koneksi
                                                               i.      Form Koneksi
Text Box: using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient; //Tambahan untuk sql conector
using System.Data; //tambahan utk membaca DB

namespace kasirUAS
{
    class koneksiDB
    {
       public MySqlConnection koneksi;

        public koneksiDB()
        {
            string koneksiData;
            koneksiData = "server=localhost; port=3306; database=penjualan; uid=root; pwd=''";
            koneksi = new MySqlConnection(koneksiData);
            
        }
        public void bukaKoneksi()
        {
            koneksi.Open();
        }

        public void tutupKoneksi()
        {
            koneksi.Close();
        }

        public void eksekusiSQL(string strSQL)
        {
            string query = string.Format(strSQL);
            bukaKoneksi();
            MySqlCommand cmd = new MySqlCommand(query,koneksi);
            cmd.ExecuteNonQuery();
            tutupKoneksi();
        }
    }
}

Membuat koneksi pada C# agar  mudah mengunakan class yang nantinya dapat di panggil oleh form yang lain. Pilih File > Add > New Project > Class Libray C# berinama class dengan Konesi DB.

Penjelasannya :
·        using MySql.Data.MySqlClient;
Text Box:         public void bukaKoneksi()
        {
            koneksi.Open();
        }

        public void tutupKoneksi()
        {
            koneksi.Close();
        }

        public void eksekusiSQL(string strSQL)
        {
            string query = string.Format(strSQL);
            bukaKoneksi();
            MySqlCommand cmd = new MySqlCommand(query,koneksi);
            cmd.ExecuteNonQuery();
            tutupKoneksi();
        }
    }
}

 = Untuk menghubungkan data base MySQL dengan C#.
·        using System.Data; = Tambahan untuk koneksi ke data base.
·       
Text Box:         public koneksiDB()
        {
            string koneksiData;
            koneksiData = "server=localhost; port=3306; database=penjualan; uid=root; pwd=''";
            koneksi = new MySqlConnection(koneksiData);
            
        }

Class untuk menghubungkan Server DataBase.
·         public MySqlConnection koneksi;Medefiniskan MySQL menjadi Koneksi.
·        
Text Box:         

        public void eksekusiSQL(string strSQL)
        {
            string query = string.Format(strSQL);
            bukaKoneksi();
            MySqlCommand cmd = new MySqlCommand(query,koneksi);
            cmd.ExecuteNonQuery();
            tutupKoneksi();
        }

Class untuk menjalankan MySQL di C#
·        
Text Box:         public void bukaKoneksi()
        {
            koneksi.Open();
        }

        public void tutupKoneksi()
        {
            koneksi.Close();
        }

Membuka dan menutup koneksi

                                                             ii.      Membuat Setiap Form Terkoneksi DataBase
Text Box: koneksiDB konekDBsuplaiyer = new koneksiDB();
MySqlDataAdapter penampungsuplaiyer;

Agar dapat Class KoneksiDB di panggil di form lain.
Pnejelasannya :
·        koneksiDB konekDBsuplaiyer = new koneksiDB(); = Memanggil koneksiDB dan mendefinisikan menjadfi konekDBsuplaiyer.
·        MySqlDataAdapter penampungsuplaiyer; = Sebagai Tempori

c.       Memanggil Form dari Form Utama / indux
                                                               i.      Form Data Barang
Text Box: private void dataBarangToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //menjadikan form yg aktf sbg form MDI
            this.IsMdiContainer = true;
            DataBarang DBarang = new DataBarang();
            DBarang.MdiParent = this;
            DBarang.Show();
        }

Klik 2 kali Databarang
                                                             ii.      Form Data Suplaiyer
                                                            iii.     
Text Box: private void dataSuplaiyerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.IsMdiContainer = true;
            DataSuplaiyer DSuplaiyer = new DataSuplaiyer();
            DSuplaiyer.MdiParent = this;
            DSuplaiyer.Show();
        }

Form Kasir
d.     
Text Box: private void transaksiToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //menjadikan form yg aktf sbg form MDI
            this.IsMdiContainer = true;
            Kasir kasir = new Kasir();
            kasir.MdiParent = this;
            kasir.Show();
        }

Form Kasir
Untuk membuat Form kasir sama seperti form barang.

e.      
Text Box: txtidsuplaiyer.Focus();

Membuat Fokus Pada TextBox

f.       
Text Box: if (txtidsuplaiyer.Text == "")
            {
                MessageBox.Show("id kosong,,,,!!!!!!", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

Membuat TextBox tidak boleh Kosong
g.       Membuat Data Grid
Untuk membuat Data Grid ada pada ToolBox Pilih Data Grid

h.       Membuat Simpan Data
Klik pada Button Save 2x dan tambahkan koding seperti di bawah ini,
Text Box: // cek database ada yg sama atau tidak berdasarkan idbarang 
                konekDB.bukaKoneksi();
                //memilih data berdasarkan tabel barang
                string query = string.Format("select * from barang where idbarang='{0}'", txtidbarang.Text);
                //membuat tempory
                penampung = new MySqlDataAdapter(query, konekDB.koneksi);
                // mendefinisikan Data Table menjadi Hasil
                DataTable hasil = new DataTable();
                penampung.Fill(hasil);

                //menentukan jumlah data yg dicari
                int jumlahData = hasil.Rows.Count;
                //menutup koneksi data
                konekDB.tutupKoneksi();
                if (jumlahData == 0)
                {
                    // simpan data ke tabel barang berdasarkan urutan kolom data barang
                    string simpan = string.Format("insert into barang values('{0}','{1}','{2}','{3}')", txtidbarang.Text, txtnamabarang.Text, txthargabarang.Text, txtjumlahbarang.Text);
                    //menjalankan fungsi SQL
                    konekDB.eksekusiSQL(simpan);
                    //menampilkan data ke Data Grid
                    bacaTabel();
                    //membersihkan TextBox
                    bersihkan();
                    MessageBox.Show("Data telah tersimpan", "konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

untuk data suplaiyer dan kasir tinggal ganti Query-nya saja.
i.        
Text Box: else
            {
                string edit = string.Format("UPDATE barang SET namabarang='{0}', hargabarang='{1}', jumlahbarang='{2}' WHERE idbarang='{3}'", txtnamabarang.Text, txthargabarang.Text, txtjumlahbarang.Text, txtidbarang.Text);
                konekDB.eksekusiSQL(edit);
                bacaTabel();
                bersihkan();
                MessageBox.Show("Data telah terupdate", "konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

Membuat Edit Data
j.       
Text Box: private void bacaTabel()
        {
            //membaca data berdasarkan tabel barang
            string query = "select * from barang";
            penampung = new MySqlDataAdapter(query, konekDB.koneksi);
            DataTable hasil = new DataTable();
            penampung.Fill(hasil);
            //menampilkan data ke DataGrid
            dgdatabarang.DataSource = hasil;
        }

Menampilkan Data Ke Data Grid

k.     
Text Box: //pesan konfirmasi bahwasanya yakin atau tidak untuk menghapus data
DialogResult pilihan = MessageBox.Show("Anda yakin akan menghapus ini,,,,!!!!!!", "Konfirmasi", MessageBoxButtons.YesNo, MessageBoxIcon.Information);

//Jika yakin / Yes maka Proses dilanjutkan penghapusan
                if (pilihan == DialogResult.Yes)
                {
//Hapus data dari Tabel Kasir Berdasarkan id yang tampil combobox cmbidbarang
                    string delete = string.Format("delete from kasir where idbarang='{0}'", cmbidbarang.Text);
                    konekDB.eksekusiSQL(delete);
                    bacaTabel();
//bersihkan semua TextBox
                    bersihkan();
//pesan konfirmasi data sudah terhapus
                    MessageBox.Show("Data telah terhapus", "konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

Membuat Delete Data

Ini bisa di terapkan di semua form untuk menghapus dapa berdasarkan nama kolom yang di gunakan untuk mengenali setiap baris data di DataBase

l.        
Text Box: {

                strfing edit = string.Format("UPDATE barang SET namabarang='{0}', hargabarang='{1}', jumlahbarang='{2}' WHERE idbarang='{3}'", txtnamabarang.Text, txthargabarang.Text, txtjumlahbarang.Text, txtidbarang.Text);
                konekDB.eksekusiSQL(edit);
                bacaTabel();
                bersihkan();
                MessageBox.Show("Data telah terupdate", "konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

Membuat Edit Data
Proses dari edit data. Form mengambil atau menampilkan data kemudian di ubah sesuai dengan kebutuhan proses penyimpanan dengan Update data berdasarkan id

m.    
Text Box: private void bersihkan()
        {
            txtidbarang.Clear();
            txtnamabarang.Clear();
            txthargabarang.Clear();
            txtjumlahbarang.Clear();
            txtidbarang.Focus();
        }

Membuat Cencel Data
Proses prosedur cencel dengan cara mengosongkan textbox saja




n.       Baca Tabel Query
Text Box: private void bacaTabel()
        {
            //pilih semua kolom dari tabel barang
            string query = "select * from barang";
            //tempory / penyimpanan sementara
            penampung = new MySqlDataAdapter(query, konekDB.koneksi);
            DataTable hasil = new DataTable();
            penampung.Fill(hasil);
            //di tampilkan semua data barang di DataGrid dgdatabarang
            dgdatabarang.DataSource = hasil;
        }

Fungsi baca tabel adalah membaca data dari tabel MySQL kemudian di Tampilkan di DataGrid.

o.      Baca Dua Tabel Query
Membaca dua tabel data berbeda dan menampilkan kedalam Data Grid. Prinsip baca dua tabel query ini sama dengan baca tabel satu tabel saja hanya saja pengambilan kolom berdasarkan tabel berbeda.
p.     
Text Box: private void BacaTabel()
        {
            string query = "Select kasir.idbarang, barang.namabarang, kasir.idsuplaiyer, suplaiyer.namasuplaiyer, barang.hargabarang, barang.jumlahbarang from kasir, barang, suplaiyer where kasir.idsuplaiyer = suplaiyer.idsuplaiyer and kasir.idbarang=barang.idbarang";
            penampung = new MySqlDataAdapter(query, konekDB.koneksi);
            DataTable hasil = new DataTable();
            penampung.Fill(hasil);
            dgkasir.DataSource = hasil;

        }

Menampilkan Data di TextBox dengan Klik Data Grid
Proses ini ketika data grid di klik salah satu kolom barisnya akan muncul datanya di textbox
Text Box: private void dgdatabarang_CellClick_1(object sender, DataGridViewCellEventArgs e)
        {
            //menentukan posisi urutan baris dalam tabel datagrid
            int posisi = dgdatabarang.CurrentRow.Index;

            //menampilkan data di texbox
            txtidbarang.Text = dgdatabarang.Rows[posisi].Cells[0].Value.ToString();
            txtnamabarang.Text = dgdatabarang.Rows[posisi].Cells[1].Value.ToString();
            txthargabarang.Text = dgdatabarang.Rows[posisi].Cells[2].Value.ToString();
            txtjumlahbarang.Text = dgdatabarang.Rows[posisi].Cells[3].Value.ToString();
        }

Dan Koding yang di gunakan.
q.      Menampilkan Data ComboBox
Data akan Tampil di ComboBox berdasarkan data base yang dipilih.
Text Box: private void TampilkanIdSuplaiyer()
        {
 //ambil idsuplaiyer dari tabel suplaiyer
            string query = " select idsuplaiyer from suplaiyer";
            penampung = new MySqlDataAdapter(query, konekDB.koneksi);
            DataTable hasil = new DataTable();
            penampung.Fill(hasil);

            int banyakData = 0;
            banyakData = hasil.Rows.Count; // untuk menampung jumlah data

            if (banyakData > 0)
            {
                for (int i = 0; i < banyakData; i++)
                {
   //load data yang  dipilih pada combo box
                 cmbidsuplaiyer.Items.Add(hasil.Rows[i][0].ToString());
                }
            }

        }

Kodingnya :
Text Box: private void Kasir_Load(object sender, EventArgs e)
        {
            bacaTabel();
}

                        Agar dapat tampil di ComboBox koding di atas di jalankan saat form di Load, Kodinya
                       
r.        Print Data
Agar data bisa di Print Out dalam pemrograman C# di perlukan
1.      Crystal Report
Pilih Solution Explorer > klik kanan pada  projek pilih Add > New items > Pilih Crystal Repor berikan nama sesuai data tabel yang akan di Print Out. Bila ada tabel 3 yang maka buat 3 Crystal Report.

Pengaturan pada Cystal report Galery pilih Using The Report Wizard, pada Pilihannya pilih Standart.

Import Tabel mana yang akan di Print Out datanya.


Atur seperti di Bawah ini.
2.      Form Cetak
Fungsi dari Form cetak nantinya akan menampilkan data dan menampung sementara Cristal Report agar dapat di proses Print Out.

Proses pembuatantya sama dengan form yang lain hanya saja di tambahkan Crystal Report Viewer saja.
3.     
Text Box: private void tomprint_Click(object sender, EventArgs e)
        {
//mendefinisikan form cetak laporan menjadi ctklp
           cetaklaporan ctklp = new cetaklaporan();
//mendefinisikan crystal report laopranbarang menjadi lpbarang
          laporanbarang lpbarang = new laporanbarang();
//menggabungkan Crystal report dengan Form Cetak laporan
          ctklp.lpr.ReportSource = lpbarang;
          ctklp.Refresh();
//Menampilkan form Cetak laporan yang berisi data dari Crystal Report
          ctklp.Show();

        }
 }

Koding Print




Modul Client Server Membuat Apliakasi Kasir bisa di download dalam bentuk e-book PDF



Previous
Next Post »