Lazada Indonesia

Friday, October 14, 2011

Komunikasi Serial Antara ATMega8 dengan Simulink Matlab

Simulink merupakan salah satu toolbox bawaan Matlab sebagai pelengkap yang dapat digunakan untuk berbagai macam keperluan. Salah satunya adalah berkomunikasi dengan peralatan eksternal. Komunikasi dapat dilakukan dengan berbagai macam cara, diantara salah satunya adalah dengan port serial. Dengan menggunakan toolbox simulink, kita dapat mengakuisisi data tanpa perlu berurusan dengan rumitnya coding. Jika pada tulisan sebelumnya telah diberikan contoh mengakuisisi data dengan script Matlab, maka pada kesempatan kali ini akan diberikan sedikit contoh komunikasi serial antara ATmega8 dengan Simulink Matlab.
Untuk dapat membuat komunikasi serial antara ATmega8 dengan Simulink, maka kita harus membuat model simulink. Hanya 2 buah library model saja untuk dapat mengakuisisi dan menampilkannya. Library yang dibutuhkan adalah Query Instrument dan Display.

Untuk membuatnya, ikuti langkah-langkah berikut:
1. Buka Maltab, kemudian buka Simulink dengan cara
   a. Mengetik simulink pada Command Window, atau dengan
   b. Klik Start pada Matlab --> Simulink --> Library Browser,
  kemudian buat sebuah file model baru dengan cara klik File --> New --> Model
2. Pada Simulink Library Browser, cara library dengan mengikuti langkah berikut
   1) Ketika Instrument
   2) klik icon search
   3) drag Query Instrument ke berkas Model

3. Tampilan setelah mengambil Query Instrumenti adalah sebegai berikut

4. Dengan langkah yang sama pada poin 2 & 3, cari library Display

5. Setelah ditemukan, drag pada media model seperti berikut

6. Kemudian tambahkan koneksi antara Query Instrument dan Display

7. Kemudian double klik pada Query Instrument untuk mengatur setting serial baud rate 115200. Samakan setting seperti tampilan berikut

8.  Kemudian langkah selanjutnya adalah membuat project pada ATmega8. Dengan menggunakan Code Vision Wizard, kita bisa dengan mudah membuat program serial. Pertama, atur Chip sesuai dengan tipe ATmega8 yang dipakai, kemudian clock yang digunakan adalah 11.059200 M

9. Kemudian klik Tab USART. Beri tanda cek pada Transmintter, kemudian pilih baud rate dengan nilai 115200
Kemudian klik File --> Save dan Generate
10. Kemudian pada coding, tambahkan
      #include <delay.h>

11. Tambahkan code berikut
      int i;
      for(i=1; i<100; i++)
       {
        printf("%d",i*50);
        putchar(0x0A);
        delay_ms(250);
       }
Kemudian compile dan flash ke ATmega8, dan verify sehingga sukses.
12. Kemudian pindah pada window model simulink. isikan nilai time simulation dengan nilai 100. Kemudian klik icon Start Simulation.

13. Hasil simulasi pada t=12, tampil nilai pada display

14. Hasil simulasi pada t=59, tampil nilai pada display

Demikian semoga bermanfaat.

Saturday, October 8, 2011

Menampilkan Image Pada Visual Basic 6

Pengantar

Tentunya Anda tidak akan asing dengan image Lenna disamping, dimana image tersebut telah digunakan secara luas sebagai image standar untuk operasi image processing atau pengolahan citra digital.
Menurut beberapa sumber, ternyata Lena wanita yang ada pada image tersebut adalah salah satu model yang ada pada majalah Play Boy. Citra/image tersebut telah dijadikan sebagai standar bagi pemroresan citra dan kompresi citra. Wanita tersebut telah dinobatkan sebagai The First Lady Of The Internet.

