aseli bikinan agus made
Seperti biasa, saya berasumsi anda sudah mengenal CorelDraw (sebuah aplikasi pengolah gambar berbasis vektor yg lumayan terkenal). Seandainya anda belum mengenalnya, sangat saya sayangkan tulisan ini bukan untuk anda.

Langsung saja, siapkan alat dan bahan sebagai berikut :
1. Aplikasi CorelDraw yang mendukung VBA (saya menggunakan CorelDraw 12)
2. Aplikasi AdobePhotoshop (opsional)
3. Secangkir Kopi (kalo anda ngopi), sebatang rokok (kalo memang perokok). kalo nggak ada, beli di warung sebrang jalan.

Langkahnya sangat sederhana, mudah, cepat dan hasilnya keren. Bermula dari jalankan CorelDraw. Buka VisualBasic Editor-nya (cek menu Tools|VisualBasic|VisualBasic Editor...) Pastikan Project Explorernya tampil, kalo belum cek menu View|Project Explorer. DoubleClick "ThisDocument" pada Project Explorer (VBAProject|CorelDraw12 Objects). Lalu ketik (atau copy-paste) script berikut pada Code Editor-nya:

Sub latihan()
Dim sa As Shape
For i = 1 To 300
Set sa = ActiveLayer.CreateArtisticText((Rnd() * 100) / 10, (Rnd() * 80) / 10,"Agus Made Krisna Parta", _
cdrEnglishUS, , "Arial", (Rnd() * 200) / 10 + 4, cdrTrue, cdrTrue, , cdrLeftAlignment)
sa.Transparency.ApplyUniformTransparency Rnd() * 100
Next i
End Sub


Kalo udah, Tutup VisualBasic Editor dan kembali ke Corel. lalu jalankan Script Anda (Pilih menu Tools|VisualBasic|Play..., pilih "latihan"|Run)
Tunggu sebentar, dan Lihat hasilnya... wow menakjubkan!!! keren khan?
Biar lebih keren SelectAll terus beri warna (misalnya Biru), export ke *.psd, buka di Photoshop, beri latar hitam dan hasilnya akan tampak seperti gambar di atas.


Hehe... saya rasa sudah cukup bikin 'sakit kepala' para pengguna CorelDraw dan Photoshop yg Konvensional. Untuk informasi lebih lengkap soal VBA pada CorelDraw silahkan pencet F1 dari VisualBasic Editor-nya. oke...

dan berikut adalah contoh2 hasil utak-atik VBA pada CorelDraw yg dan saya beri sentuhan akhir dengan Photoshop:





Terima kasih
Agus Made K (http://agusmade.blogspot.com)

GPS adalah Global Positioning System, merupakan sebuah system penanda lokasi tertentu berdasar Koordinat Bumi. Moga suatu saat kita bisa bahas lebih detail tentang system ini. untuk sementara berikut adalah contoh Aplikasi yg sudah saya bikin, guna mengelola data GPS.

Karena software ini masih langkah awal dan hanya untuk kepentingan teman-teman yg baru sibuk dimojokerto saja, jadi kayaknya perlu banyak pembenahan:

kali ini baru satu kali mengalami pembenahan, pada:
1. Handle Track Log.
2. Auto renaming symbol, (Oya Pak Adi jangan lupa cek Setting dulu sebelum buka file pertama kali, biar sampean gak bingung)
3. Memory Lack, untuk data banyak (sekarang dah lebih kuat dari excel)

Pak Pur, Pak Adi atau Fu'ah silahkan download lagi aja softwarenya :
Klik di sini untuk download yg baru, sedangkan

yang lama klik ini. terima kasih.

Judul ini emang gak ada ubungannya ama Penerangan Jalan Umum (PJU), tapi saya cuma mo nyimpen beberapa gambar yang saya punya di komputer saya saat nggarap kerjaan PJU di Kab. Pasuruan dan Bojonegoro.

bos kita tunggu di sini aja, ntar kalo dah jatuh biar kita duluan yg ambil mangganya, boss... kamu emang cerdas,
emang lagi nonton apaan sih? ada yang baru, gak?


kalo di pilem holiwut, musti alaremnya dah bunyi.

pasar yg terdekat adalah rumah kita, dan pembeli yg terdekat adalah teman kita.


selain kera, ada beberapa mahluk yg pandai memanjat, jadi jangan diremehkan... hehehe...

bukan korban bom bali 3.


software + hardware = tempat sampah




meja kerja sebuah kantor saat bos gak ada.


baru segitu di upload, besok2 lagi. Oke...
aseli bikinan agus made

Pastikan paket komponen JVCL sudah terinstal pada delphi anda, jika belum silahkan download di : http://jvcl.sourceforge.net dan ikuti langkah instalasinya.

Jika semua sudah beres, kini kita mulai.

buat program baru, dan tambah kan dua form lagi, hingga program kita terdiri dari tiga Form. Jangan lupa set ukuran Form2 dan Form3 lebih kecil dari Form1 (sekitar 250x250an), dan set properti "formstyle"-nya menjadi "fsStayOnTop" karena ke dua form ini akan dijadikan Dockable Form.

pada Form1 (form utama) tambahkan dua buah Button, dan komponen TJvDockServer ( dari tab "Jv Docking" dikomponen palette), tambahkan juga salah satu komponen Dock Style (misalnya TJvDockVIDVCStyle).

set property JvDockServer1.DockStyle=JvDockVIDVCStyle1

pada Form2 tambahkan komponen TJvDockClient (juga dari tab "Jv Docking").

hubungkan Form2 dengan Form1, bisa dilakukan dengan menambahkan "Unit1" pada "uses" atau pilih menu "File | Use unit" kemudian pilih unit1.

set property JvDockClient1.DockStyle=Form1.JvDockVIDVCStyle1

lakukan hal yang sama (seperti Form2) untuk Form3.

beri event OnClick pada Button1 dan Button2 yang ada di Form1 untuk menampilkan masing-masing untuk menampilkan Form2 dan Form3.

kurang lebih begini :

//...
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Form3.Show;
end;
//...

selesai.

Jalankan program, klik Button1 dan Button2, arahkan ke dua Form ini ke pinggir Form1 lihat hasilnya.

Terima kasih
Agus Made K (http://agusmade.blogspot.com)

aseli bikinan agus made

Saatnya kita belajar implementasi OLE Automation, kali ini kita belajar cara sederhana mengendalikan Photoshop dari aplikasi yang kita buat dengan Delphi. Saya belum tahu mulai Photoshop versi berapa yang mendukung ini, yang jelas dengan Photoshop CS, tidak ada masalah.

Mula-mula jalankan Photoshop pada komputer anda, buka file gambar.

Buat program dengan delphi, tambahkan sebuah "Button" pada form, tambahkan "ComObj" pada "uses", beri event OnClick pada "Button", perhatikan source code berikut :

uses
//...
ComObj
//...

//...
procedure TForm1.Button1Click(Sender: TObject);
var
PhotoShop: OLEVariant;
begin
try
PhotoShop := CreateOleObject('Photoshop.Application');
except
ShowMessage('Error...');
Exit;
end;
//contoh GaussianBlur
PhotoShop.activeDocument.activeLayer.applyGaussianBlur(5);
end;
//...

Jalankan program anda, Klik Tombol-nya dan lihat di Photosop, gambar akan menjadi 'mblawur' karena efek "applyGaussianBlur" yang diperintahkan oleh program anda. Gampang khan?

Anda juga bisa memberikan efek lain, atau memberikan aktivitas lain pada Photoshop, untuk lebih jelasnya silahkan baca "Scripting Guide" pada Photoshop.

Terima kasih
Agus Made K (http://agusmade.blogspot.com)

aseli bikinan agus made

Kali ini kita belajar cara sangat sederhana membuat aplikasi 3D dengan OpenGL menggunakan Delphi dan GLScene. Latihan ini akan sangat tidak berguna jika anda sudah mahir, tapi jangan protes dulu, saya belum banyak melihat teman-teman membuat aplikasi Tiga Dimensi apalagi pake Delphi.

Seperti biasa, saya berasumsi GLScene sudah terinstal dengan baik pada delphi anda, kalo belum silahkan kunjungi web resmi GLScene di http://glscene.org/, download versi terbaru yang cocok dengan delphi anda dan ikuti petunjuk instalasinya.

Karena kemudahan menggunakan GLScene, anda tidak diwajibkan untuk tahu apa itu OpenGL, bagaimana menggunakannya apalagi bagaimana ia bekerja. namun jika anda tertarik untuk tahu lebih jauh silahkan kunjungi http://www.opengl.org/.

Langsung saja, buat proyek baru dengan delphi, tempatkan beberapa komponen, pada form anda, komponen-komponen tersebut antara lain: TGLScene,TGLSceneViewer dan TAsyncTimer (yang semuanya terdapat pada komponen palette "GLScene").


Double Click komponen "GLScene1", akan tampil dialog "GLScene Editor".

Pada "Object Treeview" pilih "Scene objects", klik kanan, pilih "Add object | DummyCube".

pilih "DummyCube1" (yang baru anda buat), klik kanan, pilih "Add object | Special objects | SpaceText".

pilih "SpaceText1" (yang baru anda buat), set Property-nya pada "Object Inspector" :
Text="Agus Made Krisna" // ini cuma contoh, "AgusMade" saja juga boleh... :-)
Material.FrontProperties.Emission.Blue=0.718 // warnanya agak biru.
Position.X=-3.6 // geser ke kiri dikit.

kembali ke dialog "GLScene Editor" pilih "Scene objects", klik kanan, pilih "Add object | LightSource".

pilih "GLLightSource1" (yang baru anda buat), set Property-nya pada "Object Inspector" :
Position.X=-2 // geser ke kiri dikit.
Position.Y=3 // geser ke atas dikit.
Position.Z=4 // geser ke depan dikit.

kembali lagi ke dialog "GLScene Editor" pilih "Cameras", klik kanan, pilih "Add camera".

pilih "GLCamera1" (yang baru anda buat), set Property-nya pada "Object Inspector" :
TargetObject=DummyCube1 // geser ke kiri dikit.
Position.X=-4 // geser ke kiri dikit.
Position.Y=-1 // geser ke bawah dikit.
Position.Z=3.5 // geser ke depan dikit.


Jika sudah, tampilan dialog "GLScene Editor" kira2 akan begini :

dialog "GLScene Editor" sudah boleh ditutup. Klik "GLSceneViewer1" pada form set property Camera=GLCamera1

Akhirnya tampillah dia :
Pada dasarnya program sudah bisa dijalankan tanpa harus mengetik source code sedikitpun. Namun sebagai programmer, masak bikin program hanya klak-klik saja... :-) Kita beri animasi berputar, (sekedar contoh Animasi 3D). Langkah2nya :
Pilih "AsyncTimer1" pada form, set property:
Enabled=True
Interval=1

beri "AsyncTimer1" Event "OnTimer" :

procedure TForm1.AsyncTimer1Timer(Sender: TObject);
begin
DummyCube1.Turn(1);
end;
Sudah selesai, gampang khan?... Oke, Jalankan program maka tampil Tulisan3D berputar :
silahkan download source code untuk Aplikasi ini disini

Terima kasih
Agus Made K (http://agusmade.blogspot.com)

aseli bikinan agus made


Berikut kita belajar cara sangat sederhana mengelola database MySQL menggunakan Delphi dan Zeos. Latihan ini akan sangat tidak berguna jika anda sudah mahir, tapi jangan protes dulu, artikel ini saya muat di sini karena banyak teman yang minta ke saya, karena merasa terlalu awam dengan zeos.

Mula-mula, saya berasumsi zeos sudah terinstal dengan baik pada delphi anda, kalo belum silahkan download di http://www.sourceforge.net/projects/zeoslib, lalu ikuti petunjuk instalasinya.

Saya juga berasumsi bahwa MySQL sudah berjalan pada komputer anda atau setidaknya bisa diakses sepenuhnya dari komputer anda, kalo belum silahkan download di http://dev.mysql.com/downloads/, lalu ikuti petunjuk instalasinya.

dan

Saya juga berasumsi anda sudah dapat menggunakan MySQL dengan baik, entah menggunakan MySQL Front, SQLYog, PHPMyAdmin atau apa aja, yang penting bisa ..:) selanjutnya buat database "latihan" dan buat satu tabel "Anggota" dengan field "Id" varchar(15), "Nama" varchar(15), "Alamat" varchar(255), atau jalankan script berikut pada SQLEditor aplikasi anda:

create database if not exists `latihan`;
USE `latihan`;
DROP TABLE IF EXISTS `anggota`;
CREATE TABLE `anggota` (
`Id` varchar(15) NOT NULL default '',
`Nama` varchar(30) default NULL,
`Alamat` varchar(255) default NULL,
PRIMARY KEY (`Id`)
) TYPE=MyISAM;
insert into `anggota`(`Id`,`Nama`,`Alamat`)
values ('123','Agus Made','Yogyakarta'),
('456','Krisna Parta','Yogyakarta juga');
atau dump file "db_latihan.sql" dari source code latihan ini.

Buat proyek baru pada delphi yang kurang lebih tampilannya seperti gambar berikut :

Deklarasikan variabel gloabal "editmode" untuk pengelolaan mode tampilan dan akses terhadap setiap komponen:


//...
var
Form1: TForm1;
editmode:0..2=0;//0=browse 1=insert 2=edit
implementation
//...

Buat beberapa "procedure" bantu berikut, dan deklarasikan sebelum sintaks "private". kurang lebih seperti ini :

//...
procedure setmode;
procedure kosong;
procedure isi;
//...
private
//...
implementation
//...
procedure TForm1.setmode;
begin
tbTambah.Enabled:=editmode=0;
tbEdit.Enabled:=editmode=0;
tbSimpan.Enabled:=editmode>0;
tbBatal.Enabled:=editmode>0;
tbHapus.Enabled:=editmode=0;

edId.ReadOnly:=editmode=0;
edNama.ReadOnly:=editmode=0;
mmAlamat.ReadOnly:=editmode=0;
end;

procedure TForm1.kosong;
begin
edId.Text:='';
edNama.Text:='';
mmAlamat.Text:='';
end;

procedure TForm1.isi;
begin
edId.Text:=zqAnggota.fieldbyname('Id').asstring;
edNama.Text:=zqAnggota.fieldbyname('Nama').asstring;
mmAlamat.Text:=zqAnggota.fieldbyname('Alamat').asstring;
end;


lalu berikan event OnAfterScroll pada TZReadOnlyQuery "zqAnggota" dengan sintaks berikut:

procedure TForm1.zqAnggotaAfterScroll(DataSet: TDataSet);
begin
isi;
end;

berikan juga event OnFormShow pada TForm1 "Form1" dengan sintaks berikut:
procedure TForm1.FormShow(Sender: TObject);
begin
setmode;
end;


lalu berikan event OnClick pada TButton "tbTambah" dengan sintaks berikut:

procedure TForm1.tbTambahClick(Sender: TObject);
begin
case TButton(sender).tag of
0: begin editmode:=1; kosong; setmode; end; //tambah
1: begin editmode:=2; isi; setmode; end; //edit
2: begin editmode:=0; isi; setmode; end; //batal
3: begin //simpan
if editmode = 1 then //jika data adalah tambahan
zqProses.Script.Text:='insert into anggota(Id,Nama,Alamat)'+
'values("'+edId.text+'","'+edNama.text+'","'+mmAlamat.Text+'")'
else //jika data adalah editan
zqProses.Script.Text:='update anggota set'+
'Id="'+edId.text+'",Nama="'+edNama.text+'",Alamat= "'+
mmAlamat.Text+'" where Id="'+
zqAnggota.fieldbyname('Id').AsString+'"';
zqProses.Execute;

zqAnggota.Close; //biar refresh
zqAnggota.Open;
editmode:=0; setmode;
end;
4: begin //hapus
zqProses.Script.Text:='delete from anggota where '+
'Id="'+zqAnggota.fieldbyname('Id').AsString+'"';
zqProses.Execute;
zqAnggota.Close; //biar refresh
zqAnggota.Open;
end;
end;
end;

Event OnClick yang kita buat di atas sebenarnya berlaku untuk semua tombol (tbEdit, tbBatal, tbSimpan dan tbHapus) yang kita buat, menggunakan metode pembagian kerja berdasarkan property "Tag" pada "TButton" tersebut. Jadi hubungkan event OnClick semua tombol tersebut dengan "tbTambahClick"

jika semua sudah 'dilakoni' dengan baik, 'kayaknya' program 'gak bakalan' bermasalah. Jalankan program dan lihat hasilnya, kurang lebih akan seperti ini :

Semua tombol sudah berfungsi dengan baik. Sekali lagi contoh ini sangat sedarhana tidak menggunakan penangan error dan konfirmasi apapun. Pada implementasi sesungguhnya banyak hal yang perlu di'urusi'. Namun demikian setidaknya bagi yang belum pernah 'nyoba' handle MySQL dengan Delphi, bisa menyadari betapa mudah Zeos digunakan untuk hal ini.

silahkan download source code untuk Aplikasi ini disini.

Terima kasih
Agus Made K (http://agusmade.blogspot.com)

Belakangan ini saya mencoba membuat sepaket library yang nantinya dapat digunakan untuk pengelolaan DataBase berbasis Object Oriented menggunakan Delphi dengan DataBase MySQL (dapat juga diterapkan pada database yang lain, butuh sedikit modivikasi) dan Zeos untuk direct access ke MySQL. Sebenarnya besok kalo punya duit maunya sih pake MyDAC :-(

Orientasi utamanya adalah untuk memudahkan dalam pengembangan software skala Besar dengan Pola standar. Ide ini muncul bermula dari sulitnya menemukan standar pengembangan software database berbasis delphi (atau mungkin tidak harus distandarisasi), padahal menurut saya ini hal yang esensial.

Pada tahap awal ini belum banyak hal yang sempat saya tangani, namun sudah cukup banyak membantu saya dalam mengembangkan beberapa proyek.

Berikut adalah uraian beberapa class dasar yang yang saya buat dalam library ini :
TamView : Merupakan Class utama dalam pengelolaan Object Oriented Datasase. Class ini meng-handle tabel ataupun kumpulan tabel untuk dikelola, pengelolaan berupa DDL maupun DML SQL handle. Pada versi ini, belum semua DDL dan DML yang didukung. hanya pengelolaan utama yang sudah saya tangani seperti : Select (termasuk join, where, order dan limit), Insert, Delete dan Update. Jangan salah faham dulu... dalam pengembangan software anda tidak perlu menggunakan sintak SQL, karena library ini yang akan membuatnya. itulah proses utama yang dilakukan oleh library ini. Intinya menerjemahkan bahasa object pascal pada software anda menjadi sintak SQL yang selanjutnya dihubungkan ke MySqL menggunakan direct access-nya Zeos.
Bahkan dalam waktu dekat kita akan mengabaikan bahasa pascal dalam penggunaannya. karena XML jauh lebih enak dipahami. Ini yang akan saya kembangkan. tunggu saja tanggal mainnya :-)

TamDetail : Merupakan subClass dari TamView untuk pengelolaan master detail, sub detail, dan sub-nya lagi dalam tingkatan tak terhingga. Hubungan antara master dan detail dapat berupa KeyField dan MasterField (seperti standard Delphi) bahkan beberapa KeyField dan MasterField, maupun SQL Like JoinType.

TamLookup : Merupakan class pengelolaan Join beberapa tabel dengan berbagai JoinType dan beberapa field terkait.

Juga class-class lain seperti TamOrder, TamLimit, TamFilter untuk pengelolaan full custom select. namun tetap tidak kacau dalam peng-update-an data.

Dua unit yang saya buat untuk proyek ini, antara lain :
amDbObj ==> berisi class-class dasar untuk pengelolaan database.
amDbIntf ==> berisi class-class pendukung untuk user interface.

Untuk lebih jelasnya hubungan antar class pada masing-masing file dapat anda lihat pada gambar.
Dan dokumentasi library dalam format HTMLHelp (chm) ini dapat anda download.

Segala kritik dan saran ditunggu, jangan ragu kirim bug report, protes, cacian, umpatan, pujian dan sebagainya ke krisnaparta{at}gmail.com Pengembangan ini sangat membutuhkan partisipasi semua pihak.

Selamat mencoba, semoga anda mendapat proyek besar dan jangan lupa bagi2 :-)
silahkan download file chm nya di sini

More

Label

3D (1) blogger (1) Canvas (2) cerita pribadi (4) cms (1) coreldraw (1) delphi (6) freeware (1) GLScene (1) gps (1) HTML5 (2) humor (1) library (1) mysql (4) OLE/DDE (1) online tools (2) oop (2) OpenGL (1) photoshop (2) php (1) PJU (2) project (4) referensi (1) software (9) tamzbackup (1) tutorial dasar (8) zeos (3)