Download

8/10/2010

Volt Meter & Ampere Meter With PIC


Volt meter & ampere meter with PIC ini dapat digunakan untuk mengukur tegangan dan arus secara bersamaan. Rangkaian volt meter & ampere meter with PIC ini menggunakan PIC16F876A sebagai pemroses data tegangan dan arus yang sedang di ukur. Rangkaian ini menggunakan penampil berupa LCD 16×2 yang digunakan untuk menmpilkan data hasil pengukuran tegangan dan arus. Dalam artikel volt meter & ampere meter with PIC ini yang dibahas hanya terbatas pada perangkat kerannya saja. Untuk lebih jelasnya dapat dilihat dari gambar rangkaian volt meter & ampere meter with PIC dibawah.

Gambar Rangkaian Volt Meter & Ampere Meter With PIC

Pada rangkaian volt meter & ampere meter with PIC diatas digunakan 3 buah tombol untuk seting calibrasi data pengukuran. Rangkaian ini pada dasarnya bekerja dengan sumber tegangan 5VDC.

8/07/2010

Cara Membuat Aplikasi Entri Data Dengan Delphi 7



Selamat sore agan-agan , pada postingan kali ini saya akan menyajikan tutorial mengenai Cara Membuat Aplikasi Entri  Data Delphi 7.Aplikasi ini dapat di gunakan oleh kasir untuk entri data  dan langsung di print.Terdengar sangat sulit !? Ternyata tidak.Aplikasi yang akan kita buat kali ini di buat sangat sederhana agar mudah di mengerti.Tidak ada database yang ngejelimet.Dan menjadikan array sebagai vault/tempat penyimpanan sementara data yang akan kita input.Lalu bagaimana caranya !?Makanya , pantengin terus blog ini :D

Buka borland delphi 7 anda , lalu tambahkan komponen-komponen berikut :


Komponen
Properties
Keterangan
Tlabel (3 buah)
Caption:Kode Barang , Nama Barang , harga

Tedit (3buah)
Name:edKodeBarang,edNamaBarang,edHarga

Tbutton (3buah)
Caption:Simpan,Tampilkan,Print
Name:btnSimpan,btnTampilkan,btnPrint

TMemo
Name:moLaporan
Hapus linesnya
TForm1
Name:FentriData , Caption: Entri Data
 

Lalu susun komponen-komponen tersebut sesuai gambar berikut














Tambahkan variabel berikut diantara implementation dan var

  1. var  
  2.   i:Integer;  
  3.   kodeBarang, namaBarang , harga : array [1..100] of string;  

Lalu buat sebuah procedure bernama procedure kondisiAwal tepat di bawah {$R *.dfm} , ketikan procedure berikut

  1. procedure kondisiAwal;  
  2. begin  
  3.   with FentriData do  
  4.     begin  
  5.       edKodeBarang.Clear;  
  6.       edNamaBarang.Clear;  
  7.       edHarga.Clear;  
  8.       btnTampilkan.Enabled:=false;  
  9.       btnPrint.Enabled:=false;  
  10.       i:=i+1;  
  11.       edKodeBarang.SetFocus;  
  12.     end;  
  13. end;  

Setelah itu pada FeditData event onShow , panggil procedure tadi seperti berikut

  1. procedure TFentriData.FormShow(Sender: TObject);  
  2. begin  
  3.   kondisiAwal;  
  4. end;  

Sekarang ,double-klik btnSimpan dan tambahkan kode seperti di bawah ini

  1. procedure TFentriData.btnSimpanClick(Sender: TObject);  
  2. begin  
  3.   if (edKodeBarang.Text='')or(edNamaBarang.Text='')or(edHarga.Text='') then  
  4.     begin  
  5.       ShowMessage('Data Tidak Lengkap');  
  6.     end  
  7.   else  
  8.     begin  
  9.       kodeBarang[i]:=edKodeBarang.Text;  
  10.       namaBarang[i]:=edNamaBarang.Text;  
  11.       harga[i]:=edHarga.Text;  
  12.       kondisiAwal;  
  13.       btnTampilkan.Enabled:=true;  
  14.     end;  
  15. end;  

