Rabu, 08 November 2017

Praktikum Jaringan Komputer 1 : Implementasi LAN

Assalamu'alaikum warahmatullahi wabarakatuh.

Pada praktikum Jarkom pertama ini (02/11), ada beberapa hal yang didapat yakni cara membuat kabel dengan konfigurasi cross dan straight, menghubungkan laptop antar laptop dengan kabel, menggunakan Cisco untuk mengecek koneksi, serta mem-ping melalui CMD.

Cara membuat kabel pertama gunting kabel agar isi kabel yang kecil-kecil bisa terlihat kira-kira satu sampai dua ruas jari.
 Luruskan kabel dengan tangan kemudian urutkan. Kabel yang ini konfigurasi straight.
 Potong kabel agar rata.
 Masukkan kabel ke RJ-45.
 Yang ini kabel cross.
 Masukkan kabel dan RJ-45 ke dalam tang crimping. Crimp kabel sampai berbunyi 'klik'.
 Kabel sudah siap.
 Yang ini kabel cross, siap untuk dimasukkan ke dalam RJ-45 dan di-crimp.
 Kedua kabel (straight dan cross) sukses semua saat ditesting menggunakan LAN tester, semua lampu menyala.

Setelah berhasil memasang kabel, selanjutnya adalah mengkoneksikan laptop satu ke laptop lain dengan kabel twisted-pair ini. Karena tidak memfoto step-stepnya jadi saya menjelaskan tahapannya saja. Pertama tentukan IP tiap laptop, kemudian ping perangkat satunya melalui CMD dengan mengetikkan 'ping <IP perangkat sebelah>' tanpa tanda petik. Apabila berhasil, berarti kedua perangkat atau laptop tersebut sudah terkoneksi dan bisa sharing folder. Koneksi juga bisa dilihat secara visual dengan Cisco.

Itulah kurang lebihnya materi dan pelajaran yang saya dapat dari praktikum Jarkom yang pertama ini. Semoga praktikum selanjutnya lebih baik lagi dan saya bisa melakukan tahapan-tahapannya dengan baik serta bisa menerapkan ilmunya ke dalam kehidupan sehari-hari.

Wassalamu'alaikum warahmatullahi wabarakatuh.

Minggu, 26 Februari 2017

Pengenalan OOP dan Java

Konsep Pemrograman Terstruktur
Konsep pemrograman yang memandang sebuah program sebagai suatu prosedur besar yang selanjutnya dapat dibagi menjadi prosedur-prosedur yang lebih kecil (subprosedur) dan saling berinteraksi satu sama lain.

Konsep Pemrograman Berorientasi Objek (OOP)
Konsep yang membagi prgram menjadi objek-objek yang saling berinteraksi satu sama lain. Objek adalah benda yang berwujud nyata maupun benda yang tidak nyata (konsep).

(Pic of difference between OOP and procedural programming)

6 Keuntungan OOP
1. Alami (natural)
2. Dapat diandalkan (reliable)
3. Dapat digunakan kembali (reusable)
4. Mudah untuk di-maintain (maintainable)
5. Dapat diperluas (extendable)
6. Efisiensi waktu

Bahasa pemrograman yang menggunakan konsep OOP
1. C++
2. Visual C++
3. Delphi
4. Visual Basic
5. Java

(History of java logo)

Sejarah Java
Berawal dari tahun 1991 ketika perusahaan Sun Microsystem memulai Green Project, yakni proyek penelitian untuk membuat bahasa yang akan digunakan pada chip-chip embedded untuk device intelligent consumer electronic. Bahasa tersebut haruslah bersifat multi-platform, tidak tergantung kepada vendor yang memanufaktur chip tersebut. Dalam penelitiannya, Proyek Green berhasil membuat prototype semacam PDA (Personal Data Assistance) yang dapat berkomunikasi antara satu dengan yang lain dan diberi nama Star 7.

Ide berawal untuk membuat sistem operasi bagi Star 7 berbasis C dan C++. Setelah berjalan beberapa lama, James Gosling, salah seorang anggota team, merasa kurang puas dengan beberapa karakteristik dari kedua bahasa tersebut berusaha mengembangkan bahasa lain. Bahasa tersebut kemudian dinamakan Oak, diinspirasi ketika dia melihat pohon di seberang kaca ruang kantornya. Belakangan Oak beralih nama menjadi Java.

