Di materi sebelumnya sudah dibahas bagaimana menggunakan sebuah Interface dengan menggunakan Implements.
Disini saya akan buat sebuat contoh kasus menggunakan impelements.
Sebuah perusahaan ingin mengotomatisasi pembuatan laporan dalam berbagai format seperti PDF dan Excel.
Dengan menggunakan Interface, kita dapat mendefinisikan metode umum misalnya BuatReport yang kemudian diimplementasikan secara spesifik untuk setiap format laporan.
Sehingga saat akan memebuat Report baik Report dalam bentuk PDF ataupun Excel menggunakan 1 motode yaitu BuatReport.
IReportLangkah pertama adalah membuat Class yang bertindak sebagai Interface dengan mendefinisikan metode yang harus diimplementasikan oleh kelas lain.
Tambahkan Class Module baru dan beri nama IReport.
masukan code dibawah ini kedalam iReport
Public Sub BuatReport()
' Metode kosong sebagai placeholder
End Sub
Selanjutnya membuat class untuk implements. Class ini akan mengimplementasikan metode BuatReport untuk menghasilkan laporan dalam format PDF.
Buat Class baru kemudian beri nama misalnya ReportPDF
Implements IReport
Private Sub IReport_BuatReport()
' Bagian ini diisi script Report PDF
' Kode spesifik untuk menghasilkan PDF dapat ditambahkan di sini
' Sebagai Contoh Hanya di isi Msgbox saja
MsgBox "Menghasilkan Laporan dalam format PDF...", vbInformation, "Laporan PDF"
End Sub
Selanjutnya buat Class baru lagi untuk Implements Report Excel. Misalnya Class ini diberi nama ReportExcel.
Copy code berikut ini pada Class ReportExcel
Implements IReport
Private Sub IReport_BuatReport()
' Bagian ini diisi script Report Excel
' Kode spesifik untuk menghasilkan Report dapat ditambahkan di sini
' Sebagai contoh disini saya hanya tambahkan script sederhana saja
MsgBox "Menghasilkan Laporan dalam format Excel...", vbInformation, "Laporan Excel"
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets.Add
ws.Name = "Laporan Excel"
ws.Range("A1").Value = "Ini adalah laporan dalam format Excel."
End Sub
Semua Class sudah berhasil dibuat, total menjadi ada 3 class, yaitu iReport, ReportPdf dan ReportExcel. Setelah ini tinggal langsung ke penggunaan Implements
Setelah berhasil membuat Class Implements, kini saatnya untuk penggunan. Penggunan ini bisa dilakukan di Module ataupun di Userform, tergantung kebutuhan.
Sebagai contoh disini akan saya contohkan penggunaan dalam Module.
Sub BuatSemuaReport()
Dim LapPDF As IReport
Dim LapExcel As IReport
' Membuat instance
Set LapPDF = New ReportPDF
Set LapExcel = New ReportExcel
' Membuat laporan menggunakan Interface
LapPDF.BuatReport
LapExcel.BuatReport
End Sub
Atau misalnya didalam sebuah Userform ada tombol khusus untuk membuat report dalam bentu PDF, maka scriptnya bisa dibuat.
Sub BtnReport_Click()
Dim LapPDF As IReport
Set LapPDF = New ReportPDF
LapPDF.BuatReport
End Sub