unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const n=3;
var
Form1: TForm1;
a:array[1..n,1..n+1]of real;
x:array[1..n]of real;
kotak:array[1..n] of tedit;
implementation
{$R *.dfm}
procedure bacamatrik;
var i,j:integer;
begin
for i:=1 to n do begin
for j:=1 to n+1 do begin
a[i,j]:=strtofloat(form1.StringGrid1.Cells[j-1,i-1]);
end;end;
end;
procedure tulismatrik;
var i,j:integer;
begin
for i:=1 to n do begin
for j:=1 to n+1 do begin
form1.StringGrid2.Cells[j-1,i-1]:=floattostr(a[i,j]);
end;end;
end;
procedure naif;
var i,j,k:integer;
simpan:real;
begin
for k:= 1 to n do begin
for i:= k+1 to n do begin
simpan:=a[i,k];
if simpan=0 then begin
end else begin
for j:=k to n+1 do a[i,j]:=a[i,j]/simpan*a[k,k]-a[k,j];
end;
end;
end;
end;
procedure subtitusi;
var i,j:integer;
jml:real;
begin
x[n]:=a[n,n+1]/a[n,n];
for i:=n-1 downto 1 do begin
jml:=0;
for j:=i+1 to n do jml:= jml+a[i,j]*x[j];
x[i]:=(a[i,n+1]-jml)/a[i,i];
end;
end;
procedure buatedit;
var i:integer;
begin
for i:=1 to n do begin
kotak[i]:=tedit.Create(form1);
kotak[i].Left:=300;
kotak[i].Top:=40+30*i;
kotak[i].Parent:=form1;
end;
end;
procedure isiedit;
var i:integer;
begin
for i:=1 to n do kotak[i].Text:=floattostr(x[i]);
end;
procedure TForm1.FormCreate(Sender: TObject);
var i,j:integer;
begin
randomize;
stringgrid1.RowCount:=n;
stringgrid2.RowCount:=n;
stringgrid1.ColCount:=n+1;
stringgrid2.ColCount:=n+1;
for i:=1 to n do begin
for j:=1 to n+1 do begin
a[i,j]:=random(20)-10;
stringgrid1.Cells[j-1,i-1]:=floattostr(a[i,j]);
end;end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
bacamatrik;
naif;
subtitusi;
tulismatrik;
buatedit;
isiedit;
end;
end.
Wednesday, June 4, 2014
[Delphi] Gauss Naif Method (just for self documentation)
Here the code
[Delphi] Write to File (just for self documentation)
Here the code, the input method is still manual though, :)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button6: TButton;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Button7: TButton;
procedure proses;
procedure simpanfile;
procedure simpanrecord;
procedure bacarecord;
procedure simpan;
procedure tampilkan;
procedure awal;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
tmahasiswa = record
nama,nim,alamat,offering,nhuruf:string[30];
umur:integer;
nilai:real;
end;
var
Form1: TForm1;
fileku:textfile;
files: file of tmahasiswa;
mahasiswa: tmahasiswa;
implementation
{$R *.dfm}
procedure tform1.awal;
begin
edit1.Text:='Nama';
edit2.Text:='NIM';
edit3.Text:='18';{umur}
edit4.Text:='Alamat';
edit5.Text:='Offering';
edit6.Text:='81';{nilai}
edit7.Text:='Nilai Huruf';
button6.Caption:='Simpan';
button7.Caption:='Tampilkan';
end;
procedure tform1.simpan;
begin
assignfile(files,'data.mp4');
reset(files);
mahasiswa.nama:=edit1.Text;
mahasiswa.nim:=edit2.Text;
mahasiswa.umur:=strtoint(edit3.Text);
mahasiswa.alamat:=edit4.Text;
mahasiswa.offering:=edit5.Text;
mahasiswa.nilai:=strtofloat(edit6.Text);
mahasiswa.nhuruf:=edit7.Text;
seek(files,filesize(files));
write(files,mahasiswa);
closefile(files);
end;
procedure tform1.tampilkan;
begin memo1.Text:='';bacarecord;end;
procedure TForm1.Button6Click(Sender: TObject);
begin simpan; end;
procedure TForm1.Button7Click(Sender: TObject);
begin tampilkan;end;
procedure tform1.bacarecord;
var text:string;
begin
assignfile(files,'data.mp4');
//filemode:=fmopenread;
reset(files);
while not eof(files) do begin
read(files,mahasiswa);
text:=mahasiswa.nama+' ('+inttostr(mahasiswa.umur)+') '+mahasiswa.nim+' '+mahasiswa.alamat+' '+mahasiswa.offering+' '+floattostr(mahasiswa.nilai)+' ('+mahasiswa.nhuruf+')';
memo1.Lines.Append(text);
end;
closefile(files);
end;
procedure tform1.simpanrecord;
begin
assignfile(files,'data.mp4');
rewrite(files);
mahasiswa.nama:='string';
mahasiswa.nim:='001';
mahasiswa.alamat:='malang';
mahasiswa.offering:='abc';
mahasiswa.nhuruf:='wow+';
mahasiswa.umur:=20;
mahasiswa.nilai:=60;
write(files,mahasiswa);
mahasiswa.nama:='qwerty';
mahasiswa.nim:='002';
mahasiswa.alamat:='malang';
mahasiswa.offering:='abc';
mahasiswa.nhuruf:='wow';
mahasiswa.umur:=22;
mahasiswa.nilai:=55;
write(files,mahasiswa);
mahasiswa.alamat:='tidak di malang';
mahasiswa.offering:='abc';
mahasiswa.nhuruf:='wow-';
mahasiswa.umur:=18;
mahasiswa.nilai:=55;
write(files,mahasiswa);
mahasiswa.nama:='dvorak';
mahasiswa.nim:='004';
mahasiswa.alamat:='batu';
mahasiswa.offering:='nyasar';
write(files,mahasiswa);
closefile(files);
end;
procedure tform1.simpanfile;
var i:integer;
begin
assignfile(fileku,'filesaya.txt');
rewrite(fileku);
write(fileku,'Hello ');
write(fileku,'world');
writeln(fileku);
for i:=1 to 10 do begin
write(fileku, i/2, ' ' );
//writeln(fileku);
end;
writeln(fileku);
for i:=1 to 10 do begin
write(fileku, i/2:5:1, ' ' );
//writeln(fileku);
end;
closefile(fileku);
end;
procedure tform1.proses;
var i:integer;
begin
memo1.Text:='';
for i:=1 to 10 do begin
memo1.Lines.Append('OK, ini adalah baris ke-'+inttostr(i));
end;
memo1.Lines.Strings[5-1]:='dengan';
{}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
proses;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
simpanfile;
end;
procedure TForm1.Button3Click(Sender: TObject);
var text:string;
begin
assignfile(fileku,'filesaya.txt');
reset(fileku);
while not eof(fileku) do begin
readln(fileku,text);
memo1.Lines.Append(text);
end;
closefile(fileku);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
simpanrecord;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
bacarecord;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
awal;
end;
end.
<\pre>
[Delphi] Newton Method for Find a Root of a Function (just for self documentation)
Tadaa...
It's my Newton code in Delphi to find a root
It's my Newton code in Delphi to find a root
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function fungsi(x:real):real;
begin fungsi:=x*x-3*x-4;end;
function turunan(x:real):real;
begin turunan:=2*x-3;end;
procedure newton;
var y1,ty1,x1,err:real;
n:integer;
ketemu:boolean;
begin
n:=0;err:=0.01;ketemu:=false;
x1:=strtofloat(form1.Edit1.Text);
while ketemu=false do begin
y1:=fungsi(x1);
ty1:=turunan(x1);
if y1=0 then begin
form1.Edit2.Text:='akarnya adalah '+ floattostr(x1);
ketemu:=true;end;
if abs(y1)<=err then begin
form1.Edit2.Text:='akarnya adalah '+ floattostr(x1);
ketemu:=true;end;
x1:= x1-(y1/ty1);n:=n+1;
form1.Edit3.Text:='langkah ke ' + inttostr(n);
application.ProcessMessages;sleep(100);
end;
end;
procedure gambar;
var x0,y0,y1,i:integer;
begin
x0:=round(form1.Image1.Width/2);
y0:=round(form1.Image1.Height/2);
with form1.Image1.canvas do begin
pen.Color:=clred;
moveto(0,y0);lineto(form1.Image1.Width,y0);
moveto(x0,0);lineto(x0,form1.Image1.Height);
end;
for i:=-100 to 150 do begin
y1:=round(fungsi(i/8));
form1.Image1.Canvas.Pixels[x0+i,y0-y1]:=clblue;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
gambar;
newton;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
button1.Caption:='newton';
edit1.Text:='0';
end;
end.
Friday, May 30, 2014
Bouncing Ball using Python on iPhone
Here the code
I use Pythonista on iOS
class MyScene (Scene):
def setup(self):
self.x=10.
self.y=10.
self.vx=137.
self.vy=153.
self.dt=1/64
pass
def draw(self):
background(1,1,1)
fill(0,1,0)
if(self.x>=self.size.w)or(self.x<=0):
self.vx*=-1
if(self.y>=self.size.h)or(self.y<=0):
self.vy*=-1
self.x+=self.vx*self.dt
self.y+=self.vy*self.dt
ellipse(self.x,self.y,10,10)
run(MyScene())
Game of Life using Python on iPhone
Here the Game of Life code using Python in iOS.
I use Pythonista
from scene import *
from random import choice
class MyScene (Scene):
def setup(self):
# This will be called before the first frame is drawn
self.jalan=-1
self.m =[]
self.n=[]
for i in range(0,32):
self.m.append([])
self.n.append([])
for j in range(0,48):
self.n[i].append(choice([0,1]))
self.m[i].append(0)
def neigh(self,i,j):
n=self.n
sum = n[i-1][j-1]+n[i-1][j]+n[i-1][j+1]+n[i][j-1]+n[i][j+1]+n[i+1][j-1]+n[i+1][j]+n[i+1][j+1]
return sum
def liveOrDie(self,i,j,count):
if(self.n[i][j]==0):
if(count==3):
self.m[i][j]=1
else:
self.m[i][j]=0
else:
if((count > 3)or(count < 2)):
self.m[i][j]=0
else:
self.m[i][j]=1
self.n[i][j]=self.m[i][j]
def drawCell(self):
background(0,.5,0)
for i in range(0,32):
for j in range(0,48):
if (self.n[i][j]==0):
fill(0,.1,0)
else:
fill(0,1,0)
ellipse(i*10,j*10,10,10)
def draw(self):
for i in range(1,31):
for j in range(1,47):
count=self.neigh(i,j)
self.liveOrDie(i,j,count)
self.drawCell()
run(MyScene(),frame_interval=2 )
Friday, May 2, 2014
Logis atau Berpengalaman?
Mayday. Kemarin saya melihat berita-berita di TV. Tidak keluar rumah walau libur karena ancaman macet karena demo.
Ternyata di sini tidak terlalu parah.
Hal lain yang saya perhatikan di berita adalah jika yang demo adalah teman-teman buruh maka tuntutan utamanya adalah hal-hal semacam jaminan kesehatan, hak ibu menyusui, semacam itu.
Namun jika yang demo adalah teman-teman dari mahasiswa, maka tuntutan utamanya adalah kenaikan upah buruh, :).
Kenapa bisa berbeda?
Lebih mendalam lagi, kenapa teman-teman buruh tidak menempatkan kenaikan upah sebagai tuntutan utama?
Ini hanya pemikiran saya, belum tentu sesuai dengan kenyataan. Di sini sepertinya, menurut teman-teman mahasiswa, gaji yang tinggi merupakan hal utama dan sepertinya sangat logis. Mungkin ini adalah bias dari keadaan nyata teman-teman mahasiswa, saat ini prioritas utama bukanlah hal-hal semacam jaminan kesehatan.
Di lain pihak, meskipun sepertinya logis (menurut mahasiswa), kenapa teman-teman buruh tidak menempatkan kenaikan upah sebagai prioritas utama? Secara mengejutkan, ternyata jawaban dari pertanyaan ini bisa angat logis serta mengandung banyak variabel.
Jika mereka menuntut kenaikan upah dan memaksa perusahaan melakukan itu, maka ada beberapa hal yang akan dilakukan perusahaan:
(hanya gumamam)
Ternyata di sini tidak terlalu parah.
Hal lain yang saya perhatikan di berita adalah jika yang demo adalah teman-teman buruh maka tuntutan utamanya adalah hal-hal semacam jaminan kesehatan, hak ibu menyusui, semacam itu.
Namun jika yang demo adalah teman-teman dari mahasiswa, maka tuntutan utamanya adalah kenaikan upah buruh, :).
Kenapa bisa berbeda?
Lebih mendalam lagi, kenapa teman-teman buruh tidak menempatkan kenaikan upah sebagai tuntutan utama?
Ini hanya pemikiran saya, belum tentu sesuai dengan kenyataan. Di sini sepertinya, menurut teman-teman mahasiswa, gaji yang tinggi merupakan hal utama dan sepertinya sangat logis. Mungkin ini adalah bias dari keadaan nyata teman-teman mahasiswa, saat ini prioritas utama bukanlah hal-hal semacam jaminan kesehatan.
Di lain pihak, meskipun sepertinya logis (menurut mahasiswa), kenapa teman-teman buruh tidak menempatkan kenaikan upah sebagai prioritas utama? Secara mengejutkan, ternyata jawaban dari pertanyaan ini bisa angat logis serta mengandung banyak variabel.
Jika mereka menuntut kenaikan upah dan memaksa perusahaan melakukan itu, maka ada beberapa hal yang akan dilakukan perusahaan:
- Jika meyetujui, maka mereka akan menyetujui kenaikan upah sampai margin keuntungan minimal mencapai batas, jika melebihi itu maka perusahaan merugi dan tidak dapat membayar upah. Pekerja jelas tidak menginginkan itu.
- Ada perusahaan yang menyetujui kenaikan upah, namun karena tidak memiliki pos untuk menutup itu, maka diambil dari biaya kesehatan. Berdasarkan pengalaman, membayar sendiri biaya pengobatan lebih berat daripada dibiayai oleh perusahaan. Maka pekerja lebih memilih jaminan kesehatan.
- Ada perusahaan yang menyetujui kenaikan upah namun dengan melakukan pemberhentian sebagian karyawan untuk menutupi pos tersebut. Pekerja yang setiakawan tidak menginginkan ini.
- Ada yang selangkah lebih maju dengan meminta kenaikan UMR atau UMP sehingga semua perusahaan di daerah tersebut harus menaikkan upahnya agar seragam. Hal yang berbahaya di sini adalah beberapa perusahaan (yang setelah melakukan perhitungan mengambil kesimpulan bahwa daerah tersebut tidak lagi menguntungkan sebagai tempat usaha) memilih untuk memindahkan usahanya ke tempat lain yang lebih menguntungkan sehingga karyawan otomatis berhenti atau harus ikut ke tempat baru (yang mungkin sangat jauh). Tentu saja ini tidak diinginkan oleh pekerja.
(hanya gumamam)
Thursday, January 16, 2014
Ubuntu 13.10 Saucy Salamander
On my mid 2009 13 inch macbook pro running Mavericks
(by add vboxvideo module on /etc/modules)
So far so good, no new problem arise ... yet.
Subscribe to:
Posts (Atom)
My sky is high, blue, bright and silent.
Nugroho's (almost like junk) blog
By: Nugroho Adi Pramono
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)