Karena pada awalnya ditujukan untu pemrograman device kecil, Java memiliki karakteristik berukuran kecil, efisien, dan portabel untuk berbagai hardware. Proyek Green sempar terancam terhenti karena dalam perkembangannya, device ini belum memilili pasar seperti yang diramalkan semula.

Selanjutnya Java diarahkan untuk pemrograman internet. Secara kebetulan, fitur-fitur Java yang telah disebutkan sebelumnya sangat sesuai bagi pengembangan internet sehinga dalam beberapa tahun belakangan ini Java telah menjadi primadona untuk pemrograman yang berbasis internet.

(Fun programmin)

Keunggulan Java
1. Sederhana dan Relatif Mudah
Salah satunya adalah menggantikan konsep pewarisan lebih dari satu (multiple inheritance) dengan interface, menghilangkan konsep pointer yang sering membingungkan, otomatisasi sistem alokasi memori, dan sebagainya.

2. Berorientasi pada Objek
Dalam memecahkan masalah, Java membagi program menjadi objek-objek, kemudian memodelkan sifat dan tingkah laku masing-masing. Selanjutnya, Java menentukan dan mengatur interaksi antara objek yang satu dengan lainnya.

3. Bersifat Terdistribusi
Dulu, PC hanya bersifat sebagai workstation tunggal, tidak terhubung satu sama lain. Saat ini sistem komputerisasi cenderung terdistribusi, mulai dari workstation client, e-mail server, database server, web server, proxy server, dan sebagainya.

4. Bersifat Multiplatform
Dapat diterjemahkan oleh Java Interpreter pada berbagai sistem operasi.

5. Bersifat MultiThread
Dapat mengerjakan beberapa proses dalam waktu yang hampir bersamaan.

Sumber: Hermawan, Benny. 2004. Menguasai Java 2 & Object Oriented Programming. Yogyakarta: Penerbit Andi.

Keunggulan OOP dan Java (versi saya)
1. Tidak pusing dengan konsep pointer, kalau OOP tinggal buat tampilan, isi code di dalamnya, tak perlu pakai konsep pointer dan cabangnya seperti linked list, stack, queue, serta tree.

2. OOP lebih mengasyikkan karena berkreasi dengan tampilan visual program yang mengasah kemampuan desain. Sedangkan procedural programming kita berhadapan dengan huruf-huruf dan simbol-simbol dalam tampilan DOS yang mana sangat membosankan kalau terlalu lama meng-coding. Namun sisi baiknya, kemampuan dalam mengembangkan algoritma cenderung lebih terasah dengan procedural programming ini.

3. Lebih kekinian. Sekarang ini orang lebih meminati tampilan yang bersih, enak dilihat dan digunakan (user friendly). Dan pemrograman OOP ini biasanya programmer menganalisis tampilan dan penggunaannya dulu dari sisi UI dan UX agar prototype yang dihasilkan bisa sesuai dengan keinginan pengguna masa kini.

4. Java bisa menggunakan bahasa dasar seperti Pascal dan C. Dikarenakan pada program studi saya ini kami paling pertama diajari bahasa C, saya merasa lega karena dengan begitu tinggal mengembangkan dan mendalami lebih jauh mengenai pemrograman ini. Berbeda halnya kalau bahasa baru lagi, akan perlu waktu lebih lama bagi saya untuk mempelajarinya hehe.

Sekian pengantar mengenai OOP dan Java, semoga dipahami dan bisa bermanfaat. Aamiin :)

Kamis, 12 Januari 2017

Balada Kelupaan Sama Akses Akun Twitter Sendiri

Curhat dikit, hahah. Ceritanya saya punya 3 akun twitter, satunya masih aktif, dan 2 lagi udah gak pernah dibuka beberapa tahun; lupa password sama email. Parahnya tuh dua akun dua-duanya gak pakai jilbab. Dan itu foto pas udah baligh coba :') Jadi gegara udah gemeshhh mau tutup tuh akun -selain karena alay juga menampakkan aurat, sedih euy- akhirnya saya melakukan aduan ke pihak twitter.

