Anda di halaman 1dari 21

LAPORANPRAKTIKU

MKOMUNIKASIDATA

DISUSUNOLEH:
HIKMIA QOLBY AMAMY/2131130042

D3 TeknikTelekomunikasi/1D

PROGRAMSTUDITEKNIKTELEKOMUNIKASIJ
URUSAN TEKNIKELEKTRO
POLITEKNIK NEGERI
MALANG2022
PRAKTIKUMI
SINYAL ANALOG, SINYAL
DIGITAL(PENGGAMBARANSINYALMENGGUNAKAN
DELPHI)

I. TujuanKhusus
 MemahamiPerbedaanSinyalAnalogdanSinyal Digital.
 Memahamimacam-macamdariSinyalAnalogdan SinyalDigital.

II. TujuanUmum
 MemahamicaramenggambarSinyalAnalogdanSinyalDigital dikomputer.
 MemahamiPemrogramanDelphi.
 Membuat program untuk mensimulasi Karakteristik Sinyal Analog
danSinyalDigital.

III. Alatdan Bahan


 ProgramDelphi versi6keatas
 SatuunitKomputer

IV. TeoriPenunjang
A. SinyalAnalogdan SinyalDigital
Sinyal analog merupakan gelombang elektromagnetik yang langsung, terus-
menerus, dan disebarkan melalui berbagai media transmisi.Contoh sinyal analog
yangpalingmudahdijumpaiadalahgelombangsinusoidal.Karakteristiksinyalanalogditentu
kanolehtigaparameter,yaitu:
1. Amplitudo,merupakanukuransinyalpadawaktu tertentu.
2. Frekuensi,merupakankebalikandariperiode(f=1/
T),yaitubanyaknyapengulangansinyal(gelombang)dalamsatuanwaktu,dengansatua
nHzataucyclesper second.
3. Phasa,merupakanukurandariposisirelatifawalsuatusinyaldengantidakmelewati
periode tunggal dari sinyal. Gambar 1 menampilkan dua
gelombangdenganbedaphasaπ/2.
v

π/2

Gambar1.Perbedaanphasadua gelombang
Sumber:Arius,Ddan RumAndyKR,2008

Biladinyatakandalampersamaan,suatugelombangsinusoidaldapatdituliskanseba
gaiberikut:
S(t)=Asin(2.ft) + (1)
denganA=Amplitudo
F=Frekuensi
=Phasa
Sinyaldigitalmerupakansinyalsebagaiwujudtampilandatadigital.Datadigital
merupakan data yang memiliki deretan nilai yang berbeda dan memiliki ciritersendiri.
Contoh data digital adalah teks, deretan bilangan, dan karakter-karakter
lain.Terdapatpermasalahandalam mewujudkan datadigital
menjadisinyaldigital,yaitudata dalam bentuk karakter-karakter yang dapat dipahami
manusia tidak dapat langsungditransmisikan dalam sistem komunikasi. Data harus
diubah terlebih dahulu ke dalambentukderetan bit agar dapatditransmisikan.
v

Gambar2.Sinyaldigital
Sumber:Arius,Ddan RumAndyKR,2008
B. MenggambarSinyal
y

0,0 x

a.Penggambarangelombangsinusoidalsecaraumum
0,0
y
a
b
c

0,y x

b.Penggambaran di komputer menggunakan


DelphiGambar3.Perbedaancarapenggambarangelombangsinus
oidal

Menggambarkangelombangsinusoidaldikomputerberbedadengancarapenggam
baransecaraumum.Untukmenggambarkangelombangsinusoidaldicomputer dapat diikuti
gambar seperti ditampilkan padaGambar 3.b. Dengan referensikoordinat awal (0,0)
terletak di pojok kiri atas, di awalidarikoordinat (0,y),
lakukanperulangansepanjangsumbux,gunakanPersamaan1untukmenentukannilaiy,sehin
gga nilai masing-masing titik gelombang sinusoidal (y) di setiap posisi x adalahy=b–
Asin2πx.

