Senin, 29 Juli 2013

DELPHI - Mengatur Lebar kolom tStringGrid

Malam lagi pemirsa setia ~xp
kali ini saya akan bagikan untuk mengatur judul kolom (header) dari Stringgrid beserta Cara mengatur lebar kolom Stringgrid

    StringGrid1.Cols[0].Text:='ID BARANG';
    StringGrid1.Cols[1].Text:='JUMLAH';
    StringGrid1.ColWidths[1]:=75;
    StringGrid1.Cols[2].Text:='KETERANGAN';
    StringGrid1.ColWidths[2]:=300;
    StringGrid1.Cols[3].Text:='STATUS_RETUR';
    StringGrid1.ColWidths[3]:=200;
.... dst

mudah kan?
ayo kunjungi terus Giavano.blogspot.com ^^
terimakasih

DELPHI - Menghapus isi komponen StringGrid dengan cepat

Selamat malam pemirsa setia :D
kembali lagi bersama saya disini B-)
maaf nih lagi sibuk makanya baru ngepost lagi :D
oke langsung aja cekidot..

procedure HapusStringGrid();
var i : integer;
begin
for i := 0 to StringGrid1.ColCount - 1 do
    StringGrid1.Cols[i].Clear;
end;

Mudah kan?
oke Terus kunjungi giavano.blogspot.com ^_^
thank you

Kamis, 25 Juli 2013

DELPHI - Memberi Format Rupiah (Rp.) pada Delphi

selamat subuh para pemirsa setia :D
kali ini saya akan berbagi cerita tentang cara memberikan format rupiah di delphi

oke langsung aja sedot...


sEdit1.Text:=FormatFloat('Rp. ##,###,###',total);

variabel total nya anda tentukan sendiri algoritma dan rulenya
yang jelas tipenya harus float.

taruh aja codingnya di event on click button / onChange TEdit / sejenisnya

oke mudah kan?
terimakasih telah berkunjung ^_^

thank you~

Rabu, 24 Juli 2013

DELPHI - Mengatasi error File not found .dcu pada delphi

hai pemirsa setia :D
kembali lagi bersama saya disini

kali ini saya akan bagikan cara mengatasi error khususnya
"file not found %.dcu"
setelah ngulik sana sini ga dapat jawaban akhirnya coba pasrah dan ngopi dlu sampe subuh :p
akhirnya dapat juga
oke langsung saja

gini caranya pilih menu

Tools -> options -> Delphi Options -> Library - win32 -> library path

cari folder yang bermasalah,
misalnya error Qrpt.dcu not found : pada komponen QUICK REPORT, cari tempat folder kita install QUICK REPORT
tinggal ADD - OK
Trus misalnya error pada Alpha skin, sEdit not found bla bla bla
Cara yang sama bisa diterapkan, cari aja folder alphaskin nya
trus ADD - OK

Mudah kan?
Semoga bisa membantu :D

Terimakasih, Slalu kunjungi Giavano.blogspot.com

Minggu, 21 Juli 2013

JAVA - MakeOver textfield dengan mudah

Selamat siang pemirsa setia :D
seperti posting sebelumnya,
kita mau ubah si jtextfield yang kotak2 jadi agak bulet
biar bagus gitu :D

Pertama bkin dlu Class TextFieldMakeOver namanya
trus copas deh :

package MakeOver;

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;



public class TextFieldMakeOver extends JTextField {
    public TextFieldMakeOver() {
        setOpaque(false);
        setForeground(Color.WHITE);
        setCaretColor(Color.WHITE);
        setBorder(new EmptyBorder(6, 6, 6, 6));
    }
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D gd = (Graphics2D) g.create();
                gd.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
               gd.setPaint(new GradientPaint(0, 0, new Color(255, 255, 255, 120), 0, getHeight(), new Color(0, 0, 0, 0)));
        gd.fillRoundRect(0, 0, getWidth(), getHeight(), 25, 25);
        gd.setColor(Color.white);
        gd.drawRoundRect(0, 0, getWidth() - 1, getHeight() - 1, 25, 25);
        gd.dispose();

    }
}

Cara kerjanya sama, COMPILE dulu projectnya, trus DRAG AND DROP si class TextFieldMakeOver
ke jFrame kamu :D

sekian dan terimakasih ^^


JAVA - MakeOver mempercantik tampilan form

