• Tidak ada hasil yang ditemukan

Sistem Informasi Untuk Pelelangan Menggunakan Program Delphi.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Sistem Informasi Untuk Pelelangan Menggunakan Program Delphi."

Copied!
39
0
0

Teks penuh

(1)

i

Universitas Kristen Maranatha

ABSTRAK

Dengan semakin berkembangnya dunia Teknologi Informasi, maka

berbagai proses maupun kegiatan semakin mudah dikerjakan.Sebagai contoh

sebuah proses lelang. Dulu barang yang akan dilelang harus menunggu

satu-per-satu untuk ditampilkan, sehingga proses ini memakan waktu lama.

(2)

ii

Universitas Kristen Maranatha

ABSTRACT

The growth of Information Technology, most process nor activities can be

easier to work. For example a normal auction system. In the past, the items that

will be auctioned have to wait one-by-one to be released, and process was having

a long time.

To overcome this problem, in this Final Project an auction program using

Borland Delphi 7 has been created. This software can run more than one auction

(3)

iii

Universitas Kristen Maranatha

DAFTAR ISI

Abstrak ... i

Abstract

... ii

Kata Pengantar ... iii

Daftar Isi... iv

Daftar Gambar ... vi

Daftar Tabel ... viii

BAB I PENDAHULUAN ... 1

1 Latar Belakang ... 1

2 Perumusan Masalah ... 1

3 Tujuan ... 2

4 Pembatasan Masalah ... 2

5 Sistematika Penulisan ... 2

BAB II LANDASAN TEORI ... 4

2.1 Borland Delphi 7 ... 4

2.1.1 IDE

(Integrated Development Environment) ...

4

2.1.2

Main Window

(JendelaUtama) ... 5

2.1.3

Main Menu

(

Menu

Utama) ... 6

2.1.4

Toolbar ...

6

2.1.5

Component palette...

6

2.1.6

Form Designer ...

10

2.1.7

Form Designer ...

11

2.1.8

Code Editor ...

15

2.1.9

File-file

pada Delphi... 16

2.1.10 Dasar pembuatan program ... 17

2.2 Sistem Informasi ... 17

2.3 Lelang ... 18

(4)

iv

Universitas Kristen Maranatha

2.4.1 Tabel ... 19

2.4.2

Constraint ...

20

2.4.3

Structured Query Language ...

21

2.4.3.1

Data Definition Language ...

22

2.4.3.2

Data Manipulation Language

... 22

2.5 MySQL ... 24

2.5.1 Kelebihan MySQL ... 24

BAB III PERANCANGAN PROGRAM ... 25

3.1 Perancangan Tabel ... 25

3.2 Relasi Tabel ... 26

3.3 Perancangan Software ... 26

3.4 Diagram Alir ... 34

BAB IV HASIL DAN DATA PENGAMATAN ... 41

4.1 Pengujian

Software

bagian

Form

... 41

4.1.1

FormServer

... 41

4.1.2

Form Operator ...

42

4.1.3

Form Client

... 47

4.2 Pengujian Lelang ... 57

BAB V KESIMPULAN DAN SARAN ... 59

5.1 Kesimpulan ... 59

5.2 Saran ... 59

DAFTAR PUSTAKA ... 60

(5)

v

Universitas Kristen Maranatha

DAFTAR GAMBAR

Gambar 2.1Bagian-bagiandari IDE ... 5

Gambar 2.2 Jendela Utama ... 5

Gambar 2.3

Component Palette ...

6

Gambar 2.4

Form Designer ...

10

Gambar 2.5

Object Inspector

... 12

Gambar 2.6

Code Editor ...

15

Gambar 2.7 Ilustrasi

Database

... 20

Gambar 3.1 Relasi Tabel ... 26

Gambar 3.2

Form Server

... 27

Gambar 3.3

Form Operator Main Menu

... 28

Gambar 3.4

Form Tambah User

... 28

Gambar 3.5

Form

Hapus

User

... 29

Gambar 3.6

Form

Tambah Barang ... 30

Gambar 3.7

Form

Hapus Barang ... 30

Gambar 3.8

Form Login

... 31

Gambar 3.9

Form User Mainmenu

... 32

Gambar 3.10

Form Bidroom

... 33

Gambar 3.11

Form

Pemenang ... 33

Gambar 3.12 Diagram Alir

OperatorMain Menu

... 34

Gambar 3.13 Diagram Alir

InputUser

... 35

Gambar 3.14 Diagram Alir

Input

Barang ... 35

Gambar 3.15 Diagram Alir Hapus

User ...

36

Gambar 3.16 Diagram Alir Hapus Barang ... 36

Gambar 3.17 Diagram Alir Proses Lelang Bagian 1... 38

Gambar 3.18 Diagram Alir Proses Lelang Bagian 2... 39

Gambar 3.19 Diagram Alir Proses Cari Barang... 40

Gambar 4.1

Form Server

... 41

Gambar 4.2

Form Operator Mainmenu

... 42

(6)

vi

Universitas Kristen Maranatha