C. PengenalanDelphi
1. MengenalKonsepPemrogramanVisual
Delphi merupakan perangkat pengembangan aplikasi yang sangat
terkenaldilingkungan Windows.Dengan Delphi, dapat dibangun berbagai aplikasi
Windows(game, multimedia, database, dll) dengan cepat dan mudah karena
menggunakanpendekatanvisualyaitutanpabanyakmenuliskankode.Delphimenggunak
an
bahasaobjectPascalsebagaiBahasadasar.JikaBahasaPascaltelahdikuasaimakaakanden
gan mudah memahami program Delphi.
Langkah-langkahpemrogramanvisualpadaDelphiantaralain:
- Merancangantarmuka(form dankomponenpendukungnya) secaravisual
- Menuliskankodeuntuk melakukantindakan tertentu
- MengkompilasikodePascaldanformkedalambentukfileyangdapatdieksekusi

Gambar 4.TampilanJendela

MainMenu
Toolbar/Speedbar

ObjectTreeView ComponentPalette

ObjectInspector

CodeExplorer CodeEditor FormDesigner

DelphiSumber:
www.delphi.com
2. IDEDelphi

IDE(IntegratedDevelopmentEnvironment)adalahlingkungandimanasemua
tool yang diperlukan untuk merancang, menjalankan, dan menguji
sebuahaplikasidisajikandanterhubungdenganbaiksehinggamemudahkandalampenge
mbangan program. IDE Delphi dibagi menjadi 8 bagian utama yaitu
mainmenu,toolbar/speedbar,componentpalette,formdesigner,codeeditor,codeexplore
r, object inspector, dan object tree view.Tampilan dari salah satu
bentukjendelaDelphi sepertiditunjukkanpadaGambar4.
Main Menu
Main menu merupakan menu pilihan utama yang berisi perintah-
perintahyangdiperlukanselamamelakukanpemrograman.Mainmenuterbagidalambebe
rapasub menu sesuai dengan fungsinya.

Toolbar/Speedbar
Toolbaradalahsekumpulantombolyangtidaklainadalahpengantibeberapa
item menu yang sering digunakan. Biasanya yang tersedia pada
toolbaradalahperintah-
perintah(itemmenu)yangseringdigunakandalamprosespembuatanprogram aplikasi.

ComponentPalette
Component palette dalah tool yang berupa kumpulan tab (page
control),dimana setiap tab memuat berbagai tombol komponen (VCL / Visual
ComponentLibrary)yangdapatdiletakkanpadaformdansebagaiinterfaceprogramaplika
si.Tabtersebut diantaranyaadalahStandard,Additional,Win32,dan lain-lain.

ObjectInspector
Objectinspectordigunakanuntukmengubahpropertyataukarakteristikdarisuat
u komponen. Terdiriatas 2 tabyaitu :
- Properties
Digunakan untuk menentukan setting suatu objek. Satu objek memiliki
beberapaproperti yang dapat diatur langsung dari object inspector maupun
melalui
kodeprogram.Setinginimempengaruhicarakerjaobjektersebutsaataplikasidijalanka
n.
- Event
Merupakan bagian yang dapat diisi dengan kode program tertentu yang
berfungsiuntukmenanganikejadian-
kejadian(berupasebuahprocedure)yangdapatdiresponolehsebuahkomponen.Eventa
dalahperistiwaataukejadianyangditerima oleh suatu objek, misal: click, drag, dan
lain-lain. Event yang diterimaobjek akan memicu Delphi menjalankan kode
program yang ada
didalamnya.Misalnyainginsesuatudikerjakanpadasaatformditutup,makauntukmen
yatakantindakantersebut (berupa sebuah procedure) menggunakanOnClose.
ObjectTreeView
Object tree view berisi daftar komponen yang sudah diletakkan di
formdesigner.