...

Saya bikin 2 akun twitter pas SMP. Tapi suatu hari, pas mau login eh gagal. Udah berulang kali masuk dengan email dan password yang dirasa udah bener. Tapi tetep aja gagal. Jadilah bikin akun ketiga. Beberapa waktu kemudian, pas udah 'sadar' kalau tuh 2 akun harus segera ditutup daripada menyebabkan aset dosa berkepanjangan, akhirnya saya melakukan berbagai cara agar tuh akun bisa ditutup, yah minimal bisa dibuka kembali trus ditutup.

Nyari artikel sana-sini, ikut step-stepnya, belum balik-balik juga. Bahkan pernah tuh saking lugunya ngikutin step yang ternyata zonk abis. Ngirim suatu barisan kode yang sangat banyak ke email tertentu, dan pas udah lama baru sadar kalau ternyata di dalamnya menyertakan identitas (kalau gak salah sih email dll). Hadeeeh.

Pertama, saya tidak menyarankan untuk mencari jalan pintas, seperti hacking dan sebagainya. Karena apa? Tidak mungkin perusahaan sebesar Twitter memiliki keamanan yang mudah diselip. Pasti mereka memiliki keamanan terutama untuk penggunanya. Jadi kalau hacking pun kemungkinannya sangat kecil dan kalaupun bisa, beresiko. Bisa-bisa jadi buronan negara hahahah.

Cara paling wajar adalah melaporkan masalah ke pihak Twitter.

Step-stepnya? Baca ini yuk.
Cara Menghapus Akun Sendiri yang Alay dan Sudah Kelupaan Email dan Password
This entry was posted in

Cara Menghapus Akun Twitter Sendiri yang Alay dan Sudah Kelupaan Email dan Password

Lucu ya judulnya :)
Tapi dibalik itu ada balada yang bikin sedih :')
Baca yuk curhatannya disini > Balada Kelupaan Sama Akses Akun Twitter Sendiri

...

Sebelum melakukan aduan, periksa lagi:
1. Apakah Anda lupa password saja? coba dulu ini https://twitter.com/account/begin_password_reset
2. Apakah Anda lupa email, tapi akun Anda memiliki konfirmasi nomor handphone yang masih aktif? coba ini https://support.twitter.com/articles/14663# atau ini https://support.twitter.com/forms/restore

Kalau seperti itu, BERARTI IKUTI SOLUSI YANG SAYA TAUTKAN DI MASING-MASING POIN, dan JANGAN IKUTI STEP YANG AKAN SAYA BERIKAN DI BAWAH INI. KARENA MEMANG TIDAK TERLALU SAYA SARANKAN.

Secara garis besar mengapa aduan saya ditindaklanjuti adalah:
1. Ceritakan melalui form bantuan.
2. Ceritakan dengan sopan dan sejujur-jujurnya. Atau dengan bahasa yang mudah mereka terima.
3. Nanti akan dibalas melalui email, balaslah dengan bahasa Indonesia yang baik dan benar.
4. Identitas kedua akun saya kurang lebih sama, hanya username yang sedikit berbeda.

Why? Ah kepo, baca terus kuy.

Saya melakukan aduan karena memang kedua akunnya...
1. Dua-duanya lupa password
2. Satu akun emailnya lupa, akun satunya emailnya udah dihapus pihak email karena dianggap tidak aktif
3. No HP (kalau gak salah) belum tertaut ke kedua akun (intinya lupa juga)
4. Tidak bisa akses email (ya karena satunya udah dihapus pihak email dan satunya lupaaa, serius lupa, jadi mau akses email apa juga coba)
See? Parah memang. Perlu banyak istighfar kalo kayak gini :')

 ...

Bagaimana kronologisnya?