Jika Anda menunjukkan Gambar di atas dan bertanya kepada seseorang yang bergerak di bidang pengolahan citra, dia pasti akan tahu bahwa itu adalah “Gambar Lena”, tapi mungkin dia tidak tahu siapa Lena. Lena adalah seorang gadis playmate majalah Playboy tahun 1972.
Pada tahun 70-an, seorang periset dari University of Southern Carolina sedang mengerjakan sebuah algoritma kompresi dan memindai gambar Lena, yang ada di lembaran tengah (centerspread) majalah Playboy. Sejak saat itu Gambar Lena telah menjadi standar industri sebagai bahan untuk menguji algoritma manipulasi dan transmisi citra elektronik. Selama lebih dari 25 tahun sejak Lena diperkenalkan, tidak ada gambar yang lebih penting daripada Lena dalam bidang manipulasi dan komunikasi citra digital. Lena telah dianggap sebagai Ibu Negara Internet.

Mengapa Lena?

Ada banyak gambar lain di dunia ini yang dapat digunakan untuk menguji teknologi kompresi dan teknologi manipulasi citra yang lain, namun Lena dipilih karena dua alasan. Alasan pertama adalah alasan teknis. Gambar Lena memiliki gabungan detail, pencahayaan, dan tekstur yang cocok untuk menguji berbagai algoritma. Jika suatu algoritma diaplikasikan terhadap gambar Lena maka dapat dilihat bagaimana algoritma itu berpengaruh terhadap keseluruhan gambar—misalnya apakah satu bagian menjadi lebih baik atau lebih jelek dari bagian yang lain. Alasan yang kedua sama sekali tidak teknis. Kebanyakan periset citra adalah laki-laki yang cenderung tertarik pada wanita cantik, sehingga gambar Lena lebih dipilih dibanding gambar yang lain.
Tidak semua pihak setuju penggunaan gambar Lena pada publikasi ilmiah. Ketidaksetujuan ini disebabkan karena asal gambar itu, yaitu dari Playboy. Gambar itu diambil dari majalah yang oleh sebagian orang dianggap merendahkan wanita sehingga sebaiknya tidak digunakan. Sebagian yang lain menganggap sebaiknya gambar yang memiliki hak cipta tidak digunakan di publikasi ilmiah.
Majalah Playboy sendiri tadinya hendak menuntut penggunaan Gambar Lena, namun kini hal itu tidak dilakukan lagi. Justru majalah tersebut membantu melacak kembali informasi mengenai gambar Lena, misalnya kamera dan film apa yang digunakan, serta bagaimana pemrosesan gambar dilakukan. Hal ini dilakukan oleh majalah Playboy karena menganggap Lena sebagai suatu fenomena yang patut dieksploitasi—demi keuntungan mereka tentunya.

Menampilkan Citra Pada Visual Basic

 Untuk menampilkan citra pada visual basic, kita dapat menggunakan komponen PictureBox. Dengan PictureBox, sebuah citra dapat di analisa komposisi warna pembentuk citra tersebut. Komponen warna yang dimaksud adalah RGB (Red, Green, Blue) yang merupakan warna primer pada sebuah citra. Sementara warna-warna lain adalah turunan kombinasi dari dua atau tiga warna tersebut.



Pada contoh code tersebut kita juga menggunakan komponen CommonDialog. Komponen ini berfungsi untuk menampilkan interface membuka sebuah file citra layaknya pada sebuah program aplikasi windows umumnya.
Code untuk membuka sebua citra kedalam sebuah PictureBox adalah:
CD.ShowOpen
Me.Caption = CD.FileName
Picture1.Picture = LoadPicture(CD.FileName)

Setelah sebuah citra dapat ditampilkan pada PictureBox, citra dapat digunakan untuk pemroresan citra selanjutnya.


Demikian, semoga bermanfaat.


Thursday, September 29, 2011

Monday, September 26, 2011

Membuat Grafik Data Logger ADC 8 Channel Dengan Visual Basic 6

