Selasa, 29 Oktober 2019

Mengatur Tinggi/Height - Lebar/Width Object Report (ReportLabel, ReportTextLabel) ~Tutorial Gambas


Mengatur tinggi-lebar object report tidak seperti dan semudah mengatur tinggi-lebar object pada umumnya (form) yang hanya tinggal bikin object lalu atur tinggi-lebarnya. Untuk atur tinggi-lebar (ReportLabel/ReportTextLabel) harus memastikan object tersebut berada pada sebuah object parent (objek induk) yang merupakan sebuah object Container yakni ReportHBox, yaitu sebuah container/wadah yang menampung object secara berurutan kesamping. Jika hanya menggunakan container ReportVBox sepengelaman penulis tidak bisa karena otomatis ke Expand, kecuali dibantu dengan ReportHBox didalamnya.

Contoh:

Private Report1 As New Report
Private ReportHBox1 As ReportHBox
Private ReportLabel1 As ReportLabel
Private ReportTextLabel1 As ReportTextLabel

Public Sub Form_Open()

   ReportHBox1 = New ReportHBox(Report1)
   ReportLabel1 = New ReportLabel(ReportHBox1)
   ReportTextLabel1 = New ReportTextLabel(ReportHBox1)
   ReportLabel1.Text = "ReportLabel1"
   ReportLabel1.Width = 200
   ReportLabel1.Height = 20
   ReportLabel1.BackGround = ReportBrush.Color(&H00FFFF)
   ReportTextLabel1.Text = "ReportTextLabel1"
   ReportTextLabel1.Width = 150
   ReportTextLabel1.Height = 20
   ReportTextLabel1.BackGround = ReportBrush.Color(&H9EC5EC)

   ‘Jika menggunakan ReportView untuk melihat hasilnya
   ReportView1.Report = Report1

End

Selamat belajar

Senin, 28 Oktober 2019

Mengenal Penggunaan Perintah IIf() Untuk Kondisi (Pada) Nilai/Value ~Tutorial Gambas


Perintah IIf (jika dalam huruf kecil: iif) digunakan untuk memasukkan kondisi pada nilai variable. Bedanya dengan If-Then yaitu:

If-Then
  • Mengekseskusi baris perintah-perintah didalamnya berdasarkan kondisi.
  • Dapat melakukan dengan banyak kondisi
  • Debuger memeriksa kefalidan logika (perintah) hanya pada kondisi yang memenuhi syarat saja

IIf()
  • Untuk memasukkan sebuah nilai berdasarkan kondisi.
  • Hanya menentukan satu kondisi True/Flase (Boolean)
  • Debuger akan memeriksa kefalidan logika tiap nilai untuk masing-masing Bolean (Nilai1 untuk True dan Nilai2 untuk False). Jadi harus hati-hati saat menggunakan dan Format() atau membuat fungsi, karena jika terdapat kesalahan logika pada nilai baik pada salah satu maupun keduanya, makan akan menghasilkan error.


Rumus:

Iif(Boolean(True/False), Nilai1, Nilai2)

Nilai1 jika kondisi True/benar, dan Nilai2 jika kondisinya False/salah

Contoh:

Public Sub Main()

   Dim a As Byte
   Dim Teks As String = “Nama saya adalah “
   a = 1
   Print Teks & IIf(a = 0, “Bagio”, “Paimin”)

End

Hasil:
Nama saya adalah Paimin

“Paimin” yang didapat karena kondisinya False, bahwa a bukan sama dengan 0, melainkan 1. perintah diatas sama halnya dengan perintah berikut:

Print Teks & IIf(False, “Bagio”, “Paimin”)

Contoh error karena kesalahan logika

Public Sub Main()

   Dim a As Byte = 1
   Print IIf(a = 1, a + 6, a + Fungsiku()) ‘Error

End

Private Sub Fungsiku() As String

   Return "Ok"

End

Perintah diatas akan menghasilkan error karena tidak seharusnya menjumlahkan “a” yang bertipe byte dengan “Fungsiku()” yang bertipe String. Selain itu, padahal, jika “Fungsiku()” bertipe byte/short/integer dan tidak menghasilkan error saat dijalankan, hasil yang keluar dari perintah diatas adalah dari “a + 6” karena bernilai True.

Coba jika perintah diatas menggunakan If-Else

Public Sub Main()

   Dim a As Byte = 1
   If a = 1 Then
     Print a + 6
   Else
     Print a + Fungsiku()
   Endif