CodeEditor
CodeeditormerupakantempatuntukmenuliskankodeprogrammenggunakanB
ahasaobjectPascal.DisinitidakperludituliskanseluruhkodesumberkarenaDelphitelahm
enyediakankerangkapenulisansebuah program.

CodeExplorer
Digunakan untuk memudahkan berpindah antar fileunit di dalam
jendelacodeeditor.Codeexplorerberisidaftaryangmenampilkansemuatipe,class,prope
rti, method, variabel global, rutin global yang telah didefinisikan di dalam
unit.Saatmemilihsebuahitemdalamcodeexplorer,kursorakanberpindahmenujuimplem
entasidari itemyangdipilih didalam code editor.

V. TugasPraktikum
1. Buatprogramuntukmenggambarkansinyalanalog!
 BukaprogramDelphi
 Tambahkan pada formduabuahkomponenlabel, satu buah image, satu buah
memo,dua buah edit dan satu buah button. Selanjutnya atur tata letak komponen-
komponentersebutmenjadi seperti tampak padaGambar5.

Gambar5.Tataletakkomponen
 Ubah property komponen-kompon enter sebut menjadi seperti yang
tertampilpadaTabel 1.
Tabel1. Settingpropertykomponendanform
Komponen Property Setting
Caption Gelombangsinus
Form
Name Frmsinyal
Label1 Caption X
Label2 Caption Y
Text 400
Edit1
Name Edsumbux
Text 125
Edit2
Name Edsumbuy
Caption &Proses
Button1
Name Btproses
Lines kosongkanstring(listeditor)
Memo1
Name Mmhasil
Image1 Name Imgtampil
Panel1 Name (kosongkan)

ay-c
ax+b
x
(ax,ay)
ay+c

Gambar6.Penggambaransumbukoordinat

 Untuk menggambarkan sumbu koordinat seperti tampak padaGambar 6,


ketikkankodeprogram berikut :
Proceduresumbu(ax,ay,b,c:integer);Beginfr
msinyal.imgtampil.Canvas.MoveTo(ax,ay);
frmsinyal.imgtampil.Canvas.LineTo(ax+b,ay);
frmsinyal.imgtampil.Canvas.MoveTo(ax,ay);fr
msinyal.imgtampil.Canvas.LineTo(ax,ay-
c);frmsinyal.imgtampil.Canvas.MoveTo(ax,ay)
;
frmsinyal.imgtampil.Canvas.LineTo(ax,ay+c);en
d;
 Ketikkankodeprogramdibawahiniuntukmenggambarkangelombangsinusdengancara
melakukan doubleclickpadabutton btproses sebagaievent on click.
Procedure Tfrmsinyal.btprosesClick(Sender:
TObject);var
sx,x,y:integer;
sy:real;begin
x:=
strtoint(frmsinyal.edsumbux.Text);y:=
strtoint(frmsinyal.edsumbuy.Text);sumb
u(40,150,x,y);
forsx:=1 to 384
dobegin
sy:=sin(sx/pi/
3)*100;frmsinyal.tsinus.Canvas.Pixels[sx
+x,200-round(sy)]:=clred;
end;
end;
 Jalankanprogramdanperbaikiapabilaterdapatkesalahan!
 Amatigambarsinusyangterjadidanjawablahpertanyaanberikut:
a. Berapajumlahkeseluruhangelombangyangterjadi (6.5)

b. Jikakeseluruhantampilangelombangmenunjukkanwaktu3,25detik,makafrekuensisi
nyaltersebutadalah(2Hz)
c. Untukmenggambarkansatugelombangsinus,kodeprogramyangharusdiubahadalah(
sy:=sin(sx/pi/19.5)*100;)
d. Untukmenaikkanamplitudemenjadiduakalilipat,tuliskankodeprogramperubahanny
aadalah(sy:=sin(sx/pi/3)*200;)