Grafik sebuah data yang didapatkan dari pengukuran dapat disajikan dalam sebuah grafik pada Visual Basic. Pada tulisan sebelumnya telah diberikan sedikit contoh bagaimana cara menyajikan data dengan menggunakan Visual Basic. Pada kesempatan ini akan diberikan contoh pengembangannya dengan menyajikan data sebanyak 8 channel data. Selain penyajian dalam grafik, diberikan juga sebuah indikator pada tiap-tiap channel dengan menentukan batas atas dan batas bawah. Batas atas disini, untuk memberitahukan bawah titik atas tersebut sudah tercapai dengan ditandai berubah warnah merah pada penanda.
Selain disajikan dalam bentuk grafik, data ditampilkan pula dalam grid yang menyajikan data dalam bentuk numerik. Sehingga secara visual dan numerik dapat diamati dengan lebih mudah. Masing-masing channel dibedakan dengan warna yang berbeda.

Pada dasarnya, proses delapan channel data tersebut adalah sama dengan proses satu grafik yang dibuat parallel. Dalam pengambilan data, ditangani oleh MCU yang membaca data analog dengan menggunakan ADC internal ATMega16. MCU mengambil data dengan sistem polling, ADC yang jumlahnya 8 channel dibaca dari channel 1 sampai channel 8. Kemudian data yang didapatkan dibuat paket data menjadi satu frame data.
Data disusun dengan skema berikut:
1. Header = #
2 Delimiter = $ - ?
3. Data = 0 s/d 5000
4. End of Data = &@
#$ADC1?$ADC2?$ADC3?$ADC4?$ADC5?$ADC6?$ADC7?$ADC8?&@ + [ENTER]
dalam contoh dengan data numerik:
#$520?$1040?$1560?$2080?$2600?$3120?$3640?$4160?&@ + [ENTER]
Header, delimiter dan End of data diperlukan untuk parameter bahwa data yang ada adalah valid dan dapat digunakan.
Untuk dapat mengambil data menjadi delapan data kembali, maka diperlukan identifikasi. Proses yang dilakukan adalah membaca parameter-parameter di atas. Pertama, membaca header, kemudian membaca delimiter, kemudian membaca end of data, baru membaca datanya.



Untuk membaca header, langkahnya adalah membaca karakter #. Pada visual basic, untuk membaca karakter tertentu digunakan syntax:
Kres = InStr(PaketData, "#")
membaca end of data:
At = InStr(PaketData, "@")
Terakhir untuk mengetahui sebuah data, maka kita perlu mengetahui posisi delimiter.
Dollar = InStr(PaketPecah, "$")
Tanya = InStr(PaketPecah, "?")
baru kita bisa mendapatkan data pengukuran tersebut.
Selanjutnya baru kita membuat tampilan dalam bentuk grafik seperti telah dibahas pada tulisan sebelumnya.
Demikian semoga bermanfaat.

Tutorial FPGA - 2

14 . Pilih menu Add --> Wire (Ctrl + W)
   
Kemudian klik dari ujung pin CE, tarik garis lurus kea rah kiri kemudian klik sampai membentuk wire, klik Esc.
15. Tambahkan wire untuk semua pin yang ada seperti berikut
16. Pilih menu Add --> I/O marker (Ctrl + G), kemudian select pin CE, C dan CLR seperti tampilan berikut

17. Ulangi untuk pin Q0 s/d pin Q3, CEO, TC
Secara default masing-masing pin akan memiliki nama dari XLXN_1
18. Klik kanan pada I/O marker XLXN_1, pilih Object Properties, pilih Nets, XLXN_1
19. Pada kolom Value, baris Name ganti dengan CE
20. Ganti nama masing-masing pin sesuai tampilan berikut
21. Klik kanan pada xc3s400an-4fgg400 kemudian pilih New Source
Tambahkan VHDL Test Bench, beri nama pada File name Counter4bit_tb, kemudian klik Next >
22. Klik Next >
23. Klik Finish
24. Selanjutnya akan muncuk code HDL disebelah kanan
25. Edit code berikut:
tb : PROCESS
BEGIN
                WAIT;
