MEMBUAT USERNAME PASSWORD DAN
MENAMPILKAN SINYAL
1. TAMPILAN USERNAME DAN PASSWORD
3. TAMPILAN USERNAME DAN PASSWORD JIKA BENAR
4. MENAMPILKAN SINYAL
5. CODING USERNAME PASSWORD.
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls,ShellAPI;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Label3: TLabel;
Label4: TLabel;
Shape1: TShape;
Shape2: TShape;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if (Edit1.Text='SEPTIAN') AND (Edit2.Text='202308031')
then ShellExecute(Handle, 'open', 'D:\KOM8\UTS\11.exe', nil, nil, SW_SHOWNORMAL)
else
label4.Visible:=true;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
label3.Visible:=false;
label4.Visible:=false;
Edit1.Text:='';
Edit2.Text:='';
end;
end.
6. CODING SINYAL
unit Unit_amplitudo;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Buttons, Math;
type
TForm1 = class(TForm)
Image1: TImage;
editFrekuensi: TEdit;
editAmplitudo: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
procedure Button1Click(Sender: TObject);
procedure KosongkanGrafik;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
ScaleX = 2; // Skala untuk panjang gelombang
ScaleY = 150; // Skala untuk tinggi gelombang
var
Form1: TForm1;
imgWidth: integer = 800;
imgHeight: integer = 600; // Tinggi gambar
X,Y : Integer;
Amplitudo,Frequensi :Double;
implementation
{$R *.dfm}
//SINYAL COSINUS
procedure TForm1.Button2Click(Sender: TObject);
begin
KosongkanGrafik;
Amplitudo:=StrToFloat(editAmplitudo.Text);
Frequensi:=StrToFloat(editFrekuensi.Text);
for X := 10 to imgWidth do
begin
Y:= Round(imgHeight div 2 - Amplitudo * Cos(DegToRad(X * Frequensi)));
Image1.Canvas.LineTo(X, Y);
end;
end;
//SINYAL DISKTRIT
procedure TForm1.Button3Click(Sender: TObject);
var
x, y: Integer;
angle: Double;
begin
KosongkanGrafik;
Amplitudo:=StrToFloat(editAmplitudo.Text);
Frequensi:=StrToFloat(editFrekuensi.Text);
// Gambar titik-titik sinyal diskrit garis vertikal
for x := 0 to Image1.Width - 1 do
begin
// Hitung nilai y berdasarkan fungsi sinus
angle := 2 * Pi * Frequensi * x / Image1.Width;
y := Round(Amplitudo * Sin(angle));
// Geser titik ke pusat gambar
y := Image1.Height div 2 - y;
// Gambar titik pada koordinat (x, y)
if y <= imgHeight div 2 - Amplitudo then
begin
image1.Canvas.MoveTo(x,y);
image1.Canvas.LineTo(x,imgHeight div 2);
end
else if y >= imgHeight div 2 + Amplitudo then
begin
image1.Canvas.MoveTo(x,y);
image1.Canvas.LineTo(x,imgHeight div 2);
end;
//image1.Canvas.Pixels[x, y] := clRed;
//OutputDebugString(PWideChar('nilai X = ' + IntToStr(x)));
//OutputDebugString(PWideChar('nilai Y = ' + IntToStr(y)));
end;
end;
//SINYAL SQUARE
procedure TForm1.Button4Click(Sender: TObject);
var
x, y, lastX, lastY, sign: Integer;
angle: Double;
begin
KosongkanGrafik;
Amplitudo:=StrToFloat(editAmplitudo.Text);
Frequensi:=StrToFloat(editFrekuensi.Text);
// Inisialisasi titik awal
lastX := 0;
lastY := Image1.Height div 2;
// Gambar sinyal kotak
for x := 1 to Image1.Width do
begin
angle := 2 * Pi * Frequensi * x / Image1.Width;
// Tentukan nilai sinyal (kotak)
sign := IfThen(Sin(angle) > 0, 1, -1);
y := Round(Amplitudo * sign);
// Geser titik ke pusat gambar
y := Image1.Height div 2 - y;
// Gambar garis antara titik-titik
image1.Canvas.MoveTo(lastX, lastY);
image1.Canvas.LineTo(x, y);
// Simpan koordinat titik terakhir
lastX := x;
lastY := y;
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
var
x, y, lastX, lastY: Integer;
angle: Double;
begin
KosongkanGrafik;
Amplitudo:=StrToFloat(editAmplitudo.Text);
Frequensi:=StrToFloat(editFrekuensi.Text);
// Inisialisasi titik awal
lastX := 0;
lastY := Image1.Height div 2;
// Gambar sinyal segitiga
for x := 1 to Image1.Width do
begin
angle := 2 * Pi * Frequensi * x / Image1.Width;
// Hitung nilai sinyal segitiga menggunakan fungsi arctan
y := Round(Amplitudo * (2 / Pi) * ArcTan(Tan(angle / 2)));
// Geser titik ke pusat gambar
y := Image1.Height div 2 - y;
// Gambar garis antara titik-titik
image1.Canvas.MoveTo(lastX, lastY);
image1.Canvas.LineTo(x, y);
// Simpan koordinat titik terakhir
lastX := x;
lastY := y;
end;
end;
//SINYAL SAWTOOTH
procedure TForm1.Button6Click(Sender: TObject);
var
x, y, lastX, lastY: Integer;
angle: Double;
begin
KosongkanGrafik;
Amplitudo:=StrToFloat(editAmplitudo.Text);
Frequensi:=StrToFloat(editFrekuensi.Text);
// Inisialisasi titik awal
lastX := 0;
lastY := Image1.Height div 2;
for x := 1 to Image1.Width do
begin
angle := 2 * Pi * Frequensi * x / Image1.Width;
// Hitung nilai sinyal segitiga
y := Round(Amplitudo * (angle - Pi * Floor(angle / Pi)));
// Geser titik ke pusat gambar
y := Image1.Height div 2 - y;
// Gambar garis antara titik-titik
image1.Canvas.MoveTo(lastX, lastY);
image1.Canvas.LineTo(x, y);
// Simpan koordinat titik terakhir
lastX := x;
lastY := y;
end;
end;
//SINYAL SINUS
procedure TForm1.Button1Click(Sender: TObject);
begin
KosongkanGrafik;
Amplitudo:=StrToFloat(editAmplitudo.Text);
Frequensi:=StrToFloat(editFrekuensi.Text);
for X := 10 to imgWidth do
begin
Y:= Round(imgHeight div 2 - Amplitudo * Sin(DegToRad(X * Frequensi)));
//image1.Canvas.Pixels[X,imgHeight div 2+Y]:=clRed;
Image1.Canvas.LineTo(X,Y);
end;
end;
procedure TForm1.KosongkanGrafik;
begin
Image1.Picture:=nil;
Image1.Canvas.Pen.Color:=clBlack;
image1.Canvas.MoveTo(10,imgHeight div 2); //memposisikan sumbu X
image1.Canvas.LineTo(imgWidth,imgHeight div 2); //menggambar garis X
image1.Canvas.MoveTo(10,10); //memposisikan sumbu Y
image1.Canvas.LineTo(10,imgHeight-10); //menggambar sumbu Y
image1.Canvas.TextOut(20,imgHeight div 2 + 20,'0,0');
image1.Canvas.Pen.Color := clGreen;
image1.Canvas.MoveTo(0, imgHeight div 2); // Mulai dari tengah vertikal
end;
end.