pendahuluan praktikum 1

25
KOMUNIKASI DATA PRAKTIKUM 1 SINYAL ANALOG, SINYAL DIGITAL (PENGGAMBARAN SINYAL MENGGUNAKAN DELPHI) PEMBIMBING : AMALIA EKA RAKHMANIA, S.T., M.Sc Oleh: Yuli Nurwardatul I. (1331130050)/TT2D TEKNIK TELEKOMUNIKASI TEKNIK ELEKTRO

Upload: yuli-nur

Post on 18-Dec-2015

435 views

Category:

Documents


52 download

DESCRIPTION

pendahuluanpraktikum

TRANSCRIPT

KOMUNIKASI DATAPRAKTIKUM 1SINYAL ANALOG, SINYAL DIGITAL(PENGGAMBARAN SINYAL MENGGUNAKAN DELPHI)

PEMBIMBING :AMALIA EKA RAKHMANIA, S.T., M.Sc

Oleh: Yuli Nurwardatul I. (1331130050)/TT2D

TEKNIK TELEKOMUNIKASITEKNIK ELEKTROPOLITEKNIK NEGERI MALANG2015PRAKTIKUM ISINYAL ANALOG, SINYAL DIGITAL(PENGGAMBARAN SINYAL MENGGUNAKAN DELPHI)

I. Tujuan Memahami Perbedaan Sinyal Analog dan Sinyal Digital. Memahami macam-macam dari Sinyal Analog dan Sinyal Digital. Memahami cara menggambar Sinyal Analog dan Sinyal Digital di komputer. Memahami Pemrograman Delphi. Membuat program untuk mensimulasi Karakteristik Sinyal Analog dan Sinyal Digital.

II. Alat dan Bahan Program delphi versi 7 Satu unit Komputer

III. Teori PenunjangA. Sinyal Analog dan Sinyal DigitalSINYAL ANALOGSignal analog adalah signal yang berupa gelombang elektro magnetik dan bergerak atas dasar fekuensi. Frekuensi adalah jumlah getaran bolak balik sinyal analog dalam satu siklus lengkap per detik. Satu siklus lengkap terjadi saat gelombang berada pada titik bertegangan nol, menuju titik bertegangan positif tertinggi pada gelombang, menurun ke titik tegangan negatif dan menuju ke titik nol kembali (lihat gambar). Semakin tinggi kecepatan atau frekuensinya semakin banyak siklus lengkap yang terjadi pada suatu periode tertentu. Kecepatan frekuensi tersebut dinyatakan dalam hertz. Sebagai contoh sebuah gelombang yang berayun bolak balik sebanyak sepuluh kali tiap detik berarti memiliki kecepatan sepuluh hertz.

Sinyal analog merupakan sinyal untuk menampilkan data analog. Sinyal analog berupa berbagai macam gelombang elektromagnetik yang langsung, terus menerus disebarkan terus menerus melalui berbagai media transmisi. Sinyal analog juga disebut dengan broadband merupakan gelombang-gelombang elektronik yang bervariasi dan secara kontinu di transmisikan melalui beragam media tergantung transmisinya. Sinyal analog bisa diubah ke bentuk sinyal digital dengan dimodulasi terlebih dahulu. Sinyal analog bekerja dengan mentransmisikan suara dan gambar dalam bentuk gelombang kontinu (continous varying). Dua parameter/karakteristik terpenting yang dimiliki oleh isyarat analog adalah amplitude dan frekuensi. Isyarat analog biasanya dinyatakan dengan gelombang sinus, mengingat gelombang sinus merupakan dasar untuk semua bentuk isyarat analog. Hal ini didasarkan kenyataan bahwa berdasarkan analisis fourier, suatu sinyal analog dapat diperoleh dari perpaduan sejumlah gelombang sinus. Dengan menggunakan sinyal analog, maka jangkauan transmisi data dapat mencapai jarak yang jauh, tetapi sinyal ini mudah terpengaruh oleh noise. Gelombang pada sinyal analog yang umumnya berbentuk gelombang sinus memiliki tiga variable dasar, yaitu amplitudo, frekuensi dan phase. Amplitudo merupakan ukuran tinggi rendahnya tegangan dari sinyalanalog. Frekuensi adalah jumlah gelombang sinyal analog dalam satuan detik. Sedangkan phase adalah besar sudut dari sinyal analog pada saattertentu.

SINYAL DIGITALSinyal digital merupakan hasil teknologi yang dapat mengubah signal menjadi kombinasi urutan bilangan 0 dan 1 (juga dengan biner), sehingga tidak mudah terpengaruh oleh derau, proses informasinya pun mudah, cepat dan akurat, tetapi transmisi dengan sinyal digital hanya mencapai jarak jangkau pengiriman data yang relatif dekat. Biasanya sinyal inijugadikenaldengansinyaldiskret.Sinyalyangmempunyaiduakeadaaninibiasadisebut dengan bit.

