PERCOBAAN I STATEMENT Pendahuluan Statement merupakan bagian program yang berisi perintah yang akan dieksekusi/dijalankan. Karena itu, statement-statement ini menentukan bagaimana jalannya program dan bagaimana suatu nilai variable dimanipulasi/berubah. Program 1 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(tform) cmbminat: TComboBox; lstprogram: TListBox; 1 M odul Praktikum Komputer
btnref: TButton; Label1: TLabel; Label2: TLabel; procedure FormCreate(Sender: TObject); procedure btnrefclick(sender: TObject); private { Private declarations } public { Public declarations } var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); //Menampilkan pilihan minat keahlian cmbminat.additem('kedokteran',cmbminat); cmbminat.additem('teknik',cmbminat); cmbminat.additem('hukum',cmbminat); procedure TForm1.btnRefClick(Sender: TObject); //Membuat list box kosong lstprogram.clear; if (cmbminat.text='kedokteran') then 2 M odul Praktikum Komputer
//Menampilkan jenis referensi program lstprogram.additem('biologi',lstprogram); lstprogram.additem('kimia',lstprogram); lstprogram.additem('fisika',lstprogram); if (cmbminat.text='teknik') then //Menampilkan jenis referensi program lstprogram.additem('matematika',lstprogram); lstprogram.additem('fisika', lstprogram); // lstprogram.additem('fox Pro',lstProgram); if (cmbminat.text='hukum') then //Menampilkan jenis referensi program lstprogram.additem('ilmu Undang-undang',lstProgram); lstprogram.additem('ilmu Sosial',lstProgram); end. 3 M odul Praktikum Komputer
Program 2 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(tform) Label1: TLabel; cbbagian: TComboBox; Label2: TLabel; edpassword: TEdit; btnlogin: TButton; procedure btnloginclick(sender: TObject); procedure FormCreate(Sender: TObject); procedure cbbagianchange(sender: TObject); private { Private declarations } 4 M odul Praktikum Komputer
public { Public declarations } var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btnLoginClick(Sender: TObject); var bagian,password:string; //Menampung bagian dan password bagian:=cbbagian.text; password:=edpassword.text; //Pengecekkan Bagian Accounting if (bagian='accounting') and (password='hitunguang') then showmessage('login sukses!!!') else //Pengecekkan Bagian Produksi if (bagian='produksi') and (password='buatbarang') then showmessage('login sukses!!!') else //Pengecekkan Bagian Personalia if (bagian='personalia') and (password='rekrutorang') then showmessage('login sukses!!!') else 5 M odul Praktikum Komputer
//Pengecekkan Bagian Marketing if (bagian='marketing') and (password='jualbarang') then showmessage('login sukses!!!') else showmessage('login gagal!!!') procedure TForm1.FormCreate(Sender: TObject); //Menampilkan bagian pada combo box cbbagian.additem('accounting',cbbagian); cbbagian.additem('produksi',cbbagian); cbbagian.additem('personalia',cbbagian); cbbagian.additem('marketing',cbbagian); procedure TForm1.cbBagianChange(Sender: TObject); end. Petunjuk Praktikum 1. Buatlah program 1 dan program 2 menggunakan Delphi 7 dengan memperhatikan component palete yang digunakan 2. Running program dan Catat error yang terjadi dan solusi perbaikan 3. Buatlah Algoritma dan FlowChart pada kedua program tersebut Tugas Buat Program Aplikasi Username dan Password untuk membuka aplikasi lain 6 M odul Praktikum Komputer
PERCOBAAN II DELPHI 7 dan Win API Pendahuluan Windows API (Aplication Programming Interface)Merupakan sekumpulan fungsi-fungsi ekternal yang terdapat dalam file-file perpustakaan Windows (Library Windows) atau library lainnya yang dapat digunakan oleh programmer. Fungsi ini dapat menangani semua yang berhubungan dengan Windows, kotak dialog (buka file, simpan file, memilih font, memilih warna, dan lain-lain), Windows shell, setting sistem operasi, penanganan file, mengakses sistem registry, memainkan musik, dan sebagainya. Fungsi ini menyediakan banyak fitur-fitur stnadar untuk semua program yang berbasis Windows. Program 1 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(tform) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; 7 M odul Praktikum Komputer
Label6: TLabel; Label7: TLabel; EditMemLoad: TEdit; EditTotPhys: TEdit; EditAvailPhys: TEdit; EditTotPage: TEdit; EditAvailPage: TEdit; EditTotVir: TEdit; EditAvailVir: TEdit; Timer1: TTimer; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } MemInfo : TMemoryStatus; public { Public declarations } var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); MemInfo.dwLength := SizeOf(TMemoryStatus); GlobalMemoryStatus(MemInfo); procedure TForm1.Timer1Timer(Sender: TObject); GlobalMemoryStatus(MemInfo); // Memori fisik yang terpakai (%) EditMemLoad.Text := IntToStr(MemInfo.dwMemoryLoad); 8 M odul Praktikum Komputer
// Total memori fisik (KByte) EditTotPhys.Text := FormatFloat('#,', MemInfo.dwTotalPhys div 1024); // Memori fisik yg tersisa (Kbyte) EditAvailPhys.Text := FormatFloat('#,', MemInfo.dwAvailPhys div 1024); // Total pagefile (KByte) EditTotPage.Text := FormatFloat('#,', MemInfo.dwTotalPageFile div 1024); // Pagefile tersisa (KByte) EditAvailPage.Text := FormatFloat('#,', MemInfo.dwAvailPageFile div 1024); // Total memori virtual (KByte) EditTotVir.Text := FormatFloat('#,', MemInfo.dwTotalVirtual div 1024); // Memori virtual tersisa (KByte) EditAvailVir.Text := FormatFloat('#,', MemInfo.dwAvailVirtual div 1024); end. Program 2 unit Unit1; interface 9 M odul Praktikum Komputer
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(tform) GroupBox1: TGroupBox; DateTimePicker1: TDateTimePicker; DateTimePicker2: TDateTimePicker; Label1: TLabel; Button1: TButton; Label2: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } TheSysTime : TSystemTime; //Tahun, Bulan, Tanggal : Word; //Jam, Menit, Detik, MDetik : Word; public { Public declarations } var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var TheDate : TDate; TheTime : TTime; FillChar(TheSysTime, sizeof(thesystime), #0); // Mengambil data tanggal dari komponen DateTimePicker1 TheDate := DateTimePicker1.Date; DecodeDate(TheDate, TheSysTime.wYear, TheSysTime.wMonth, TheSysTime.wDay); // Mengambil data waktu dari komponen DateTimePicker2 TheTime := DateTimePicker2.Time; DecodeTime(TheTime, TheSysTime.wHour, TheSysTime.wMinute, TheSysTime.wSecond, TheSysTime.wMilliSeconds); 10 M odul Praktikum Komputer
// Mengeset waktu system if SetSystemTime(TheSysTime) then ShowMessage('Berhasil mengeset waktu sistem') else ShowMessage('Gagal mengeset waktu sistem'); end. Petunjuk Praktikum 1. Buatlah program 1 dan program 2 menggunakan Delphi 7 dengan memperhatikan component palete yang digunakan 2. Running program dan Catat error yang terjadi dan solusi perbaikan 3. Buatlah Algoritma dan FlowChart pada kedua program tersebut 11 M odul Praktikum Komputer
PERCOBAAN III Client Server Pendahuluan Pada Delphi, khususnya Delphi terdapat komponen yang berfungsi untuk komunikasi antara 2 komputer atau lebih yang terhubung melalui jaringan. Untuk program Delphi yang akan kita buat ini terdapat 2 aplikasi, yaitu aplikasi client dan aplikasi server. Program 1 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(tform) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } var Form1: TForm1; implementation {$R *.DFM} // Fungsi untuk memperoleh nama user function GetCompName(var CompName: string) : boolean; const MaxCompNameLen = 255; var 12 M odul Praktikum Komputer
dwcompnamelen : DWORD; Result := false; dwcompnamelen := MaxCompNameLen - 1; // Mengubah alokasi panjang string 'scompname' SetLength(CompName, MaxCompNameLen); // Cari nama user if GetComputerName(PChar(CompName), dwcompnamelen) then Result := true; // Mengubah panjang string 'scompname' sesuai dengan // panjang karakter nama komputer yg diperoleh SetLength(CompName, dwcompnamelen); procedure TForm1.Button1Click(Sender: TObject); var CompName : string; if GetCompName(CompName) = true then ShowMessage('Nama Komputer : ' + CompName) else ShowMessage('Gagal memperoleh nama komputer'); end. Program 2 unit Unit1; interface uses WinSock, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 13 M odul Praktikum Komputer
StdCtrls; type TForm1 = class(tform) Button1: TButton; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } var Form1: TForm1; implementation {$R *.DFM} function GetIP(var HostName, IPAddr: string): Boolean; type Name = array[0..100] of Char; PName = ^Name; var PHE: PHostEnt; // Pointer ke struktur HOSTENT HName: PName; // Nama Host WSAData: TWSAData; // Struktur WSADATA Windows Socket i: Integer; Result := False; // Memulai sesi Windows Socket if WSAStartup($0101, WSAData) <> 0 then Exit; IPAddr := ''; New(HName); // Menemukan nama host standar pada komputer lokal if GetHostName(HName^, SizeOf(Name)) = 0 then HostName := string(hname^); 14 M odul Praktikum Komputer
// Memperoleh informasi host dari nama host yg diketahui PHE := GetHostByName(HName^); for i := 0 to PHE^.h_length - 1 do IPaddr := Concat(IPAddr, IntToStr(Ord(PHE^.h_addr_list^[i])) + '.'); // Mengeset panjang string alamat IP yg diperoleh SetLength(IPAddr, Length(IPaddr) - 1); Result := True; Dispose(HName); // Mengakhiri sesi Windows Socket WSACleanup; procedure TForm1.Button1Click(Sender: TObject); var HostName, IP : string; if GetIP(HostName, IP) then Edit1.Text := HostName; Edit2.Text := IP; end else ShowMessage('Gagal memperoleh nama Host dan IP'); end. 15 M odul Praktikum Komputer
Program 3 Client unit RSClient; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, WinXP, ScktComp; type TForm1 = class(tform) GroupBox1: TGroupBox; Edit1: TEdit; Button1: TButton; StaticText1: TStaticText; StaticText2: TStaticText; Button2: TButton; Button3: TButton; WinXP1: TWinXP; ClientSocket1: TClientSocket; procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } 16 M odul Praktikum Komputer
var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button3Click(Sender: TObject); application.terminate; // keluar program procedure TForm1.Button1Click(Sender: TObject); clientsocket1.host:=edit1.text; // alamat ip server clientsocket1.active:=true; // mengaktifkan / membuka socket sisi client clientsocket1.port:=1880; // menggunakan port 1880 procedure TForm1.FormCreate(Sender: TObject); button2.enabled:=false; // saat aplikasi mulai dijalankan button shutdown di disable procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); //saat soket client error button2.enabled:=false; //disable button shutdown showmessage('error On Socket'); //menampilkan pesan error procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); //saat sudah terhubung ke server statictext2.caption:='connected to Server'; //keterangan bahwa sudah terhubung ke server button2.enabled:=true; // button shutdown di aktifkan procedure TForm1.Button2Click(Sender: TObject); //button shutdown if (clientsocket1.socket.connected) then //saat soket terhubung maka clientsocket1.socket.sendtext('shutdown'); // button 2 mengirim string ke server 17 M odul Praktikum Komputer
end. Server unit RSServer; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp, WinXP; type TForm1 = class(tform) WinXP1: TWinXP; ServerSocket1: TServerSocket; StaticText1: TStaticText; Edit1: TEdit; procedure FormCreate(Sender: TObject); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure Edit1Change(Sender: TObject); private { Private declarations } public { Public declarations } var Form1: TForm1; implementation {$R *.dfm} 18 M odul Praktikum Komputer
procedure TForm1.FormCreate(Sender: TObject); serversocket1.open; serversocket1.port:=1880; procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); edit1.text:=socket.receivetext; procedure TForm1.Edit1Change(Sender: TObject); if edit1.text='shutdown' then winexec('shutdown -s -t 0 -f',sw_normal); end. Petunjuk Praktikum 1. Buatlah program 1 dan program 2 menggunakan Delphi 7 dengan memperhatikan component palete yang digunakan 2. Running program dan Catat error yang terjadi dan solusi perbaikan 3. Buatlah Algoritma dan FlowChart pada kedua program tersebut TUGAS Buatlah Aplikasi Client Server 19 M odul Praktikum Komputer