Gambar 4.4

Form

Tambah

User

Dengan Isi ... 43

Gambar 4.5

Form

Hapus

User

... 44

Gambar 4.6

Form

Tambah Barang ... 45

Gambar 4.7 Penambahan Barang ... 46

Gambar 4.8

Form

Hapus Barang ... 47

Gambar 4.9

Form Login

... 48

Gambar 4.10

Form Client Main Menu

... 48

Gambar 4.11 Pesan

Error

... 49

Gambar 4.12 Keterangan Barang ... 50

Gambar 4.13 Urutan Berdasarkan Nama Barang ... 51

Gambar 4.14 Urutan Berdasarkan Harga Barang

...

51

Gambar 4.15 Urutan Berdasarkan Tanggal Lelang

...

52

Gambar 4.16

Searchbox

... 53

Gambar 4.17 Tombol

Join

Tidak Dapat Diklik ... 54

Gambar 4.18 Tombol

Join

Dapat Diklik... 54

Gambar 4.19

Form Bidroom

... 55

Gambar 4.20

Form

Pemenang ... 56

(7)

vii

Universitas Kristen Maranatha

DAFTAR TABEL

Tabel 2.1 Contoh Tabel ... 19

Tabel 3.1 Tabel

User

... 25

Tabel 3.2 Tabel Barang ... 25

Tabel 4.1 Hasil penambahan

username

... 43

Tabel 4.2

Database

sebelum

user

dihapus ... 44

Tabel 4.3

Database

setelah

user

dihapus ... 44

Tabel 4.4

Database

setelah barang

ditambah ... 46

Tabel 4.5

Database

setelah barang dihapus ... 47

Tabel 4.6 Tabel Pengujian Proses

Login

... 57

Tabel 4.7 Tabel Pengujian Proses Lelang ... 58

(8)

LAMPIRAN A

(9)

A-1

 Form Server unit UServer;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls, DB, mySQLDbTables;

type

TfrmServer = class(TForm)

mySQLDatabase1: TmySQLDatabase; qry1: TmySQLQuery;

Timer1: TTimer; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; txtTotalBarang: TLabel; txtBarangMasuk: TLabel; txtSedangLelang: TLabel; txtTerlelang: TLabel; pb: TProgressBar; Label13: TLabel; Label15: TLabel; txtCek: TEdit; btRefresh: TButton; btExit: TButton; qry2: TmySQLQuery;

procedure Timer1Timer(Sender: TObject); procedure txtCekExit(Sender: TObject); procedure FormCreate(Sender: TObject); procedure btExitClick(Sender: TObject); private

{ Private declarations } procedure getData(); procedure processBarang(); public

{ Public declarations } end;

var

frmServer: TfrmServer; a : integer;

implementation

{$R *.dfm}

(10)

A-2

begin

//panggil fungsi

pb.Max := StrToInt(txtCek.Text); a := a+1;

if a > StrToInt(txtCek.Text) then begin

a := 0;

// hoorror getData(); processBarang();

end;

pb.Position := a; if a = 0 then begin end; end;

procedure TfrmServer.processBarang(); var

jam : word; menit : word; detik : word; mili : word; begin qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select BARANG_STATUS,BARANG_JAM_MULAI,BARANG_ID from barang where BARANG_STATUS = 0');

qry1.Open;

while qry1.Eof = false do begin

if qry1.Fields.Fields[0].AsInteger = 0 then begin

DecodeTime(now,jam,menit,detik,mili); if qry1.Fields.Fields[1].AsInteger = jam then begin

qry2.Close; qry2.SQL.Clear;

qry2.SQL.Add('update barang set BARANG_STATUS = :status where BARANG_ID = :ID');

qry2.ParamByName('status').AsInteger := 1;

(11)

A-3

//mengambil nilai statistik, total //ambil total aja

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select count(BARANG_ID) from barang'); qry1.Open;

txtTotalBarang.Caption := qry1.Fields.Fields[0].AsString;

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select count(BARANG_ID) from barang where BARANG_STATUS = 0'); qry1.Open;

txtBarangMasuk.Caption := qry1.Fields.Fields[0].AsString;

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select count(BARANG_ID) from barang where BARANG_STATUS = 1'); qry1.Open;

txtSedangLelang.Caption := qry1.Fields.Fields[0].AsString;

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select count(BARANG_ID) from barang where BARANG_STATUS = 2'); qry1.Open;

txtTerlelang.Caption := qry1.Fields.Fields[0].AsString;

//mengambil nilai statistik, total //ambil total aja

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select count(BARANG_ID) from barang'); qry1.Open;

txtTotalBarang.Caption := qry1.Fields.Fields[0].AsString;

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select count(BARANG_ID) from barang where BARANG_STATUS = 0'); qry1.Open;

txtBarangMasuk.Caption := qry1.Fields.Fields[0].AsString;

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select count(BARANG_ID) from barang where BARANG_STATUS = 1'); qry1.Open;

