MEMBUAT USERNAME PASSWORD DAN 

MENAMPILKAN SINYAL


1. TAMPILAN USERNAME DAN PASSWORD



2. TAMPILAN USERNAME DAN PASSWORD JIKA SALAH




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.