Selamat siang pemirsa :D
sudah pernah dengar MakeOver?
Secara singkat, jadi MakeOver itu seperti Menggambar / Mewarnai di Java.
Buat apa??
Ya pastinya buat Mempercantik Tampilan dong :D

oke ini codingnya untuk MakeOver jPanel

kita buat java class namanya panel

package [namaPackage kamu]
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.GeneralPath;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;

public class panel extends JPanel {
    private static final long serialVersionUID = -1;
    private BufferedImage gradientImage;
    private Color black = Color.blue;
    private Color warna = new Color(0,0,0);

    public panel() {
        super();
    }
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        if (isOpaque()) {
            Graphics2D g2 = (Graphics2D) g.create();
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            setUpGradient();
            g2.drawImage(gradientImage, 0, 0, getWidth(), getHeight(), null);
            int width = getWidth();
            int height = getHeight() * 5 / 100;
            Color light = new Color(1F, 1F, 1F, 0.5F);
            Color dark = new Color(1F, 1F, 1F, 0.0F);
            GradientPaint paint = new GradientPaint(0, 0, light, 0, height, dark);
            GeneralPath path = new GeneralPath();
            path.moveTo(0, 0);
            path.lineTo(0, height);
            path.curveTo(0, height, width / 2, height / 2, width, height);
            path.lineTo(width, 0);
            path.closePath();
            g2.setPaint(paint);
            g2.fill(path);
            paint = new GradientPaint(0, getHeight(), light, 0, getHeight() - height, dark);
            path = new GeneralPath();
            path.moveTo(0, getHeight());
            path.lineTo(0, getHeight() - height);
            path.curveTo(0, getHeight() - height, width / 2, getHeight() - height / 2, width, getHeight() - height);
            path.lineTo(width, getHeight());
            path.closePath();
           g2.setPaint(paint);
            g2.fill(path);
            g2.dispose();
        }
    }

    private void setUpGradient() {
        gradientImage = new BufferedImage(1, getHeight(), BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2 = (Graphics2D) gradientImage.getGraphics();
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        GradientPaint paint = new GradientPaint(0, 0, black, 0, getHeight(), warna);
        g2.setPaint(paint);
        g2.fillRect(0, 0, 1, getHeight());
        g2.dispose();
    }
}


trus compile (Shift + F11)

seudah itu DRAG n DROP aja classPanel di JFrame kamu
cantik kan? hehehehe




JAVA - membuat koneksi Netbeans dengan MySQL

Selamat siang pemirsa setia :D
oke langsung aja. sesuai jdul, inilah class koneksi untuk netbeans dengan MySQL
jangan lupa ADD LIBRARY di dibagian libraries project, pilih MySQL JDBC Driver

package Application;
import java.sql.*;

public class Koneksi {
public Connection dbKoneksi;
public Statement statement;
public PreparedStatement prepareStatement;
public CallableStatement callableStatement;

public Koneksi() {
this.dbKoneksi = null;
}

public void bukaKoneksi() {
    try {
            /*   utk ms-access
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            dbKoneksi = DriverManager.getConnection("jdbc:odbc:kursus");
             */
            Class.forName("com.mysql.jdbc.Driver");
            dbKoneksi = DriverManager.getConnection
                    ("jdbc:mysql://localhost:3306/bengkel","root", "likmi");
         }
         catch(Exception e){
             e.printStackTrace();
         }
}
public void tutupKoneksi(){
       try {
            if (statement != null)
                statement.close();
            if (prepareStatement != null)
                prepareStatement.close();
            if (dbKoneksi != null)
                dbKoneksi.close();
       } catch (Exception e) {
         throw new RuntimeException(e.getMessage());
      }
}
}

Sekian dan Terimakasih

JAVA - memberikan validasi options YES or NO dalam netbeans dengan jOptionPane

Selamat siang pemirsa setia :D

berikut coding untuk memberikan validasi khususnya sebelum menghapus data pada netbeans (JAVA SE)

int ok=JOptionPane.showConfirmDialog(null,"Apakah Anda yakin?","Konfirmasi",JOptionPane.YES_NO_OPTION);
       
if(ok==0){
               ..... // Silahkan isi coding anda  
}

JAVA - membatasi jumlah karakter pada jTextfield

selamat siang pemirsa setia :D

berikut coding JAVA untuk membatasi jumlah karakter yang dimasukkan pada sebuah jtextfield
event - keyTyped

if(txtIDBarang.getText().length()==13)
            evt.consume();

