Kamis, 26 September 2019

Langkah Dasar Membuat Report/Laporan Dengan Tampilan Pengaturan Bawaan/Default ~Tutorial Gambas


Yang dimaksud dengan “tampilan pengaturan bawaan” pada judul diatas ialah membuat report dengan tampilan pengaturan yang sudah disediakan oleh gambas, jadi pemrogram tidak perlu membuat objek sendiri untuk kotak pengaturan seperti jenis kertas, ukuran, perbesar-perkecil tampilan, pilihan mesin printer, jumlah cetak, dll.

Adapun langkah dasar membuat laporan adalah.

Kita mulai dari membuat project baru terlebih dahulu sebagai contoh.

Buka aplikasi Gambas pilih “Proyek Baru / New Project”.



Pada menu Project type, misal kita pilih aja “Graphical Application”. Lalu pilih “Next”.


 Pada jendela Parrent directory kita diminta untuk memeilih lokasi Project disimpan. Lalu tekan “Next”.


 Pada Project details isikan sebuah nama untuk file project (jangan sampai ada nama file yang sama pada direktori yang sama), dan di bawahnya lagi untuk nama applikasi yang dikerjakan. Pada gambar saya kasih contoh dengan nama “BuatLaporan” pada keduanya. Lalu tekan “Ok”


Nah kemudian muncul Jendela Project, yang jika kita Kilk Double “Fmain” maka akan keluar papan project. Tapi kita fokus aja dulu pada pembuatan laporan.
Pada menu jendela pilih Proyek > Properti (atau bisa klik kanan <Nama Project>(”BuatLaporan”) > Properti).



Pada Form property pilih Komponen dan aktifkan/centang library gb.Report2 seperti pada gambar. Lalu “Ok”.



Kemudiian buat Form Report klik kanan pada FMain, lalu pilih Report dan isi nama report (bisa gunakan nama default “Report1” misalnya). “Ok”.



Klik double Report1 (atau bisa klik kanan Report1 > Open code). Maka meja proyek Report1 terbuka.



Coba buat dua object ReportLabel dan beri warna yang berbeda pada keduanya dan tanpa diisi nilai/Text pada keduanya. Kemudian Run (Klik kanan Class/From > Run this class/Run this form). Maka perhatikan ada satu objek saja yang terlihat. Kemudian coba kedua/salah satu objek tersebut pada properti AutoResize nya di beri nilai True, lalu Run. perhatikan perbedaannya.


Pada dasarnya lembar report menggunakan objek Container ReportVBox sehingga tersusun/berurutan dari atas ke bawah. Untuk pembuatan laporan yang sesungguhnya terutama melibatkan tabel data mungkin akan membutuhkan kelihaian pemrogram untuk menggunakan dan mengelola objek seperti ReportHBox, ReportVBox, Panel, ReportLabel, dll. Silahkan mengeksplore sendiri penggunaannya. Mungkin suatu saat saya akan memberikan tutorialnya secara bertahap.

Bagaimana memberikan nilai objek ReportLabel melalui source code?

Tidak seperti menggunakan object pada Form umumnya (selain report) yang dengan mudah diberi nilai seperti TextBox1.Text = "Assalamualaikum" , menggunakan cara ReportLabel1.Text = "Tes" tidak akan berguna. Untuk memberikan nila pada ReportLabel, klik dua kali objek (ReportLabel1 misalnya), maka akan menuju/dibuatkan event

' Gambas class file

Public Sub ReportLabel1_Data(Index As Integer)

  Last.Data = "Assalamualaikum"

End




Contoh Membuat Konversi Angka Ke Huruf Dengan Format Mata Uang Rupiah ~Tutorial Gambas


Public Sub main()
   Dim TArr As New String[]
   Dim TArr2 As String[]
   Dim Tks, TMentah As String
   Dim n, m As Byte
   Tks = "51712956783246"

   '-------------- Jika Kososong
   If Tks = "" Then
     Print "Kosong"
     Return
   Endif

   '-------------- Jika sama dengan 0
   If Tks = "0" Then
     Print "Nol"
     Return
   Endif
   '-------------- Memasukkan tiap karakter string ke dalam nilai array. Dari terbesar sampai ke terkecil
   For n = Len(Tks) DownTo 1
     'Sesuai urutan dari depan ke belakang
     TArr.Add(Mid(Tks, n, 1))
   Next

   '-------------- Mulai membaca tiap karakter
   For n = 0 To TArr.Max
     '************** Satuan
     If n = 0 Then
       If TArr.Count = 1 Then TMentah = KA(TArr[n])
    '************** Puluhan
    Else If CStr(n) Like "{1,4,7,10,13}" Then
      If TArr[n] = "1" Then
        If TArr[n - 1] = "0" Then
           TMentah = TMentah & "Sepuluh"
        Else If TArr[n - 1] = "1" Then
          TMentah = TMentah & "Sebelas"
        Else
          TMentah = TMentah & KA(TArr[n - 1]) & " Belas"
        Endif
      Else
        If TArr[n] <> 0 Then TMentah = TMentah & KA(TArr[n]) & " Puluh" & " " & KA(TArr[n - 1])
      Endif
    '************** Ratusan
    Else If CStr(n) Like "{2,5,8,11,14}" Then
      If TArr[n] = "1" Then
        TMentah = TMentah & "Seratus"
      Else
        If TArr[n] <> 0 Then TMentah = TMentah & KA(TArr[n]) & " Ratus"
      Endif
    '************** Ribuan
    Else If n = 3 Then
      If TArr.Count = 4 Then
        If TArr[n] = "1" Then
          TMentah = TMentah & "Seribu"
        Else
          TMentah = TMentah & KA(TArr[n]) & " Ribu"
        Endif
      Else
        If TArr[n] = 1 And TArr[n + 1] = 0 Then
          TMentah = TMentah & "Seribu"
        Else If TArr[n] <> 1 And TArr[n + 1] = 0 Then
          TMentah = TMentah & KA(TArr[n]) & " Ribu"
        Else
          TMentah = TMentah & "Ribu"
        Endif
      Endif
    '************** Juta
    Else If n = 6 Then
      If TArr.Count = 7 Then
        TMentah = TMentah & KA(TArr[n]) & " "
      Endif
      If TArr.Count < 10 Then TMentah = TMentah & "Juta"
    '************** Miliar
    Else If n = 9 Then
      If TArr.Count = 10 Then
        TMentah = TMentah & KA(TArr[n]) & " "
      Endif
      If TArr.Count < 13 Then TMentah = TMentah & "Miliar"
    '************** Triliun
    Else If n = 12 Then
      If TArr.Count = 13 Then
        TMentah = TMentah & KA(TArr[n]) & " Triliun"
      Else
        TMentah = TMentah & "Triliun"
      Endif
    Endif
     TMentah = TMentah & "|"
   Next
   TArr2 = Split(TMentah, "|")
   TMentah = ""
   For n = TArr2.Max DownTo 0
     TMentah = TMentah & " " & TArr2[n]
     If n = 0 Then Break
   Next
   Print Trim(TMentah) & " Rupiah"
End

Private Sub KA(n As String) As String
   'KA = Kata Angka
   If n = "1" Then
     Return "Satu"
   Else If n = "2" Then
     Return "Dua"
   Else If n = "3" Then
     Return "Tiga"
   Else If n = "4" Then
     Return "Empat"
   Else If n = "5" Then
     Return "Lima"
   Else If n = "6" Then
     Return "Enam"
   Else If n = "7" Then
     Return "Tujuh"
   Else If n = "8" Then
     Return "Delapan"
   Else If n = "9" Then
     Return "Sembilan"
   Endif
End

'000.000.000.000.000
'Puluhan = 2,5,8,11,14 dari 0 = 1,4,7,10,13
'Ratusan = 3,6,9,12,15 dari 0 = 2,5,8,11,14
'Ribu = 4 dari 0 = 3
'Juta = 7 dari 0 = 6
'Miliar = 10 dari 0 = 9
'Triliun = 13 dari 0 = 12

Jumat, 20 September 2019

Mengenal Tipe Data Object (Pada Deklarasi) Beserta Penggunaan Dan Cara Membuatnya ~Tutorial Gambas


Mungkin bagi pemula sampai tingkat menengah, penggunaan tipe data Objek belum terlalu dibutuhkan, karena untuk penggunaan dan kebutuhan standar, menu Object yang tersedia pada IDE sudah mencukupi seperti TextBox, Label, ButtonBox, ComboBox, Panel, dll.

Nah, untuk tipe data Object akan dibutuhkan penggunaannya saat dalam kondisi tertentu. Tapi disini saya tidak membahas kondisi seperti apa saja, melainkan hanya memberi contoh penggunaannya.
Ok langsung materi.
Ada dua cara membuat Object, pertama, jenis object ditentukan saat deklarasi, kedua, jenis object tidak ditentukan saat deklarasi.

Contoh Object yang ditentukan secara spesifik saat deklarasi

‘Gambas class file

‘Variabel Tes dideklarasikan sebagai TextBox
Public Tes As TextBox

