Rabu, 20 Maret 2013

Sistem Informasi Data Barang untuk Toko Musik




Penulis :
Frellian Tuhumury 672007031
Bryan Zico Octavian 672011015
Robertus Adi Dwianto 672011028


Latar Belakang
Pada jaman sekarang ini mukin orang banyak berpikir bahwa kebanyakan orang lebihmemilih mendownload lagu secara ilegal dari internetn. Padahal pada kenyataanya tidak seperti itu. Sudah banyak orang yang berpikir untuk memilih memiliki cd atau kaset dari artist yang di gemarinya, karana dengan memiliki cd atau kaset memiliki keuntungan sendiri yaitu mendapatkan kualitas audio ‘lossless’ yg lebih baik dari mp3 dan bisa sebagai bahan koleksi. Hal ini mulai membuat banyak toko musik yang mulai kewalahan sehingga kadang melupakan pendataan yang teratur dan terperinci pada barang (cd dan kaset) yang mereka jual Untuk itu aplikasi ini kami buat  supaya dapat membantu toko-toko musik dalam menage data barang mereka.

  


Sistem Informasi Data Barang untuk Toko Musik

Untuk masuk ke aplikasi kami user harus login  terlebih dulu,


saat tombol login di tekan maka akan di lakukan proses pengecekan user name dan password di database jika benar maka di lanjutkan ke proses berikutnya tapi jika salah maka akan muncul pemberitahuan lewat messaggebox.
Untuk pengecekan user name dan password  kami membuat sebuah class baru dengan 2 parameter untuk menampung hasil pengecekan.
private Boolean statusLogin(string nama, string pass)
        {
            
            MySqlConnection db = new MySqlConnection(connectionSQL);
            db.Open();
            MySqlCommand dbcmd = db.CreateCommand();
            string sql = "select Nama,Password from tb_accounts";
            dbcmd.CommandText = sql;
            MySqlDataReader reader = dbcmd.ExecuteReader();
            // membaca data user name dan password
            while (reader.Read())
            {
                if ((reader.GetString(0).ToString() == nama) && (reader.GetString(1).ToString() == pass))
                {
                    return true;
                    //mengembalikan nilai 'true' jika benar
                }
            }
            db.Close();   
            return false;      }



Dan pada button login akan dilakukan proses pengecekan jika isi parameter adalah ‘true’ maka dilanjutkan ke prosses selanjutnya.
if (statusLogin(txt_user.Text, txt_pass.Text) == true)
            {
                if (txt_user.Text == "admin") {
                    Form2 f2 = new Form2();
                    f2.Show();                   
                    this.Visible = false;
                }else{
                    Form3 f3 = new Form3();
                    f3.Show();
                    this.Visible = false;
                }
               
            }
            else
            {
                MessageBox.Show("Username atau password salah");
            }
Pada aplikasi kami terdapat 2 jenis user yaitu user biasa dan admin (dengan user name ‘admin’), jika login di lakukan oleh admin maka akan masuk ke form untuk menejement user & password, sedangkan untuk user bisa akan masuk ke form data barang. Di form ini admin dapat melakukan penambahan user baru meng-update password, dan men-delete. Sedangkan untuk data user ‘admin’ hanya bisa meng-update password, tanpa bisa men-delete.  
Button logout di gunakan untuk kembbali ke form lagin. Sedangkan untuk penjlasan cara menamilkan data ke DataGridView, insert, update, dan delete akan di jelaskan di form data barang.
Tampilan form barang:

Untuk menampilkan data di dataGridView kami membuat sebuah fungsi metohod yang akan di panggil saat program di jalankan dan setiap selesai proses di lakukan. 
public void dataRe() //fungsi untuk memasukan data ke 'dataGridView1'
        {
            MySqlConnection db = new MySqlConnection(connectionSQL);
            MySqlCommand comand = db.CreateCommand();
            db.Open();
            dataGridView1.Columns.Clear();
            MySqlDataAdapter Adapter = new MySqlDataAdapter("Select `id` , `Artist` , `Album` , `Rating` , `Tipe` , `Harga` , `Jumlah` from tb_barang", db);
            DataSet x = new DataSet();
            Adapter.Fill(x);
            dataGridView1.DataSource = x.Tables[0];

        }

