Skip to main content

Penjelasan Aplikasi

Visual Basic 2010 merupakan bagian dari Microsoft Visual Studio 2010, yaitu IDE untuk mengembangkan aplikasi berbasis .NET Framework. Bahasa yang digunakan adalah VB.NET, yaitu versi modern dari bahasa Visual Basic yang sudah mendukung pemrograman berorientasi objek (OOP).


Fitur Utama

  • Drag and Drop GUI: Memungkinkan pengguna membuat tampilan aplikasi Windows dengan mudah menggunakan antarmuka grafis.

  • IntelliSense: Fitur yang membantu saat menulis kode dengan menyarankan nama variabel, fungsi, atau properti.

  • Debugger Terintegrasi: Memudahkan untuk melacak dan memperbaiki kesalahan (bug).

  • Event-driven Programming: Aplikasi dibuat berdasarkan respon terhadap event (misalnya klik tombol, input data, dll).

  • Kompatibel dengan .NET Framework: Mendukung pengembangan aplikasi desktop, layanan web, hingga aplikasi basis data.




Contoh Aplikasi yang Bisa Dibuat

  • Aplikasi kasir

  • Sistem manajemen data sekolah

  • Aplikasi input dan laporan nilai siswa

  • Kalkulator desktop

  • Formulir input database


Komponen-Komponen Visual Basic 2010

  • Toolbox: Berisi kontrol seperti Button, TextBox, Label, dsb.

  • Form Designer: Tempat mendesain tampilan aplikasi.

  • Code Editor: Tempat menulis logika program (kode).

  • Solution Explorer: Menampilkan struktur proyek.

  • Properties Window: Mengatur properti objek pada form.



Langkah-langkah pemrograman visual basic

Buka Visual Basic 2010

  • Klik ikon Microsoft Visual Studio 2010 di desktop atau menu Start.

  • Pilih menu File → New Project.

