Skip to content
Jan 18 12

Cek koneksi dan tes port NI USB-6008

by persada

NI USB-6008 merupakan alat untuk akuisisi data yang dikembangkan oleh National Instrument (NI). Pada umumnya, alat ini digunakan bersama dengan software LabVIEW, yang juga merupakan besutan dari NI.

Pada tutorial kali ini, akan dibahas mengenai cara untuk melakukan pengecekan koneksi dan tes port NI USB-6008, terutama ketika baru saja melakukan instalasi drivernya.

Langkah-langkah pengecekan apakah NI USB-6008 telah terpasang dengan benar di komputer sebenarnya dapat dilakukan dengan mudah. Silakan ikut caranya berikut :

  1. Buka aplikasi MAX (Measurement & Automation Explorer), software bawaan dari NI ketika menginstall driver NI USB 6008
  2. Buka tree pada “Device and Interface”
  3. Pilih “NI USB-6008”, yang berwarna hijau (aktif). Contoh diatas, USB yang aktif adalah Dev5.

    NI USB-6008

  4. Lakukan “Self-Test”. Jika tidak ada masalah, maka driver NI USB-6008 telah terinstall dengan baik di komputer.

    Informasi "Self-test" sukses.

  5. Jika masih penasaran dan ingin melakukan test lebih lanjut, dapat membuka bagian “Test Panels”. Di dalam panel ini, ada 4 macam test yang dapat dilakukan, yaitu test untuk Analog Input, Analog Output, Digital I/O dan Counter I/O.

    Tampilan test panel

  6. Untuk melakukan test untuk semua macam pilihan, harus dilakukan wiring atau pengkabelan terlebih dahulu sesuai dengan port-port yang akan diuji. Jika ragu/lupa mengenai posisi port-port tertentu, dapat membuka bantuan di “Device Pinout”

    Device Terminal untuk NI USB-6008

  7. Device pinout ada pada menu bar di atas, atau bisa diakses dengan cara klik kanan pada nama device di “Device and Interface”, kemudian pilih Device Pinout.

    Membuka device pinout

Detail untuk uji menggunakan “Test Panels” akan dilanjutkan pada tutorial berikutnya, Insya Allah :-D

Semoga bermanfaat.. (drinking)

Jun 14 11

Tips Operasi Aritmatika dengan Matriks ukuran besar di Matlab

by persada

Berikut ini tips untuk menyelesaikan operasi aritmatik jika matrik yg dikenai operasi sangat besar (memakan banyak memori).
Agar tidak membengkak, maka operasi dapat dilakukan dengan cara dipecah (di-partisi), sehingga operasi tidak dilakukan sekaligus, tapi dalam beberapa step, dengan operasi yg sama. Namun, tips ini hanya berlaku untuk operasi antar-elemen matrik, bukan operasi aritmatika matrik!
Langkah algoritmanya :

  1. Tentukan banyak elemen/data (m)
  2. Tentukan jumlah partisi (np)
  3. Hitung jumlah elemen yg dikenai operasi tiap partisi (k)
  4. Selama 1<=i<=n-1, lakukan 5-6
  5. Tentukan nomor data yg dikenai operasi mulai dari k*(i-1)+1 sampai k*(i)
  6. Lakukan operasi aritmatika berdasarkan nomor data yg telah ditentukan.

Tips ini dapat digunakan untuk mengatasi masalah out of memory ketika melakukan perhitungan, misal operasi penjumlahan dua buah matriks ukuran besar, C=A+B. Namun, dengan menggunakan tips ini, komputasi yg dibutuhkan jauh lebih lambat. Lebih baik lambat daripada error. :D

Contoh aplikasi algoritma tersebut di matlab, disajikan berikut (contoh ini operasi penjumlahan, tapi bisa diganti dengan yang lain):


clear
clc

n = 5000;
% matrik yang dikenai operasi aritmatika
A = rand(n);
B = rand(n);