Untuk mengganti album cover tekan button ‘ganti cover’ openFileDialog yang digunakan untuk mengambil gambar dari komputer. Source code di dalam button
openFileDialog1.InitialDirectory = " C:\\ ";
            openFileDialog1.Filter = "All Files|*.*|JPEGs|*.jpg|JPEGs|*.jpeg|Bitmaps|*.bmp|GIFs|*.gif";
            openFileDialog1.FilterIndex = 2;
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //set image sesuai yg sudah di pilih di 'openFileDialog1'
                pb_ucover.Image = Image.FromFile(openFileDialog1.FileName);
                pb_ucover.SizeMode = PictureBoxSizeMode.Zoom;
                pb_ucover.BorderStyle = BorderStyle.None;
            }
Gambar yang sudah di pilih akan di tapilkan di pictureBox di bawah button ‘ganti cover’

Proses insert data akan di lakukan saat button ‘add’ di tekan, tetapi jika data belum lengkap maka akan di beri pemberitahuan lewat ‘messagebox’.

            MySqlConnection db = new MySqlConnection(connectionSQL);
            MySqlCommand comand = db.CreateCommand();
            db.Open();
            //pengecekan isi data jika belum lengkap maka peringatan muncul melalui messagebox
            if ((txt_id.Text == "") || (txt_artis.Text == "") || (txt_album.Text == "") || (txt_harga.Text == "") || (txt_jumlah.Text == ""))
            {
                MessageBox.Show("Data belum lengkap, coba periksa kembali");
            }
            else {
                string id = txt_id.Text;
                string artis = txt_artis.Text;
                string album = txt_album.Text;
                string rating = cmb_rating.SelectedIndex +1 + " star";
                string harga = txt_harga.Text;
                string jumlah = txt_jumlah.Text;
                string tipe;
                string cover;
               
                // pengecekan radio button
                if (rbtn_cd.Checked == true)
                {
                    tipe = "Audio CD";

                }
                else
                {
                    tipe = "Kaset";
                }

                //pengecekan data untuk database colom 'cover'
                if (pb_cover.Image == global::WindowsFormsApplication1.Properties.Resources.pilh)
                {
                    cover = "";
                }
                else
                {
                    cover = "cov_" + id + ".jpg";
                    pb_cover.Image.Save("d:\\cover_tr\\cov_" + id + ".jpg");
                    //\ untuk save as image dan rename ke directori d:\cover_tr
                }

                try
                {
                    //memasukan data ke database
                    comand.CommandText = "INSERT INTO `db_trpv`.`tb_barang` (`id` ,`Artist` ,`Album` ,`Rating` ,`Tipe` ,`Harga` ,`Jumlah`,`cover`)VALUES ('" + id + "', '" + artis + "', '" + album + "', '" + rating + "', '" + tipe + "', '" + harga + "', '" + jumlah + "','"+cover+"');";
                    comand.ExecuteNonQuery();
                }
                catch (MySqlException m)
                {
                    MessageBox.Show(m.Message);
                }
                // membersihkan isi textbox, dan riset combobox
                txt_id.Text = "";
                txt_artis.Text = "";
                txt_album.Text = "";
                cmb_rating.SelectedIndex = 2;
                txt_harga.Text = "";
                txt_jumlah.Text = "";
                //mengembalikan image picturebox pb_cover menjadi 'pilih'
                pb_cover.Image = global::WindowsFormsApplication1.Properties.Resources.pilh;
                dataRe(); //memanggil method dataRe(); untuk memperbaharui datagridview
           
            }



