DAFTAR PUSTAKA
Affdani, Ahmad Dedi. 2004. Interpolasi. Yogyakarta.
Amir, Silvia. 2011. Sequence Diagram. Jakarta.
Astuti, Yenni. (tanpa tahun). Interpolasi.
Choiron, Moch. Agus. (tanpa tahun). Interpolasi. Malang.
Fitrianah, Devi. 2010. Petunjuk Teknis Penyusunan dan Penulisan Laporan Tugas
Akhir. Jakarta.
Harrell, C., B.K. Ghosh, dan R.O. Bowden, Jr.. 2003. Simulation Using Promodel,
2nd ed.. Singapur: McGraw-Hill.
Iswanto, Bambang Heru. (tanpa tahun). Interpolasi Polinomial. Jakarta.
Ismardianto. (tanpa tahun). Metode Numerik. Jakarta: Pusat Pengembangan
Bahan Ajar Universitas Mercu Buana.
Lala. 2012. Pengantar Model dan Simulasi. Bandung.
Munawar. 2005. Pemodelan Visual dengan UML. Yogyakarta: Graha Ilmu.
Novita.
2012.
"Interpolasi
(Matematika)".
http://id.wikipedia.org/wiki/Interpolasi_(matematika), diakses 29 Januari
2013.
Prima. 2008. Interpolasi. Surabaya.
Putri, Juwita Utami. (tanpa tahun). Materi Delphi. Depok.
Raharjo, Toto. (2011). Aplikasi Seleksi Penerimaan Mahasiswa Baru UTY
Fakultas Sains dan Teknologi. Yogyakarta.
Redaksi Kawan Pustaka. 2008. Pintar 256 Software Komputer. Jakarta: Kawan
Pustaka.
68
Supriyanto, Eng. 2006. Interpolasi Lagrange. Depok.
Sjukani, Moh.. 2009. Struktur Data (Algoritma dan Struktur Data 2, Edisi 3.
Jakarta: Mitra Wacana Media.
Tarigan, Imanta. (tanpa tahun). "Mengenal Lingkungan Kerja Borland Delphi 7".
Dalam Buku Delphi.
Wahana Komputer. 2002. Pemrograman Borland Delphi 7.0. Yogyakarta: Andi
Offset.
KODE PROGRAM
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, XPMan, Buttons, ComCtrls;
type TForm1 = class(TForm) ListBox1: TListBox; ListBox2: TListBox; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Label1: TLabel; Edit1: TEdit; Label2: TLabel; ComboBox1: TComboBox; Edit2: TEdit; GroupBox1: TGroupBox; Label4: TLabel; Label5: TLabel; Label3: TLabel; procedure Button4Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Edit1KeyPress(Sender: TObject;
var Key: Char);
procedure
FormCanResize(Sender: TObject;
var NewWidth,
NewHeight: Integer; var Resize: Boolean); private { Private declarations } procedure input_data; procedure reset; procedure cetak; public { Public declarations } end;
type komponen_ts = record
x,y:real; end; var Form1: TForm1; rusak,korup,valid,orde:integer; data_ts:array [1..1000] of komponen_ts; backup:array [1..1000] of komponen_ts; implementation {$R *.dfm} procedure TForm1.reset; begin ListBox1.Clear; ListBox2.Clear; Edit1.Clear; Edit2.Text:='0'; ComboBox1.Items.Clear; ComboBox1.Text:='--- Pilih Orde ComboBox1.Text:='---ComboBox1.Text:='--- ---'; Button1.Enabled:=True; Button2.Enabled:=False; Edit1.SetFocus; end; procedure TForm1.input_data; var i,a:integer; begin a:=strtoint(Edit1.Text); for i:=1 to a do begin data_ts[i].x:=strtofloat(InputBox ('Nilai x - '+inttostr(i),'Masukkan Nilai x - '+inttostr(i),'')); ListBox1.Items.Add('x = '+floattostr(data_ts[i].x)); data_ts[i].y:=strtofloat(InputBox ('Nilai y - '+inttostr(i),'Masukkan Nilai y - '+inttostr(i),'-1000')); ListBox1.Items.Add('y = '+floattostr(data_ts[i].y)); ListBox1.Items.Add('************* *********************'); if data_ts[i].y=-1000 then begin rusak:=strtoint(Edit2.Text); korup:=rusak+1; Edit2.Text:=inttostr(korup); end; end; valid:=a-korup;
71
if valid<3 then begin
MessageBox(Self.Handle,'Data Salah.'+#13+'Jumlah Data Valid Kurang.','',MB_ICONERROR); reset;
end
else if valid=3 then begin ComboBox1.Items.Add('2'); end
else if valid=4 then begin ComboBox1.Items.Add('2'); ComboBox1.Items.Add('3'); end
else if (valid>=5) and (valid<=1000) then begin ComboBox1.Items.Add('2'); ComboBox1.Items.Add('3'); ComboBox1.Items.Add('4'); end; end; procedure TForm1.cetak; var i,a:integer; begin a:=strtoint(Edit1.Text); for i:=1 to a do begin ListBox2.Items.Add('x = '+floattostr(data_ts[i].x)); ListBox2.Items.Add('y = '+floattostr(data_ts[i].y)); ListBox2.Items.Add('************* *********************'); end; end; procedure TForm1.Button4Click(Sender: TObject); begin close; end; procedure TForm1.Button3Click(Sender: TObject); begin reset; end; procedure TForm1.Button1Click(Sender: TObject); begin input_data; Button1.Enabled:=False; Button2.Enabled:=True; Button2.SetFocus; end; procedure TForm1.Button2Click(Sender: TObject); var i,a:integer; begin ListBox2.Clear; a:=strtoint(Edit1.Text); for i:=1 to a do begin backup[i].x:=data_ts[i].x; backup[i].y:=data_ts[i].y; end;
orde:=ComboBox1.ItemIndex; if orde=0 then begin for i:=1 to a do begin if data_ts[i].y=-1000 then begin data_ts[i].y:=(data_ts[1].y*(data _ts[i].x- data_ts[2].x)*(data_ts[i].x- data_ts[3].x))/((data_ts[1].x- data_ts[2].x)*(data_ts[1].x-data_ts[3].x))+ (data_ts[2].y*(data_ts[i].x- data_ts[1].x)*(data_ts[i].x- data_ts[3].x))/((data_ts[2].x- data_ts[1].x)*(data_ts[2].x-data_ts[3].x))+ (data_ts[3].y*(data_ts[i].x- data_ts[1].x)*(data_ts[i].x- data_ts[2].x))/((data_ts[3].x- data_ts[1].x)*(data_ts[3].x-data_ts[2].x)); end; end; if (data_ts[1].y=-1000) or (data_ts[2].y=-1000) or
(data_ts[3].y=-1000) then begin MessageBox(Self.Handle,'3 Data Pertama Harus Data Valid.', '',MB_ICONHAND); reset; end else cetak end
else if orde=1 then begin for i:=1 to a do begin if data_ts[i].y=-1000 then begin data_ts[i].y:=(data_ts[1].y*(data _ts[i].x- data_ts[2].x)*(data_ts[i].x- data_ts[3].x)*(data_ts[i].x- data_ts[4].x))/((data_ts[1].x- data_ts[2].x)*(data_ts[1].x- data_ts[3].x)*(data_ts[1].x-data_ts[4].x))+ (data_ts[2].y*(data_ts[i].x- data_ts[1].x)*(data_ts[i].x- data_ts[3].x)*(data_ts[i].x- data_ts[4].x))/((data_ts[2].x- data_ts[1].x)*(data_ts[2].x- data_ts[3].x)*(data_ts[2].x-data_ts[4].x))+ (data_ts[3].y*(data_ts[i].x-
data_ts[1].x)*(data_ts[i].x-72
data_ts[2].x)*(data_ts[i].x- data_ts[4].x))/((data_ts[3].x- data_ts[1].x)*(data_ts[3].x- data_ts[2].x)*(data_ts[3].x-data_ts[4].x))+ (data_ts[4].y*(data_ts[i].x- data_ts[1].x)*(data_ts[i].x- data_ts[2].x)*(data_ts[i].x- data_ts[3].x))/((data_ts[4].x- data_ts[1].x)*(data_ts[4].x- data_ts[2].x)*(data_ts[4].x-data_ts[3].x)); end; end; if (data_ts[1].y=-1000) or (data_ts[2].y=-1000) or (data_ts[3].y=-1000) or(data_ts[4].y=-1000) then begin MessageBox(Self.Handle,'4 Data Pertama Harus Data Valid.', '',MB_ICONHAND); reset; end else cetak end
else if orde=2 then begin for i:=1 to a do begin if data_ts[i].y=-1000 then begin data_ts[i].y:=(data_ts[1].y*(data _ts[i].x- data_ts[2].x)*(data_ts[i].x- data_ts[3].x)*(data_ts[i].x- data_ts[4].x)*(data_ts[i].x- data_ts[5].x))/((data_ts[1].x- data_ts[2].x)*(data_ts[1].x- data_ts[3].x)*(data_ts[1].x- data_ts[4].x)*(data_ts[1].x-data_ts[5].x))+ (data_ts[2].y*(data_ts[i].x- data_ts[1].x)*(data_ts[i].x- data_ts[3].x)*(data_ts[i].x- data_ts[4].x)*(data_ts[i].x- data_ts[5].x))/((data_ts[2].x- data_ts[1].x)*(data_ts[2].x- data_ts[3].x)*(data_ts[2].x- data_ts[4].x)*(data_ts[2].x-data_ts[5].x))+(data_ts[3].y*(dat a_ts[i].x- data_ts[1].x)*(data_ts[i].x- data_ts[2].x)*(data_ts[i].x- data_ts[4].x)*(data_ts[i].x- data_ts[5].x))/((data_ts[3].x- data_ts[1].x)*(data_ts[3].x- data_ts[2].x)*(data_ts[3].x- data_ts[4].x)*(data_ts[3].x-data_ts[5].x))+ (data_ts[4].y*(data_ts[i].x- data_ts[1].x)*(data_ts[i].x- data_ts[2].x)*(data_ts[i].x- data_ts[3].x)*(data_ts[i].x- data_ts[5].x))/((data_ts[4].x- data_ts[1].x)*(data_ts[4].x- data_ts[2].x)*(data_ts[4].x- data_ts[3].x)*(data_ts[4].x-data_ts[5].x))+(data_ts[5].y*(dat a_ts[i].x- data_ts[1].x)*(data_ts[i].x- data_ts[2].x)*(data_ts[i].x- data_ts[3].x)*(data_ts[i].x- data_ts[4].x))/((data_ts[5].x- data_ts[1].x)*(data_ts[5].x- data_ts[2].x)*(data_ts[5].x- data_ts[3].x)*(data_ts[5].x-data_ts[4].x)); end; end; if (data_ts[1].y=-1000) or (data_ts[2].y=-1000) or (data_ts[3].y=-1000) or (data_ts[4].y=-1000) or
(data_ts[5].y=-1000) then begin MessageBox(Self.Handle,'5 Data Pertama Harus Data Valid.', '',MB_ICONHAND); reset; end else cetak end else begin MessageBox(Self.Handle,'Pilih Orde Untuk Memproses.',
'',MB_ICONWARNING); ComboBox1.SetFocus; end;
for i:=1 to a do begin data_ts[i].x:=backup[i].x; data_ts[i].y:=backup[i].y; end; end; procedure TForm1.FormCreate(Sender: TObject); begin Button2.Enabled:=False; end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then begin Button1.Enabled:=False; input_data; Button2.Enabled:=True; Button2.SetFocus; end; end; procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
73
NewHeight: Integer; var Resize: Boolean);
begin
Resize:=False;
end; end.