Double-klik btnTampilkan lalu ketikan kode berikut

  1. procedure TFentriData.btnTampilkanClick(Sender: TObject);  
  2. var j:Integer;  
  3. begin  
  4.      moLaporan.Clear;  
  5.      moLaporan.Lines.Add('---------------------------------------------------------------------');  
  6.      moLaporan.Lines.Add('Kode Barang       Nama Barang         Harga ');  
  7.      moLaporan.Lines.Add('---------------------------------------------------------------------');  
  8.      for j:=1 to i do  
  9.      begin  
  10.         moLaporan.Lines.add(format('%8s  %19s   %22s',[kodeBarang[j],namaBarang[j],harga[j]]));  
  11.      end;  
  12.      btnPrint.Enabled:=true;  
  13. end;  

Terakhir agar data bisa di print , double-klik btnPrint lalu ketikan kode berikut

  1. procedure TFentriData.btnPrintClick(Sender: TObject);  
  2. var p : integer;  
  3.     dataCetak: TextFile;  
  4. begin  
  5.   AssignPrn(dataCetak) ;  
  6.    Rewrite(dataCetak) ;  
  7.    try  
  8.      for p := 0 to moLaporan.Lines.Count-1 do  
  9.        WriteLn(dataCetak, moLaporan.Lines[p]) ;  
  10.    finally  
  11.      CloseFile(dataCetak);  
  12.      i:=0;  
  13.    end;  
  14. end;  


Beres deh , sekarang jalankan program anda.Alurnya seperti ini : Anda tidak dapat menampilkan data sebelum ada data yang di simpan.Anda tidak dapat print data sebelum data di tampilkan di moLaporan.Anda juga tidak dapat menyimpan data bila ada edit yang masih kosong.Okey , coba anda inputkan data pada tiap field.Lalu tekan tombol simpan.Setelah itu anda dapat menampikan data atau menginput data lagi.Bila semua data yang di input telah di tampilkan , maka anda bisa melakukan proses print.Tiap proses print di panggil , maka otomatis data pada pada moLaporan di hapus.Bila masih ada kesalahan dalam program , silahkan bandingkan dengan program yang saya buat DISINI.Atau bila masih ada yang belum di mengerti , silahkan tinggalkan komentar.Sekian tutorial mengenai Cara Membuat Aplikasi Entri  Data Dengan Delphi 7 kali ini semoga bermanfaat.

8/05/2010

Membuat Pencarian Data Super Cepat Pada Delphi 7 - MySQL


Akhirnya posting lagi.Mohon maaf kepada agan yang melihat blog saya sepi dari konten :( ..Saya sedang disibukkan dengan pembuatan software sistem administrasi bengkel,tenaga saya beserta fikiran terkuras habis.Loh kok malah curhat !?
Hehe , apapula pencarian super cepat itu !?Bayangkan ketika kita memiliki database dengan ukuran file berlimpah.Suatu waktu kita membutuhkan data tertentu pada database tersebut.Apakah anda akan mencarinya satu persatu !? Saya tidak menyarankan bila data pada database berjumlah ratusan atau bahkan ribuan.Bisa berdarah-darah kayaknya :D .. Untuk itu saya akan memberikan tutorial membuat pencarian super cepat pada program delphi 7 yang di sandingkan dengan MySQL.Mari mulai.

Konsepnya seperti ini.Misal anda memiliki data karyawan dengan kategori : nama pengguna , user id , hak akses.Tambahkan comboBox dengan items kategori tadi.Tambahkan juga komponen TEdit.Pada event onChange TEdit inputkan kode berikut.

procedure TForm1.edit1Change(Sender: TObject);
var a : String;
begin
case comboBox1.ItemIndex of
    0 : a := 'nama_pengguna';    //
    1 : a := 'user_id'; // nama kolom pada tabel anda
    2 : a := 'hak_akses'; //
  end;
if (edit1.Text <> '') and (comboBox1.Text <> '') then
  begin
    QueryTabelAnda.Close;
    QueryTabelAnda.SQL.Clear;
    QueryTabelAnda.SQL.Add('select * from tabelAnda where '+a+' like "%'+edit1.Text+'%"');
   QueryTabelAnda.Open;
   dataGrid1.DataSource := QueryTabelAnda;
  end
else
  begin
    QueryTabelAnda.Close;
    QueryTabelAnda.SQL.Clear;
    QueryTabelAnda.SQL.Add('select * from tabelAnda');
    QueryTabelAnda.Open;
    dataGrid1.DataSource := QueryTabelAnda;
  end;
end; 

Untuk lebih jelasnya , perhatikan gambar dibawah ini.



Okey , sekian tutorial kali ini.Semoga bermanfaat.Mohon tinggalkan komentar :)

