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
.
IReport
Langkah 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