



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.