End

Private Sub Fungsiku() As String

   Return "Ok"

End

Maka perintah diatas tidak terjadi error, kecuali jika kondisinya “a” bukan 1.

Kamis, 24 Oktober 2019

Mengenal (Macam-macam) Penggunaan If - Else - Endif untuk Kondisi/Perbandingan ~Tutorial Gambas


Perbandingan atau pengkondisian merupakan salah satu bagian yang umum dan paling penting dalam dunia pemrogaman. Sebuah program baik dalam sekala kecil (bukan dasar), menengah, maupun besar tidak akan luput dari penggunaan fungsi perbandingan/kondisi tersebut. Terdapat banyak macam/bentuk kondisi berdasarkan fungsi dan tujuannya. Namun disini hanya di fokuskan pada penggunaan If – Else – Endif.

Contoh:
Untuk satu kondisi dan satu statement

Public Sub Main()

   Dim a As Byte = 4
   Dim b As String
   If a = 4 Then b = “Nilai a adalah 4”
   Print b

End

Diatas penggunaan If yang boleh tanpa ditutup menggunakan Endif

Untuk satu kondisi dengan banyak statement

Public Sub Main()

   Dim c As Byte
   Dim d As Byte = 5
   Dim e As String = “Zonk”
   If c = 0 Then
     Inc d
     e = “Nilai \”e\” adalah: “ & d
     Print “Selesai”
   Endif

End

Jika kondisinya memenuhi sayarat (c = 0) maka hasil yang dikeluarkan:
Nilai “e” adalah: 6
Selesai

Penggunaan If dengan banyak statement harus diakhiri dengan Endif.

Untuk banyak kondisi

Public Sub Main()

   Dim z As Byte = 2
   If z = 0 Then
     Print “Tes1”
     z = z * 4
   Else If z = 1 Then
     Print “Tes2”
     z = z * 8
   Else If z = 2 Then
     Print “Tes3”
     z = z * 3
   Else
     Print “Tes1”
     z = z * 10
   Endif
   Print z

End

Hasil diatas adalah:
Tes 3
6

Penggunaan kondisi dengan And, Or, Not


Public Sub Main()

   Dim x, y As Short
   Dim t As String

   x = 1000
   y = 2000
   If x = 1000 And y = 1000 Then
         t = “Tes1”
   Else If x = 2000 And y = 4000 Then
     t = “Tes2”
   Else If x = 1000 And y = 2000 Then
     t = “Tes3”
   Else If x = 6000 Or y = 2000 Then
     t = “Tes4”
   Else If (x = 2000 Or x = 5000) And y = 3000 Then
     t = “Tes5”
   Endif
   Print t

End

Hasil:
Tes3

Public Sub Main()

   Dim a As Byte = 4
   Dim b As String
   If Not (a = 2) Then Print “Mantab”

End

Pada dasarnya kondisi/perbandingan adalah suatu keadaan yang dinilai dari perbandingan antara dua nilai yang bersifat kebenaran (Boolean), yakni menghasilkan nilai antara True (benar) dan False (salah).

If Boolean(True/Flase) Then Statement

Misal bernilai True:

Dim a As String = “Ok”
If a = “Ok” Then Print a

sama dengan

If (a = “Ok”) = True Then Print a

atau juga sama dengan

If True Then Print a

Misal bernilai False:

Dim a As String = “Yes”
If a <> “Ok” Then Print a

dapat ditulis dengan

If Not (a = “Ok”) Then Print a

Juga dapat ditulis dengan

If (a = “Ok”) = False Then Print a

sama dengan

If Flase Then Print a

Selamat Belajar

Selasa, 15 Oktober 2019

Cara Menggunakan Objek ReportView Sebagai Dasar Pembuatan Tampilan Laporan (Manual) ~Tutorial Gambas


Sebagai contoh buatlah Form dengan ukuran Width: 1024, Height: 600 atau ukurannya sesuai dengan keinginan anda, yang penting hasil tampilannya nanti nyaman dilihat.

Pada Tool Box pilih Object ReportView untuk di taruh di papan Form. Jika Object ReportView belum ada di Tool Box, maka harus di aktifkan dulu library Report pada: Project > Property > Component > gb.Report2 diaktifkan/Centang. Lalu kembali ke Tool Box untuk mengambil ReportView.



Sertakan juga dua tombol untuk memperbesar (Zoom Out) dan memperkeci (Zoom In) supaya untuk lebih dapat melihat hasilnya.