mudah kan? :D

Sekian terimakasih :)

JAVA - mengatur lebar kolom pada jTable

selamat siang pemirsa setia :D
kali ini saya singgung dkit tentang JAVA programming
oke langsung saja

private void AturKolom(){
 TableColumn column;
 jTable1.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
    column = jTable1.getColumnModel().getColumn(0);
    column.setPreferredWidth(50);
    column = jTable1.getColumnModel().getColumn(1);
    column.setPreferredWidth(125);
    column = jTable1.getColumnModel().getColumn(2);
    column.setPreferredWidth(375);
    column = jTable1.getColumnModel().getColumn(3);
    column.setPreferredWidth(75);
    column = jTable1.getColumnModel().getColumn(4);
    column.setPreferredWidth(50);
    column = jTable1.getColumnModel().getColumn(5);
    column.setPreferredWidth(75);
    column = jTable1.getColumnModel().getColumn(6);
    column.setPreferredWidth(100);
 }

Method diatas adalah method untuk mengatur lebar kolom
misalnya saya punya 7 kolom, dan karena indeks dimulai dari NOL, maka column hanya sampai 6

    column = jTable1.getColumnModel().getColumn(6);
    column.setPreferredWidth(100);

kita gunakan .setPreferredWidth(100) untuk set Lebar kolom ke 6 adalah 100

oke sekian terimakasih telah membaca :D

DELPHI - Validasi Yes or No options

selamat siang pemirsa :D
ini dia cara untuk memberikan pilihan yes or no di delphi

If MessageDlg('SIMPAN DATA ?',mtconfirmation, [mbYes,mbNo],0)=mrYes Then
begin
.......
......
end

Oke sekian dlu terimakasih :D

DELPHI - Pemanggilan stored procedure MySQL

oke saya kembali lagi pemirsa :D

langsung aja yah...
cara memanggil stored procedure MySQL di delphi

pertama, buat procedure sql di delphi
Procedure SQL(IsiSQL : String);
begin
  with frmInputBarang do
  begin
  Q.SQL.Clear;
  Q.SQL.Add(IsiSQL);
  Q.ExecSQL;
  end;
end;

procedure diatas berfungsi untuk mengganti beberapa perintah tanpa harus menambahkan komponen adoquery lagi. ckup 1 untuk ramai2 :D

berikut coding untuk memanggil SP :
StoredProcedure yang saya punya namanya : Barang_Input, bikinnya di MySQL, untuk cara bkinnya silahkan liat postingan sebelumnya :D

try
    SQL('CALL Barang_Input('+
    quotedstr(txtIDBarang.Text)+','+
    quotedstr(txtNamaBarang.Text)+','+
    quotedstr(txtSatuan.Text)+','+
    txtHargaBeli.Text+','+
    txtHargaBarang.Text+','+
    txtStok.Text+','+
    quotedstr(cbNamaSupplier.Text)+')');

    ShowMessage('BERHASIL');
except
   ShowMessage('DATA SUDAH ADA');
end;

ask : koko, apa sih bedanya quotedstr() sama yang biasa?
answer : oh itu kalo pake quotedstr, artinya ditambahin kutip '' alias tipenya STRING/CHAR (huruf)
nah kalo txt yang gak pake quotedstr, artinya tipe datanya integer/float/double (angka)

Oke sekian dlu terimakasih pemirsa setia B-)
oLways Update with giavano.blogspot.com ^_^

DELPHI - Mengisi combobox dengan data dari tabel Database MySQL

Selamat pagi pemirsa :D

kali ini saya akan bagikan tentang memasukkan data dari tabel [database] ke dalam sebuah combobox
ya cara termudah menggunakan komponen dbCombobox, tapi cara ini menurut saya kurang efektif,
mengapa? karena dengan menggunakan dbCombobox, koneksi data akan terus terbuka, sehingga jika data yang ada banyak, akan sangat lambat dalam operasi select. insert, update
oleh karena itu, saya menggunakan komponen standar yaitu combobox.
oke langsung saja gan ni codingnya :

Procedure SQL(IsiSQL : String);
begin
  with form1 do
  begin
  adoQuery1.SQL.Clear;
  adoQuery1.SQL.Add(IsiSQL);
  adoQuery1.Open;
  end;
end;

Procedure IsiCombobox(Result : String);
begin
  with form1 do
  begin
  Combobox1.Items.Clear;
  while not adoQuery1.eof do
  begin
    Combobox1.items.add(Q.FieldByName(Result).Value);
    adoQuery1.Next;
  end;
  end;