% tempat hasil penjumlahan
C = zeros(n);

m=n*n; % jumlah data (n^2)
np = 20; % jumlah pecahan/partisi matrik
k = ceil(m / np); % mencari jumlah data dalam tiap partisi
 % dibulatkan keatas
for i=1:np-1
 idx = k * (i-1)+1 : k*i; % index tiap partisi (no data)
 C(idx) = A(idx)+B(idx); % operasi aritmatika - elemen A dgn elemen B
end

% penjumlahan partisi terakhir
idx = k*(np-1)+1 : m; % tidak sampai k*np, karena bisa out of index.
C(idx) = A(idx)+B(idx);

Semoga bermanfaat (drinking)

Jun 6 11

Tips perhitungan matrik diagonal dengan konstanta di Matlab

by persada

Terdapat sebuah contoh kasus :

  • Matrik A (5000×5000) , matrik diagonal.
  • k sembarang, misal k = 4
  • n ukuran matrik = 5000
  • operasi aljabar = perkalian.

Permasalah diatas, dapat diselesaikan dengan relatif mudah menggunakan Matlab.


disp ('Cara biasa');
tic
B=A*k;
toc()

Walaupun solusi diatas dapat menyelesaikan masalah dengan benar, tetapi apakah cara tersebut efisien? Bahkan, jika matrik A terlalu besar, ada kemungkinan keluar error “Out of memory. Type HELP MEMORY for your options.

Salah satu tips untuk menyelesaikan permasalahan tersebut dengan efisien adalah berikut.
1) Ambil elemen diagonal matrik, misal disimpan di variabel D.

D = diag (A)

2) Kenai vektor D dengan operasi aljabar dan k, misal perkalian.

D = D * k;

3) Ganti semua elemen diagonal matrik A dengan vektor D.

for i = 1:n
   A(i,i) = D(i)
end

Langkah ke-3, dapat dirubah sedikit dengan memperhatikan kesesuaian indeks matrik dan indeks vektor di Matlab.

Perhatikan sisi diagonalnya. Untuk n = 3, akan diperoleh deret :

1 5 9

Jika diperhatikan, selisih diantaranya adalah 4, atau (n+1)

Maka, langkah ke-3 diatas dapat dituliskan dalam sintak Matlab :

 i = 1:n+1:n*n; // indeks elemen diagonal
A(i) = D; // mengganti elemen diagonal A 

Dari hasil percobaan, cara kedua lebih cepat 100x dibandingkan cara pertama.

 

Hasil Percobaan

Berikut kode lengkap untuk percobaan :

 % Atur parameter %
n = 5000;
k = 10;

% Buat matrik nol %
A = zeros(n);

% Percobaan 1 %
% Bangkitkan data matrik diagonal %
p = 1:n+1:n*n;
A(p)=p;

% Cara pertama, cara biasa %
disp ('Cara biasa');
tic
A=A*k;
toc()

% Percobaan 2 %
% Bangkitkan data matrik diagonal %
p = 1:n+1:n*n;
A(p)=p;

% Cara kedua, cara lebih efisien %
disp ('Cara cepat');
tic
D = diag(A);
[m,n]=size(A);
i = 1:n+1:n*n;
D = D * k;
A(i)=D;
toc() 

Semoga bermanfaat. Ditunggu komentar dan masukkannya… :-D

Jun 6 11

Membuat Tab didalam Figure pada Matlab

by persada

Untuk membuat Tab, atau bisa juga disebut dengan multiple-panel, dalam figure Matlab, sebenarnya sederhana. Cara yang perlu dilakukan adalah menambahkan beberapa kode :


% Mempersiapkan figure
figure (1)

% Menghilangkan warning dari uitabgroup
warning off MATLAB:uitabgroup:OldVersion

% Membuat group dari tab-tab
hTG = uitabgroup;
% Membuat tab pertama
tab1 = uitab(hTG, 'title','Tab 1');
% Membuat tab kedua
tab2 = uitab(hTG, 'title','Tab 2');

Kode tersebut akan membuat tab sebanyak 2 buah, dengan judul Tab 1 dan Tab 2. Hasilnya kira-kira seperti ini :

 

Tab di dalam Figure

Untuk mengisi gambar di masing2 tab, sebagai contoh gambar sinus di tab1 dan gambar persamaan y=x^2+x-12 di tab2, tambahkan kode diatas dengan kode berikut :


% Gambar grafik di tab pertama
x = 0:0.1:4;
y = sin(x*pi);
axes('parent',tab1);    % memilih tempat plot
 % di tab 1
plot (x,y)
title ('Grafik Sinus');

% Gambar grafik di tab kedua
x = -5:0.1:5;
y = x.^2+x-12; %(x-3)(x+4)
axes ('parent',tab2);   % memilih tempat plot
 % di tab 2
plot (x,y)
title ('Grafik x^2+x-12')

Hasilnya seperti gambar berikut :

 

Tab 1 - Grafik Sinus

Tab 2 - Grafik persamaan y = x^2+x-12

 

Kode yang harus diperhatikan adalah kode untuk memilih tab manakah yang akan diupdate isinya, yaitu kode :


axes ('parent','nama_tab') % mengupdate isi tab dengan nama tab
                           % adalah "nama_tab"

Jika salah dalam memberikan nama tab, maka bisa jadi tab yang diupdate tidak sesuai atau bisa error juga.

Semoga berguna, selamat mencoba (drinking)

Dikutip dengan perubahan :

Jun 3 11

Membuka citra dengan menggunakan Delphi

by persada

Membuka citra atau open image dengan menggunakan delphi, dapat dengan mudah dilakukan dengan menggunakan dua komponen default dari delphi, yaitu menggunakan TImage dan TOpenPictureDialog. Berikut ini langkah-langkah untuk membuatnya.

1. Setelah membuka project baru, ambil Standard-> Panel, kemudian atur propertinya :

  • Hapus Caption
  • Height = 300
  • Widht = 200
  • Top = 0
  • Left = 0

2. Tambahkan sebuah edit text dan button. Edit text akan digunakan untuk menuliskan nama file citra, dan button untuk trigger membuka dialog membuka gambar. Atur sedikit properti keduanya

  • Edit1–> hapus text
  • Button1 –> ubah Caption menjadi “Open”

3. Tambahkan komponen Additional -> Image, taruh di dalam Panel. Atur juga propertinya

  • Left = 10
  • Top = 20
  • Width =200
  • Height = 220

4. Terakhir, tambahkan komponen Dialog->OpenPictureDialog. Taruh di sembarang tempat di form.

5. Tampilan form kurang lebih akan menjadi seperti ini :

Tampilan Form Buka Citra

6. Isi event onClick dari Button 1 dengan kode berikut :


procedure TForm1.Button1Click(Sender: TObject);
var
namaFile : string; // digunakan untuk menyimpan nama file sementara
begin
if (OpenPictureDialog1.Execute) then // akan bernilai true jika tombol OPEN ditekan, sekaligus membuka kotak dialog
begin
namaFile:=OpenPictureDialog1.FileName; // mengambil string nama file, dan disimpan ke variable
Image1.Picture.LoadFromFile(namaFile); // membuka sebuah citra dari file, sesuai pilihan
Edit1.Text:=namaFile; // menuliskan nama file dari citra yang dipilih
end;
end;

Selamat mencoba (drinking)

 

 

Nov 2 10

Smaller exe size using Lazarus

by persada

Setelah mencoba menggunakan Lazarus, ternyata terdapat satu hal yang cukup  krusial, yaitu masalah ukuran dari file executable Lazarus. Saat menggunakan Delphi,  ketika form kosong (default) di-compile, hasil file execute-nya adalah sekitar 300 KB.  Namun, ketika menggunakan Lazarus, filenya menjadi sangat besar, menjadi lebih dari  10an MB.

Setelah mencari di Internet dan Forum, ternyata secara default compilernya Lazarus  memang di-full config, sehingga memudahkan user untuk debug. Namun, drawback-nya adalah file nya menjadi sangat besar. Agar bisa memangkas file tersebut, maka seluruh config dihilangkan centangnya, sehingga ukurannya bisa kecil, menjadi 1,5 MB. Langkah detailnya adalah :

Selamat mencoba (drinking)

Sumber : http://forum.lazarus.freepascal.org

Oct 17 10

Instalasi ZeosLib di Delphi 7

by persada

ZeosLib, merupakan component tambahan untuk Delphi 7 yang berfungsi sebagai penghubung antara Delphi 7 dengan database, seperti MySQL, PostgreSQL, SQLite, maupun Oracle. Konfigurasi Zeos tidaklah sulit, sehingga sangat membantu user dalam mengembangkan aplikasi desktop berbasis database.

File instalasi Zeos dapat di-download disini, dengan versi terbarunya adalah ZeosDBO-6.6.6-stable. Instalasi ZeosDBO ini tidak cukup sulit, namun instalasinya harus urut. Berikut ini sedikit penjelasan mengenai instalasi ZeosDBO di Delphi 7.

  1. Extract *.rar dari ZeosDBO di tempat yang anda inginkan. Pastikan bahwa lokasi dari folder ZeosDBO TIDAK diubah-ubah.
  2. Buka folder ZEOSDBO-6.6.6-stable, kemudian pilih buka folder package.
  3. Terdapat banyak pilihian package yang disupport oleh ZEOSDBO-6.6.6-stable. Buka folder delphi7.
  4. Cari file bertipe delphi package, bisa dengan sortir berdasarkan jenis datanya di explorer.
  5. Double-click pada file ZCore.bpl, setelah file terbuka di Delphi7, kemudian click Compile.
  6. Lakukan hal yang sama pada file -file (urutan bebas).
    1. ZParseSQL.bpl
    2. ZPlain.bpl
    3. ZDbc.bpl
    4. ZComponent.bpl
  7. Double-click pada file ZComponentDesign, kemudian click Compile diteruskan dengan click Install. Tunggu sejenak, akan muncul pesan bahwa ZeosDBO telah terinstall.

Setelah ZeosDBO berhasil diinstall, langkah terakhir adalah link file source dan build dari package delphi 7 ke dalam enviroment Delphi 7, dengan cara :

  1. Di Menu utama Delphi 7, pilih Tools –> Enviroment Options –> Library
  2. Add direktori di Library Path, dengan click button di sebelah kanan [...]
  3. Tulis atau cari direktori ZeosDBO. Direktori yang penting adalah direktori ZEOSDBO-6.6.6-stable\src dan ZEOSDBO-6.6.6-stable\package\delphi7\build.
  4. Klik OK dan tutup Enviroment Options. Selesai.

Semoga bisa membantu, dan selamat mencoba (drinking)

Oct 12 10

PostgreSQL 9.0.1, powerfull free RDBMS

by persada

Logo Postgres

PostgreSQL, merupakan salah satu RDBMS (Relational Database Management System) yang handal, ditambah lagi lisensi dari postgreSQL adalah free, sehingga bisa digunakan dan diupgrade dengan mudah. PostgreSQL juga dapat digunakan di berbagai platform, sehingga layak menjadi salah satu pertimbangan dalam pemilihan RDBMS.

Seri terbaru dari PostgreSQL adalah versi 9.0.1, yang telah di-release dari website resminya. Untuk mendapatkan file installernya, dapat didownload di link ini. Jangan lupa pastikan file instalasi yang didownload sesuai dengan OS yang digunakan.

Operasi-operasi yang dapat dilakukan di PostgreSQL meliputi operasi standart SQL, ditambah lagi beberapa operasi khusus yang dikembangkan oleh PostgreSQL, yang bisa membantu pengguna menangani masalah yang rumit.