txtSedangLelang.Caption := qry1.Fields.Fields[0].AsString;

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select count(BARANG_ID) from barang where BARANG_STATUS = 2'); qry1.Open;

(12)

A-4

procedure TfrmServer.txtCekExit(Sender: TObject); var

a : integer; begin

a := StrToInt(txtCek.Text); pb.Max := a;

end;

procedure TfrmServer.FormCreate(Sender: TObject); begin

a := 0; end;

procedure TfrmServer.btExitClick(Sender: TObject); begin

frmServer.Close; end;

end.

 Form operator main menu unit UOperator;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, mySQLDbTables, Menus, StdCtrls;

type

TfrmOperator = class(TForm)

mySQLDatabase1: TmySQLDatabase; qry1: TmySQLQuery;

btTambahUser: TButton; btTambahBarang: TButton; btExit: TButton;

Label1: TLabel; Label2: TLabel; Label3: TLabel; btHapusUser: TButton; btHapusBarang: TButton; Label4: TLabel;

Label5: TLabel;

procedure btTambahUserClick(Sender: TObject); procedure btTambahBarangClick(Sender: TObject); procedure btExitClick(Sender: TObject);

procedure btHapusUserClick(Sender: TObject); procedure btHapusBarangClick(Sender: TObject); private

{ Private declarations } public

(13)

A-5

var

frmOperator: TfrmOperator;

implementation

uses UDaftarBarang, UDaftarUser, UHapusUser, UHapusBarang;

{$R *.dfm}

procedure TfrmOperator.btTambahUserClick(Sender: TObject); begin

frmDaftarUser.Show; frmOperator.Hide; end;

procedure TfrmOperator.btTambahBarangClick(Sender: TObject); begin

frmDaftarBarang.Show; frmOperator.Hide; end;

procedure TfrmOperator.btExitClick(Sender: TObject); begin

Application.Terminate; end;

procedure TfrmOperator.btHapusUserClick(Sender: TObject); begin

frmHapusUser.Show; frmOperator.Hide; end;

procedure TfrmOperator.btHapusBarangClick(Sender: TObject); begin

frmHapusBarang.Show; frmOperator.Hide; end;

end.

 Form operator unit UDaftarUser;

interface

uses

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

type

TfrmDaftarUser = class(TForm) Panel1: TPanel;

(14)

A-6

mySQLDatabase1: TmySQLDatabase; qry1: TmySQLQuery;

Button1: TButton; Button2: TButton;

procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var

frmDaftarUser: TfrmDaftarUser;

implementation Uses UOperator;

{$R *.dfm}

procedure TfrmDaftarUser.Button1Click(Sender: TObject); begin

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('insert into users (USER_NAME,USER_PASS) values(:NAME,:PASS)'); qry1.ParamByName('NAME').AsString := txtUsername.Text;

qry1.ParamByName('PASS').AsString := txtUserpass.Text; qry1.ExecSQL;

end;

procedure TfrmDaftarUser.Button2Click(Sender: TObject); begin

frmOperator.Show; frmDaftarUser.Hide; end;

end.

 Form hapus user unit UHapusUser;

interface

uses

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

type

TfrmHapusUser = class(TForm) mySQLDatabase1: TmySQLDatabase; qry1: TmySQLQuery;

txtUsername: TLabeledEdit; btHapus: TButton;

(15)

A-7

