Senin, 10 Maret 2025

Berbagai Metode Mengamankan Aplikasi Berbasis Excel

Pendahuluan

Sheet Security

Suatu hari, saya menerima email dari seseorang yang bertanya, "Bagaimana cara agar aplikasi Excel yang kita buat tidak diacak-acak oleh orang yang tidak bertanggung jawab?"

Microsoft Excel sering digunakan sebagai platform untuk membuat aplikasi berbasis spreadsheet, baik untuk keperluan bisnis, akademik, maupun administrasi. Namun, tanpa langkah-langkah keamanan yang tepat, data dan kode dalam aplikasi Excel dapat dengan mudah diakses atau dimodifikasi oleh pengguna yang tidak berwenang. Berikut adalah beberapa cara yang dapat dilakukan oleh seorang programmer berbasis Ms Excel untuk mengamankan aplikasinya

1. Proteksi Sheet dengan Password

Excel menyediakan fitur proteksi lembar kerja (sheet) dengan password. Dengan cara ini, pengguna tidak dapat mengedit atau menghapus konten tanpa memasukkan kata sandi. 

  • Caranya: Review Protect Sheet 
  • Pilih opsi yang ingin dibatasi, seperti mengizinkan hanya pembacaan atau pengisian sel tertentu..

Sheet Protection

2. Menyembunyikan Kolom Tertentu

Beberapa kolom yang berisi data sensitif atau perhitungan penting dapat disembunyikan agar tidak mudah diakses.

  • Caranya: Pilih kolom → Klik kanan → Hide

  • Untuk mencegah pengguna menampilkan kembali kolom yang disembunyikan, proteksi sheet dapat diaktifkan

.

3. Menyembunyikan Sheet Tertentu

Untuk menjaga keamanan data dan rumus, programmer dapat menyembunyikan sheet tertentu dari tampilan pengguna.

  • Caranya: Klik kanan pada tab sheet → Hide

  • Untuk mengembalikannya: View → Unhide (dapat diproteksi dengan password agar tidak bisa di-unhide sembarangan).

  • Alternatif lain melalui Visual Basic Editor (VBE):

    1. Buka VBE dengan menekan Alt + F11.

    2. Pilih sheet yang ingin disembunyikan pada Project Explorer.

    3. Pada bagian Properties Window, ubah Visible menjadi 2 - xlSheetVeryHidden

4. Menyembunyikan Semua Sheet

Jika ingin membatasi akses hanya pada satu sheet utama, semua sheet lainnya dapat disembunyikan.

  • Cara lebih lanjut bisa dilakukan dengan VBA:

    Sub HideAllSheets()
        Dim ws As Worksheet
        For Each ws In ThisWorkbook.Worksheets
            If ws.Name <> "Sheet1" Then ws.Visible = xlVeryHidden
        Next ws
    End Sub
    
Menyembunyikan Sheet

Dengan xlVeryHidden, sheet tidak bisa di-unhide secara manual dari menu Excel.

  • Alternatif lain, gunakan pengaturan di Excel:

  1. File → Options → Advanced

  2. Pada bagian Display options for this workbook, hilangkan centang pada Show sheet tabs.

5. Menyembunyikan Tab Sheet

Tab sheet di bagian bawah dapat disembunyikan sepenuhnya.

Sembunyi tab

6. Memberi Nama Sheet dengan Karakter yang Mirip

Trik sederhana namun efektif adalah memberi nama sheet dengan karakter yang menyerupai angka atau huruf lain, seperti "Sales" menjadi "Sɑles" (menggunakan karakter khusus). Selain itu, nama sheet juga dapat dibuat dengan menambahkan satu atau lebih spasi di akhir atau awal nama sheet, seperti "Data ", " Data", atau " Data " (pakai spasi setelah huruf a). Cara ini dapat membingungkan pengguna yang mencoba mengakses sheet secara manual.

Memberi Nama Sheet

7. Menyembunyikan Menu Standar

