Grafik Sinyal Digital

Seluruh sistem operasi dalam komputer sebenarnya menggunakan kombinasi bilangan biner yaitu 0 (nol) dan 1 (satu), proses tersebut kemudian dinamakan proses digital. Komponen TChart mendukung pembuatan grafik untuk sinyal digital model ini.

Buka kembali project TChart dari artikel terdahulu atau jika tidak punya download TChart Source Code ver.1.8 dan segera ekstrak di komputer kamu.. sebelum membukanya, buat dulu driver ODBC untuk database linked (baca artikel Menampilkan Database dalam Grafik, di bagian awal artikel ini ada tulisan tentang cara membuat driver ODBC). Sesudah itu download Digital Source Code, ekstrak di komputer kamu dan tambahkan dengan meng-klik kanan mouse pada project TChart.exe, pilih menu Add.. kemudian cari file .pas yang ingin ditambahkan seperti gambar di bawah ini

Aktifkan form fmMainTChart (unit uMainTChart), kemudian klik ganda komponen popmenu pmOtherDemo.. klik ganda menu Digital Chart.. dan tambahkan kode program seperti ini

procedure TfmMainTChart.miDigitalChartClick(Sender: TObject);
begin
  fmDigital.ShowModal;
end;

Jalankan aplikasi dengan menekan tombol Run… jika muncul pesan Form ‘fmMainTChart‘ references form ‘fmDigital’ declarated in unit ‘uDigital’ which is not in your USES list. Do you wish to add it? tekan tombol Yes. Tekan kembali tombol Run.. Jika tidak ada lagi pesan yang muncul, aplikasi telah berjalan dengan baik.

1. Inisialisasi aplikasi

Umumnya grafik untuk sinyal digital ditampilkan dalam bentuk ‘tangga’, klik ganda komponen TChart, aktifkan tab Series, kemudian pilih series (misalnya Channel 1) dan aktifkan tab Format.. Perhatikan gambar di bawah, checkbox Stairs diberi tanda ‘centang’ untuk memberi efek ‘tangga’ pada series grafik yang dipilih. Property Stairs untuk keempat series diberi tanda ‘centang’..

Pada bagian public unit uDigital, dideklarasikan variabel bRunTimer dengan tipe data Boolean, variabel ini menentukan jalan tidaknya proses simulasi data grafik. Inisialisasi beberapa property komponen TChart dan variabel bRunTimer, ditentukan dalam event OnCreate dari form fmDigital. Aktifkan form fmDigital kemudian klik ganda sel di sebelah kanan event OnCreate..

procedure TfmDigital.FormCreate(Sender: TObject);
begin
  bRunTimer:= False;
  Chart1.ApplyZOrder:= chOrder.Checked;
  Chart1.Legend.Inverted:= True;
end;

Property ApplyZOrder digunakan untuk mengontrol ketika beberapa series pada komponen TChart yang sama harus ditampilkan terpisah dalam sumbu Z yang berbeda, sehingga keempat series tidak terlihat ‘menumpuk’ tetapi ada jarak untuk masing-masing series. Property ini berlaku jika grafik ditampilkan 3D dan mempunyai lebih dari satu series. Pemberian nilai True pada property Inverted dari subtab Legend untuk membalikkan urutan legend grafik, dimulai dari series berindeks terbesar ke yang terkecil.

2. Tampilan grafik

Legend grafik ditampilkan sesuai dengan prosedur Chart1GetLegendText, klik ganda sel di sebelah kanan event OnGetLegendText dari komponen TChart..

procedure TfmDigital.Chart1GetLegendText(Sender: TCustomAxisPanel;
 LegendStyle: TLegendStyle; Index: Integer; var LegendText: String);
begin
  if LegendStyle = lsLastValues then
    LegendText:= LegendText+' --> '+Chart1.Series[Index].Title;
end;

Teks legend grafik akan diganti jika property LegendStyle komponen TChart bernilai lsLastValues (atau checkbox chLastValues diberi tanda ‘centang’). Klik ganda checkbox chLastValues..

procedure TfmDigital.chLastValuesClick(Sender: TObject);
begin
  if chLastValues.Checked then
    Chart1.Legend.LegendStyle:= lsLastValues
  else
    Chart1.Legend.LegendStyle:= lsAuto;
end;

Property LegendStyle untuk menentukan materi mana yang akan ditampilkan dalam legend grafik. Jika diberi nilai Automatic (atau lsAuto) maka secara otomatis ‘judul’ series akan menjadi legend grafik. Dan jika diberi nilai Last Values (atau lsLastValues) maka legend grafik sesuai dengan prosedur Chart1GetLegendText di atas.

Dua prosedur untuk kedua komponen checkbox yang lain, checkbox chView untuk menampilkan grafik dalam wujud 3 Dimensi sedang checkbox chOrder untuk mengontrol ada tidaknya sumbu Z grafik. Klik ganda pada masing-masing komponen tersebut..

procedure TfmDigital.chViewClick(Sender: TObject);
begin
  Chart1.View3D:= chView.Checked;
end;

procedure TfmDigital.chOrderClick(Sender: TObject);
begin
  Chart1.ApplyZOrder:= chOrder.Checked;
  Chart1.Repaint;
end;

3. Simulasi data

Untuk simulasi aplikasi, data sinyal digital berupa data random dengan range 2 data (0 dan 1) di-plot pada keempat series dengan menggunakan komponen timer Timer1. Klik ganda komponen tersebut..

procedure TfmDigital.Timer1Timer(Sender: TObject);
var
  iGainData: Longint;
begin
  for iGainData:= 0 to Chart1.SeriesCount-1 do
  with Chart1.Series[iGainData] do
    Add(2*iGainData+Random(2), '', clTeeColor);

  with Chart1.BottomAxis do 
  begin
    Automatic := False;
    Maximum := Series1.XValues.Last;
    Minimum := Maximum - 100;
  end;
end;

Variabel iGainData untuk menaikkan series pada posisi tertentu sehingga keempat series tersebut tidak saling tumpang tindih. Plot data pada masing-masing series menggunakan metode Add dengan syntax :

function Add(Const AValue:Double; Const ALabel:String;
             AColor:TColor):Longint; virtual;

Metode Add digunakan untuk menambahkan data pada series jika nilai sumbu horisontal grafik (x) secara otomatis ditentukan ketika nilai sumbu vertikal (y) akan di-plot. Varibel ALabel dan AColor merupakan parameter pilihan seperti pada metode AddXY.

Nilai Y grafik untuk series kedua bergeser secara vertikal sebanyak 2 (dua) kalinya. Sedang yang ketiga bergeser 4 (empat) kalinya dan yang keempat bergeser sebanyak 6 (enam) kalinya.

Kode program selanjutnya untuk menggeser grafik ke kiri setiap ada data yang di-plot dalam series. Nilai skala maksimum sumbu bawah grafik mengambil nilai terakhir yang telah di-plot dalam series. Dan range sumbu horisontal grafik yang ingin ditampilkan adalah 100 data. Kode untuk menentukan sumbu horisontal ini dapat ditulis dalam event OnAfterAdd pada keempat series.

Untuk mengendalikan bekerja/tidaknya timer simulasi data, digunakan komponen button btRun. Klik ganda komponen ini..

procedure TfmDigital.btRunClick(Sender: TObject);
begin
  bRunTimer:= not bRunTimer;
  Timer1.Enabled:= bRunTimer;
  if bRunTimer then
    btRun.Caption:= 'Stop'
  else
    btRun.Caption:= '&Run';
end;

Proses akan bekerja ketika variabel bRunTimer bernilai True, jika sebaliknya timer akan terhenti.

Nuwun..

Daftar download untuk artikel ini:
1. TChart Source Code ver.1.8 - 183.54 kB
2. Digital Source Code - 2.3 kB
3. TChart Application ver.1.8 - 825.36 kB

Related Posts

  1. Menampilkan Nilai Statistik dari Grafik
  2. Grafik Mini yang Resizeable dan Garis Divider
  3. Membagi Grafik dalam Beberapa Halaman
  4. Mengubah Background Grafik
  5. Zoom dan Scrolling Grafik dengan Keyboard
avatar

About rumono

Bukan siapa-siapa, hanya seorang ‘manusia’ yang pernah lahir di suatu tempat di Brebes, Jawa Tengah. Sangat gemar bacaan sejarah dunia masa lalu, sejarah perang dan pribadi-pribadi yang memberi warna sejarah dunia. Nge-game pun bisa dilakoni sampai berhari-hari asal ada hubungannya dengan sejarah dunia dan perang...