Sebuah sistem digital adalah sebuah teknologi data yang menggunakan diskrit(diskontinu) nilai. Kata digital berasal dari sumber yang sama seperti kata digit dan digitus(dalam bahasa Latin kata untuk jari), seperti jari diskrit digunakan untuk menghitung. Semua informasi digital memiliki sifat-sifat umum yang membedakannya dari metode komunikasi analog.

System digital merupakan bentuk sampling dari sytem analog. Digital pada dasarnya di code-kan dalam bentuk biner (atau Hexa) yang besarnya nilai suatu system digital dibatasi oleh lebarnya / jumlah bit (bandwidth). Jumlah bit juga sangat mempengaruhi nilai akurasi system digital. Signal digital ini memiliki berbagai keistimewaan yang unik yang tidak dapat ditemukan pada teknologi analog yaitu :1. Mampu mengirimkan informasi dengan kecepatan cahaya yang dapat membuat informasi dapat dikirim dengan kecepatan tinggi.2. Penggunaan yang berulangulang terhadap informasi tidak mempengaruhi kualitas dan kuantitas informsi itu sendiri.3. Informasi dapat dengan mudah diproses dan dimodifikasi ke dalam berbagai bentuk.4. Dapat memproses informasi dalam jumlah yang sangat besar dan mengirimnya secara interaktif.

Perbedaan antara sinyal analog dan sinyal digital adalahSinyal AnalogSinyal Digital

Dirancang untuk suara (voice)Dirancang untuk data dan suara

Tidak efisien untuk datasetiap sinyal digital dapat dikonversi ke analog

Banyak terdapat noise dan rentan kesalahan Informasi discrete

kecepatannya relatif rendahkecepatan tinggi

Sumber :DIGDYO NITI SANTOSO Teknik Komunikasi Data

B. Pengenalan Delphi

Delphi adalah Suatu bahasa pemrograman yang menggunakan visualisasi sama seperti bahasa pemrograman Visual Basic ( VB ). Namun Delphi menggunakan bahasa yang hampir sama dengan pascal (sering disebut objeck pascal ). Sehingga lebih mudah untuk digunakan. Bahasa pemrograman Delphi dikembangkan oleh CodeGear sebagai divisi pengembangan perangkat lunak milik embarcadero. Divisi tersebut awalnya milik borland, sehingga bahasa ini memiliki versi Borland Delphi.

Delphi juga menggunakan konsep yang berorientasi objek ( OOP ), maksudnya pemrograman dengan membantu sebuah aplikasi yang mendekati keadaan dunia yang sesungguhnya. Hal itu bisa dilakukan dengan cara mendesign objek untuk menyelesaikan masalah. OOP ini memiliki beberapa unsur yaitu; Encapsulation ( pemodelan ), Inheritance ( Penurunan ), Polymorphism ( Polimorfisme ).

Awalnya bahasa pemrograman delphi hanya dapat digunakan di Microsoft Windows, namun saat ini telah dikembangkan sehingga dapat digunakan juga di Linux dan di Microsoft.NET. Dengan menggunakan free pascal yang merupakan proyek OpenSource, bahasa pemrograman ini dapat membuat program di sistem operasi Mac OS X dan Window CE . Umumnya delphi hanya digunakan untuk pengembangan aplikasi dekstop, enterprise berbasis database dan program - program kecil. Namun karena pengembangan delphi yang semakin pesat dan bersifat general purpose bahasa pemrograman ini mampu digunakan untuk berbagai jenis pengembangan software. Dan Delphi juga disebut sebagai pelopor perkembangan RadTool ( Rapid Apllication Development ) tahun 1995. Sehinnga banyak orang yang mulai mengenal dan menyukai bahasa pemrograman yang bersifat VCL ( Visual Component Library ) ini.Langkah-langkah pemrograman visual pada Delphi antara lain: 1. Membuat sebuah form2. Mengganti nama form dan menambahkan judul3. Menyimpan form4. Menempatkan komponen pada form5. Mengatur tata letak komponen6. Mengubah nilai properti7. Membuat procedure lewat event8. Kompolasi dan jalankan program.

IDE (Integrated Development Environment) adalah bagian dari delphi yang digunakan untuk menciptakan aplikasi. IDE inilah yang memungkinkan pemrograman secara visual merancang tampilan untuk para user (antarmuka pemakai) dan menuliskan listing program (kode). Untuk lebih jelasnya, berikut ini bagian IDE yang terdapat dalam pemrograman Visual Delphi disertai fungsi-fungsi dari IDE tersebut.

1. MenuBarMenuBar berfungsi memilih tugas-tugas tertentu seperti: memulai,memilih, dan mengakhiri suatu aplikasi.

2. ToolBar/SpeedBarTidak jauh berbeda dengan fungsi MenuBar, Penggunaan ToolBar/SpeedBar lebih praktis dan cepat.

3. Component Palette

Component Palette berisikan kumpulan komponen yang akan ditempelkan atau diletakkan dalam form dan digunakan untuk mendesain form sehingga membentuk user interface. Di dalam Component Palette terdapat berbagai pilihan komponen, di antaranya: Component Palette Standard, Win32, System, DataAccess, DataControls, dbExpress, Data Snap, BDE, ADO, Interbase, Webservice, InternetExpress, Websnap, Internet, dan masih banyak lagi. Masing-masing memiliki banyak kontrol komponen disertai kegunaannya.

4. Jendela FormJendela ini digunakan untuk merancang dan mendesain user interface. Di sini pula kontrol-kontrol komponen dari komponen palet diletakkan/ditempelkan.

5. Jendela Unit

Jendela ini digunakan secara umum untuk menuliskan listing program dalam suatu aplikasi. Di dalamnya terdapat sebuah struktur unit.

6. Jendela Object Tree View

Jendela ini dugunakan untuk melihat kontrol-kontrol apa saja yang berada di dalam form tersebut secara hierarki seperti Windows Explorer.

7. Jendela Object InspectorJendela ini digunakan untuk memanipulasi kontrol-kontrol yang sudah ada dalam form. Jendela Object Inspector ini memiliki dua halaman, yang masing-masing disebut Properti (Properties) dan kejadian (Events).

IV. Tugas Praktikum1. Buat program untuk menggambarkan sinyal analog! Buka program Delphi Tambahkan pada form dua buah komponen label, satu buah image, satu buah memo, dua buah edit dan satu buah button. Selanjutnya atur tata letak komponen-komponen tersebut menjadi seperti tampak pada Gambar 5.

Gambar 5. Tata letak komponen

Ubah property komponen-komponen tersebut menjadi seperti yang tertampil pada Tabel 1.Tabel 1. Setting property komponen dan formKomponenPropertySetting

FormCaptionGelombang sinus

NameFrmsinyal

Label1CaptionX

Label2CaptionY

Edit1Text400

NameEdsumbux

Edit2Text125

NameEdsumbuy

Button1Caption&Proses

NameBtproses

Memo1Lineskosongkan string(list editor)

NameMmhasil

Image1NameImgtampil

Panel1Name(kosongkan)

Gambar 6. Penggambaran sumbu koordinat

Untuk menggambarkan sumbu koordinat seperti tampak pada Gambar 6, ketikkan kode program berikut :procedure sumbu (ax,ay,b,c:integer);Beginfrmsinyal.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);end; Ketikkan kode program di bawah ini untuk menggambarkan gelombang sinus dengan cara melakukan doubleclick pada button btproses sebagai event on click.procedure Tfrmsinyal.btprosesClick(Sender: TObject);varsx,x,y:integer;sy : real;beginx:= strtoint(frmsinyal.edsumbux.Text);y:= strtoint(frmsinyal.edsumbuy.Text);sumbu(40,150,x,y);for sx:=1 to 384 dobeginsy:=sin(sx/pi/3)*100;frmsinyal.tsinus.Canvas.Pixels[sx+x,200-round(sy)]:=clred;end;end; Jalankan program dan perbaiki apabila terdapat kesalahan! Amati gambar sinus yang terjadi dan jawablah pertanyaan berikut :a. Berapa jumlah keseluruhan gelombang yang terjadi 5

b. Jika keseluruhan tampilan gelombang menunjukkan waktu 3,25 detik, maka frekuensi sinyal tersebut adalah 1.53846Hzc. Untuk menggambarkan satu gelombang sinus, kode program yang harus diubah adalah beginsy:=sin(sx/pi/15.5)*100;

d. Untuk menaikkan amplitudo menjadi dua kali lipat, tuliskan kode program perubahannya adalah .beginsy:=sin(sx/pi/3)*200;

2. Untuk menampilkan nilai sinus suatu dapat digunakan komponen memo, bagaimana hasilnya setelah kode program berikut ditambahkan :Form1.mmhasil.Lines.Add('x='+inttostr(sx)+''+formatfloat('#.###',(sy)));

3. Gunakan fasilitas komponen edit untuk memberi nilai masukan sehingga besar amplitudo dapat diatur pengguna program, tuliskan instruksi yang harus ditambahkan!

1 kali amplitudo

2 kali amplitudo

3kali amplitudo

4. Berikan masukan dengan menggunakan fasilitas komponen radiogroup untuk mengatur frekuensi (10 Hz, 20 Hz dan 40 Hz)!10Hz

20Hz

40Hz

5. Dengan cara yang sama, buat program untuk menggambarkan sinyal digital dengan jumlah bit masukan bebas!

PRAKTIKUM SINYAL DIGITAL DAN SINYAL SINUS

SCRIPT PROGRAMunit Unit1;

interface

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

type TFrmsinyal = class(TForm) imgsinus: TImage; Imgkotak: TImage; Label3: TLabel; Panel1: TPanel; Label1: TLabel; Label2: TLabel; Button1: TButton; edsumbux: TEdit; Button2: TButton; edsumbuy: TEdit; GroupBox5: TGroupBox; GroupBox6: TGroupBox; rba1: TRadioButton; rba2: TRadioButton; rba4: TRadioButton; GroupBox7: TGroupBox; rbf2: TRadioButton; rbf5: TRadioButton; rbf10: TRadioButton; GroupBox1: TGroupBox; Label4: TLabel; edbiner: TEdit; GroupBox4: TGroupBox; rbt30: TRadioButton; rbt60: TRadioButton; rbt100: TRadioButton; GroupBox8: TGroupBox; rbl10: TRadioButton; rbl30: TRadioButton; rbl50: TRadioButton; GroupBox2: TGroupBox; rbp0: TRadioButton; rbp90: TRadioButton; rbp180: TRadioButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject);

private { Private declarations } public { Public declarations } end;

var Frmsinyal: TFrmsinyal;

implementation

{$R *.dfm}

procedure sumbu1(ax,ay,b,c:integer);beginfrmsinyal.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,'1 detik');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);beginfrmsinyal.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);beginfrmsinyal.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);beginfrmsinyal.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);beginfrmsinyal.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_sinus;varx,y:integer;beginfrmsinyal.imgsinus.Picture:=nil;frmsinyal.imgsinus.Refresh ;

x:=strtoint(frmsinyal.edsumbux.Text);y:=strtoint(frmsinyal.edsumbuy.Text);sumbu1(20,120,x,y);

end;

procedure reset_kotak;varx,y:integer;begin

frmsinyal.imgkotak.Picture:=nil;frmsinyal.imgkotak.Refresh ;x:=strtoint(frmsinyal.edsumbux.Text);y:=strtoint(frmsinyal.edsumbuy.Text);

sumbu2(20,120,x,y);end;

procedure TFrmsinyal.Button1Click(Sender: TObject);

varamp,sx,x,y:integer;sy,frek,pha:real;beginreset_sinus;if rba1.Checked then amp:=25; //amplitudo=1 vif rba2.Checked then amp:=50; //amplitudo=2 vif rba4.Checked then amp:=100; //amplitudo=4 vif rbf2.Checked then frek:=10; //frekuensi=4 Hzif rbf5.Checked then frek:=4; //frekuensi=5 Hzif rbf10.Checked then frek:=2; //frekuensi=10 Hzif rbp0.checked then pha:=0; //phase=0if rbp90.checked then pha:=pi/2; //phase=90if rbp180.checked then pha:=pi; //phase=180x:=strtoint(frmsinyal.edsumbux.Text);y:=strtoint(frmsinyal.edsumbuy.Text);sumbu1(20,120,x,y);for sx:=1 to 395 dobeginsy:=sin(sx/pi/frek+pha)*amp;frmsinyal.imgsinus.Canvas.pixels[sx+20,120-round(sy)]:=clred;end;

end;

procedure TFrmsinyal.Button2Click(Sender: TObject);vari,x,y,tinggi,lebar:integer;biner:string;tnd : integer;beginreset_kotak;if rbt30.checked then lebar:=30;if rbt60.checked then lebar:=60;if rbt100.checked then lebar:=100;if rbl10.checked then tinggi:=10;if rbl30.checked then tinggi:=30;if rbl50.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 doif biner[i]='1' thenif tnd=0 thenbegin tegak(20,120,lebar,tinggi,i);satu (20,120,lebar,tinggi,i);tnd:=1; endelse satu(20,120,lebar,tinggi,i)else if tnd=1 thenbegin tegak(20,120,lebar,tinggi,i);nol (20,120,lebar,tinggi,i);tnd:=0; endelse nol(20,120,lebar,tinggi,i);end;end.

Menampilkan tampilan reset sinus tanpa mereset kotakprocedure reset_sinus;varx,y:integer;beginfrmsinyal.imgsinus.Picture:=nil;frmsinyal.imgsinus.Refresh ;

x:=strtoint(frmsinyal.edsumbux.Text);y:=strtoint(frmsinyal.edsumbuy.Text);sumbu1(20,120,x,y);

end; Menampilkan tampilan reset kotak tanpa mereset sinusprocedure reset_kotak;varx,y:integer;begin

frmsinyal.imgkotak.Picture:=nil;frmsinyal.imgkotak.Refresh ;x:=strtoint(frmsinyal.edsumbux.Text);y:=strtoint(frmsinyal.edsumbuy.Text);

sumbu2(20,120,x,y);end;