Nugroho's blog.

Monday, April 2, 2012

Shape di Delphi

Shape adalah sebuah object berupa bentuk-bentuk dasar di Delphi.

Di Delphi ada beberapa cara untuk menggambar; diantaranya menggunakan Shape. Cara lain menggunakan canvas dengan perintah moveto+lineto+fill. Meskipun cara terakhir menawarkan felkesibilitas bentuk yang tinggi, mereka tidak dapat digerakkan dengan mudah; kita harus menghapus dan membuat lagi dari awal.



Shape dapat dengan mudah digerakkan karena memiliki properties top dan left. Berikut adalah cara menggerakkan sebuah Shape dengan fitur kecepatan dan percepatan serta sebuah tombol toggle jalan/stop.

Buat aplikasi baru, letakkan dua edit, satu shape dan satu button.

Berikut adalah perintah lengkapnya.
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Shape1: TShape;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
jalan:boolean;
ax,vx,xx,dt:real;
implementation

{$R *.dfm}

procedure proses;
begin
xx:=xx+vx*dt;
vx:=vx+ax*dt;
with form1 do begin
edit2.Text:=floattostr(vx);
shape1.Left:=round(xx);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
jalan:=false;
edit1.Text:='0';
edit2.Text:='1';
dt:=0.1;
button1.Caption:='jalan';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
jalan:=not(jalan);
ax:=strtofloat(edit1.Text);
vx:=strtofloat(edit2.Text);
xx:=shape1.left;
if jalan=true then button1.Caption:='stop' else button1.Caption:='jalan';
while jalan=true do begin
proses;
application.ProcessMessages;
sleep(100);
end;
end;

end.

Stringgrid di Delphi

Buat aplikasi baru
Letakkan sebuah tombol, edit dan stringgrid di form
Kosongkan bagian text pada edit1
Ubah caption pada button1 menjadi input
Pada properties stringgrid1, ubah colcount->7 kemudian rowcount -> 17
Dobelklik form1, ketikkan perintah berikut
  stringgrid1.Cells[0,0]:='No';
stringgrid1.Cells[1,0]:='Nama';
stringgrid1.Cells[2,0]:='U1';
stringgrid1.Cells[3,0]:='U2';
stringgrid1.Cells[4,0]:='U3';
stringgrid1.Cells[5,0]:='U4';
stringgrid1.Cells[6,0]:='Nil'; 
Jalankan program. Kini stringgrid1 memiliki judul pada baris pertama tiap kolom.



Untuk mengisi kolom nama pada stringgrid, kita gunakan tombol input.
Agar dapat otomatis berganti baris kita perlu membuat sebuah variabel global n bertipe integer.
Dobelklik tombol input, ketikkan perintah berikut
  stringgrid1.Cells[1,n]:=edit1.Text;
stringgrid1.Cells[0,n]:=inttostr(n);
n:=n+1;
Jalankan program. Ketikkan sebarang nama di edit1, kemudian klik tombol input, lakukan berulang-ulang.










Tuesday, March 27, 2012

Loop di Delphi

Buat aplikasi baru

Tempatkan sebuah edit dan dua buah tombol, isi edit dengan nilai nol, ganti caption tombol masing-masing “Jalan” dan “Stop”

Buat variabel global “jalan” berjenis boolean

Dobelklik tombol “Jalan”, ketikkan perintah sebagai berikut



jalan:=true;
x:=strtoint(edit1.Text);
while jalan=true do begin
x:=x+1;
edit1.Text:=inttostr(x);
application.ProcessMessages;
sleep(1000);
end;

(jangan lupa membuat variabel lokal “x” berjenis integer sebelum begin)

Dobelklik tombol “Stop”, ketikkan perintah sebagai berikut

jalan:=false
jalankan program. Jika gagal, ubah deklarasi x dari x:int; menjadi x:integer;

Preman (lagi)

Tadaa…

Masih tentang "pengemis" atau mungkin lebih tepat jika disebut preman kemanusiaan, karena jika benar-benar diperhatikan, mereka tidak masuk kategori pengemis ataupun preman meski