Oia , bila anda berminat untuk mempelajari delphi 7 dari tingkat dasar sampai mahir membuat aplikasi database sendiri.Silahkan kunjungi blog video tutorial saya DISINI.Tersedia video tutorial praktek selama 3 jam yang akan menuntun anda dengan mudah mempelajari pemrograman Delphi 7.

8/04/2010

Menggunakan MXLED.EXE untuk simulasi matriks LED

MXLED dikendalikan menggunakan dua buah port, yaitu sebuah Port sebagai port data dan sebuah lagi sebagai port kendali. Baik port data maupun port kendali diterima sebagai message pada WM_USER dengan sinyal pada wParam. Untuk menentukan bahwa sinyal yang diterima merupakan data atau kendali, MXLED akan melihat pada lParam. Jika lParam=2, maka sinyal yang diterima merupakan sinyal untuk data. Sedangkan jika lParam=1, maka sinyal yang diterima merupakan sinyal kendali.

Ada enam buah ukuran yang disediakan oleh MXLED, yaitu 8×16, 8×32, 8×48, 16×16, 16×32, dan 16×48. Untuk setiap ukuran tersebut ada dua pilihan orientasi, yaitu landscape dan portrait.

Sinyal kendali hanya menggunakan bit.0 dan bit.1 saja. bit.0 digunakan untuk mereset counter, sedangkan bit.1 digunakan untuk menaikkan counter.

Sinyal data digunakan untuk menentukan led mana yang menyala dan led mana yang padam. Untuk setiap saatnya, hanya ada delapan buah led yang dikendalikan, yaitu led pada kolom yang sedang aktif. Untuk menentukan kolom mana yang aktif, kita menggunakan counter. Pada saat counter direset, maka kolom 0 aktif. kemudian jika kita memberikan sinyal clock, yaitu sinyal pada bit.1, maka kolom aktif akan berpindah ke kolom 1. Kemudian jika diberikan sinyal clock lagi, maka kolom yang aktif menjadi kolom 2. begitu seterusnya.

Ada dua pilihan sinyal clock, yaitu transisi L ke H atau sebaliknya, yaitu transisi H ke L.

Susunan kolom-kolom LED tergantung dari ukuran maupun orientasi. Untuk orientasi landscape, maka kolom sebelah kiri merupakan kolom bawah dan semakin ke kanan semakin naik. Ini berlaku untuk ukuran 8x. Sedangkan untuk ukuran 16x, maka susunan LED dibagi menjadi dua blok baris. Nomor kolom pertama pada blok baris kedua adalah nomor kolom terakhir blok baris pertama ditambah 1.

Lebih jelasnya adalah sebagai berikut:

16x16

Baris0..7 : 0 1 2 ......15

Baris8..15: 16 17 18 ......31

16x32

Baris0..7 : 0 1 2 ......31

Baris8..15: 32 33 34 ......63

16x48

Baris0..7 : 0 1 2 ......47

Baris8..15: 48 49 50 ......95

Untuk setiap block baris, bit.0 akan mengendalikan LED paling atas, sedangkan bit.7 akan mengendalikan LED paling bawah.

Untuk orientasi portrait, kita membagi LED menjadi kolom atau blok kolom dan baris. Counter akan menentukan baris yang aktif. Baris paling atas adalah baris 0, dan akan aktif jika sinyal reset diaktifkan. Baris aktif akan menaik seiring dengan didapatnya sinyal clock.

Untuk ukuran 8x, kolom 0 adalah kolom paling kiri dan diaktifkan oleh bit.0. Sedangkan kolom 7 adalah kolom paling kanan dan diaktifkan oleh bit.7

Ketentuan untuk ukuran 16x bisa dianalogikan dari posisi pada orientasi landscape.

MXLED disimulasikan untuk bekerja seperti pada sistem matriks yang sesungguhnya. Jika kita mengatur perubahan baris atau kolom aktifnya dengan lambat, maka hanya akan terlihat delapan lampu yang bergerak melompat-lompat. Akan tetapi jika perubahannya cukup cepat, maka perubahan nyala lampu-lampunya akan terlihat mantap tidak berkedip. Jadi simulasi MXLED akan terasa seperti matriks led sungguhan.
Newer Posts Older Posts Home
Aulia DirUt. Powered by Blogger.
 

Followers

 

Templates by Nano Yulianto | CSS3 by David Walsh | Powered by {N}Code & Blogger