END PROCESS;
Menjadi seperti berikut:
                C1 : PROCESS
BEGIN
                C <= ‘1’; wait for 10ns;
                C <= ‘0’; wait for 10ns;
END PROCESS;
26. Pada tab Hierarchy, klik Counter4bit.sch, kemudian pada tab Processes: Counter4bit, klik kanan Synthesize – XST kemudian pilih Run
27. Pada tab View pilih Simulation. Pada tab Hierarchy pilih Counter4bit_tb.vhd
Pada tab Processes pilih Isim Simulator à Behavioral Check Syntax
28. Kemudian klik kanan Simulate Behavioral Model à Run
29. Kemudian akan muncul layar window baru seperti berikut
30. Kemudian klik icon no 1 diikuti no 2.
Demikian, petunjuk singkat membuat clock pada FPGA dengan gambar rangkaian dan VHDL.
Semoga bermanfaat.

Sunday, September 25, 2011

Interfacing GPS Garmin 60C Dengan ATMega162 (2)

undefined
Pada tulisan sebelumnya, telah dijelaskan tentang GPS beserta data-data yang dapat diambil untuk dijadikan sebagai sumber informasi. Diantara data yang digunakan adalah data $GPGGA – Global Positioning System Fix Data. Pada blok data yang diawali dengan $GPGGA, kita bisa mengetahui waktu, latitude, longitude, altitude, dan yang lainnya. Pada tulisan ini, kita akan mencoba untuk membaca blok data yang diawali dengan identifier $GPGGA.

Pada GPS Garmin seri 60C, data dikirim dalam format NMEA dalam satu paket data. Pada tiap paket data yang dikirimkan, terdapat blok-blok data yang diawali dengan identifier. Sehingga kita bisa memilih kategori data yang akan diambil dengan mengabaikan blok data yang lainnya. Dalam satu blok data yang diawali dengan identifier yang sudah ditentukan formatnya, memberikan informasi yang terdiri dari beberapa bagian informasi. Misalnya, blok data yang diawali dengan identifier $GPZDA, memberikan data UTC, day, month, year, dan local time zone.

Data yang dikirimkan oleh GPS Garmin 60C, dikirim melalui format serial pada kecepatan 4200 dan terdapat jeda untuk tiap paket data yang dikirimkan. Karena data yang dikirimkan adalah berupa data serial, maka kita akan mengambil data yang diberikan dengan menggunakan port serial. Komunikasi yang digunakan adalah komunikasi satu arah dari GPS ke mikrokontroller.


Karena menggunakan komunikasi satu arah, maka pada mikrokontroller harus disetting sebagai Rx Interrupt. Yaitu, mikrokontroller diatur untuk melayani setiap data yang diterima setiap saat. Ini harus dilakukan, karena data yang diterima tanpa didahului oleh proses handshake. Untuk selanjutnya, mikrokontroller harus mampu menyimpan data yang diterima pada sebuah variable buffer. Jadi, data yang diterima disimpan pada variable buffer, kemudian baru difilter berdasarkan identifier yang diinginkan.

Untuk membaca blok data $GPGGA,061648,0619.9585,S,10639.9713,E,1,09,0.8,70.0,M,1.5,M,,*5E

Pada blok data di atas, terdapat blok data berikut:

  • Sentence Identifier : $GPGGA

  • Time : 061648

  • Latitude : 0619.9585

  • Longitude : 10639.9713

  • Fix Quality : 1

  • Number of Satellites : 09

  • Horizontal Dilution of Precision (HDOP)  : 0.8

  • Altitude : 70 M

  • Height of geoid above WGS84 ellipsoid  : 1.5 M

  • Time since last DGPS update : blank

  • DGPS reference station id : blank

  • Checksum : 5E