Pernahkah anda melihat pengemis di perempatan jalan? Bagaimana penampilannya

Jaman dulu

Kebanyakan tua
pakaian compang-camping
pake sandal jelek bahkan telanjang kaki
bawa selendang tuk tempat uang



"Pengamen" atau "pengemis" sekarang

semua umur
pakaian lusuh tetapi tetap melindungi kulit dari sengatan matahari
pakai sandal nyaman, ada yang bersepatu
memakai tas ransel, atau selendang bagi yang bawa bayi

Apa yang "dijual" oleh mereka? Kita tahu bahwa pengamen menjual suara merek lewat lagu, di bus kita bahkan sering terhibur dengan lirik-lirik lagu yang kadang mereka ciptakan sendiri. Kita juga tahu pengemis (tanpa tanda petik) menjual keadaan mereka; kemiskinan, penyakit bahkan mungkin harga diri.

Di perempatan memang ada pengamen dan dan pengemis yang sesungguhnya; anak-anak punk yang memang terjun ke jalan. Anak-anak jalanan ini benar-benar menyanyi meskipun tentu saja kita tidak bisa menikmati keseluruhan lagu seperti di bus, dan tentu saja mereka patut untuk mendapatkan imbalannya, sekeping lima ratus rupiah.

Bahkan saya pernah di panas terik dimintai "belas kasihan" oleh seorang "pengemis" kecil; dia minum jus melon sambil ngobrol seru dengan temannya yang memakai tas pinggang Eiger. Dengan keadaan demikian tentu saja saya tidak bisa berbelas kasihan, saya tidak begitu bodoh untuk

Tidak bisakah mereka menjadi pengemis yang profesional? Dengan pakaian dinas yang sesuai dan tingkah laku profesional layaknya pengemis sesungguhnya? Saya kira tidak, mereka sudah terlalu nyaman dengan rutinitas mereka meskipun saya yakin jika mereka bisa bertingkah laku secara profesional, pendapatan harian mereka bisa meningkat.

Tidak pernah ada yang tahu jalan pikiran mereka, tetapi tidak sulit untuk ditebak. Mereka turun ke perempatan-perempatan yang berlampu merah dengan pikiran optimis bahwa jika mereka meminta pasti diberi karena mereka pikir para pengendara menyangka mereka patut dikasihani; dan orang yang patut dikasihani tentu saja harus dikasih uang. Mereka mengeksploitasi rasa belas kasihan kita saat melihat pengemis. Mereka memaksa kita untuk berbelas kasihan meskipun sebenarnya dalam hati beberapa dari kita pasti bertanya “apa iya mereka ini benar-benar patut dikasihani?”.

Cara ini sedikit banyak berhasil. Ironisnya pengendara kebanyakan mengabaikan anak-anak punk yang terkadang malah benar-benar menjual suara mereka dan cenderung memberikan recehan mereka pada anak-anak kecil. Bias ini bisa dimaklumi tentu saja, lihat pakaian anak punk jalanan itu. Namun apakah belas kasihan kita telah benar pada tempatnya?

Memberi recehan pada anak kecil di perempatan mungkin melegakan kita; membantu anak yang kekurangan. Namun anak yang kita beri recehan tersebut sangat mungkin untuk tetap di situ bertahun-tahun kemudian. Mereka telah mendapatkan mata pencaharian yang gampang, mereka tidak butuh sekolah karena lebih enak di jalanan. Dengan memberi mereka recehan kita telah menghancurkan kemungkinan mereka untuk sadar akan pentingnya pendidikan.

Radiobutton di Delphi

Buat aplikasi baru

Tempatkan 2 buah edit, dua buah label, empat radiobutton dan satu tombol pada form

Ubah sedemikian rupa sehingga menjadi seperti gambar kedua

Dobelklik tombol “Hitung”, isi dengan perintah berikut