Ukuran Panjang-Lebar ReportView1 sesuaikan aja dengan kenyamanan anda.

Hasilnya jika langsung dijalankan seperti berikut :


Tanpa ada tampilan kertas

Dasar menampilkan kertas pada ReportView:

' Gambas class file
Private Report1 As Report

Public Sub Form_Open()

   Report1 = New Report As "Report1"
   ReportView1.Report = Report1

End

Jika dijalankan maka akan tampak tampilan kertas pada ReportView.



Ok, kita lanjut pada tahap berikutnya berdasarkan kode diatas.

' Gambas class file

Private Report1 As Report
Private Printer1 As New Printer

Private ReportHBox1 As ReportHBox
Private ReportVBox1 As ReportVBox

Private ReportLabel1 As ReportLabel
Private ReportLabel2 As ReportLabel
Private ReportLabel3 As ReportLabel
Private ReportLabel4 As ReportLabel
Private ReportLabel5 As ReportLabel

Private UkuranZoom As Short

Public Sub Form_Open()

   'Instansiasi
   Report1 = New Report
   
   ReportLabel1 = New ReportLabel(Report1)
   
   ReportHBox1 = New ReportHBox(Report1)
   ReportVBox1 = New ReportVBox(Report1)
   ReportLabel2 = New ReportLabel(ReportHBox1)
   ReportLabel3 = New ReportLabel(ReportHBox1)
   ReportLabel4 = New ReportLabel(ReportVBox1)
   ReportLabel5 = New ReportLabel(ReportVBox1)
   
   ReportLabel1.Text = "Ini teks pada ReportLabel1"
   ReportLabel1.BackGround = ReportBrush.Color(&H00FFFF)
   
   ReportLabel2.Text = "Ini teks pada ReportLabel2"
   ReportLabel2.Width = 200
   ReportLabel2.Height = 20
   ReportLabel2.BackGround = ReportBrush.Color(&H9EC5EC)

   ReportLabel3.Text = "Ini teks pada ReportLabel3"
   ReportLabel3.Width = 500
   ReportLabel3.Height = 20
   ReportLabel3.BackGround = ReportBrush.Color(&HC0C0C0)

   ReportLabel4.Text = "Ini teks pada ReportLabel4"
   ReportLabel4.Width = 200
   ReportLabel4.Height = 20
   ReportLabel4.BackGround = ReportBrush.Color(&H00FFFF)
  
   ReportLabel5.Text = "Ini teks pada ReportLabel5"
   ReportLabel5.Width = 200
   ReportLabel5.Height = 50
   ReportLabel5.BackGround = ReportBrush.Color(&H9EC5EC)
   
   Report1.Padding.Left = 20
   Report1.Padding.Top = 20

   Printer1.Paper = Printer1.A3
   Print Printer1.PaperWidth 'Uji Coba melihat hasi
   Print Printer1.PaperHeight

   Report1.Paper = Printer1.Paper
   Print Report1.Width 'Uji Coba melihat hasi
   Print Report1.Height
   
   ReportView1.Report = Report1

End

Public Sub Perbesar_Click()

   Inc UkuranZoom
   ReportView1.Zoom = UkuranZoom

End

Public Sub Perkecil_Click()

   Dec UkuranZoom
   ReportView1.Zoom = UkuranZoom

End

Hasil:

Dari skrip diatas silahkan coba di otak-atik untuk mengetahui efeknya dari masing-masing kode.
Mungkin sementara sampai disini dulu, Yang penting kena dasar-dasar tampilan laporan. InsyaAllah kedepan akan dilanjutkan sebagai pembahasan pelengkap, tentunya tahap demi tahap.

Minggu, 13 Oktober 2019

Cara Memasukkan/Menampilkan Dan Merubah Ukuran Foto Pada PictureBox ~Tutorial Gambas


Dasar menampilkan foto pada PictureBox:
Rumus: PictureBox.Picture = Picture[Path As String]
Contoh:

Public Sub Form_Open()

  PictureBox1.Picture = Picture["/home/yusron/Pictures/3x4 2017.png"]

End

Bisa juga menggunakan:

Public Sub Form_Open()

  PictureBox1.Picture = Picture.Load("/home/yusron/Pictures/3x4 2017.png")

End

Jika perintah diatas dijalankan mungkin hasilnya akan tidak sempurna jika lebar/tinggi foto lebih besar dari pada lebar/tinggi PictureBox.

