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