end;

nah Result disana adalah sebuah parameter 
jadi kita bisa pakai function diatas berulang kali
misalnya :

kita ingin menampilkan daftar NAMA MAHASISWA dari tabel mahasiswa
maka implemetasinya : (asumsikan bahwa NAMA MAHASISWA berada di field NAMA

isi dulu SQLnya
SQL('SELECT * FROM mahasiswa');

IsiCombobox('NAMA');

nah kalo kita pengen ganti ke field lain, tinggal ubah lagi
IsiCombobox('ALAMAT');

Mudah kan pemirsa?
oke sekian dlu, saya lanjutin project lain dlu
terimakasih telah berkunjung di blog saya ^_^

DELPHI - Menekan enter dan focus ke komponen lain

selamat pagi pemirsa setia :D

sedot aja nih codingnya :

event : keypress

 if Key = #13 then
  editText2.SetFocus;

jadi coding diatas itu untuk focus ke komponen yang dituju ketika kita menekan ENTER
mudah kan?
terimakasih sudah berkunjung ^^


DELPHI - Mempercantik Tampilan FORM DELPHI

Selamat Pagi pemirsa setia (subuh sih lebih tepatnya)
>.<
kali ini saya akan share tentang mempercantik FORM DELPHI
jangan kaget yah., ini semacam MAKEOVER untuk delphi, tapi kita tidak perlu coding,
oke langsung sajah :D


  1. download komponen ALPHASKIN (cari di google)
  2. install sampe beres, ingetin lokasi installnya supaya gmpang dicari
  3. trus cara install komponennya di delphi :
    1. file - open
    2. cari file lokasi kamu install alphaskin
    3. pilih versi delphi yang sesuai contoh : delphi 2010 di folder D2010
    4. pilih file acnt2010_R trus di compile (ctrl+F9 atau klik kanan di jendela projectmanager-diatas window tool palette, compile)
    5. JANGAN CLOSE APAPUN
    6. buka lagi file lainnya, file - open
    7. pilih di folder yang sama file acnt2010 tanpa huruf (R)
    8. klik kanan di jendela projectmanager (buat yang gak tau : adanya disebelah kanan, diatas tool palette / tool komponen tempat kita ketik buat nyari komponen)
    9. nanti ada tulisan acnt2010.bpl (dibawahnya projectgroup1) klik kanan, install
    10. SAVE ALL (ctrl+shift+S)
    11. restart delphi kamu
hufft panjang juga yah :D
but slow...

next kita buka delphinya, new project - vcl form application,

  1. cari komponen SKIN PROVIDER dan SKIN MANAGER
  2. di SKIN MANAGER, dobel klik
  3. ADD NEW
  4. isi directory with skin dengan alamat kita install alphaskin.
  5. klik folder SKIN
  6. maka akan tampil daftar skin yg kita bisa pake
  7. pilih skinnya
  8. OK
  9. CLOSE
lho koq gak terjadi apa2?
sabar dlu
klik skinManagernya - properties ACTIVE - false - true (yah cobain aja beberapa kali centang biar ke refresh)
seudah itu, TAMBAHIN komponen sDATEEDIT, sCOMBOBOX, sBITBTN, sPANEL sEDIT,

sudah deh :D
jadi intinya, kita gak pake komponen bawaan delphi
tpi form kita pake ttep
nanti pas di compile dia otomatis berubah
CANTIK KAN wkkwkwkw :D

oke sekian dlu terimakasih sudah berkunjung :D











DELPHI - Membuat tampilan delphi dengan model Ribbon ( office )

Selamat malam lagi pemirsa setia B-)

kali ini saya bakal bagi2 info buat kalian2 yang suka pake delphi :D
oke langsung aja lah yah :D


  1. Pertama, donlod dlu devExpress, cari aja di google :D
  2. Kedua, install deh sampe kelar. 
  3. Ketiga, buka deh delphi 6 / 7 / 2010 nya (dalam kasus ini aku pake delphi 2010)
nah kalo 3 langkah diatas udah, mari kita lanjut...

  1. bkin new project dlu seperti biasa, pilih VCL form applications.
  2. tambahkan komponen dxBarManager
  3. tambahkan komponen dxRibbon
  4. tambahkan komponen dxRibbonStatusBar
kira2 kyk gini nih tampilan awalnya :