Saya pernah mengadukan masalah login ini pada tahun 2013, namun tidak direspon; akun saya masih ada.
Bahasa kurang sopan :( terlihat memaksa

Ditanyain sama CS-nya, kalau email saya memang aktif (bukan bot) balaslah email ini.

Saya balas begini.

Sambungan atas.

Disuruh balas email lagi untuk memastikan bahwa email saya aktif dan bukan bot.

Saya balas lagi begini.

Dikasih link, tapi tetep aja bukan solusi yang saya cari, coz saya lupa password sama email, bukan password doang.

Yang ini lupa apaan. Tapi sama seperti email sebelumnya.

Yang ini lupa juga apaan. Kalau gak salah ini ngisi ticket form selain dari yang pernah saya isi.

Dan saya malah disuruh ke terapis :( dianggap gila kali yaaa hahaha :( Ini kayaknya salah ngisi ticket form deh.

Detailnya.

Detailnya.

Ini lupa bagian yang mana, cuman yang jelas membalas email dari CS untuk memastikan bahwa email saya real dan bukan bot.

Dibalas link-link ini, tapi bukan solusi yang saya cari
Eheheheh ini protes :( dikasih link-link yang sama sekali gak ngasih solusi bagi masalah saya yang amat rumit ini.

 Saya cek berulang-ulang hampir tiap waktu tapi tetap aja akunnya masih ada.

...

Tiga tahun kemudian saya mengadukannya lagi. Ya karena saya kehabisan cara. Selain itu, karena saya suatu hari membaca sebuah kebijakan dari Twitter.

Pertama, saya masuk ke aduan tiket (https://support.twitter.com/forms/signin?was_redirect=true). Search nama twitter Anda, kemudian isi email yang aktif (tidak apa-apa bila tidak terhubung dengan akun, yang penting emailnya bisa dibuka) dan isi aduan. Kalau tidak bisa bahasa Inggris, ubah dulu bahasa page web nya menjadi Bahasa Indonesia.



Pada 2016 saya mengadukannya kurang lebih seperti ini:
Saya ingin menonaktifkan kedua akun saya (@petrathia dan @athiadeangelo) yang sudah lama tidak bisa saya buka, karena saya sudah memiliki akun lain yang masih aktif yaitu @athiasafrina. Selain itu, menurut kebijakan dari Twitter bahwa lebih dari 6 bulan akun tidak ada aktivitas maka akan ditutup otomatis.

Sepertinya kebijakan ini baru dibuat (atau saya yang baru lihat) makanya saya langsung membuat aduan seperti di atas.


Akhirnya saya mendapat balasan melalui email.
Dibalas seperti ini, karena saya mengirim email yang berbeda dengan email yang terhubung dengan 2 akun twitter yang saya adukan.

Saya balas seperti ini.

Akhirnya direspon!. Saya diminta mengisi pernyataan dan melampirkan hasil scan fotokopi identitas diri.

Lanjutannya.

Saya ikuti penyataan di atas.

Setelah 30 hari, saya lihat lagi kedua akun alay saya sudah dihapus permanen.

Tapi sekali lagi ini bukan solusi terakhir lho ya. Perhatikan dulu apa masalah Anda, ikuti link yang saya berikan sebelumnya. Solusi selain ini sebenarnya masih ada yaitu melaporkan akun Twitter Anda melalui teman-teman Anda, dan kumpulkan sebanyak mungkin, moga-moga akun Anda bisa ditutup.
Ini contoh loh ya.
Semoga dari pengalaman saya ini bermanfaat bagi kalian yang mempunyai masalah yang sama dengan saya dulu. Terimakasih telah membaca artikel ini.
This entry was posted in

Selasa, 06 Desember 2016

Implementasi CRUD dan MDI dalam Program Masakan Nusantara

Dalam program visual, ada banyak hal yang bisa kita lakukan. Salah satunya adalah MDI. MDI adalah form yang lengkap, berisi berbagai macam tool yang sudah tersedia di dalamnya. Langsung saja kita simak tutorialnya.

1. Buatlah new project.

 2. Tambahkan MDI Form.

3. Tampilan MDIParent1.

4. Buatlah form dengan kelengkapan seperti ini.

5. Inilah source code pada Form1.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
using System.IO;
using Excel = Microsoft.Office.Interop.Excel;
using System.Data.SqlClient;
using System.Data.Odbc;

namespace pemvis_tutorial_MDI
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void txtMasakan_TextChanged(object sender, EventArgs e)
        {

        }

        private void cbJenis_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void txtDaerah_TextChanged(object sender, EventArgs e)
        {

        }

        private void btnTambah_Click(object sender, EventArgs e)
        {
            if (txtMasakan.Text != "" && txtDaerah.Text != "")
            {
                string[] row = new string[]
            {
                txtMasakan.Text, cbJenis.Text, txtDaerah.Text
            };
                dataGridView1.Rows.Add(row);
            }
            else
            {
                MessageBox.Show("Isilah Field yang Kosong", "Peringatan!");
            }
        }


        private void ToCsV(DataGridView dGV, string filename)
        {
            string stOutput = "";
            string sHeaders = "";

            for (int j = 0; j < dGV.Columns.Count; j++)
                sHeaders = sHeaders.ToString() + Convert.ToString(dGV.Columns[j].HeaderText) + "\t";
            stOutput += sHeaders + "\r\n";
            for (int i = 0; i < dGV.RowCount - 1; i++)
            {
                string stLine = "";
                for (int j = 0; j < dGV.Rows[i].Cells.Count; j++)
                    stLine = stLine.ToString() + Convert.ToString(dGV.Rows[i].Cells[j].Value) + "\t";
                stOutput += stLine + "\r\n";
            }
            Encoding utf16 = Encoding.GetEncoding(1254);
            byte[] output = utf16.GetBytes(stOutput);
            FileStream fs = new FileStream(filename, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            bw.Write(output, 0, output.Length);
            bw.Flush();
            bw.Close();
            fs.Close();
        }

        private void btnHapus_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewCell oneCell in dataGridView1.SelectedCells)
            {
                if (oneCell.Selected)
                    dataGridView1.Rows.RemoveAt(oneCell.RowIndex);
            }
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "Excel Documents (*.xlsx)|*.xlsx";
            sfd.FileName = "MasakanNusantara.xls";
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                ToCsV(dataGridView1, sfd.FileName);
            }
        }
    }
}
 6. Inilah source code pada MDIParent1.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace pemvis_tutorial_MDI
{
    public partial class MDIParent1 : Form
    {
        private int childFormNumber = 0;

        public MDIParent1()
        {
            InitializeComponent();
        }

        private void ShowNewForm(object sender, EventArgs e)
        {
            Form childForm = new Form1();
            childForm.MdiParent = this;
            childForm.Text = "Window " + childFormNumber++;
            childForm.Show();
        }

        private void OpenFile(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
            openFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";
            if (openFileDialog.ShowDialog(this) == DialogResult.OK)
            {
                string FileName = openFileDialog.FileName;
            }
        }

        private void SaveAsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
            saveFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";
            if (saveFileDialog.ShowDialog(this) == DialogResult.OK)
            {
                string FileName = saveFileDialog.FileName;
            }
        }

        private void ExitToolsStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void CutToolStripMenuItem_Click(object sender, EventArgs e)
        {
        }

        private void CopyToolStripMenuItem_Click(object sender, EventArgs e)
        {
        }

        private void PasteToolStripMenuItem_Click(object sender, EventArgs e)
        {
        }

        private void ToolBarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            toolStrip.Visible = toolBarToolStripMenuItem.Checked;
        }

        private void StatusBarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            statusStrip.Visible = statusBarToolStripMenuItem.Checked;
        }

        private void CascadeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.Cascade);
        }

        private void TileVerticalToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.TileVertical);
        }

        private void TileHorizontalToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.TileHorizontal);
        }

        private void ArrangeIconsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.ArrangeIcons);
        }

        private void CloseAllToolStripMenuItem_Click(object sender, EventArgs e)
        {
            foreach (Form childForm in MdiChildren)
            {
                childForm.Close();
            }
        }
    }
}
 7. Compile program.

