PERCOBAAN 8

Membuat kontrol RCWS menggunakan DTMF

 

1.  Tujuan : Agar Bamasis mampu membuat kontrol RCWS menggunakan DTMF

2.  Alat dan bahan :

     a.    Laptop

     b.    Delphi

     c.    button

     d.    image

     e.    Shape

     f.   DTMF

     g.  Edit

 

3.  Teori

     a.    Image dalam Map

 

Digunakan untuk menampilkan gambar di dalam aplikasi. Komponen ini memungkinkan untuk menampilkan berbagai format gambar (seperti BMP, JPEG, PNG, GIF, dsb) di dalam form aplikasi .

 

Gambar 1. Tampilan Image

  

       b.  Tool Shape

Dalam konteks aplikasi pengembangan perangkat lunak menggunakan Delphi, "tool shape" mengacu pada komponen atau elemen grafis yang digunakan untuk membuat, menggambar, dan menampilkan berbagai bentuk atau gambar dalam antarmuka pengguna aplikasi. Ini memungkinkan Anda untuk menciptakan visualisasi yang lebih menarik dan informatif dalam aplikasi Anda.

Gambar 2. Tampilan  Shape

      c. Edit

Dalam konteks aplikasi pengembangan perangkat lunak seperti Delphi, "tool edit" mengacu pada komponen atau elemen grafis yang digunakan untuk memungkinkan pengguna memasukkan, mengedit, dan menampilkan teks atau data lainnya dalam aplikasi. Tool edit ini biasanya dikenal sebagai "Edit Controls" atau "Edit Boxes."

Gambar 4. Logo Image

 

        d.    DTMF (dual-tone multi-frequency)

 

Persinyalan nada ganda multifrekuensi (bahasa Inggris: dual-tone multi-frequency signaling, DTMF) adalah sistem persinyalan telekomunikasi pada pita yang menggunakan pita frekuensi suara melalui saluran telepon antara peralatan telepon dan perangkat komunikasi lainnya dan pusat peralihan. DTMF pertama kali dikembangkan dalam Bell System di Amerika Serikat, dan menjadi dikenal dengan merek dagang Touch-Tone untuk digunakan dalam telepon push-button yang diberikan kepada pelanggan telepon, sejak tahun 1963. DTMF distandardisasi oleh Rekomendasi ITU-T Q.23. Hal ini juga dikenal di Inggris sebagai MF4.

 

Sistem Touch-Tone menggunakan keypad telepon secara bertahap menggantikan penggunaan tombol pemutar dan telah menjadi standar industri untuk jaringan tetap dan layanan mobile. Sistem multi-frekuensi lainnya digunakan untuk persinyalan internal dalam jaringan telepon.

 

DTMF juga dapat didefinisikan sebagai gelombang frekuensi yang terdiri dari dua buah frekuensi nada yang berbeda nilainya tetapi dibangkitkan dalam waktu bersamaan sehingga menghasilkan sebuah nada dengan frekuensi tertentu, yaitu frekuensi gabungan dari dua buah nada tersebut.

Gambar 4. Gambar modul DTMF

e.        Button  

    Button atau tombol adalah salah satu komponen essential/ dasar pembentuk suatu form aplikasi,  funsi dari tombl ini adalah untuk berinteraksi antara pengguna dan suatu program aplikasi, pada bahasa Delphi kita bisa membuat suatu form dengan beberapa button sesuai kebutuhan, button ini dapat kita kostumisasi sesuai dengan keperluan kita, baik warna, tulisan dan program yang akan di jalankan ketika tombol di click.

Gambar 3. Logo Button

4.  Langkah- Langkah Percobaan

    a.     Flowchart




      b.     Coding

 unit Unit2;

interface

uses

   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.Imaging.pngimage, MMSystem,

  Vcl.StdCtrls;