Agar pengguna tidak bisa mengakses opsi seperti menyimpan atau mengedit struktur file, menu standar Excel dapat disembunyikan.

    • Menggunakan VBA:

    Sub HideRibbon()
        Application.ExecuteExcel4Macro "SHOW.TOOLBAR(\"Ribbon\", FALSE)"
    End Sub
    
    Menyembunyikan Menu Standar
    • Untuk menampilkan kembali:
    Sub ShowRibbon()
        Application.ExecuteExcel4Macro "SHOW.TOOLBAR(\"Ribbon\", TRUE)"
    End Sub

    8. Membuat Menu Ribbon Sendiri

    Programmer dapat mengganti menu standar dengan Ribbon kustom yang hanya berisi tombol yang diperlukan.

    • Bisa dilakukan melalui XML atau menggunakan add-in seperti Office RibbonX Editor.

    Membuat Menu Ribbon

    9. Menggunakan Rumus Aktivasi / Kode Registrasi

    Jika aplikasi Excel digunakan secara luas, programmer dapat menerapkan sistem aktivasi menggunakan kode registrasi yang dibuat berdasarkan ID perangkat pengguna.

    • Contoh sederhana dengan VBA:

      Function GenerateKey()
          GenerateKey = Environ("UserName") & "-" & Application.WorksheetFunction.RandBetween(1000, 9999)
      End Function
      

    10. Proteksi Kode VBA

    Kode VBA bisa dilindungi agar tidak bisa diedit atau dilihat oleh pengguna lain.

    • Caranya: Alt + F11 → Tools → VBAProject Properties → Protection

    • Centang "Lock project for viewing" dan masukkan password.

    Proteksi Kode VBA

    11. Membuat Tampilan Full Screen (Dictator Application)

    Agar pengguna hanya bisa berinteraksi dengan aplikasi tanpa gangguan menu Excel lainnya, mode layar penuh dapat diaktifkan.

    • VBA untuk mode full screen:

      Sub FullScreenMode()
          Application.DisplayFullScreen = True
          Application.CommandBars("Worksheet Menu Bar").Enabled = False
      End Sub
      • Untuk mengembalikan:

      Sub NormalMode()
          Application.DisplayFullScreen = False
          Application.CommandBars("Worksheet Menu Bar").Enabled = True
      End Sub

    12. Membatasi Akses dengan User Level

    Programmer dapat membatasi akses berdasarkan pengguna tertentu.

    • Contoh VBA:

      Private Sub Workbook_Open()
          If Environ("UserName") <> "Admin" Then
              MsgBox "Anda tidak memiliki izin untuk mengakses file ini.", vbCritical, "Akses Ditolak"
              ThisWorkbook.Close False
          End If
      End Sub

    13. Menyembunyikan Workbook dari Tampilan

    Workbook dapat disembunyikan sepenuhnya agar tidak bisa diakses langsung.

    • VBA:

      Sub HideWorkbook()
          ThisWorkbook.Windows(1).Visible = False
      End Sub

    14. Menggunakan Digital Signature untuk VBA

    Dengan menandatangani proyek VBA menggunakan sertifikat digital, kode dapat dipastikan tidak dimodifikasi.

    • Caranya: Alt + F11 → Tools → Digital Signature.

    15. Membatasi Akses dengan Waktu (Trial Version)

    Programmer dapat menerapkan batas waktu penggunaan aplikasi.

    • Contoh VBA:

      Private Sub Workbook_Open()
          If Date > DateValue("2025-12-31") Then
              MsgBox "Masa berlaku aplikasi telah habis.", vbCritical, "Lisensi Kadaluarsa"
              ThisWorkbook.Close False
          End If
      End Sub

    Kesimpulan

    Dengan kombinasi metode di atas, seorang programmer dapat meningkatkan keamanan aplikasi berbasis Ms Excel.

    Tapi, ngomong-ngomong... Bagaimana cara mengakali cara-cara yang sudah disebutkan di atas, supaya kalau kita dapat aplikasi Excel orang lain, kita bisa menembusnya? Hehe.

0 komentar: