Anda di halaman 1dari 18

LAPORAN PRAKTIKUM I

KOMUNIKASI DATA
SINYAL ANALOG DAN SINYAL DIGITAL
(PENGGAMBARAN SINYAL MENGGUNAKAN DELPHI)

Oleh :
Muhammad Kevin Kurniaawan (1931130118)
TT – 1A

PROGRAM STUDI TEKNIK TELEKOMUNIKASI


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI MALANG
2020
1. Tujuan
1.1 Tujuan Khusus
 Memahami Perbedaan Sinyal Analog dan Sinyal Digital.
 Memahami macam - macam dari Sinyal Analog dan Sinyal Digital.

1.2 Tujuan Umum


 Memahami cara menggambar Sinyal Analog dan Sinyal Digital di komputer.
 Memahami Pemrograman Delphi.
 Membuat profram untuk mensimulasi Karakteristik Sinyal Analog dan Sinyal Digital
di komputer.

2. Teori Penunjang
2.1 Sinyal Analog dan Sinyal Digital
Sinyal analog merupakan gelombang elektromagnetik yang langsung, terus-menerus, dan
disebarkan melalui berbagai media transmisi. Contoh sinyal analog yang paling mudah
dijumpai adalah gelombang sinusoidal. Karakteristik sinyal analog ditentukan oleh tiga
parameter, yaitu:
1. Amplitudo, merupakan ukuran sinyal pada waktu tertentu.
2. Frekuensi, merupakan kebalikan dari periode (f=1/T), yaitu banyaknya pengulangan
sinyal (gelombang) dalam satuan waktu, dengan satuan Hz atau cycles per second.
3. Phasa, merupakan ukuran dari posisi relatif awal suatu sinyal dengan tidak melewati
periode tunggal dari sinyal. Gambar 1 menampilkan dua gelombang dengan beda
phasa π /2.

Gambar 1. Perbedaan phasa dua


Gambar 1. Perbedaan phasa dua gelombang
Sumber : Arius, D dan Rum Andy Kr, 2008

Bila dinyatakan dalam persamaan, suatu gelombang sinusoidal dapat dituliskan sebagai
berikut :
S(t) = A sin (2.ft) + Ø
Dengan A = Amplitudo
f = Frekuensi
Ø = Phasa
Sinyal digital merupakan sinyal sebagai wujud tampilan data digital. Data digital
merupakan data yang memiliki deretan nilai yang berbeda dan memiliki ciri tersendiri. Contoh
data digital adalah teks, deretan bilangan, dan karakter-karakter lain. Terdapat permasalahan
dalam memwujudkan data digital menjadi sinyal digital, yaitu data dalam bentuk karakter-
karakter yang dapat dipahami manusia tidak dapat langsung ditransmisikan dalam system
komunikasi. Data harus diubah terlebih dahulu ke dalam bentuk deretan bit agar dapat
ditransmisikan.

Gambar 2. Sinyal Digital


Sumber: Arius, D dan Rum Andy KR, 2008

2.2 Menggambar Sinyal

a. Penggambaran gelombang sinusoidal secara umum

b. Penggambaran di komputer menggunakan Delphi


Gambar 3. Perbedaan cara penggambaran gelombang sinusoidal
Menggambarkan gelombang sinusoidal di komputer berbeda dengan cara
penggambaran secara umum. Untuk menggambarkan gelombang sinusoidal di komputer
dapat diikuti gambar seperti ditampikan pada Gambar 3.b. Dengan referensi koordinat awal
(0,0) terletak di pojok kiri, diawali dari koordinat (0,y) lakukan perulangan sepanjang sumbu
x, gunakan Persamaan 1 untuk menentukan nilai y, sehingga nilai masing-masing titik
gelombang sinusoidal (y) di setiap posisi x adalah y=b-A sin 2 πx.

2.3 Mengenal Delphi


1. Mengenal Konsep Pemrograman Visual
Delphi merupakan perangkat pengembangan aplikasi yang sangat terkenal di lingkungan
Windows. Dengan Delphi, dapat dibangun berbagai aplikasi Windows (game, multimedia,
database, dll) dengan cepat dan mudah karena menggunakan pendekatan visual yaitu tanpa
banyak menuliskan kode. Delphi menggunakan bahasa object Pascal sebagai bahasa dasar.
Jika Bahasa Pascal telah dikuasai maka akan dengan mudah memahami program Delphi.
Langkah-langkah pemrograman visual pada Delphi antara lain:
- Merancang antarmuka ( form dan komponen pendukungnya) secara visual.
- Menuliskan kode untuk melakukan tindakan tertentu.
- Mengkompilasi kode Pascal dan form ke dalam bentuk file yang dapat dieksekusi.

Main Menu
Toolbar/Speedba
r
Object Tree View Component
Palette
Object Inspector

Code Code Editor Form Designer


Explorer

Gambar 4. Tampilan Jendela Delphi


Sumber : www.delphi.com

2. IDE Delphi
IDE ( Integrated Development Environment ) adalah lingkungan dimana semua tool yang
diperlukan untuk merancang, menjalankan, dan menguji sebuah aplikasi disajikan dan
terhubung dengan baik sehingga memudahkan dalam pengembangan program. IDE Delphi
dibagi menjadi 8 bagian utama yaitu main menu, toolbar/speedbar , component palette, form
designer , code editor , code explorer , object inspector , dan object tree view.
Tampilan dari salah satu bentuk jendela Delphi seperti ditunjukkan pada Gambar 4.

Main Menu
Main menu merupakan menu pilihan utama yang berisi perintah perintah yang diperlukan
selama melakukan pemrograman. Main menu terbagi dalam beberapa sub menu sesuai
dengan fungsinya.

Toolbar/Speedbar
Toolbar adalah sekumpulan tombol yang tidak lain adalah penganti beberapa item menu yang
sering digunakan. Biasanya yang tersedia pada toolbar adalah perintah-perintah (item menu)
yang sering digunakan dalam proses pembuatan program aplikasi.

Component Palette
Component palette adalah tool yang berupa kumpulan tab ( page control ), dimana setiap tab
memuat berbagai tombol komponen (VCL / Visual Component Library) yang dapat
diletakkan pada form dan sebagai interface program aplikasi. Tab tersebut diantaranya adalah
Standard , Additional , Win32, dan lain-lain.

Object Inspector
Object inspector digunakan untuk mengubah properti atau karakteristik dari suatu komponen.
Terdiri atas 2 tab yaitu :
-Properties
Digunakan untuk menentukan seting suatu objek. Satu objek memiliki beberapa properti yang
dapat diatur langsung dari object inspector maupun melalui kode program. Seting ini
mempengaruhi cara kerja objek tersebut saat aplikasi dijalankan.
-Event
Merupakan bagian yang dapat diisi dengan kode program tertentu yang berfungsi untuk
menangani kejadian-kejadian (berupa sebuah procedure) yang dapat direspon oleh sebuah
komponen. Event adalah peristiwa atau kejadian yang diterima oleh suatu objek, misal: click ,
drag , dan lain-lain. Event yang diterima objek akan memicu Delphi menjalankan kode
program yang ada didalamnya. Misalnya ingin sesuatu dikerjakan pada saat form ditutup,
maka untuk menyatakan tindakan tersebut (berupa sebuah procedure) menggunakan
OnClose.

Object Tree View


Object tree view berisi daftar komponen yang sudah diletakkan di
form designer.

Code Editor
Code editor merupakan tempat untuk menuliskan kode program menggunakan bahasa object
Pascal. Disini tidak perlu dituliskan seluruh kode sumber karena Delphi telah menyediakan
kerangka penulisan sebuah program.

Code Explorer Digunakan untuk memudahkan berpindah antar file unit di dalam jendela
code editor. Code explorer berisi daftar yang menampilkan semua tipe,
class, properti, method, variabel global, rutin global yang telah didefinisikan di dalam unit.
Saat memilih sebuah item dalam code explorer, kursor akan berpindah menuju implementasi
dari item yang dipilih di dalam code editor.
3. Prosedur
3.1 Flowchart Sinyal Sinusoidal

START

Tidak
amp,sx,x,y:integer;
sy,frek:real; Rbf5.checked ?

ya

reset amp = 4

Tidak
Rba1.checked ? Tidak
Rbf10.checked ?

ya
ya

amp = 25
amp = 2

Tidak
Rba2.checked ?

ya x:=strtoint(frmsinyal.edsumbux.Text);
y:=strtoint(frmsinyal.edsumbuy.Text);
amp = 50

Membuat sumbu vertikal


Tidak horizontal pada canvas imgsinus

Rba4.checked ?

ya
for sx:=1 to 395 do

amp = 100

sy:=sin(sx/pi/frek)*amp;
frmsinyal.imgsinus.Canvas.Pixels[sx
+20,120-round(sy)]:=clred;
Tidak
Rbf2.checked ?

ya

end
amp = 10
3.2 Flowchart Sinyal Sinusoidal dan Pulse

START

Tidak
i,x,y,tinggi,lebar:integer; Tidak
biner:string; Rbl30.checked ? Tnd = 1 ?
tnd : integer;
ya

tegak(20,120,lebar,tinggi,i);
nol(20,120,lebar,t
reset Tinggi = 30 nol (20,120,lebar,tinggi,i);
inggi,i);
tnd:=0;

Tidak
Rb10.checked ? Tidak
Rbf50.checked ?
ya
END
ya
Lebar = 30
Tinggi = 50

Tidak
Rbt30.checked ?

ya biner:=edbiner.Text;
x:=strtoint(frmsinyal.edsumbux.Text);
Lebar = 60
y:=strtoint(frmsinyal.edsumbuy.Text);

Membuat sumbu vertikal


Tidak horizontal pada canvas imgkotak
Rbt50.checked ? Tnd = 0

ya
for i:=1 to 16 do
Lebar = 100

Tidak
biner[i]='1' ?

Tidak
Rbl10.checked ?

ya Tidak
Tnd = 0 ?

Tinggi = 10

tegak(20,120,lebar,tinggi,i);
satu(20,120,lebar
satu (20,120,lebar,tinggi,i);
,tinggi,i)
tnd:=1;
3.3 Langkah Langkah Sinyal Sinusoidal
 Buka Aplikasi Delphi
 Tambahkan pada form 2 buah komponen label, 1 buah image, 1 buah memo, 2 buah
edit,2 buah Groupbox , 6 buah Radio Button, dan 1 buah button, . Atur tata letak
komponen-komponen tersebut menjadi seperti tampak pada gambar di bawah ini :

 Ubah properly komponen-komponen tersebut menjadi seperti yang tertampil pada


Tabel1.
Tabel 1. Setting property komponen dan form
Komponen Property Setting
Caption Gelombang Sinus
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 kosongkan string (list editor)
Memo1
Name Mmhasil
Image1 Name Imgtampil
Panel1 Name (kosongkan)
Caption Amplitudo
GroupBox1
Name Amp
Caption rba1
RadioButton1
Name 1V
Caption rba2
RadioButton1
Name 2V
Caption rba3
RadioButton1
Name 4V
Caption Frekuensi
GroupBox2
Name Frek
Caption rbf2
RadioButton2
Name 2Hz
Caption rbf5
RadioButton2
Name 5Hz
Caption rbf10
RadioButton2
Name 10Hz

 Untuk menggambarkan sumbu koordinat dan menggambarkan gelombang sinusoidal


ketikkan kode di bawah ini :
procedure sumbu (ax,ay,b,c:integer);
Begin
frmsinyal.Imgtampil.Canvas.MoveTo(ax,ay);
frmsinyal.Imgtampil.Canvas.LineTo(ax+b,ay);
frmsinyal.Imgtampil.Canvas.MoveTo(ax,ay);
frmsinyal.Imgtampil.Canvas.LineTo(ax,ay-c);
frmsinyal.Imgtampil.Canvas.MoveTo(ax,ay);
frmsinyal.Imgtampil.Canvas.LineTo(ax,ay+c);
frmsinyal.Imgtampil.Canvas.Pen.Color:=clblue;
frmsinyal.Imgtampil.Canvas.MoveTo(ax,ay+110);
frmsinyal.Imgtampil.Canvas.LineTo(ax+160,ay+110);
frmsinyal.Imgtampil.Canvas.MoveTo(ax+220,ay+110);
frmsinyal.Imgtampil.Canvas.LineTo(ax+390,ay+110);
frmsinyal.Imgtampil.Canvas.TextOut(ax+170,ay+105,'1detik');
frmsinyal.Imgtampil.Canvas.TextOut(ax,ay-c,'Amplitudo(A)');
frmsinyal.Imgtampil.Canvas.TextOut(ax+b-15,ay-15,'Time(T)');
frmsinyal.Imgtampil.Canvas.TextOut(ax-10,ay-55,'2-');
frmsinyal.Imgtampil.Canvas.TextOut(ax-10,ay-107,'4-');
end;

procedure reset;
var
x,y:integer;
begin
frmsinyal.Imgtampil.Picture:=nil;
frmsinyal.Imgtampil.Refresh;
x:=strtoint(frmsinyal.Edsumbux.Text);
y:=strtoint(frmsinyal.Edsumbuy.Text);
sumbu(20,120,x,y);
end;
procedure TFrmsinyal.BtprosesClick(Sender: TObject);
var
sx,x,y,amp: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;//amplitudo=4V
if rbf2.Checked then frek:=10;//frekuensi=2Hz
if rbf5.Checked then frek:=4; //frekuensi=5Hz
if rbf10.Checked then frek:=2; //frekuensi=10Hz
x:= strtoint(frmsinyal.Edsumbux.Text);
y:= strtoint(frmsinyal.Edsumbuy.Text);
sumbu(20,120,x,y);
for sx:=1 to 395 do
begin
sy:=sin(sx/pi/3)*100;
frmsinyal.Imgtampil.Canvas.Pixels[sx+20,120-round(sy)]:=clred;
Frmsinyal.Mmhasil.Lines.Add('x='+inttostr(sx)+''+formatfloat('#.###',(sy)));
end;

end;

end.
3.4 Langkah Langkah Sinyal Sinusoidal dan Pulsa
 Lakukan Langkah Langkah 3.3
 Tambahkan lagi pada form 6 buah komponen label, 1 buah image, 1 buah edit, 2 buah
Groupbox , 6 buah Radio Button, dan 1 buah button, . Atur tata letak komponen-
komponen tersebut menjadi seperti tampak pada gambar di bawah ini :

 Tambahkan properly komponen-komponen tersebut menjadi seperti yang tertampil


pada Tabel 2.
Tabel 2. Setting property komponen dan form
Komponen Property Setting
Image2 Name Imgkotak
Caption Tinggi Pulsa
GroupBox3
Name tinggi
Caption rbt10
Radiobutton3
Name 10
Caption rbt60
Radiobutton3
Name 60
Caption rbt100
Radiobutton3
Name 100
Caption Lebar Pulsa
GroupBox4
Name Pulsa
Caption rbl10
Radiobutton4
Name 10
Caption rbl30
Radiobutton4
Name 30
Caption rbl50
Radiobutton4
Name 50
Caption &Kotak
Button2
Name btproses
Edit3 Text (kosongkan)
Name Edbiner
Label3 Caption Gelombang Sinus
Label4 Caption Gelombang Kotak
Label5 Caption GELOMBANG SINUS
Label6 Caption GELOMBANG KOTAK
Label7 Caption PROGRAM STUDI TEKNIK TELEKOMUNIKASI
Label8 Caption Biner

 Tambahkan kode di bawah ini untuk menggambarkan sumbu koordinat dan


menggambarkan gelombang pulsa (jika ada kode yang sama dengan Langkah 3.3
tidak usah di tulis lagi) :
procedure sumbu (ax,ay,b,c:integer);
Begin