procedure btHapusClick(Sender: TObject); procedure btKembaliClick(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var

frmHapusUser: TfrmHapusUser;

implementation

uses UOperator;

{$R *.dfm}

procedure TfrmHapusUser.btHapusClick(Sender: TObject); begin

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add(‘select USER_ID from user where USER_NAME = :name’);

qry1.ParamByName(‘name’).AsString := txtUserName.Text;

qry1.Open;

if qry1.Eof = false then begin

MessageBox(0,’Barang masih terhunbung, tolong hapus user terlebih dahulu’,’ERROR’,0);

end else begin qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('delete from users where USER_NAME = :id'); qry1.ParamByName('id').AsString := txtUsername.Text; qry1.ExecSQL;

end; end; end;

procedure TfrmHapusUser.btKembaliClick(Sender: TObject); begin

frmOperator.Show; frmHapusUser.Hide; end;

end.

 Form daftar barang unit UDaftarBarang;

interface

uses

(16)

A-8

Dialogs, StdCtrls, DB, mySQLDbTables, ExtCtrls;

type

TfrmDaftarBarang = class(TForm) mySQLDatabase1: TmySQLDatabase; qry1: TmySQLQuery; Panel1: TPanel; Label2: TLabel; txtNamaBarang: TLabeledEdit; txtUserID: TLabeledEdit; txtTanggalLelang: TLabeledEdit; txtHargaAwal: TLabeledEdit; txtBid: TLabeledEdit; txtKeterangan: TMemo; Button1: TButton; Button2: TButton; txtJamMulai: TLabeledEdit; txtJamBerakhir: TLabeledEdit; txtTimeout: TLabeledEdit; Label3: TLabel; Label4: TLabel; Label5: TLabel;

procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end; var frmDaftarBarang: TfrmDaftarBarang; implementation uses UOperator; {$R *.dfm}

(17)

A-9

qry1.ParamByName('JAM_MULAI').AsInteger:= StrToInt(txtJamMulai.Text); qry1.ParamByName('JAM_SELESAI').AsInteger := StrToInt(txtJamBerakhir.Text); qry1.ParamByName('STATUS').AsInteger := 0;

qry1.ParamByName('TIMEOUT').AsInteger := StrToInt(txtTimeout.Text); qry1.ExecSQL;

end;

procedure TfrmDaftarBarang.Button2Click(Sender: TObject); begin

frmDaftarBarang.Hide; frmOperator.Show; end;

end.

 Form hapus barang unit UHapusBarang;

interface

uses

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

type

TfrmHapusBarang = class(TForm) btHapus: TButton;

btKembali: TButton;

mySQLDatabase1: TmySQLDatabase; txtNamaBarang: TLabeledEdit; qry1: TmySQLQuery;

procedure btKembaliClick(Sender: TObject); procedure btHapusClick(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var

frmHapusBarang: TfrmHapusBarang;

implementation

uses UOperator;

{$R *.dfm}

procedure TfrmHapusBarang.btHapusClick(Sender: TObject); begin

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add(‘select USER_ID from barang where BARANG_NAMA = :brg’);

qry1.ParamByName(‘brg’).AsString := txtBarangNama.Text;

(18)

A-10

if qry1.Eof = false then begin

MessageBox(0,’Barang masih terhunbung, tolong hapus user terlebih dahulu’,’ERROR’,0);

end else begin qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('delete from barang where BARANG_NAMA = :brg'); qry1.ParamByName('brg').AsString := txtNamaBarang.Text; qry1.ExecSQL;

end; end; end;

procedure TfrmHapusBarang.btKembaliClick(Sender: TObject); begin

frmOperator.Show; frmHapusBarang.Close; end;

end.

 Form user login unit UUserLogin;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, mySQLDbTables, StdCtrls, ExtCtrls, iniFiles;

type

TfrmLogin = class(TForm) Panel1: TPanel;

txtUsername: TLabeledEdit; txtPassword: TLabeledEdit; btLogin: TButton;

mySQLDatabase1: TmySQLDatabase; qry1: TmySQLQuery;

btQuit: TButton;

procedure btLoginClick(Sender: TObject); procedure btQuitClick(Sender: TObject); procedure FormCreate(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var

(19)

A-11

konfig : TIniFile;

implementation

Uses UMainMenu, UBidRoom; {$R *.dfm}

procedure TfrmLogin.btLoginClick(Sender: TObject); begin

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select USER_NAME from users where USER_NAME = :a'); qry1.ParamByName('a').AsString := txtUsername.Text;

qry1.Open;

if qry1.Eof = false then //false

begin qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select USER_PASS,USER_ID from users where USER_NAME = :a'); qry1.ParamByName('a').AsString := txtUsername.Text;

qry1.Open;

if qry1.Fields[0].AsString = txtPassword.Text then begin

user_id := qry1.Fields.Fields[1].AsInteger; frmLogin.Hide;

frmMainMenu.Show; end

else begin

MessageBox(0,'Password Salah !!','ERROR !!',0); end;

end else begin //true

MessageBox(0,'User tidak ditemukan !!','ERROR !!',0); end;

end;

procedure TfrmLogin.btQuitClick(Sender: TObject); begin

Application.Terminate; end;

procedure TfrmLogin.FormCreate(Sender: TObject); begin

mySQLDatabase1.Connected := false; mySQLDatabase1.KeepConnection := false;

konfig := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'konfig.ini');

ipaddress := konfig.ReadString('setting','IPAddress','localhost');

(20)

A-12

if ipaddress = '' then begin

ShowMessage('Konfigurasi kosong. Digunakan IP Address localhost.'); end;

// setiap form dengan komponen myDatabase mySQLDatabase1.Host := ipaddress;

mySQLDatabase1.Connected := true; mySQLDatabase1.KeepConnection := true; end;

end.

 Form user main menu unit UMainMenu;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, mySQLDbTables, StdCtrls, ExtCtrls, iniFiles;

type

TfrmMainMenu = class(TForm) Panel1: TPanel;

Label2: TLabel; Label3: TLabel; Panel2: TPanel; Label4: TLabel; Label5: TLabel; Label1: TLabel; txtCariBarang: TEdit; btCariBarang: TButton; lbBarang: TListBox; cbUrut: TComboBox; btAscending: TRadioButton; btDescending: TRadioButton; txtNamaBarang: TLabeledEdit; txtPenjual: TLabeledEdit; txtStatusBarang: TLabeledEdit; txtTanggalLelang: TLabeledEdit; txtHarga: TLabeledEdit;

txtBid: TLabeledEdit; btJoin: TButton; btExit: TButton;

memoKeterangan: TMemo;

mySQLDatabase1: TmySQLDatabase; qry1: TmySQLQuery;

(21)

A-13

txtJam: TLabel; btRefresh: TButton;

procedure FormCreate(Sender: TObject); procedure lbBarangClick(Sender: TObject); procedure btCariBarangClick(Sender: TObject); procedure btJoinClick(Sender: TObject); procedure btExitClick(Sender: TObject); procedure cbUrutChange(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure btRefreshClick(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var

frmMainMenu: TfrmMainMenu; brgID : integer;

implementation

uses UUserLogin,UBidRoom;

{$R *.dfm}

procedure TfrmMainMenu.FormCreate(Sender: TObject); begin

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select BARANG_NAMA from barang'); qry1.Open;

while not qry1.Eof do begin

lbBarang.Items.Add(qry1.Fields[0].AsString); qry1.Next;

end; qry1.Close;

// setiap form dengan komponen myDatabase mySQLDatabase1.Host := ipaddress; end;

procedure TfrmMainMenu.lbBarangClick(Sender: TObject); begin qry1.Close; qry1.SQL.Clear; qry1.SQL.Add('select BARANG_NAMA,USER_ID,BARANG_STATUS,BARANG_TANGGAL_LELANG,BARA NG_JAM_MULAI,BARANG_JAM_SELESAI,BARANG_HARGA,BARANG_NILAI_TAW AR,BARANG_KETERANGAN from barang where BARANG_NAMA = :LB');

qry1.ParamByName('LB').AsString := lbBarang.Items.Strings[lbBarang.ItemIndex]; qry1.Open;

(22)

A-14

txtJamMulai.Text := (qry1.Fields[4].AsString)+':00'; txtJamSelesai.Text := qry1.Fields[5].AsString+':00'; txtHarga.Text := qry1.Fields[6].AsString;

txtBid.Text := qry1.Fields[7].AsString;

memoKeterangan.Text := qry1.Fields[8].AsString; if qry1.Fields[2].AsInteger = 0 then

begin

txtStatusBarang.Text := 'Belum Dimulai'; end;

if qry1.Fields[2].AsInteger = 1 then begin

txtStatusBarang.Text := 'Sudah Dimulai'; end;

if qry1.Fields[2].AsInteger = 2 then begin

txtStatusBarang.Text := 'Terjual'; end;

timer1.Enabled := true; end;

procedure TfrmMainMenu.btCariBarangClick(Sender: TObject); begin

//nyari barang qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select BARANG_NAMA from barang where BARANG_NAMA = :namabarang');

qry1.ParamByName('namabarang').AsString := txtCariBarang.Text; qry1.Open;

//ditampilin ke listbox lbBarang.Items.Clear; while not qry1.Eof do begin lbBarang.Items.Add(qry1.Fields[0].AsString); qry1.Next; end; qry1.Close; end;

procedure TfrmMainMenu.btJoinClick(Sender: TObject); begin

if lbBarang.ItemIndex > -1 then begin

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select BARANG_ID from barang where BARANG_NAMA = :nama'); qry1.ParamByName('nama').AsString := lbBarang.Items.Strings[lbBarang.ItemIndex]; qry1.Open;

brgID := qry1.Fields.Fields[0].Value; frmBidRoom.Show;

frmBidRoom.txtKeterangan.Caption := memoKeterangan.Text; frmMainMenu.Close;

(23)

A-15

MessageBox(0,'Pilih Salah Satu Barang','ERROR !!',0); end;

end;

procedure TfrmMainMenu.btExitClick(Sender: TObject); begin

frmLogin.Show; frmMainMenu.Close; end;

procedure TfrmMainMenu.cbUrutChange(Sender: TObject); begin

qry1.Close; qry1.SQL.Clear;

if (cbUrut.ItemIndex = 0) and (btAscending.Checked = true) then begin

qry1.SQL.Add('select BARANG_NAMA from barang order by BARANG_NAMA ASC');

qry1.Open;

lbBarang.Items.Clear; while not qry1.Eof do begin lbBarang.Items.Add(qry1.Fields[0].AsString); qry1.Next; end; qry1.Close; end

else if (cbUrut.ItemIndex = 0) and (btDescending.Checked = true) then begin

qry1.SQL.Add('select BARANG_NAMA from barang order by BARANG_NAMA DESC');

qry1.Open;

lbBarang.Items.Clear; while not qry1.Eof do begin lbBarang.Items.Add(qry1.Fields[0].AsString); qry1.Next; end; qry1.Close; end

else if (cbUrut.ItemIndex = 1) and (btAscending.Checked = true) then begin

qry1.SQL.Add('select BARANG_NAMA from barang order by BARANG_HARGA ASC');

qry1.Open;

lbBarang.Items.Clear; while not qry1.Eof do begin lbBarang.Items.Add(qry1.Fields[0].AsString); qry1.Next; end; qry1.Close; end

(24)

A-16

qry1.SQL.Add('select BARANG_NAMA from barang order by BARANG_HARGA DESC');

qry1.Open;

lbBarang.Items.Clear; while not qry1.Eof do begin lbBarang.Items.Add(qry1.Fields[0].AsString); qry1.Next; end; qry1.Close; end

else if (cbUrut.ItemIndex = 2) and (btAscending.Checked = true) then begin

qry1.SQL.Add('select BARANG_NAMA from barang order by BARANG_TANGGAL_LELANG ASC');

qry1.Open;

lbBarang.Items.Clear; while not qry1.Eof do begin lbBarang.Items.Add(qry1.Fields[0].AsString); qry1.Next; end; qry1.Close; end

else if (cbUrut.ItemIndex = 2) and (btDescending.Checked = true) then begin

qry1.SQL.Add('select BARANG_NAMA from barang order by BARANG_TANGGAL_LELANG DESC');

qry1.Open;

lbBarang.Items.Clear; while not qry1.Eof do begin lbBarang.Items.Add(qry1.Fields[0].AsString); qry1.Next; end; qry1.Close; end; end;

procedure TfrmMainMenu.Timer1Timer(Sender: TObject); var

Sekarang : TDateTime; formattedDate : String; waktu_sekarang : word; waktu_limit : word;

myHour, myMin, mySec, myMilli : Word; begin

sekarang := now;

DateTimeToString(formattedDate, 't', Sekarang); txtJam.Caption := formattedDate;

DecodeTime(Sekarang, myHour, myMin, mySec, myMilli);

qry1.Close; qry1.SQL.Clear;

(25)

A-17

qry1.ParamByName('barang').AsString := lbBarang.Items.Strings[lbBarang.ItemIndex]; qry1.Open;

waktu_sekarang := (myHour*60)+myMin;

waktu_limit := (qry1.Fields.Fields[1].AsInteger*60) + 15; if qry1.Fields.Fields[0].AsInteger = 1 then

begin

if waktu_sekarang < waktu_limit then begin

btJoin.Enabled := true; end

else begin

btJoin.Enabled := false; end; end else begin btJoin.Enabled :=false; end; end;

procedure TfrmMainMenu.btRefreshClick(Sender: TObject); begin

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select BARANG_NAMA from barang'); qry1.Open;

lbBarang.Items.Clear; while not qry1.Eof do begin lbBarang.Items.Add(qry1.Fields[0].AsString); qry1.Next; end; qry1.Close; end; end.

 Form bid room unit UBidRoom;

interface

uses

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

type

(26)

A-18

txtTimer: TLabel; GroupBox1: TGroupBox; txtKeterangan: TLabel; btnBid: TButton;

mySQLDatabase1: TmySQLDatabase; qry1: TmySQLQuery;

Timer1: TTimer;

procedure Timer1Timer(Sender: TObject); procedure btnBidClick(Sender: TObject); procedure FormCreate(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var

frmBidRoom: TfrmBidRoom; a : integer;

b : integer; bidder : integer;

implementation

uses UMainMenu, UUserLogin, UPemenang;

{$R *.dfm}

procedure TfrmBidRoom.Timer1Timer(Sender: TObject); var

kosong : boolean;

waktu_sekarang : TDateTime; waktu_tabel : TDateTime; perhitungan_raw : integer;

// timeout

timeout_detik_raw : word;

// sekarang skrg_jam : word; skrg_menit : word; skrg_detik : word; skrg_msec : word; skrg_detik_raw : word;

// tabel

tabel_jam : word; tabel_menit : word; tabel_detik : word; tabel_msec : word; tabel_detik_raw : word;

(27)

A-19

disp_str : string;

begin qry1.Close; qry1.SQL.Clear; qry1.SQL.Add('select

BARANG_BIDDER,BARANG_HARGA,BARANG_LSTBID,BARANG_TIMEOUT from barang where BARANG_ID = :ID');

qry1.ParamByName('ID').AsInteger := brgID; qry1.Open;

if qry1.Fields.Fields[1].Value > 0 then begin

txtNilaiBid.Caption := IntToStr(qry1.Fields.Fields[1].Value); kosong := qry1.Fields.Fields[2].IsNull;

bidder := qry1.Fields.Fields[0].AsInteger;

if kosong = false then begin

// sekarang

waktu_sekarang := Now;

DecodeTime(waktu_sekarang,skrg_jam,skrg_menit,skrg_detik,skrg_msec); skrg_detik_raw := (skrg_jam * 3600) + (skrg_menit * 60) + skrg_detik;

// tabel

waktu_tabel := StrToTime(qry1.Fields.Fields[2].AsString);

DecodeTime(waktu_tabel,tabel_jam,tabel_menit,tabel_detik,tabel_msec); tabel_detik_raw := (tabel_jam * 3600) + (tabel_menit * 60) + tabel_detik;

// timeout

timeout_detik_raw := qry1.Fields.Fields[3].AsInteger;

// perhitungan waktu tampilan

perhitungan_raw := (tabel_detik_raw+timeout_detik_raw)-skrg_detik_raw; //txtTimer.Caption := IntToStr(perhitungan_raw);

if perhitungan_raw = 0 then begin

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('update barang set BARANG_STATUS = :status where BARANG_ID = :bid' );

qry1.ParamByName('status').AsInteger := 2; qry1.ParamByName('bid').AsInteger := brgID; qry1.ExecSQL;

frmPemenang.Show; frmBidRoom.Close; end;

// konversi dari integer ke waktu //integer -> string -> time

disp_jam := trunc(perhitungan_raw/3600);

(28)

A-20

disp_detik := perhitungan_raw-(trunc(perhitungan_raw/3600)*3600)-(trunc((perhitungan_raw-(trunc(perhitungan_raw/3600)*3600))/60)*60);

disp_str := IntToStr(disp_jam)+':'+IntToStr(disp_menit)+':'+IntToStr(disp_detik); txtTimer.Caption := disp_str;

end;

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select USER_NAME from users where USER_ID = :bidder'); qry1.ParamByName('bidder').AsInteger := bidder;

qry1.Open;

txtBidder.Caption := qry1.Fields.Fields[0].AsString;

end;

end;

procedure TfrmBidRoom.btnBidClick(Sender: TObject); var

Nilai_Barang : Integer; begin

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('select BARANG_HARGA,BARANG_NILAI_TAWAR from barang where BARANG_ID = :ID');

qry1.ParamByName('ID').AsInteger := brgID; qry1.Open;

Nilai_barang := qry1.Fields.Fields[0].AsInteger + qry1.Fields.Fields[1].AsInteger;

qry1.Close; qry1.SQL.Clear;

qry1.SQL.Add('update barang set BARANG_LSTBID = :waktu, BARANG_BIDDER = :bidder, BARANG_HARGA = :harga_baru where BARANG_ID =:bid');

qry1.ParamByName('waktu').AsString := TimeToStr(Time); qry1.ParamByName('bid').AsInteger := brgID;

qry1.ParamByName('bidder').AsInteger := user_id;

qry1.ParamByName('harga_baru').AsInteger := Nilai_Barang; qry1.ExecSQL;

end;

procedure TfrmBidRoom.FormCreate(Sender: TObject); begin

Timer1.Enabled := true;

// setiap form dengan komponen myDatabase mySQLDatabase1.Host := ipaddress; end;

end.

(29)

A-21

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, mySQLDbTables;

type

TfrmPemenang = class(TForm) Label1: TLabel;

txtPemenang: TLabel; btOK: TButton;

mySQLDatabase1: TmySQLDatabase; qry1: TmySQLQuery;

procedure btOKClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var

frmPemenang: TfrmPemenang;

implementation

uses UBidRoom, UMainMenu, UUserLogin;

{$R *.dfm}

procedure TfrmPemenang.btOKClick(Sender: TObject); begin

frmMainMenu.Show; frmPemenang.Close; end;

procedure TfrmPemenang.FormShow(Sender: TObject); begin

txtPemenang.Caption := frmBidRoom.txtBidder.Caption; end;

procedure TfrmPemenang.FormCreate(Sender: TObject); begin

// setiap form dengan komponen myDatabase mySQLDatabase1.Host := ipaddress; end;

(30)

LAMPIRAN B

(31)

B-1

Program dijalankan

(32)

B-2

Tampilan Login 2

(33)

B-3

Client Login

(34)

B-4

Pemenang 1 Ditampilkan

(35)

1

Universitas Kristen Maranatha

BAB I

PENDAHULUAN

1.1

Latar Belakang

Dengan semakin berkembangnya dunia Teknologi Informasi atau

yang dikenal dengan sebutan IT, maka segala proses maupun kegiatan

dapat dipermudah dengan bantuan teknologi tersebut. Contohnya, adanya

suatu program pada komputer yang dapat dibuat oleh seorang

programmer

yang dapat berguna untuk suatu aktivitas seperti Faktur Penjualan Toko,

Stock Barang, dan lainnya.

Pada kesempatan ini, akan dibahas mengenai pembuatan program

yang dapat digunakan dalam proses pelelangan. Dengan penggunaan

program ini diharapkan dapat membuat proses pelelangan dapat berjalan

lebih cepat dan mempermudah proses lelang.

1.2

Rumusan Masalah

Beberapa masalah yang akan dibahas pada Tugas Akhir ini adalah:

1.

Bagaimana caranya untuk membuat sebuah pelelangan secara

elektronik ?

2.

Bagaimana membuat program pelelangan ini agar mudah digunakan

dalam proses pelelangan ?

1.3

Tujuan

Tujuan dari Tugas Akhir ini adalah :

1.

Dapat membuat program pelelangan secara elektronik

(36)

2

Universitas Kristen Maranatha

1.4

Pembatasan Masalah

1.

Software

yang digunakan dalam Tugas Akhir ini antara lain adalah

Borland Delphi 7.

2.

Pembuatan

Database

yang digunakan dalam Tugas Akhir ini

adalah menggunakan

program

MySQL.

3.

Jaringan yang digunakan adalah

wireless LAN

.

4.

Pengetesan dilakukan di laboratorium multimedia dengan total

empat

client

dan satu komputer bertindak sebagai

server

dan

operator.

5.

Pelelangan hanya dapat dilakukan satu jam setelah barang

dimasukkan.

6.

Komputer

client

disediakan oleh penyelenggara lelang.

7.

Keterangan barang ditentukan oleh

client

yang mendaftarkan

barang.

8.

Jika

client

mengikuti salah satu sesi lelang, maka

client

harus

mengikuti sesi lelang tersebut sampai selesai.

1.5

Sistematika Penulisan

Penyusunan laporan tugas akhir terdiri dari 5 bab sebagai berikut :

9.

Bab I Pendahuluan

Bab ini membahas tentang latar belakang, rumusan, tujuan dan

batasan masalah serta sistematika penulisan.

10.

Bab II Landasan Teori

Bab ini membahas tentang teori-teori yang menunjang topik Tugas

Akhir.

11.

Bab III Perancangan dan Realisasi

Bab ini membahas tentang perancangan struktur program serta

algoritma yang digunakan.

12.

Bab IV Hasil dan Analisis

(37)

3

Universitas Kristen Maranatha

13.

Bab V Kesimpulan dan Saran

Bab ini membahas tentang kesimpulan dari pembuatan

Software

(38)

59

Universitas Kristen Maranatha

BAB V

KESIMPULAN DAN SARAN

5.1

Kesimpulan

Dengan pengujian yang sudah dilakukan, maka kesimpulan yang

didapat dari tugas akhir ini adalah :

1.

Sistem informasi lelang berhasil dibuat dan dijalankan.

2.

Delay waktu selalu terjadi saat form pemenang ditampilkan.

Dikarenakan adanya perbedaan waktu antara komputer

client

dengan

komputer

server.

3.

Pada pengujian,

client

berpendapat bahwa proses lelang menjadi lebih

mudah.

5.2

Saran

Saran untuk perkembangan lebih lanjut dari Tugas Akhir ini adalah :

1. Untuk perkembangan lebih lanjut, program ini dapat menggunakan

jaringan internet sehingga dapat dilakukan pelelangan secara

online

.

2. Untuk menjaga validitas penyelenggaraan lelang, sebaiknya dilengkapi

dengan sistem pemantau lelang.

(39)

60

Universitas Kristen Maranatha

DAFTAR PUSTAKA

1.

Raharjo, Budi. 2011.

Belajar Otodidak Membuat Database

Menggunakan MySQL. Bandung: Informatika

2.

MADCOMS. 2002. Pemrograman Borland Delphi 7. Yogyakarta: ANDI

3.

Martina, Inge. 2002.

Database Client/Server Menggunakan Delphi.

Jakarta: Elex Media Komputindo

4.

Wahana Komputer. 2010. SQL Server 2008 Express. Yogyakarta: ANDI

5.

Utami, Ema dan Anggit Dwi Hartanto. 2012.

Sistem Basis Data

Menggunakan Microsoft SQL Server 2005. Yogyakarta: ANDI

6.

http://www.delphibasics.co.uk/index.html

,

diakses pada 8 April 2013.

7.

http://www.digitalcoding.com/tutorials/delphi/

,

diakses pada 10 April 2013.

8.

http://www.delphiarea.com/

,

diakses pada 11 April 2013.

9.

http://www.cenadep.org/?cat=5, diakses pada 20 Mei 2013.

10.

http://kidprogrammer.wordpress.com/2012/04/22/koneksi-mysql-ke-delphi-7/, diakses pada 26 Mei 2013.

Referensi

Dokumen terkait

Didalam penulisan laporan akhir ini, penulis ingin mengetahui bagaimana perencanaan yang baik dalam merencanakan desain geometrik dan tebal perkerasan pada jalan Lingkar

Alhamdulillahirabbil’alamin, segala puji syukur penulis panjatkan kehadirat Allah SWT tuhan seru sekalian alam yang telah melimpahkan rahmat dan karunia-Nya

Dalam penelitian ini akan menggunakan algoritma K-Nearest Neighbor Based Association (KNNBA), dimana pada KNNBA tiap-tiap atribut diberikan bobot yang berbeda

ini, ICA , ICA dan dan organisasi organisasi serta serta aliansi aliansi lainnya lainnya dapat dapat membantu membantu lembaga lembaga ini ini dengan dengan memberikan

Kelembaban normal pada ruang tanam tanpa menggunakan sistem ini adalah sebesar 61% dan hal ini tidak sesuai dengan kelembaban untuk budidaya tomat ceri, karena kelembaban

plantarum Mut7, serat ubi jalar, dan gabungan keduanya dapat meningkatkan aktivitas fagositosis makrofag yang ditandai dengan peningkatan persentase makrofag yang memfagosit

Pengertian Perkawinan campuran sebagaimana disebut dalam Pasal 1 RGH, memiliki jangkauan luas asalkan pihak-pihak yang melangsungkan tunduk pada hukum yang berlainan adalah

Dialogika adalah ilmu tentang seni berbicara secara dialog, dimana dua orang atau lebih berbicara atau mengambil bagian dalam satu proses pembicaraan..