nah kalo sudah, gampang deh
buat nambah TAB, klik kanan di dxRibbon, trus pilih ADD TAB

nah gimana cara isi componen didalem ribbon ini?
saya kasi cara yg paling mudah.
caranya :

di TAB yang kita pilih, dibagian atasnya, klik kanan, pilih ADD GROUP WITH TOOLBAR
sehingga jadi kyk gini :

nah kalo untuk merubah tulisan, tinggal ganti di PROPERTIES - CAPTION
kamu bisa ngulik sendiri soal properties mah ~XD

nah didalam ribbon kan pasti ada item, buat di klik, ya engga?
gini caranya... di GROUP RIBBON yang tadi, klik kanan ADD LARGE BUTTON



fungsinya sama seperti BUTTON aja, kalo di dobel click, bisa dikasih coding, untuk nampilin form lain, untuk query, dan sebagainya. (tergantung keinginan)
untuk rubah tulisan, seperti biasa ada dibagian PROPERTIES - CAPTION

kamu bisa nambahin sebanyak yang km mau, dan seperlunya.
trus untuk LARGE BUTTON, masukin gambarnya lewat PROPERTIES - LARGE GLYPH
trus pilih LOAD dan cari gambar yang kamu mau
selanjutnya, tinggal kamu berkreasi sendiri :D


trus buat menu dipojok kiri, kita tambahin lagi ADD GROUP WITH EMPTY TOOLBAR, trus klik dxRIBBON nya, cari properties QUICK ACCESS TOOLBAR
expands (buka) aja,
trus pilih dibagian TOOLBAR, nanti tampilannya jadi seperti ini :


sebenernya konsepnya SAMA aja dengan toolbar yang biasa, cuman letaknya diatas,
untuk nambahin BUTTON, LARGE BUTTON, sama saja, klik kanan pada toolbar dan selanjutnya terserah anda :D


Mudah kan?
untuk komponen statusbar, dobel klik aja, trus ADD ( ini proses nambahin panel ) sebanyak yang dimau,
ubah2 dibagian PROPERTIES aja, disana banyak macamnya

untuk nampilin jam digital distatus bar, tambahin komponen TIMER
dobel klik trus ketik ini :

SStatusBar1.Panels[1].text:=formatdatetime('hh:mm:ss  dddd dd-MMMM-yyyy',now);

tu artinya NAME statusbar saya adalah sStatusBar1
Panels[1].text memaksudkan panel pertama (bagian pertama) dari status bar saya

semoga bisa membantu kawan2 sekalian :)

DELPHI - Autonumbering (penomoran otomatis) pada Stored function MySQL

Selamat malam pemirsa setia :D
mumpung lagi penat sama kerjaan jadi iseng deh bkin blog dlu :D
sekalian bagi2 nih buat para programmer yang lagi pusing mikirin programmingnya :D
maklum sih ya programming udah jadi hobbi buat saya :p (gila x ye masa hobby programming cba -___-)

oke deh tanpa basa basi :D
nih coding buat autonumbering di MySQL (stored function)

nanti hasilnya : B 13 07 22 001
B itu kode ( bisa kamu tentuin sesuai kebutuhan)
13 itu tahun (2013)
07 itu Bulan ( ke-7 )
22 itu Tanggal di bulan itu
001 itu nomor urut bon/nota

jadi tiap hari akan kereset sendirinya, maksudnya?
gini nih :D
misalnya hari ini (22 july 2013) ada 78 transaksi, maka nomor urut terakhir :
B130722078
nah besoknya tanggal (23 july 2013) nomor urutnya akan balik jadi 1 lagi
B130723001
jadi ga akan penuh gan :D
maksimal 1 hari 999 transaksi, 


BEGIN
  declare an char(10);
  declare n char(10);
  set an = concat('B',substr(year(now()),3,2),lpad(MONTH(now()),2,'0'),lpad(DAY(now()),2,'0') );
  
  select max(Nomor_beli) into n from mbeli
  where Nomor_beli like(concat(an,'%'));

  if n is null then
     set n = concat(an,'001');
  else
      set n = concat(an,lpad(substr(n,8,3)+1,3,'0'));
  end if;
  
  return(n);
END

oke deh pemirsa setia :D
sekian dari saya, semoga dapat membantu yah...
jangan lupa selalu kunjungi blog saya :D
banyak source code yang ditempel & dibagikan gratiss :D