type

  TForm1 = class(TForm)

    Image1: TImage;

    Image2: TImage;

    Image3: TImage;

    Image4: TImage;

    Image5: TImage;

    Image6: TImage;

    Label1: TLabel;

    Label2: TLabel;

    label_sudut_azimuth: TLabel;

    label_sudut_elevasi: TLabel;

    Timer1: TTimer;

    Edit1: TEdit;

    Shape1: TShape;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Shape2: TShape;

    Shape3: TShape;

    Shape4: TShape;

    Shape5: TShape;

    Shape6: TShape;

    Label7: TLabel;

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    procedure Edit1Change(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

  index_elevasi, index_azimuth : integer;

  array_azimuth :  array [0..23] of string =

  ('D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az0.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az3.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az5.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az7.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az10.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az12.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az14.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az16.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az18.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az21.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az23.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az25.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az29.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az31.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az33.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az37.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az41.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az43.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az45.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az47.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az50.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az53.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az55.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\az57.bmp');

array_sudut_azimuth : array [0..24] of string =

  ('0°','15°', '30°', '45°', '60°', '75°', '90°', '105°', '120°', '135°', '150°', '165°', '180°' ,

 '195°', '210°','225°','240°','255°','270°','285°','300°','315°','330°', '345°', '360°');

 array_elevasi : array [0..12] of string =

 ('D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\el 0.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\el 1.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\el 2.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\el 3.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\el 4.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\el 5.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\el 6.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\el 7.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\el 8.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\el 9.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\el 10.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\el 11.bmp',

  'D:\SEMESTER 3 TELKOMMIL 2023\3D MAXX\el 12.bmp');

   array_sudut_elevasi : array [0..12] of string =

  ('0°', '5°', '10°', '15°', '20°', '25°', '30°', '35°', '40°', '50°', '60°',

   '70°', '80°');

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

Timer1.Interval:=170;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Timer1.Interval:=500;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Timer1.Interval:=1000;

end;

procedure TForm1.Edit1Change(Sender: TObject);

var

  i : integer;

begin

  i := 0;

  if Edit1.Text <> '' then

  begin

    if StrToInt(Edit1.Text) = 2 then

      begin

          //timer1.Enabled := true;

          index_elevasi := index_elevasi-1;

          if index_elevasi <= 0 then

          index_elevasi := 0;

          //if index_elevasi >= Length(array_elevasi) then

          //index_elevasi := 24;

 

          image6.Picture.LoadFromFile(array_elevasi[index_elevasi]);

          label_sudut_elevasi.Caption:=(array_sudut_elevasi[index_elevasi]);

          OutputDebugString(PWideChar('nilai elevasi atas = ' + IntToStr(index_elevasi)));

          sndplaysound('D:\SEMESTER 3 TELKOMMIL 2023\BAHASA PEMOGRAMAN\PERCOBAAN 10\DTMF\D8.wav',SND_SYNC);

          Timer1.Enabled:=true;

      end

    else if StrToInt(Edit1.Text) = 3 then

      begin

          index_azimuth := index_azimuth-1;

          if index_azimuth <= 0 then

          index_azimuth := 0;

          //if index_elevasi >= Length(array_elevasi) then

          //index_elevasi := 16;

          image5.Picture.LoadFromFile(array_azimuth[index_azimuth]);

          label_sudut_azimuth.Caption:=(array_sudut_azimuth[index_azimuth]);

          OutputDebugString(PWideChar('nilai azimuth samping = ' + IntToStr(index_azimuth)));

          sndplaysound('D:\SEMESTER 3 TELKOMMIL 2023\BAHASA PEMOGRAMAN\PERCOBAAN 10\DTMF\D2.wav',SND_SYNC);

          Timer1.Enabled:=true;

      end

    else if StrToInt(Edit1.Text) = 4 then

      begin

          index_azimuth := index_azimuth+1;

 

          if index_azimuth >= 23 then

          index_azimuth := 23;

          //if index_elevasi >= Length(array_elevasi) then

          //index_elevasi := 16;

          image5.Picture.LoadFromFile(array_azimuth[index_azimuth]);

          label_sudut_azimuth.Caption:=(array_sudut_azimuth[index_azimuth]);

          OutputDebugString(PWideChar('nilai azimuth samping = ' + IntToStr(index_azimuth)));

          sndplaysound('D:\SEMESTER 3 TELKOMMIL 2023\BAHASA PEMOGRAMAN\PERCOBAAN 10\DTMF\D1.wav',SND_SYNC);

          Timer1.Enabled:=true;

      end

    else if StrToInt(Edit1.Text) = 1 then

      begin

          index_elevasi := index_elevasi+1;

          if index_elevasi >= 12 then

          index_elevasi := 12;

          //if index_elevasi >= Length(array_elevasi) then

          //index_elevasi := 16;

          image6.Picture.LoadFromFile(array_elevasi[index_elevasi]);

          label_sudut_elevasi.Caption:=(array_sudut_elevasi[index_elevasi]);

          OutputDebugString(PWideChar('nilai elevasi atas = ' + IntToStr(index_elevasi)));

          sndplaysound('D:\SEMESTER 3 TELKOMMIL 2023\BAHASA PEMOGRAMAN\PERCOBAAN 10\DTMF\D4.wav',SND_SYNC);

          Timer1.Enabled:=true;

      end

    else

      begin

         ShowMessage('Masukan angka 1-4');

      end;

  end;

  Edit1.Text := '';

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

  index_elevasi := 0;

  index_azimuth := 0;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

  sndplaysound('D:\SEMESTER 3 TELKOMMIL 2023\BAHASA PEMOGRAMAN\PERCOBAAN 10\DTMF\D0.wav',SND_SYNC);

  Timer1.Enabled:=false;    //Inc(index_elevasi_atas);

    //if index_elevasi_atas >= Length(array_elevasi_atas) then

    //index_elevasi_atas := 8;

    //image2.Picture.LoadFromFile(array_elevasi_atas[index_elevasi_atas]);

end;

end.

 

5.  Hasil dan pembahasan

    a.     hasil 





    b.     Pembahasan

pada percobaan diatas apabila dimasukan pada tool edit sandi atau password hiijau,kuning,dan merah maka pada shape yang dimasukan password akan berubah sesuai warna dari password yang dimasukan,untuk keluar dari program aplikasi kita klik tombol close. Apabila tombol 1 dan 2 ditekan makan sudut azimut bergerak kiri kanan,apabila tombol angka 4 dan 8 di tekan maka sudut elevasi yang bergerak.

6.  Kesimpulan

         Dalam percobaan tersebut, terdapat sebuah aplikasi atau tool edit sandi atau password. Jika warna-warna tertentu dimasukkan sebagai password (hijau, kuning, atau merah), bentuk atau tampilan yang mewakili password akan berubah sesuai dengan warna yang dimasukkan. Untuk keluar dari program aplikasi ini, pengguna hanya perlu mengklik tombol close. Apabila tombol 1 dan 2 ditekan makan sudut azimut bergerak kiri kanan,apabila tombol angka 4 dan 8 di tekan maka sudut elevasi yang bergerak.