Jika ingin mengatur panjang-lebar foto untuk dimasukkan pada PictureBox, Kuncinya menggunakan Object Image dan property Stretch(Lebar, Tinggi). Sedangkan memanggil data fotonya menggunakan Image.Load(Path) Sebagaimana pada contoh berikut:

Public Sub Form_Open()

  Dim LokasiFoto As String = "/home/yusron/Pictures/3x4 2017.png"
  Dim Foto As Image

  Foto = Image.Load(LokasiFoto).Stretch(100, 120)
  PictureBox1.Picture = Foto.Picture

End

Untuk membuat supaya panjang-lebar foto menyesuaikan dengan panjang-lebar PictureBox:

' Gambas class file


Public Sub Form_Open()

  Dim LokasiFoto As String = "/home/yusron/Pictures/3x4 2017.png"
  Dim Foto As Image
  Dim Panjang_PictureBox, Lebar_PictureBox, Panjang_Foto_Asli, Lebar_Foto_Asli As Float
  Dim Persen As Single

  Panjang_Foto_Asli = Image.Load(LokasiFoto).H 'Panjang_Foto_Asli
  Lebar_Foto_Asli = Image.Load(LokasiFoto).W 'Lebar_Foto_Asli
  Panjang_PictureBox = PictureBox1.W
  Lebar_PictureBox = PictureBox1.H
  If Panjang_Foto_Asli > Lebar_Foto_Asli Then
    Persen = (Panjang_PictureBox / Panjang_Foto_Asli) * 100
    Panjang_PictureBox = Lebar_Foto_Asli * Persen / 100
  Else
    Persen = (Lebar_PictureBox / Lebar_Foto_Asli) * 100
    Lebar_PictureBox = Panjang_Foto_Asli * Persen / 100
  Endif
  Foto = Image.Load(LokasiFoto).Stretch(Panjang_PictureBox, Lebar_PictureBox)
  PictureBox1.Picture = Foto.Picture

End

Sabtu, 12 Oktober 2019

Contoh Cara Membuat Dan Menggunakan (Array) Object[] Yang Tidak Ditentukan Jumlah Arraynya ~Tutorial Gambas


Maksud dari tidak ditentukan jumlah arraynya ialah saat pendeklarasian, dan tentu saja jumlah array harus ditentukan, namun saat sudah diketahui jumlah datanya. Cara ini biasa digunakan saat jumlah data bervariasi untuk dimasukkan pada  Banyak Object yang sama jenisnya seperti TextBox misalnya.
Carra ini saya gunakan saat membuat laporan yang berupa baris dan kolom semacam gridview, sedangkan Objectnya adalah ReportLabel.

Berikut contoh penggunaannya.
Buatlah Form kosong dengan Lebar 574 dan tinggi 525. Adapun isi dalam class:

' Gambas class file

‘Jumlah Array Object tidak ditentukan
Private Tobjek As New Object[]

Public Sub Form_Open()
   Dim n As Byte

   ‘Menentukan jumlah Object (Array) dimana Object sebagai TextBox semua
   ‘Jumlah Objek ada 10 (dimulai dari 0)
   For n = 0 To 9
     Tobjek.Add(TextBox)
   Next
   
  ‘Membuat Object index ke 0
   Tobjek[0] = New TextBox(Me)
   Tobjek[0].Width = 40
   Tobjek[0].Height = 40
   Tobjek[0].Y = 20
   Tobjek[0].X = 200
   Tobjek[0].Text = "aku"
   ‘
   Membuat Object index ke 1
   Tobjek[1] = New TextBox(Me)
   Tobjek[1].Width = 40
   Tobjek[1].Height = 40
   Tobjek[1].Y = 100
   Tobjek[1].X = 200
   Tobjek[1].Text = "opo"

End

Dari contoh diatas hanya membuat 2 dari 10 Object, sebagai contoh saja.


Sebenarnya ada yang lebih simple dari contoh skript di atas, yakni seperti membuat objek lainnya


Private Tobjek As Object[]

Public Sub Form_Open()

   Tobjek = New Object[10]
   ……
   ……
   ……

End

Maka hasilnya sama.

Begitu juga saat membuat Array Object 2 dimensi


Private Tobjek As Object[]

Public Sub Form_Open()

   Tobjek = New Object[10, 4]
   ……
   ……
   ……

End

Semoga bermanfaat