Public Sub _new()

   Tes = New TextBox(Me) As "Tes"
   Tes.X = 20 ‘Posisi X (kesamping/kanan-kiri)
   Tes.Y = 40 ‘Posisi Y (atas-bawah)
   Tes.W = 100 ‘Lebar
   Tes.H = 30 ‘Tinggi

End

Public Sub Form_Open()

   Tes.Text = “Kata pada Object Tes”

End

Contoh Object yang tidak ditentukkan saat deklarasi, melainkan ditentukan saat instansiasi:

‘Gambas class file

‘Variabel Tes tidak dideklarasikan sebagai object secara umum
Public Tes As Object

Public Sub _new()

   ‘Instansiasi Object sebagai TextBox
   Tes = New TextBox(Me) As "Tes"
   Tes.X = 20 ‘Posisi X (kesamping/kanan-kiri)
   Tes.Y = 40 ‘Posisi Y (atas-bawah)
   Tes.W = 100 ‘Lebar
   Tes.H = 30 ‘Tinggi

End

Public Sub Form_Open()

   Tes.Text = “Kata pada Object Tes”

End


Saat instansiasi objek, kegunaan dari As “Tes” adalah sebagai nama event dari Object. Misalnya jika pemberian nama Event adalah = New TextBox(Me) As “EventKu” maka saat pemanggilan Event:

Public Sub EventKu_Change()

   Print “Tes Event”

End

Maka saat kolom Tes.Text di input (artinya ada perubahan dari kosong ke isi) maka akan keluar output/teks “Tes Event” pada Console.

Trus apa kegunaan/kelebihan deklarasi dengan tipe data Object?

Dengan menggunakan tipe data Object artinya nama variabel object yang dideklarasikan dapat diganti objectnya sesuai kebutuhan/selera dengan nama variabel (objek) yang sama.

Misal

‘Gambas class file

Public Tombol As Object

Public Sub _new()

   ‘Instansiasi Object sebagai TextBox
   Tombol = New ComboBox(Me) As "Tombol"
   Tombol.X = 20
   Tombol.Y = 40
   Tombol.W = 200
   Tombol.H = 30

End

Public Sub Form_Open()

    Tombol.Text = “Tes aja”

End

Public Sub Button1_Click()

  Tombol = New TextBox(Me) As "Tombol"
   Tombol.X = 20
   Tombol.Y = 40
   Tombol.W = 200
   Tombol.H = 30
   ‘Maka ComboBox akan menjadi TextBox

End


Tipe data Object juga dapat berupa array (Object[]):

Public aobjDisplay As New Object[3, 3]

Public Sub Form_Open()

   Dim r As Integer
   Dim c As Integer
   Dim objTextBox As TextBox

   For r = 0 To 2
     For c = 0 To 2
       objTextBox = New TextBox(Me) ' create the next of the 9*9 TextBoxes
       objTextBox.Y = 9 + r * 40
       objTextBox.X = 9 + c * 40
       objTextBox.Width = 32
       objTextBox.Height = 32
       aobjDisplay[r, c] = objTextBox
     Next ' c
   Next ' r

End

Sabtu, 14 September 2019

Mengenal Penggunaan Mid() Untuk Memilih/Seleksi Isi Dari String ~Tutorial Gambas


Perintah Mid atau Mid$ digunakan untuk memilih attau menseleksi atau mengambil (bagian) isi dari sebuah string.
Syntax:
Mid(Isi As String, Posisi As Integer [, PanjangKarakter As Integer])

Posisi adalah penentuan posisi/letak karakter mulai diambi, misal kata “aku”, “a” di posisi 1, “k” di posisi 2, dan “u” di posisi 3.
PanjangKarakter adalah menentukan berapa panjang/jumlah karakter yang akan ditampilkan. Jika PanjangKarakter bernilai negatif makan akan berlaku kebalikannya. Misal kata “Kamu”, sedangkan kata yang dipilh dimulai dari posisi 2 = “a”, dan panjang karakter adalah 2 = “am”. Jika PanjangKarakter bernilai positif maka hasilnya “am”, jika negatif hasilnya “ku” (selain “am”).

Contoh:
Public Sub Main()

   Dim Teks As String
   Teks = “Gambas”
   Print Mid(Teks, 3, 2)
   Print Mid(Teks, 4)  'Hanya menentukan posisi start
   Print Mid(Teks, 2, -1)

End

Hasil:
    mb
  bas
  amba

*Untuk perbedaan antara Mid dan Mid$ tidak usah dipermasalahkan, karena keduanya sama. Tanda $ merupakan pemanis aja.

Semoga bermanfaat.