Maka dipembacaan data dilakukan dengan algoritma pembacaan data GPS digambarkan di bawah ini:


  1. Baca data serial yang diterima, kemudian simpan pada variable buffer.

  2. Stop pembacaan data serial, jika ditemukan 0x0D atau CR (Carriage Return)

  3. Cek, apakah karakter pertama adalah ‘$’: jika betul maka lanjutkan filtering; jika tidak, maka abaikan

  4. Cek, apakah karakter pertama sampai karakter ketujuh sama dengan “$GPGGA,” jika betul, lanjutkan filtering; jika tidak, maka abaikan

  5. Cek mulai karakter 15 sampai karakter terakhir: jika ditemukan karakter ‘S’ atau ‘N’, maka catat panjang data Lintang, kemudian lanjutkan filter; jika belum ditemukan, lanjutkan para karakter selanjutnya

  6. Cek mulai posisi setelah ditemukan karakter ‘S’ atau ‘N’ sampai karakter terakhir: Jika ditemukan karakter ‘E’ atau ‘W’, maka catat panjang data Bujur; Jika belum ditemukan, lanjutkan para karakter selanjutnya

  7. Copy data Lintang dari karakter 15 sampai posisi ditemukan karakter ‘S’ atau ‘N’

  8. Copy data Lintang dari karakter ditemukan posisi karakter ‘S’ atau ‘N’ sampai posisi ditemukan karakter ‘E’ atau ‘W’.

Demikian sedikit penjelasan salah satu cara membaca data dari GPS Garmin seri 60C. Semoga bermanfaat.

Interfacing GPS Garmin 60C Dengan ATMega162 (1)

undefined
Pada tulisan kali ini kami akan mencoba menuliskan hasil interfacing antara GPS Garmin 60C dengan AVR ATMega162. Interfacing yang saya maksud pada kesempatan ini adalah bagaimana membaca data output GPS Garmin 60C yang berupa protokol NMEA.

GPS merupakan suati device navigation  yang dapat digunakan untuk mengetahui posisi seseorang pada suatu tempat. GPS memberikan data diantaranya adalah: Global Positioning System, Geographic position (latitude/longitude), dan lain sebagainya.  Data output GPS Garmin mengikuti protokol NMEA yaitu suatu protokol komunikasi pada peralatan elektronik untuk aplikasi pada kapal laut.

Sedangkan untuk melakukan interfacing antara GPS Garmin 60C dengan ATMega162, kita perlu mengetahui data output dan koneksi antara GPS dan mikrokontroller.


Data Output

GPS Garmin 60 secara periodik akan mengirimkan data streaming melalui port serial atau koneksi USB tergantung setting yang dipilih. Contoh data yang dikeluarkan oleh GPS Garmin 60C dapat dilihat disini Data Output GPS.

Dari data output GPS di atas kita akan mengambil data $GPGGA – Global Positioning System Fix Data.

dari blok data ini, kita bisa mengambil data menjadi bagian berikut:

Global Positioning System Fix Data


Name Example Data Description
Sentence Identifier$GPGGAGlobal Positioning System Fix Data
Time06164606:16:46 Z
Latitude0619.9586,S06d 19.9586′ S
Longitude10639.9710,E106d 39.9710′ E
Fix Quality:
- 0 = Invalid
- 1 = GPS fix
- 2 = DGPS fix
1Data is from a GPS fix
Number of Satellites099 Satellites are in view
Horizontal Dilution of Precision (HDOP)0.8Relative accuracy of horizontal position
Altitude70.2, M70.2 meters above mean sea level
Height of geoid above WGS84 ellipsoid1.5, M1.5 meters
Time since last DGPS updateblankNo last update
DGPS reference station idblankNo station id
Checksum*52Used by program to check for transmission errors

Courtesy of Brian McClure, N8PQI.

Dari list data di atas, kita bisa mendapatkan data Lintang Selatan (S) dan Bujur Timur (E) 06d 19.9586′ S dan 106d 39.9710′ E .



Koneksi GPS – Mikrokontroller

undefined

Untuk membuat koneksi antara GPS Garmin 60C dan AVR ATMega162,  hubungkan Data Out dengan Pin Rx pada ATMega162 dengan terlebih dahulu melalui Max232 untuk menyesuaikan level tegangan. Kemudian hubungkan (-) Ground dengan Gnd pada ATMega162.