frmsinyal.Imgtampil.Canvas.MoveTo(ax,ay);
frmsinyal.Imgtampil.Canvas.LineTo(ax+b,ay);
frmsinyal.Imgtampil.Canvas.MoveTo(ax,ay);
frmsinyal.Imgtampil.Canvas.LineTo(ax,ay-c);
frmsinyal.Imgtampil.Canvas.MoveTo(ax,ay);
frmsinyal.Imgtampil.Canvas.LineTo(ax,ay+c);
frmsinyal.Imgtampil.Canvas.Pen.Color:=clblue;
frmsinyal.Imgtampil.Canvas.MoveTo(ax,ay+110);
frmsinyal.Imgtampil.Canvas.LineTo(ax+160,ay+110);
frmsinyal.Imgtampil.Canvas.MoveTo(ax+220,ay+110);
frmsinyal.Imgtampil.Canvas.LineTo(ax+390,ay+110);
frmsinyal.Imgtampil.Canvas.TextOut(ax+170,ay+105,'1detik');
frmsinyal.Imgtampil.Canvas.TextOut(ax,ay-c,'Amplitudo(A)');
frmsinyal.Imgtampil.Canvas.TextOut(ax+b-15,ay-15,'Time(T)');
frmsinyal.Imgtampil.Canvas.TextOut(ax-10,ay-55,'2-');
frmsinyal.Imgtampil.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,'Amplitudo(A)');
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);
end;
procedure reset;
var
x,y:integer;
begin
frmsinyal.Imgtampil.Picture:=nil;
frmsinyal.Imgtampil.Refresh;
frmsinyal.Imgkotak.Picture:=nil;
frmsinyal.Imgkotak.Refresh;
x:=strtoint(frmsinyal.Edsumbux.Text);
y:=strtoint(frmsinyal.Edsumbuy.Text);
sumbu(20,120,x,y);
sumbu2(20,120,x,y);

end;

procedure TFrmsinyal.BtprosesClick(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;//amplitudo=4v
if rbf2.Checked then frek:=10;//frekuensi=2Hz
if rbf5.Checked then frek:=4;//frekuensi=5Hz
if rbf10.Checked then frek:=2;//frekuensi=10Hz
x:= strtoint(frmsinyal.Edsumbux.Text);
y:= strtoint(frmsinyal.Edsumbuy.Text);
sumbu(20,120,x,y);
for sx:=1 to 395 do
begin
sy:=sin(sx/pi/frek)*amp;
frmsinyal.Imgtampil.Canvas.Pixels[sx+20,120-round(sy)]:=clred;
Frmsinyal.Mmhasil.Lines.Add('x='+inttostr(sx)+''+formatfloat('#.###',(sy)));
end;

end;

procedure TFrmsinyal.btkotakClick(Sender: TObject);


var
i,x,y,tinggi,lebar:integer;
biner:string;
tnd:integer;

begin
reset;
if rbl10.Checked then tinggi:=10;
if rbl30.Checked then tinggi:=30;
if rbl50.Checked then tinggi:=50;
if rbt10.Checked then lebar:=30;
if rbt30.Checked then lebar:=60;
if rbt50.Checked then lebar:=100;
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.
4. Hasil Percobaan
4.1 Hasil gelombang Sinusoidal

4.2 Hasil Gelombang Sinusoidal dan Kotak


5. Analisa Data
Dari percobaan yang telah dilakukan, hasil pada gelombang sinus saat Amplitudo 1Volt
dan Frekuensi 2Hz didapatkan gelombang sebanyak 2. Pada grafik didapatkan tinggi
gelombang 1Volt, karena berdasarkan rumus f =n/t dimana jika Frekuensi 2Hz maka
didapatkan 2 gelombang tiap 1 detik. Dan ketika Volt dengan Frekuransi 2Hz di dapatkan
gelombang sinus sebanyak 5 gelombang 5 .Dan jika Amplitudo 4Volt dengan Frekuensi
10Hz akan menghasilkan gelombang sinus 10 gelombang.

Namun pada gelombang kotak didapatkan hasil pada grafik tinggi pulas dan lebar pulsa.
Jika tinggi pulas 30Volt dan lebar Pulsa 30Volt gelombang yang di hasilkan akan lebar dan
rendah. Namun, jika tinggi pulsa 60Volt dan lebar pulsa 10Volt gelombang kotak yang
dihasilkan akan tinggi dan sempit, yang membedakan adalah bilangan biner yang kita
inputkan. Bila bilangan biner 1 maka sinyal akan naik, dan jika bilangan biner 0 maka sinyal
akan lurus mendatar.

6. Kesimpulan
 Semakin Besar Frekuensi, maka semakin besar pula gelombang yang di hasilkan
setiap 1 detiknya.
 Pada Gelombang Sinus dipengaruhi oleh Frekuensi, Amplitudo dan banyak
gelombang tiap 1 detik.
 Pada Gelombang Kotak, dipengaruhi oleh lebar pulsa, tinggi pulsa, dan bilangan
biner yang kita inputkan.

Anda mungkin juga menyukai