2. Untukmenampilkannilaisinussuatudapatdigunakankomponenmemo,bagaimanahasilny
asetelah kodeprogramberikut ditambahkan :
Form1.mmhasil.Lines.Add('x='+inttostr(sx)
+''+formatfloat('#.###',(sy)));
3. Gunakanfasilitaskomponenedituntukmemberinilaimasukansehinggabesaramplitudeda
patdiaturpenggunaprogram,tuliskaninstruksiyangharusditambahkan!

4. Berikanmasukandenganmenggunakanfasilitaskomponenradiogroupuntukmengaturfre
kuensi (10Hz, 20 Hzdan 40 Hz)!
5. Dengancarayangsama,buatprogramuntukmenggambarkansinyaldigitaldenganjumlahb
it masukanbebas!

VI. ListingProgam
VII. Flow Chart

VIII. TugasPengembangan
1. Manfaatkan komponen-komponen Delphi yang lain sehingga program tersebut
dapatmenampilkan dua macam sinyal sesuai dengan pilihan yang diberikan oleh
penggunaprogram!
2. Sempurnakanprogramtersebutsehinggakarakteristiksinyalberikutdapatdiatursecaraman
ual olehpenggunaprogram:
a. Perubahanphasa(SinyalAnalog)
b. Penghitungbitrate (SinyalDigital)

1. Buatprogramuntukmenggambarkansinyalsinus dan kotak!


 BukaprogramDelphi
 Tambahkan pada formduabuahkomponenlabel,dua buah image, ,tiga buah edit
dan dua buah button. Selanjutnya atur tata letak komponen-
komponentersebutmenjadi seperti tampak padaGambar5.

Gambar5.Tataletakkomponen

 Ubah property komponen-kompon enter sebut menjadi seperti yang


tertampilpadaTabel 1.
Tabel1. Settingpropertykomponendanform

Komponen Property Setting


Caption Menampilkan sinyak sinusoida dan kotak
Form
Name Frmsinyal
Label1 Caption X
Label2 Caption Y
Text 400
Edit1
Name Edit1
Text 120
Edit2
Name Edit2
Caption Sinus
Button1
Name Btsinus
Text Kosongkan
Edit3
Name Edbiner
Caption Kotak
Button2
Name Btkotak
Image1 Name Imgsinus
Image2 Name Imgkotak
Panel1 Name (kosongkan)
Gambar6.Penggambaransumbukoordinat

Gambar7.Penggambaransumbukoordinat

 Untuk menggambarkan menampilkan hasil seperti padaGambar 6 dan 7,


ketikkankodeprogram berikut :
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TFrmsinyal = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edsumbux: TEdit;
Edsumbuy: TEdit;
Edbiner: TEdit;
Btsinus: TButton;
Btkotak: TButton;
Imgsinus: TImage;
Imgkotak: TImage;
rba1: TRadioButton;
rba2: TRadioButton;
rba4: TRadioButton;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
rbf2: TRadioButton;
rbf5: TRadioButton;
rbf10: TRadioButton;
GroupBox3: TGroupBox;
GroupBox5: TGroupBox;
rbt30: TRadioButton;
rbt60: TRadioButton;
rbt100: TRadioButton;
GroupBox6: TGroupBox;
rbl10: TRadioButton;
rbl30: TRadioButton;
rbl50: TRadioButton;
GroupBox4: TGroupBox;
procedure BtsinusClick(Sender: TObject);
procedure BtkotakClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Frmsinyal: TFrmsinyal;

implementation

{$R *.dfm}

procedure sumbu1 (ax,ay,b,c:integer);