if radiobutton1.Checked=true then begin
edit3.Text:=inttostr(strtoint(edit1.Text)+strtoint(edit2.Text));
end else if radiobutton2.Checked=true then begin
edit3.Text:=inttostr(strtoint(edit1.Text)-strtoint(edit2.Text));
end else if radiobutton3.Checked=true then begin
edit3.Text:=inttostr(strtoint(edit1.Text)*strtoint(edit2.Text));
end else if radiobutton4.Checked=true then begin
edit3.Text:=floattostr(strtoint(edit1.Text)/strtoint(edit2.Text));
end;

jalankan program

sebagai pelengkap, tambahkan perintah pada radiobutton sedemikian sehingga jika kita memilih “Pengurangan”, maka otomatis label1 menjadi “-”

Berkenalan dengan Delphi

Perkenalan dengan Delphi

Buat aplikasi baru

Buat sebuah label di dalam form, pada caption di properties, ubah tulisan “label1” menjadi “Hello World”


Buat satu tombol di dalam form, pada caption di properties ubah “button1”menjadi “Halo Dunia”




Dobel klik tombol “Halo Dunia”, tuliskan perintah berikut untuk mengubah tulisan “Hello World” menjadi “Halo Dunia”
form1.Label1.Caption:='Halo Dunia';


Jalankan program dengan menu Run->Run atau tombol F9


Ketikkan perintah berikut untuk mengubah warna font pada label 1
form1.Label1.Font.Color:=cllime;


Ketikkan perintah berikut untuk mengubah warna background pada label
form1.Label1.Color:=clred;


cllime, clred adalah warna-warna yang dikenali oleh Delphi. Warna-warna yang lain dapat dilihat di bagian properties


Buat tiga edit dan sebuah tombol

di properties bagian text pada masing-masing edit, ganti dengan angka nol
ganti caption pada tombol dengan “Hitung”

Dobelklik tombol “Hitung” dan ketikkan perintah berikut
edit3.Text:=edit1.Text+edit2.Text;

Jalankan program, klik tombol “Hitung”, apa yang terjadi? Ubah angka-angka pada kotak input (edit1 dan edit2) kemudian klik tombol hitung, apa yang terjadi?

Angka yang ada pada edit diperlakukan sebagai string (huruf) oleh Delphi sehingga jika kita menambahkan angka pada edit1 dengan angka pada edit2, maka mereka tidak menjumlahkan angka melainkan menambahkan angka edit2 di samping edit1.

Agar angka pada edit1 diperlakukan sebagai angka, maka harus kita konversi dengan perintah strtoint(edit1)

Namun karena hasil penjumlahan antara strtoint(edit1)+strtoint(edit2) adalah angka, kita tidak dapat memasukkannya ke edit3; kita harus mengkonversi kembali menjadi string sehingga perintah lengkapnya adalah
edit3.Text:= inttostr(strtoint(edit1)+strtoint(edit2));

jalankan program untuk melihat bedanya

Monday, February 20, 2012

Preman Kemanusiaan

Apakah aku merasa kasihan terhadap pengemis yang menggendong bayinya?

Tidak. Aku kasihan kepada bayinya.

Kenapa tidak diadopsi saja?

Tentu saja, tapi tak mungkin ibunya mau, pasti pendapatannya turun karena tak punya nilai jual lagi di perempatan.
323f (5) amp (1) android (12) apple (7) arduino (18) art (1) assembler (21) astina (4) ATTiny (23) blackberry (4) camera (3) canon (2) cerita (2) computer (106) crazyness (11) debian (1) delphi (39) diary (286) flash (8) fortran (6) freebsd (6) google apps script (8) guitar (2) HTML5 (10) IFTTT (7) Instagram (7) internet (12) iOS (5) iPad (6) iPhone (5) java (1) javascript (1) keynote (2) LaTeX (6) lazarus (1) linux (29) lion (15) mac (28) macbook air (8) macbook pro (3) macOS (1) Math (3) mathematica (1) maverick (6) mazda (4) microcontroler (35) mountain lion (2) music (37) netbook (1) nugnux (6) os x (36) php (1) Physicist (29) Picture (3) programming (189) Python (109) S2 (13) software (7) Soliloquy (125) Ubuntu (5) unix (4) Video (8) wayang (3) yosemite (3)