8. Klik save.

9. Tampilan isi file.

Kamis, 24 November 2016

Tutorial CRUD (Create, Read, Update, Delete) Menggunakan Database Access C#

Program ini merupakan program Visual dengan software Visual Studio 2012 Ultimate, dengan DBMS yang saya gunakan adalah Microsoft Access 2007. Langsung kita lihat tutorialnya sebagai berikut.

1. Buatlah form sebagai berikut, CRUD menggunakan button.

2. Pada Visual Studio, di menu bar View, klik Server Explorer, klik kanan Data Connections, pilih Add Connection.

3. Browse sumber database.

4. Tes koneksi file database berhasil.

 5. Pada Server Explorer, database yang sudah terkoneksi diklik dan lihat di form pojok kanan bawah, ctrl+A di bagian kuning lalu copy.

6. Isi kode berikut di bawah public partial class Form1 : Form
        OleDbConnection konek = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\J1F115024\SEMESTER 3\(2) PRAK_PEMVIS\pemvis laporan 6\kerudungImtala.accdb");
7. Isi kode berikut di dalam Form1_Load
konek.Open();
string query = "select * from Imtala";
 8. Isi kode berikut di dalam button Simpan (Create).
        private void btnSimpan_Click(object sender, EventArgs e)
        {
            if (txtNama.Text == "" && txtWarna.Text == "" && txtUkuran.Text == "")
            {
                MessageBox.Show("Isi Field Kosong!", "Peringatan!");
            }

            try
            {
                string sql = string.Format("insert into Imtala values('{0}','{1}','{2}')", txtNama.Text, txtWarna.Text, txtUkuran.Text);
                OleDbCommand perintah = new OleDbCommand(sql, konek);
                perintah.ExecuteNonQuery();
                MessageBox.Show("Data Tersimpan!");
                perintah.Dispose();
            }
            catch (Exception)
            {
                MessageBox.Show("Gagal Menyimpan / Input Nama Sama");
            }
        }
 9. Isi kode berikut di dalam button Edit (Update).