begin
frmsinyal.Imgsinus.Canvas.MoveTo(ax,ay);
frmsinyal.Imgsinus.Canvas.LineTo(ax+b,ay);
frmsinyal.Imgsinus.Canvas.MoveTo(ax,ay);
frmsinyal.Imgsinus.Canvas.LineTo(ax,ay-c);
frmsinyal.Imgsinus.Canvas.MoveTo(ax,ay);
frmsinyal.Imgsinus.Canvas.LineTo(ax,ay+c);
frmsinyal.Imgsinus.Canvas.Pen.Color:=clblue;
frmsinyal.Imgsinus.Canvas.MoveTo(ax,ay+110);
frmsinyal.Imgsinus.Canvas.LineTo(ax+160,ay+110);
frmsinyal.Imgsinus.Canvas.MoveTo(ax+220,ay+110);
frmsinyal.Imgsinus.Canvas.LineTo(ax+390,ay+110);
frmsinyal.Imgsinus.Canvas.TextOut(ax+170,ay+105,'1detik');
frmsinyal.Imgsinus.Canvas.TextOut(ax,ay-c,'Amplitude(A)');
frmsinyal.Imgsinus.Canvas.TextOut(ax+b-15,ay-15,'Time(t)');
frmsinyal.Imgsinus.Canvas.TextOut(ax-10,ay-55,'2-');
frmsinyal.Imgsinus.Canvas.TextOut(ax-10,ay-107,'4-');
end;
Procedure sumbu2(ax,ay,b,c:integer);
begin
frmsinyal.Imgkotak.Canvas.MoveTo(ax,ay);
frmsinyal.Imgkotak.Canvas.LineTo(ax+b,ay);
frmsinyal.Imgkotak.Canvas.MoveTo(ax,ay);
frmsinyal.Imgkotak.Canvas.LineTo(ax,ay-c);
frmsinyal.Imgkotak.Canvas.MoveTo(ax,ay);
frmsinyal.Imgkotak.Canvas.LineTo(ax,ay+c);
frmsinyal.Imgkotak.Canvas.TextOut(ax,ay-c,'Amplitude(v)');
frmsinyal.Imgkotak.Canvas.TextOut(ax+b-5,ay+5,'Time(s)');
frmsinyal.Imgkotak.Canvas.TextOut(ax-15,ay-37,'30-');
frmsinyal.Imgkotak.Canvas.TextOut(ax-15,ay-67,'60-');
frmsinyal.Imgkotak.Canvas.TextOut(ax-21,ay-107,'100-');
end;
Procedure satu(ax,ay,a,b,i:integer);
begin
frmsinyal.Imgkotak.Canvas.Pen.Color:=clred;
frmsinyal.Imgkotak.Canvas.MoveTo(ax+(i-1)*b,ay-a);
frmsinyal.Imgkotak.Canvas.LineTo(ax+b+(i-1)*b,ay-a);
end;
procedure nol(ax,ay,a,b,i:integer);
begin
frmsinyal.Imgkotak.Canvas.Pen.Color:=clred;
frmsinyal.Imgkotak.Canvas.MoveTo(ax+(i-1)*b,ay);
frmsinyal.Imgkotak.Canvas.LineTo(ax+b+(i-1)*b,ay);
end;

procedure tegak(ax,ay,a,b,i:integer);
begin
frmsinyal.Imgkotak.Canvas.Pen.Color:=clred;
frmsinyal.Imgkotak.Canvas.MoveTo(ax+(i-1)*b,ay);
frmsinyal.Imgkotak.Canvas.LineTo(ax+(i-1)*b,ay-a);
end;

procedure reset;
var
x,y:integer;
begin
frmsinyal.Imgsinus.Picture:=nil;
frmsinyal.Imgsinus.Refresh;
frmsinyal.Imgkotak.Picture:=nil;
frmsinyal.Imgkotak.Refresh;
x:=strtoint(frmsinyal.Edsumbux.Text);
y:=strtoint(frmsinyal.Edsumbuy.Text);
sumbu1(20,120,x,y);
sumbu2(20,120,x,y);
end;
procedure TFrmsinyal.BtsinusClick(Sender: TObject);
var
amp,sx,x,y:integer;
sy,frek:real;
begin
reset;
if rba1.Checked then amp:=25;//amplitudo=1v
if rba2.Checked then amp:=50;//amplitudo=2v
if rba4.Checked then amp:=100;//amplitud=1v
if rbf2.Checked then frek:=10;//amplitudo=4v
if rbf5.Checked then frek:=4;//amplitudo=5v
if rbf10.Checked then frek:=2;//ampllitudo=10v
x:=strtoint(frmsinyal.Edsumbux.Text);
y:=strtoint(frmsinyal.Edsumbuy.Text);
sumbu1(20,120,x,y);
for sx:=1 to 395 do
begin
sy:=sin(sx/pi/frek)*amp;
frmsinyal.Imgsinus.Canvas.Pixels[sx+20,120-round(sy)]:=clred;
end;
end;