Untuk penyimpanan gambar tidak di simpan di database tetapi disimpan di directori komputer yaitu pada (D:\\cover_tr\) , sedang di data base hanya menyimpan nama file yang sudah direname sesuai tabel ‘id’.
Untuk cara proses update/delete user tinggal mengklik ‘Header Row’ pada ‘DataGridView’ maka otomatis data akan masuk ke form sesuai dengan tipenya.
//memasukan data dari datagridview ke textbox
            txt_uid.Text = dataGridView1.Rows[e.RowIndex].Cells[0].Value as string;
            txt_uartist.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value as string;
            txt_ualbum.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value as string;
            txt_ujumlah.Text = dataGridView1.Rows[e.RowIndex].Cells[6].Value as string;
            txt_uharga.Text = dataGridView1.Rows[e.RowIndex].Cells[5].Value as string;

            string urating = dataGridView1.Rows[e.RowIndex].Cells[3].Value as string;
            //pengecekan untuk memasukan data rating yg di simpan di 'uratnig' ke combobox 'cmb_urating'
            if (urating == "1 star")
            {
                cmb_urating.SelectedIndex = 0;
            }
            else if (urating == "2 star")
            {
                cmb_urating.SelectedIndex = 1;
            }
            else if (urating == "3 star")
            {
                cmb_urating.SelectedIndex = 2;
            }
            else if (urating == "4 star")
            {
                cmb_urating.SelectedIndex = 3;
            }
            else if (urating == "5 star")
            {
                cmb_urating.SelectedIndex = 4;
            }

            string utipe = dataGridView1.Rows[e.RowIndex].Cells[4].Value as string;
            if (utipe == "Audio CD")
            {
                rbtn_ucd.Checked = true;
            }
            else
            {
                rbtn_ukset.Checked = true;
            }

            string tid = txt_uid.Text;
            //mengambil source data dari database colom 'cover' untuk mengganti image 'pb_ucover'
            MySqlConnection db = new MySqlConnection(connectionSQL);
            db.Open();
            MySqlCommand dbcmd = db.CreateCommand();
            string sql = "SELECT `cover` FROM `tb_barang` WHERE `id` = '"+tid+"'";
            // string sql = "select Nama,Password from tb_accounts";
            dbcmd.CommandText = sql;
            MySqlDataReader reader = dbcmd.ExecuteReader();
            string ucover = "";
            if (reader.Read())
            {
                ucover = reader.GetString(0).ToString();
            }
            db.Close();
            if (ucover != "")
            {
                //pengecekan keberadaan file di directori komputer
                if (File.Exists("d:\\cover_tr\\" + ucover + ""))
                {
                    pb_ucover.Image = Image.FromFile("d:\\cover_tr\\" + ucover + "");
                }
                else
                {
                    //jika file image hulang atau terhapus dari directori
                    //maka image picturebox 'pb_ucover' di ganti dengan 'filang' dari Resource project
                    pb_ucover.Image = global::WindowsFormsApplication1.Properties.Resources.filang;
                }
            }
            else {
                pb_ucover.Image = global::WindowsFormsApplication1.Properties.Resources.emty;
            }
           
Jika file image hilang dari directori komputer maka image picturebox untuk album coverdi ganti menjadi :

Proses update bisa di lakukan untuk semua data, kecuali id barang yang tidak bisa di ganti. Sedangkan proses delete di lakukan berdasarkan id barang.





Kemudian tombol ‘search’ berfungsi untuk membuka form search:
Di sini pencarian bisa dilakukan berdasarkan 4 kategori yaitu; berdasarkan nama artis, album, rating, dan tipe barang.
string cari = txt_cri.Text;
            string rating = " ";
            string tipe = " ";
            if(cmb_rating.SelectedIndex == 0){
                rating = "1 star";
            }
            else if (cmb_rating.SelectedIndex == 1) {
                rating = "2 star";
            }
            else if (cmb_rating.SelectedIndex == 2)
            {
                rating = "3 star";
            }
            else if (cmb_rating.SelectedIndex == 3)
            {
                rating = "4 star";
            }
            else if (cmb_rating.SelectedIndex == 4)
            {
                rating = "5 star";
            }
            if (rb_cd.Checked == true)
            {
                tipe = "Audio CD";
            }
            else {
                tipe = "Kaset";
            }

            MySqlConnection db = new MySqlConnection(connectionSQL);
            MySqlCommand comand = db.CreateCommand();
            db.Open();
            dataGridView1.Columns.Clear();
            string tb= "";     
            if(cmb_kategori.SelectedIndex == 0)
            {
                tb = "SELECT * FROM `tb_barang` WHERE `Artist` = '"+cari+"'";
            }
            else if (cmb_kategori.SelectedIndex == 1) {
                tb = "SELECT * FROM `tb_barang` WHERE `Album` = '" + cari + "'";
            } else if(cmb_kategori.SelectedIndex == 2){
                tb = "SELECT * FROM `tb_barang` WHERE `Rating` = '" + rating + "'";
            }else if(cmb_kategori.SelectedIndex == 3){
                tb = "SELECT * FROM `tb_barang` WHERE `Tipe` = '" + tipe + "'";
            }
            DataSet x = new DataSet();
            MySqlDataAdapter Adapter = new MySqlDataAdapter(""+tb+"", db);
            Adapter.Fill(x);

            dataGridView1.DataSource = x.Tables[0];







Penutup
·    Kesimpulan
Jadi kesimpulan mengenai aplikasi Toko Musik ini  adalah dengan aplikasi ini dapat membantu penataan dan menejemen data barang pada toko musik ditambah lagi dengan adanya form untuk menejemen account pengguna sehingga tidak sembarang pegawai toko yang bisa mengotak-atik isi data tersebut tanpa ijin dari menager toko, kepala toko atau sejenisnya yang menjabat sebagai admin di aplikasi ini.
 Untuk lebih jelasnya silahkan download pada link yang ada di bawah ini.
·      link download: DOWNLOAD

Tidak ada komentar:

Posting Komentar