Buat Proyek Baru

  • Pilih Visual Basic pada bagian kiri.

  • Pilih jenis proyek Windows Forms Application.

  • Beri nama proyek (misalnya: AplikasiNilai).

  • Klik OK.

  • Desain Tampilan Aplikasi (GUI)

  • Gunakan Toolbox (sebelah kiri) untuk menambahkan kontrol:

    • Label, TextBox, Button, ListBox, ComboBox, dll.

  • Seret dan letakkan kontrol ke Form1 (area desain).

  • Atur Properties (nama, warna, teks, ukuran) melalui jendela Properties.

  • Tulis Kode Program (Logika)

  • Klik ganda pada tombol atau kontrol yang ingin diberi aksi.

  • Masukkan kode di jendela kode yang muncul.

  • Jalankan Program

    • Klik tombol Start Debugging (F5) di toolbar.

    • Aplikasi akan terbuka dan siap diuji.

    Uji dan Perbaiki (Debugging)

  • Coba semua fitur.

  • Jika ada error, Visual Basic akan menunjukkan pesan kesalahan.

  • Perbaiki kode sesuai kebutuhan.

  • Flowchart

    Flowchart adalah diagram atau bagan alur yang digunakan untuk menggambarkan alur logika atau proses dalam bentuk simbol-simbol grafis. Flowchart sangat berguna dalam perencanaan program, prosedur kerja, maupun sistem karena memperjelas langkah-langkah yang harus dilakukan secara visual.

    Fungsi Flowchart:

    • Memvisualisasikan logika pemecahan masalah atau algoritma.

    • Membantu memahami dan menganalisis proses sebelum membuat program.

    • Mempermudah komunikasi antara programmer dan non-programmer.

    • Sebagai dokumentasi sistem/program.

    Simbol-simbol Flowchart:

    SimbolNamaFungsi
    🔷 (jajar genjang)Input/OutputMenunjukkan proses input atau output data.
    ▭ (persegi panjang)ProsesMenunjukkan langkah proses yang dilakukan (misal: perhitungan, penyimpanan).
    🔽 (belah ketupat)Decision / KeputusanMenandakan pengambilan keputusan bercabang (ya/tidak, benar/salah).
    ⭕ (oval)Terminator (Start/End)Awal atau akhir dari flowchart.
    Panah (Arrow)Menghubungkan antar simbol dan menunjukkan arah alur.

    Call to action

    Silakan tekan tombol dibawah ini jika ada pertanyaan atau saran

    Public Class Form7


        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

            If MaskedTextBox1.Text = "" Then

                MsgBox("Isi dulu Nama anda")

            Else

                MsgBox("Nama Saya " + MaskedTextBox1.Text + ",Usia Saya " + MaskedTextBox2.Text + " Tahun Dan saya sedang belajar Visual Basic")

            End If

        End Sub

    End Class

    Tuliskan script & buat aplikasi visual basic sesuai dengan flowchart & design dibawah ini 

    DataGridView di Visual Basic adalah sebuah kontrol (komponen) yang digunakan untuk menampilkan dan mengelola data dalam bentuk tabel di aplikasi Windows Forms.
    Kontrol ini sangat berguna ketika kita ingin menampilkan data dari database atau daftar (list) dalam format baris dan kolom yang rapi, mirip seperti spreadsheet di Excel.


    Script :

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

            ' Membuat kolom untuk DataGridView

            DataGridView1.ColumnCount = 4

            DataGridView1.Columns(0).Name = "No"

            DataGridView1.Columns(1).Name = "Nama Produk"

            DataGridView1.Columns(2).Name = "Jumlah Terjual"

            DataGridView1.Columns(3).Name = "Harga Per Unit (Rp)"


            ' Menambahkan baris data ke dalam DataGridView

            Dim row As String() = New String() {"1", "Komputer A", "10", "5000000"}

            DataGridView1.Rows.Add(row)

            row = New String() {"2", "Komputer B", "5", "4500000"}

            DataGridView1.Rows.Add(row)

            row = New String() {"3", "Komputer C", "8", "6000000"}

            DataGridView1.Rows.Add(row)

            row = New String() {"4", "Komputer D", "3", "7000000"}

            DataGridView1.Rows.Add(row)

            row = New String() {"5", "Komputer E", "7", "6500000"}

            DataGridView1.Rows.Add(row)


            ' Menyesuaikan lebar kolom

            DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill


            'DataGridView1.ColumnCount = 4: Menentukan jumlah kolom dalam DataGridView.

            'DataGridView1.Columns(0).Name = "No": Memberi nama pada setiap kolom.

            'DataGridView1.Rows.Add(row): Menambahkan baris data ke dalam DataGridView.

            'DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill: Mengatur agar lebar kolom menyesuaikan dengan lebar DataGridView.

        End Sub


    1. Persiapan Database Access

  • Buka Microsoft Access.
  • Buat database baru, misalnya db_siswa.mdb.
  • Buat tabel, misalnya tbl_siswa dengan field:
  • - NIS (Text)
  • - Nama (Text)
  • - Jurusan (Text)
  • 2. Membuat Project di Visual Basic

  • Buka Visual Studio / Visual Basic.
  • Buat Windows Forms Application baru.
  • Tambahkan kontrol pada Form:
  • - 3 TextBox (txtNIS, txtNama, txtJurusan).
  • - 1 Button (btnSimpan).
  • - 1 Label untuk setiap TextBox.
  • 3. Menambahkan Library Koneksi

  • Masuk ke menu Project → Add Reference.
  • Pilih System.Data (biasanya sudah tersedia default).
  • Kode Program


    Imports System.Data.OleDb

    Public Class Form9

        Dim conn As OleDbConnection

        Dim cmd As OleDbCommand

        Dim sql As String

        Dim db As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Materi Pembelajaran\2025 - 2026\Semester 1\XII-1\Integrasi Database Access\db_siswa.mdb;"

        Sub koneksi()

            conn = New OleDbConnection(db)

            conn.Open()

        End Sub

        Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpan.Click

            Call koneksi()

            sql = "INSERT INTO tbl_siswa (NIS, Nama, Jurusan) VALUES (@nis, @nama, @jurusan)"

            cmd = New OleDbCommand(sql, conn)

            cmd.Parameters.AddWithValue("@nis", txtNIS.Text)

            cmd.Parameters.AddWithValue("@nama", txtNama.Text)

            cmd.Parameters.AddWithValue("@jurusan", txtJurusan.Text)

            cmd.ExecuteNonQuery()

            MessageBox.Show("Data berhasil disimpan")

            conn.Close()

        End Sub

    End Class

    Desain Form

    • Tambahkan DataGridView dengan nama DataGridView1.

    • Tambahkan Button bernama btnTampil (untuk memanggil data).


    Kode Program


    Imports System.Data.OleDb


    Public Class Form10

        Dim conn As OleDbConnection

        Dim da As OleDbDataAdapter

        Dim ds As DataSet

        Dim db As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Materi Pembelajaran\2025 - 2026\Semester 1\XII-1\Integrasi Database Access\db_siswa.mdb;"


        ' Prosedur koneksi

        Sub koneksi()

            conn = New OleDbConnection(db)

            conn.Open()

        End Sub


        ' Tampilkan data ke DataGridView

        Sub tampilData()

            Call koneksi()

            da = New OleDbDataAdapter("SELECT * FROM tbl_siswa", conn)

            ds = New DataSet()

            da.Fill(ds, "tbl_siswa")

            DataGridView1.DataSource = ds.Tables("tbl_siswa")

            conn.Close()

        End Sub


        ' Event klik tombol tampil

        Private Sub btnTampil_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnTampil.Click

            tampilData()

        End Sub


        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

            Form9.Show()

            Me.Hide()

        End Sub

    End Class


    Kode Program


      Try

                Call koneksi()

                cb = New OleDbCommandBuilder(da) ' Otomatis buat query Insert, Update, Delete

                da.Update(ds, "tbl_siswa") ' Simpan perubahan dataset ke database

                conn.Close()

                MessageBox.Show("Data berhasil diperbarui!", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information)

            Catch ex As Exception

                MessageBox.Show("Gagal update: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

            End Try


    Kode Program

     

      Try

                If DataGridView1.CurrentRow IsNot Nothing Then

                    ' Konfirmasi hapus

                    If MessageBox.Show("Yakin ingin menghapus data ini?", "Konfirmasi", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then

                        ' Hapus baris dari DataGridView & DataSet

                        DataGridView1.Rows.Remove(DataGridView1.CurrentRow)


                        ' Update perubahan ke database

                        Call koneksi()

                        cb = New OleDbCommandBuilder(da)

                        da.Update(ds, "tbl_siswa")

                        conn.Close()


                        MessageBox.Show("Data berhasil dihapus!", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information)

                    End If

                Else

                    MessageBox.Show("Pilih data yang ingin dihapus dulu!", "Peringatan", MessageBoxButtons.OK, MessageBoxIcon.Warning)

                End If

            Catch ex As Exception

                MessageBox.Show("Gagal hapus: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

            End Try


    Kode Program

     

     

     ' === Export ke Excel ===

        Private Sub btnExportExcel_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnExportExcel.Click

            Try

                ' Koneksi ke database Access

                Dim connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Materi Pembelajaran\2025 - 2026\Semester 1\XII-1\Tugas buat aplikasi input data siswa\Aplikasi VB\DataSiswa.mdb;"

                Dim conn As New OleDbConnection(connStr)

                conn.Open()


                ' Ambil data siswa

                Dim da As New OleDbDataAdapter("SELECT * FROM Siswa", conn)

                Dim dt As New DataTable

                da.Fill(dt)

                conn.Close()


                ' Buka aplikasi Excel

                Dim excelApp As New Excel.Application

                Dim workbook As Excel.Workbook = excelApp.Workbooks.Add()

                Dim worksheet As Excel.Worksheet = workbook.Sheets(1)


                ' Judul besar

                worksheet.Range("A1:L1").Merge()

                worksheet.Range("A1").Value = "DATA SISWA SMA PGRI 1 KOTA BOGOR"

                worksheet.Range("A1").Font.Size = 16

                worksheet.Range("A1").Font.Bold = True

                worksheet.Range("A1").HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter


                ' Header kolom

                Dim headers() As String = {"NIS", "NO", "Nama Lengkap", "Tempat Lahir", "Tanggal Lahir", "Jenis Kelamin", "Agama", "Alamat", "Orang Tua/Wali", "No Telepon", "Kelas", "Jurusan"}

                For i As Integer = 0 To headers.Length - 1

                    worksheet.Cells(3, i + 1) = headers(i)

                    worksheet.Cells(3, i + 1).Font.Bold = True

                    worksheet.Cells(3, i + 1).Interior.Color = RGB(200, 200, 200) ' Background abu-abu

                    worksheet.Cells(3, i + 1).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter

                    worksheet.Columns(i + 1).ColumnWidth = 15

                Next


                ' Isi data

                For r As Integer = 0 To dt.Rows.Count - 1

                    For c As Integer = 0 To dt.Columns.Count - 1

                        worksheet.Cells(r + 4, c + 1) = "'" & dt.Rows(r)(c).ToString()

                    Next

                Next


                ' Auto-fit kolom

                worksheet.Columns.AutoFit()


                ' Simpan file Excel

                Dim savePath As String = "D:\Materi Pembelajaran\2025 - 2026\Semester 1\XII-1\Tugas buat aplikasi input data siswa\DataSiswa.xlsx"

                workbook.SaveAs(savePath)

                workbook.Close()

                excelApp.Quit()


                MsgBox("Data berhasil diekspor ke Excel di: " & savePath)

            Catch ex As Exception

                MsgBox("Gagal ekspor: " & ex.Message)

            End Try

        End Sub


    Kode Program

     

    Imports System.Data.OleDb

    Imports Microsoft.Office.Interop


    Public Class Form1

        Dim conn As OleDbConnection

        Dim cmd As OleDbCommand

        Dim da As OleDbDataAdapter

        Dim ds As DataSet

        Dim db As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Materi Pembelajaran\2025 - 2026\Semester 1\XII-1\Tugas buat aplikasi input data siswa\Aplikasi VB\DataSiswa.mdb;"


        ' ==== Membuka koneksi ====

        Sub Koneksi()

            conn = New OleDbConnection(db)

            If conn.State = ConnectionState.Closed Then

                conn.Open()

            End If

        End Sub


        ' ==== Tampilkan semua data ====

        Sub TampilkanData()

            Koneksi()

            da = New OleDbDataAdapter("SELECT * FROM Siswa", conn)

            ds = New DataSet

            da.Fill(ds, "Siswa")

            DataGridView1.DataSource = ds.Tables("Siswa")

            conn.Close()

        End Sub


        ' ==== Bersihkan TextBox ====

        Sub ClearInput()

            For Each ctl As Control In Me.Controls

                If TypeOf ctl Is TextBox Then

                    ctl.Text = ""

                End If

            Next

            dtpTanggallahir.Value = Date.Now

            cmbJK.SelectedIndex = -1

            cmbAgama.SelectedIndex = -1

            cmbKelas.SelectedIndex = -1

            cmbJurusan.SelectedIndex = -1

            TextBox1.Focus()

        End Sub


        Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load

            ' Tampilkan data awal

            TampilkanData()


            ' Isi Jenis Kelamin

            cmbJK.Items.Add("Laki-laki")

            cmbJK.Items.Add("Perempuan")


            ' Isi Agama

            cmbAgama.Items.Add("Islam")

            cmbAgama.Items.Add("Kristen")

            cmbAgama.Items.Add("Katolik")

            cmbAgama.Items.Add("Hindu")

            cmbAgama.Items.Add("Buddha")

            cmbAgama.Items.Add("Konghucu")


            ' Isi Kelas

            cmbKelas.Items.Add("X-1")

            cmbKelas.Items.Add("X-2")

            cmbKelas.Items.Add("X-3")

            cmbKelas.Items.Add("XI-1")

            cmbKelas.Items.Add("XI-2")

            cmbKelas.Items.Add("XI-3")

            cmbKelas.Items.Add("XI-4")

            cmbKelas.Items.Add("XII-1")

            cmbKelas.Items.Add("XII-2")

            cmbKelas.Items.Add("XII-3")


            ' Isi Jurusan

            cmbJurusan.Items.Add("Saintek")

            cmbJurusan.Items.Add("Soshum")


            'Format Tanggal Lahir

            dtpTanggallahir.Format = DateTimePickerFormat.Custom

            dtpTanggallahir.CustomFormat = "yyyy-MM-dd"

        End Sub


        ' ==== CREATE (Simpan Data Baru) ====

        Private Sub btnSimpan_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSimpan.Click

            Try

                Koneksi()

                Dim sql As String = "INSERT INTO Siswa (NIS, NamaLengkap, TempatLahir, TanggalLahir, JenisKelamin, Agama, Alamat, OrangTuaWali, NoTelepon, Kelas, Jurusan) " &

                                    "VALUES (@NIS, @NamaLengkap, @TempatLahir, @TanggalLahir, @JenisKelamin, @Agama, @Alamat, @OrangTuaWali, @NoTelepon, @Kelas, @Jurusan)"

                cmd = New OleDbCommand(sql, conn)

                cmd.Parameters.AddWithValue("@NIS", TextBox1.Text)

                cmd.Parameters.AddWithValue("@NamaLengkap", TextBox2.Text)

                cmd.Parameters.AddWithValue("@TempatLahir", TextBox3.Text)

                cmd.Parameters.AddWithValue("@TanggalLahir", dtpTanggallahir.Value.Date) ' DateTimePicker

                cmd.Parameters.AddWithValue("@JenisKelamin", cmbJK.Text)            ' ComboBox

                cmd.Parameters.AddWithValue("@Agama", cmbAgama.Text)                ' ComboBox

                cmd.Parameters.AddWithValue("@Alamat", TextBox7.Text)

                cmd.Parameters.AddWithValue("@OrangTuaWali", TextBox8.Text)

                cmd.Parameters.AddWithValue("@NoTelepon", TextBox9.Text.Trim())

                cmd.Parameters.AddWithValue("@Kelas", cmbKelas.Text)                ' ComboBox

                cmd.Parameters.AddWithValue("@Jurusan", cmbJurusan.Text)            ' ComboBox

                cmd.ExecuteNonQuery()

                conn.Close()

                MsgBox("Data berhasil disimpan!")

                TampilkanData()

                ClearInput()

            Catch ex As Exception

                MsgBox("Gagal menyimpan data: " & ex.Message)

            End Try

        End Sub


        ' ==== READ (Pilih Data dari Grid ke TextBox) ====

        Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick

            If e.RowIndex >= 0 Then

                Dim row As DataGridViewRow = DataGridView1.Rows(e.RowIndex)

                TextBox1.Text = row.Cells("NIS").Value.ToString()

                TextBox2.Text = row.Cells("NamaLengkap").Value.ToString()

                TextBox3.Text = row.Cells("TempatLahir").Value.ToString()


                If Not IsDBNull(row.Cells("TanggalLahir").Value) AndAlso row.Cells("TanggalLahir").Value IsNot Nothing Then

                    dtpTanggallahir.Value = Convert.ToDateTime(row.Cells("TanggalLahir").Value).Date

                Else

                    dtpTanggallahir.Value = Date.Today

                End If


                cmbJK.Text = row.Cells("JenisKelamin").Value.ToString()

                cmbAgama.Text = row.Cells("Agama").Value.ToString()

                TextBox7.Text = row.Cells("Alamat").Value.ToString()

                TextBox8.Text = row.Cells("OrangTuaWali").Value.ToString()

                TextBox9.Text = row.Cells("NoTelepon").Value.ToString()

                cmbKelas.Text = row.Cells("Kelas").Value.ToString()

                cmbJurusan.Text = row.Cells("Jurusan").Value.ToString()

            End If

        End Sub


        ' ==== UPDATE (Ubah Data) ====

        Private Sub btnUpdate_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnUpdate.Click

            Try

                Koneksi()

                Dim sql As String = "UPDATE Siswa SET NamaLengkap=@NamaLengkap, TempatLahir=@TempatLahir, TanggalLahir=@TanggalLahir, JenisKelamin=@JenisKelamin, Agama=@Agama, Alamat=@Alamat, OrangTuaWali=@OrangTuaWali, NoTelepon=@NoTelepon, Kelas=@Kelas, Jurusan=@Jurusan WHERE NIS=@NIS"

                cmd = New OleDbCommand(sql, conn)

                cmd.Parameters.AddWithValue("@NamaLengkap", TextBox2.Text)

                cmd.Parameters.AddWithValue("@TempatLahir", TextBox3.Text)

                cmd.Parameters.AddWithValue("@TanggalLahir", dtpTanggallahir.Value.Date)

                cmd.Parameters.AddWithValue("@JenisKelamin", cmbJK.Text)

                cmd.Parameters.AddWithValue("@Agama", cmbAgama.Text)

                cmd.Parameters.AddWithValue("@Alamat", TextBox7.Text)

                cmd.Parameters.AddWithValue("@OrangTuaWali", TextBox8.Text)

                cmd.Parameters.AddWithValue("@NoTelepon", TextBox9.Text)

                cmd.Parameters.AddWithValue("@Kelas", cmbKelas.Text)

                cmd.Parameters.AddWithValue("@Jurusan", cmbJurusan.Text)

                cmd.Parameters.AddWithValue("@NIS", TextBox1.Text)

                cmd.ExecuteNonQuery()

                conn.Close()

                MsgBox("Data berhasil diperbarui!")

                TampilkanData()

                ClearInput()

            Catch ex As Exception

                MsgBox("Gagal memperbarui data: " & ex.Message)

            End Try

        End Sub


        ' ==== DELETE (Hapus Data) ====

        Private Sub btnDelete_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnDelete.Click

            Try

                Koneksi()

                Dim sql As String = "DELETE FROM Siswa WHERE NIS=@NIS"

                cmd = New OleDbCommand(sql, conn)

                cmd.Parameters.AddWithValue("@NIS", TextBox1.Text)

                cmd.ExecuteNonQuery()

                conn.Close()

                MsgBox("Data berhasil dihapus!")

                TampilkanData()

                ClearInput()

            Catch ex As Exception

                MsgBox("Gagal menghapus data: " & ex.Message)

            End Try

        End Sub

        ' === Export ke Excel ===

        Private Sub btnExportExcel_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnExportExcel.Click

            Try

                ' Koneksi ke database Access

                Dim connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Materi Pembelajaran\2025 - 2026\Semester 1\XII-1\Tugas buat aplikasi input data siswa\Aplikasi VB\DataSiswa.mdb;"

                Dim conn As New OleDbConnection(connStr)

                conn.Open()


                ' Ambil data siswa

                Dim da As New OleDbDataAdapter("SELECT * FROM Siswa", conn)

                Dim dt As New DataTable

                da.Fill(dt)

                conn.Close()


                ' Buka aplikasi Excel

                Dim excelApp As New Excel.Application

                Dim workbook As Excel.Workbook = excelApp.Workbooks.Add()

                Dim worksheet As Excel.Worksheet = workbook.Sheets(1)


                ' Judul besar

                worksheet.Range("A1:L1").Merge()

                worksheet.Range("A1").Value = "DATA SISWA SMA PGRI 1 KOTA BOGOR"

                worksheet.Range("A1").Font.Size = 16

                worksheet.Range("A1").Font.Bold = True

                worksheet.Range("A1").HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter


                ' Header kolom

                Dim headers() As String = {"NIS", "NO", "Nama Lengkap", "Tempat Lahir", "Tanggal Lahir", "Jenis Kelamin", "Agama", "Alamat", "Orang Tua/Wali", "No Telepon", "Kelas", "Jurusan"}

                For i As Integer = 0 To headers.Length - 1

                    worksheet.Cells(3, i + 1) = headers(i)

                    worksheet.Cells(3, i + 1).Font.Bold = True

                    worksheet.Cells(3, i + 1).Interior.Color = RGB(200, 200, 200) ' Background abu-abu

                    worksheet.Cells(3, i + 1).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter

                    worksheet.Columns(i + 1).ColumnWidth = 15

                Next


                ' Isi data

                For r As Integer = 0 To dt.Rows.Count - 1

                    For c As Integer = 0 To dt.Columns.Count - 1

                        worksheet.Cells(r + 4, c + 1) = "'" & dt.Rows(r)(c).ToString()

                    Next

                Next


                ' Auto-fit kolom

                worksheet.Columns.AutoFit()


                ' Simpan file Excel

                Dim savePath As String = "D:\Materi Pembelajaran\2025 - 2026\Semester 1\XII-1\Tugas buat aplikasi input data siswa\DataSiswa.xlsx"

                workbook.SaveAs(savePath)

                workbook.Close()

                excelApp.Quit()


                MsgBox("Data berhasil diekspor ke Excel di: " & savePath)

            Catch ex As Exception

                MsgBox("Gagal ekspor: " & ex.Message)

            End Try

        End Sub


        ' ==== KELUAR ====

        Private Sub btnTutup_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnTutup.Click

            Me.Close()

        End Sub

    End Class


    Pengertian Macro Excel

    Macro Excel adalah serangkaian perintah dan instruksi yang direkam atau ditulis menggunakan bahasa pemrograman VBA (Visual Basic for Applications) untuk mengotomatiskan pekerjaan di Microsoft Excel.
    Dengan macro, tugas yang berulang dapat dijalankan secara otomatis hanya dengan satu klik atau kombinasi tombol.


    Fungsi Macro Excel

    Macro digunakan untuk:

    • Menghemat waktu dalam pekerjaan yang berulang

    • Mengurangi kesalahan akibat input manual

    • Meningkatkan efisiensi dan produktivitas kerja

    • Mengotomatisasi proses pengolahan data


    Contoh Penggunaan Macro

    Macro sering digunakan untuk:

    • Memformat tabel secara otomatis

    • Menghitung dan merekap data

    • Membuat laporan rutin

    • Menghapus data ganda

    • Menggabungkan banyak file Excel

    • Membuat tombol (Button) untuk menjalankan perintah tertentu


    Cara Kerja Macro

    Macro bekerja dengan cara:

    1. Merekam aktivitas pengguna (klik, ketik, format, dll)

    2. Menyimpan aktivitas tersebut dalam bentuk kode VBA

    3. Menjalankan kembali aktivitas tersebut kapan pun dibutuhkan


    Cara Membuat Macro di Excel

    Mengaktifkan Tab Developer

    • Klik File → Options → Customize Ribbon

    • Centang Developer

    • Klik OK


    Bahasa Pemrograman Macro (VBA)

    Macro ditulis menggunakan VBA (Visual Basic for Applications).
    Contoh kode macro sederhana:

    Sub Pesan()

        MsgBox "Halo, ini adalah Macro Excel!"

    End Sub


    Kode di atas akan menampilkan kotak pesan saat macro dijalankan.


    Kelebihan Macro Excel

    • Otomatis dan cepat

    • Mudah digunakan (tanpa harus menulis kode)

    • Bisa disesuaikan dengan kebutuhan

    • Mendukung pekerjaan administrasi dan laporan


    Kekurangan Macro Excel

    • Berpotensi membawa virus jika berasal dari sumber tidak terpercaya

    • Tidak semua komputer mengizinkan macro aktif

    • Membutuhkan pemahaman dasar VBA untuk macro lanjutan


    Kesimpulan

    Macro Excel sangat bermanfaat untuk mengotomatisasi pekerjaan, terutama dalam pengolahan data dan pembuatan laporan. Dengan memanfaatkan macro, pengguna dapat bekerja lebih efisien dan profesional.

    📌 Makro: Mengisi otomatis teks “LULUS” jika nilai ≥ 75

    • Kolom A : Nama
    • Kolom B : Nilai
    • Kolom C : Keterangan (diisi otomatis oleh makro)
    • 1️ Struktur Data di Excel
    • Buat tabel seperti ini di Sheet1:

    A (Nama)

    B (Nilai)

    C (Keterangan)

    Andi

    80

    Budi

    70

    Citra

    90

    2️⃣ Step by Step Mengaktifkan Macro di Excel

    Langkah 1 – Aktifkan Tab Developer

    1. Buka Microsoft Excel
    2. Klik File → Options
    3. Pilih Customize Ribbon
    4. Centang Developer
    5. Klik OK

    Langkah 2 – Masuk ke VBA Editor

    1. Klik tab Developer
    2. Klik Visual Basic
    3. Akan muncul jendela VBA Editor

    Langkah 3 – Membuat Module

    1. Klik menu Insert
    2. Pilih Module
    3. Akan muncul Module1
    • 3️ Kode Program Macro VBA
    • Salin dan tempel kode berikut ke Module1:

    Sub CekKelulusan()

        Dim i As Integer

        Dim nilai As Integer

        i = 2 'mulai dari baris ke-2 (data pertama)

        Do While Cells(i, 1).Value <> ""

            nilai = Cells(i, 2).Value

            If nilai >= 75 Then

                Cells(i, 3).Value = "LULUS"

            Else

                Cells(i, 3).Value = "TIDAK LULUS"

            End If

            i = i + 1

        Loop

        MsgBox "Proses selesai!", vbInformation

    End Sub

    4️⃣ Penjelasan Kode

    • Sub CekKelulusan() → Nama makro
    • Cells(i,1) → Kolom Nama
    • Cells(i,2) → Kolom Nilai
    • Cells(i,3) → Kolom Keterangan
    • If nilai >= 75 → Syarat kelulusan
    • MsgBox → Pesan setelah makro selesai

    5️⃣ Cara Menjalankan Macro

    Pakai Tombol 

    1. Tab Developer
    2. Klik Insert → Button (Form Control)
    3. Letakkan tombol di sheet
    4. Pilih makro CekKelulusan
    5. Klik OK
    6. Ubah teks tombol → CEK KELULUSAN

    6️⃣ Hasil Akhir

    Kolom C akan otomatis terisi:

    • LULUS
    • TIDAK LULUS

    Sub SimpanDataSiswa()

        Dim wsInput As Worksheet

        Dim wsData As Worksheet

        Dim barisBaru As Long

        'Set variabel untuk sheet

        Set wsInput = ThisWorkbook.Sheets("Input")

        Set wsData = ThisWorkbook.Sheets("Database")

        'Mencari baris kosong terakhir di sheet Database

        barisBaru = wsData.Cells(wsData.Rows.Count, 1).End(xlUp).Row + 1

        'Memindahkan data dari sheet Input ke Database

        wsData.Cells(barisBaru, 1).Value = wsInput.Range("C3").Value 'Nama

        wsData.Cells(barisBaru, 2).Value = wsInput.Range("C4").Value 'NISN

        wsData.Cells(barisBaru, 3).Value = wsInput.Range("C5").Value 'Kelas

        wsData.Cells(barisBaru, 4).Value = wsInput.Range("C6").Value 'Jurusan

        'Pesan sukses

        MsgBox "Data Siswa SMA PGRI 1 Kota Bogor Berhasil Disimpan!", vbInformation, "Sukses"

        'Mengosongkan form setelah simpan

        wsInput.Range("C3,C4,C5,C6").ClearContents

    End Sub