procedure TFrmsinyal.BtkotakClick(Sender: TObject);


var
i,x,y,tinggi,lebar:integer;
biner:string;
tnd:integer;
begin
reset;
if rbl10.Checked then lebar:=30;
if rbl30.Checked then lebar:=60;
if rbl50.Checked then lebar:=100;
if rbt30.Checked then tinggi:=10;
if rbt60.Checked then tinggi:=30;
if rbt100.Checked then tinggi:=50;
biner:=edbiner.Text;
x:=strtoint(frmsinyal.Edsumbux.Text);
y:=strtoint(frmsinyal.Edsumbuy.Text);
sumbu2(20,120,x,y);
tnd:=0;
for i:=1 to 16 do
if biner[i]='1'then
if tnd=0 then begin tegak(20,120,lebar,tinggi,i);
satu(20,120,lebar,tinggi,i);
tnd:=1;end
else satu(20,120,lebar,tinggi,i)
else if tnd=1 then begin tegak(20,120,lebar,tinggi,i);
nol(20,120,lebar,tinggi,i);
tnd:=0;end
else nol(20,120,lebar,tinggi,i);

end;

end.
IX. Analisa
- Menggambarkan gelombang sinusoidal di komputer berbeda dengan
carapenggambaransecaraumum.
- Denganreferensikoordinatawal(0,0)terletakdipojokkiriatas,diawalidarikoordinat (0,y),
melakukan perulangan sepanjang sumbux, menggunakan
persamaangelombangsinusuntukmenentukannilaiy,sehingganilaimasing-
masingtitikgelombangsinusoidal (y)di setiap posisi xadalahy=b – Asin2πx.
- Karakteristiksinyal analog ditentukan oleh tiga parameter,
yaituamplitude,frekuensi, phasa.
- Terdapat permasalahan dalam mewujudkan data digital menjadi sinyal digital,
yaitudatadalambentukkarakter-karakteryangdapatdipahamimanusiatidakdapatlangsung
ditransmisikan dalam sistem komunikasi. Data harus diubah terlebih dahulukedalam
bentuk deretanbit agar dapatditransmisikan.

X. Kesimpulan
- Sinyal analog merupakan gelombang elektromagnetik yang langsung, terus-
menerus,dan disebarkan melalui berbagai media transmisi.Contoh sinyal analog yang
palingmudahdijumpai adalahgelombangsinusoidal.
- Persamaan gelombang
sinus :S(t) = A sin

(2.ft) + dengan:
A =Amplitudo
F=Frekuensi
=Phasa
- Sinyal digital merupakan sinyal sebagai wujud tampilan data digital.Data
digitalmerupakandatayangmemilikideretannilaiyangberbedadanmemilikiciritersendiri.
Contoh datadigital adalah teks, deretanbilangan.
- Delphimerupakanperangkatpengembanganaplikasiyang sangatterkenaldilingkungan
Windows. Dengan Delphi, dapat dibangun berbagai aplikasi Windows(game,
multimedia, database, dll) dengan cepat dan mudah karena menggunakanpendekatan
visual yaitu tanpa banyak menuliskan kode. Delphi menggunakan
bahasaobjectPascal sebagaiBahasadasar.

Anda mungkin juga menyukai