private void btnEdit_Click(object sender, EventArgs e)
        {
            try
            {
                string sql = string.Format("update Imtala set Nama='" + txtNama.Text + "',Warna='" + txtWarna.Text + "',Ukuran='" + txtUkuran.Text + "'where Nama ='" + txtNama.Text + "'");
                OleDbCommand perintah = new OleDbCommand(sql, konek);
                perintah.ExecuteNonQuery();
                MessageBox.Show("Data berhasil diedit");
                perintah.Dispose();
            }
            catch (Exception)
            {
                MessageBox.Show("Data Gagal Diedit");
            }
        }
 10. Isi kode berikut di dalam button Hapus (Delete).
private void btnHapus_Click(object sender, EventArgs e)
        {
            try
            {
                string sql = string.Format("delete from Imtala where Nama ='" + txtNama.Text + "'");
                OleDbCommand perintah = new OleDbCommand(sql, konek);
                perintah.ExecuteNonQuery();
                MessageBox.Show("Data Terhapus!");
                perintah.Dispose();
            }
            catch (Exception)
            {
                MessageBox.Show("Data Gagal Dihapus");
            }
        }
11. Isi kode berikut di dalam button Refresh (Read).
private void btnRefresh_Click(object sender, EventArgs e)
        {
            try
            {
                string query = "select * from Imtala";
                OleDbCommand perintah = new OleDbCommand(query, konek);
                DataSet ds = new DataSet();
                OleDbDataAdapter adapter = new OleDbDataAdapter(perintah);
                adapter.Fill(ds, "res");
                dataGridView1.DataSource = ds.Tables["res"];
                adapter.Dispose();
                perintah.Dispose();
            }
            catch (Exception)
            {
                MessageBox.Show("Gagal Menampilkan Data");
            }
        }
 12. Pada Form Design, klik dua kali pada dataGridView1, isi coding berikut.
        private void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
        {
            DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
            txtNama.Text = row.Cells[0].Value.ToString();
            txtWarna.Text = row.Cells[1].Value.ToString();
            txtUkuran.Text = row.Cells[2].Value.ToString();
        }
13. Tekan F5 untuk debug program.
 Mengedit data (Update)

Data berhasil diedit

Klik refresh untuk melihat data kelima sudah diedit (Read)

 Menginput data baru dan klik button Simpan (Create)

Menghapus data terakhir (Delete)

 Refresh data (Read)