Pada tulisan kedua, akan dijelaskan cara membaca data output GPS Garmin 60C dengan ATMega162.

berlanjut....

Menampilkan Data ADC ke 7 Segment


Kali ini kita belajar tentang Seven Segment, seperti biasa display ini akan dikontrol oleh mikrokontroller, kebetulan kita pake ATMega16. Untuk project ini saya hanya pakai empat 7 segment karena kita akan menampilkan data ADC 10 bit dari internal Mikrokontroler AVR. Untuk ADC 10 bit data yang akan kita tampilkan sebesar 0 s.d 1023, jadi dengan 7 segment sejumlah empat unit sudah cukup.


Komponen dasar 7 segment adalah LED (Light Emitting Diode), jadi aplikasi rangkaiannya pun sama dengan LED. Dirangkaian ada resistor yang berfungsi untuk membatasi arus yang melewati LED (semakin tinggi arus semakin terang nyala LED, tapi resistornya jangan terlalu kecil karena ada batasan arus yang diperbolehkan agar LED tidak rusak).

undefined

Penggunaan 7 Segment saya hubungkan dengan PORTC, sedangkan untuk kontrol puluhan, ratusan, ribuan, sayagunakan di PORT D. Untuk ADC input kita gunakan PINA.0, berikut gambar rangkaiannya:

undefined

Dalam penampilan data kami menggunakan metode scanning dikarenakan metode ini dapat mengurangi konsumsi daya listrik dibandingkan dengan menyalakan semua seven segment. Dan yang paling penting yaitu dapat menghemat pemakaian pin-pin mikrokontroler, sehingga tidak banyak input/output yang terpakai untuk mengakses seven segment.

undefined

Berikut kami berikan sourco code menampilkan data adc ke 7 segment dalam bentuk project Code Vison AVR, download.



Kami menyediakan berbagai macam Led 7 Segment

ataupun Led Dot Matrix...

Saturday, September 24, 2011

Billing Rental Play Station (PS) Dengan Visual Basic 6

Rental Play Station (PS), kebanyakan masih menggunakan timer bawaan dari layar Televisi yang dipakai. Sebenarnya menggunakan timer TV tersebut bisa saja digunakan untuk timer, namun keterbatasannya adalah, kita tidak bisa mengetahui biaya yang sudah ada dan tidak ada log pembukuannya.
Berbeda dengan billing yang berupa software di PC, kita bisa mendapatkan nilai lebih. Misalnya, bisa dilakukan pembukuan secara otomatis, untuk mendapatkan analisa pendapatan rental. Kemudian, keuntungan lain, bisa mengetahui unit yang selalu dipakai dan unit yang jarang dipakai, ataupun yang lainnya.
Pada kesempatan kali ini, akan disampaikan sedikit pembuatan sebuah billing rental Play Station (PS) sebanyak 4 unit dengan mengontrol switch ON/OFF pada sumber listriknya. Pada sistem ini, billing menghitung biaya dan durasi yang dipakai user. Kemudian untuk mengaktifkan dan menghentikan PS, digunakan metode  On/Off power AC dari unit PS menggunakan relay yang dikendalikan oleh MCU/mikrokontroller.
Cara kerja billing adalah, saat billing di mulai, maka software akan mengirim perintah ke MCU untuk menyalakan relay sesuai dengan nomer billing yang diaktifkan. Kemudian MCU akan mengaktifkan relay sehingga aliran listrik ke unit yang dimaksud akan mengalir. PS dapat digunakan setelah billing aktif. Demikian juga untuk unit yang lain, dapat diaktifkan dan dimatikan dengan melalui software billing di PC. Pada software, akan tercatat waktu mulai unit dan menampilkan biaya tagihan.
Harga sewa unit juga dapat diatur melalui setting harga yang disediakan, dan dapat disesuaikan dengan mudah. Selain itu, semua unit dapat dimatikan dan dinyalakan secara bersamaan melalui sebuah tombol.
Demikian, semoga bermanfaat.