pgAdmin III

SQL Shell

Untuk melakukan berbagai operasi database, dapat menggunakan console dari PostgreSQL atau dari administrator bawaan dari PostgreSQL, yaitu pgAdmin III. Sebelum mempelajari tentang pgAdmin III, ada baiknya mencoba versi shell / console PostgreSQL terlebih dahulu. Selamat mencoba. (drinking)

Sep 22 10

Delphi 7 Personal Edition

by persada

Delphi 7 Personal Edition, merupakan versi *lite* dari Delphi 7, dan yang paling penting adalah untuk versi ini tidak dipungut biaya alias FREE! (yahoo)

Karena secara resmi delphi bukan lagi milik borland, maka ketika dicari di website resminya tidak ditemukan link untuk download D7 ini. Setelah searching, akhirnya ketemu beberapa file-hosting yang masih menyediakan master dari Delphi 7 PE ini. Cekidot linknya (drinking) :

Jangan lupa, untuk sedot hilangkan tanda (*) nya dahulu..

Semoga berguna.. :-D

Aug 9 10

Running external files using Delphi 7

by persada

Langsung saja, pembahasan kali ini adalah tutorial mengenai beberapa cara untuk me-run file external, seperti file executable (*.exe), file text (*.txt) menggunakan Delphi 7. Terdapat berbagai macam cara untuk me-run file external menggunakan Delphi, berikut ini saya akan paparkan sebagain saja. Cara yang pertama, yang paling sederhana, adalah menggunakan command winexec.

winexec (‘namafile.exe’);

Contoh dari penggunaan command ini untuk membuka notepad kosong, dengan menggunakan code :

winexec (‘notepad.exe’);

Ketika program dijalankan, maka program tersebut akan membuka notepad. Cukup sederhana, dan selesai :-D

Cara kedua, yang ‘sedikit’ rumit (okok) , adalah menggunakan bantuan dari API (Application Programming Interface) yang juga sudah tersedia di dalam delphi, yaitu menggunakan fungsi ShellExecute yang terdapat pada unit ShellAPI. Format penggunaannya adalah :

function ShellExecute (hWnd :HWND; Operation, FileName, Parameters,

Directory: PChar; ShowCmd: Integer): HINST; stdcall

dengan

  • hWnd : Handle
  • Operation : operasi yang akan dilakukan. Bisa diisi dengan ‘open’, ‘explore’, ‘print’. Namun, operasi yang sering digunakan adalah operasi ‘open’.
  • FileName : file yang akan dibuka berikut nama foldernya.
  • Parameter : tambahan parameter yang akan diberikan ke file. Bila tidak ada, diisikan nil.
  • Directory : alamat default untuk aplikasi yang dibuka. Bila tidak ada, diisikan nil.
  • ShowCmd : state/mode dari aplikasi yang akan dibuka. Ada beberapa macam mode :
    • SW_SHOW
    • SW_MINIMIZE
    • SW_MAXIMIZE
    • SW_HIDE

Untuk menggunakan fungsi ShellExecute, terlebih dahulu HARUS ditambahkan ‘ShellAPI‘ pada bagian USES. Contoh penggunaanya fungsi diatas adalah seperti ini :

  • Membuka notepad :

    ShellExecute(Handle, ‘open’, ‘c:\Windows\notepad.exe’,

    nil, nil, SW_SHOWNORMAL)

    • Membuka sembarang file txt dengan notepad :

    ShellExecute(Handle,’open’, ‘c:\windows\notepad.exe’,

    ‘c:\SomeText.txt’, nil, SW_SHOWNORMAL);

    • Membuka explorer dari suatu folder :

    ShellExecute(Handle,’open’, ‘c:\Download’, nil, nil, SW_SHOWNORMAL) ;

    Semoga bermanfaat (drinking) If you have any question, please fell free to ask :-D