Billing Rental 4 Unit Dengan Visual Basic 6

Jika sebelumnya telah dijelaskan bagaimana konsep membuat sebuah billing, maka pada kesempatan ini akan dijelaskan contoh membuat billing yang jumlahnya lebih dari satu unit. Billing yang akan dibuat, sejumlah empat dalam satu form. Billing yang akan dibuat bisa digunakan untuk billing PS, ataupun yang sejenisnya. Dimana billing disini tidak ditampilkan pada client/user, namun billing hanya terdapat pada PC Admin. Output dari PC dapat ditambahkan switch untuk memutuskan sumber listrik pada masing-masing user. Sebagai catatan, peralatan listrik user yang akan dimatikan tidak rentan terhadap mati/nyala, misalnya yang berupa TV atau yang lain.
Switch dapat berupa sebuah MCU (Microcontroller Centrol Unit) ataupun sebuah sirkuit logic yang lain. MCU kemudian mengendalikan sebuah relay ataupun model switch yang lain, misalnya solid state. Jika menggunakan sebuah MCU misalnya mikrokontroller ATMega8535 atau yang lain yang memiliki pin I/O 32 jalur, maka dapat digunakan untuk membuat billing sejumlah 30 unit peralatan rental.
Prinsip billing disini sama dengan billing yang telah dibahas sebelumnya, yang berbeda adalah jumlah unitnya. Masing-masing unit dapat dilihat durasi dan biaya sendiri-sendiri. Billing yang akan dibuat sangat sederhana dan mudah digunakan. Indikator billing sedang berjalan ditunjukkan oleh sebuah simbol lingkaran dengan kode warna merah mununjukkan billing sedang berhenti, sementara warna hijau menunjukkan billing sedang jalan.
Untuk membuatnya, siapkan tampilan seperti diatas yang terdiri dari komponen:
Komponen
Properties
Value
Frame1CaptionPS 1
Label1CaptionPemakai: User 1
Label2CaptionBiaya
Label3CaptionJam Mulai
Label4CaptionJam Sekarang
lblDurasi1Caption00:00:00
lblBiaya1Caption: Rp. 0,-
lblMulai1Caption: 00:00
lblSkrg1Caption: 00:00
Command1CaptionMulai
Timer1Interval1000
EnabledFalse
Shape1BackColorvbRed

Buatlah komponen di atas sejumlah empat kali sehingga akan menghasilkan tampilan seperti di atas.

Coding Billing
Pada bagian atas code, buatlah variabel berikut:
Dim Start1 As Date, Stop1 As Date
Dim Start2 As Date, Stop2 As Date
Dim Start3 As Date, Stop3 As Date
Dim Start4 As Date, Stop4 As Date
Dim Harga As Integer
Dim Biaya1 As Integer
Dim Biaya2 As Integer
Dim Biaya3 As Integer
Dim Biaya4 As Integer
kemudian tambahkan fungsi berikut untuk menghitung selisih dari dua buah waktu:
Function DateDiffX(dStart As Date, dEnd As Date, Optional bDetailed As Boolean) As Variant
    Dim TotalDays
    Dim Years, Months, Days, hours, minutes, seconds
    If bDetailed Then
        TotalDays = dEnd - dStart
        hours = Hour(dEnd - dStart)
        minutes = Minute(dEnd - dStart)
        seconds = Second(dEnd - dStart)
        If hours < 10 Then
            hours = "0" & hours
        ElseIf hours > 9 Then
            hours = hours
        End If
        If minutes < 10 Then
            minutes = "0" & minutes
        ElseIf minutes > 9 Then
            minutes = minutes
        End If
        If seconds < 10 Then
            seconds = "0" & seconds
        ElseIf seconds > 9 Then
            seconds = seconds
        End If
        DateDiffX = hours & ":" & minutes & ":" & seconds
        Exit Function
    End If
End Function
sub rutin di atas digunakan untuk menghitung selisih dari dua waktu. Selisih ini disebut sebagai durasi dan akan digunakan sebagai hasil penggunaan waktu sewa.
Kemudian pada Command1_Click() tambahkan code berikut:
Private Sub Command1_Click()
If Command1.Caption = "Mulai" Then
    Command1.Caption = "Stop"
    Timer1.Enabled = True
    lblMulai1 = ": " & Format(Time, "hh:mm:ss")
    Shape1.BackColor = vbGreen
    Start1 = Format(Time, "hh:mm:ss")
ElseIf Command1.Caption = "Stop" Then
    Command1.Caption = "Mulai"
    Timer1.Enabled = False
    lblSkrg1 = ": " & Format(Time, "hh:mm:ss")
    Shape1.BackColor = vbRed
End If
End Sub
Pada Sub Timer1_Timer(), tambahkan code berikut:
Private Sub Timer1_Timer()
Stop1 = Format(Time, "hh:mm:ss")
lblSkrg1 = ": " & Format(Time, "hh:mm:ss")
lblDurasi1 = DateDiffX(Start1, Stop1, True)
Timer1.Tag = Biaya1 + Harga
lblBiaya1 = ": Rp. " & Timer1.Tag & ",-"
Biaya1 = Timer1.Tag
End Sub
Dan pada sub Form_Load(), tambahkan code berikut:
Private Sub Form_Load()
Harga = 10
End Sub
Ulangi langkah-langkah di atas untuk unit yang ke-2, 3 dan 4.
Semoga bermanfaat.

Friday, September 23, 2011

Membuat Billing Dengan Visual Basic 6

Billing secara sederhana adalah, alat bantu untuk menghitung jumlah tagihan. Billing biasanya digunakan pada warung internet, warung telepon, fax, rental komputer atau rental PS bisa juga digunakan untuk persewaan lain yang perhitungan tagihannya berdasarkan waktu yang digunakan.

Dengan menggunakan visual basic kita bisa membuat sebuah billing secara sederhana dan akurat. Komponen yang digunakan adalah Timer, Label dan Button. Ketiga komponen tersebut memiliki peran dan digunakan untuk membuat sebuah billing.
Timer digunakan sebagai counter waktu dan tagihan. Button digunakan untuk menerima perintah start, stop dan tutup program. Label digunakan untuk menampilkan informasi kepada user.


Bagaimanakah Prinsip Sebuah Billing?
Sebuah tagihan biasanya dibuat berdasarkan satuan jam, bisa satu jam atau setengah jam, atau mungkin kelipatannya. Dari sini, nilai tagihan dibagi menjadi pecahan terkecil yang memiliki KPK dengan satuan waktu. Jadi pertambahan tagihan ekuivalen dengan pertambahan waktu yang dijadikan acuan.
Misalnya, harga sewa selama satu jam adalah Rp. 3.000,- sementara waktu dalam satu jam adalah 60menit atau 3600detik, sehingga didapatkan harga persatuan waktu adalah Rp. 50,-/menit atau Rp. 5,-/ enam detik.
Dari sini kita bisa membuat counter up misalnya pertambahan tagihan adalah Rp 5 setiap 6 detik. Untuk mengatur counter tagihan setiap 6 detik, maka kita menggunakan timer dengan diatur intervalnya 6000. Pada setial 6 detik sekali, tagihan dijumlahkan antara tagihan awal dengan Rp. 5,-
Sementara untuk mengetahui durasi yang telah berlalu, kita gunakan perhitungan selang waktu. Selang waktu/durasi dapat dihitung dengan mengurangi waktu sekarang dengan waktu mulai.
Untuk lebih memahaminya, silakan mempelajari source code.
Semoga bermanfaat.

Machine Learning: Membuat Prediksi Dengan Linear Regression

Membuat prediksi berdasarkan data-data yang sudah dimiliki diawal biasanya dalam bahasa inggris disebut  forecast . Misalnya berdasarkan dat...