stmikbg-dot-com

Informasi Seputar IT

Archive for the ‘Programing’


SENGGIGI BEACH LOMBOK INDONESIA

The town of Senggigi spreads out along nearly 10 kilometers of coastal road. This road continues north to Bangsal, port for the Gili Islands. Along the way, a fantastic scenery of the north west coast of Lombok awaits. Most travelers start or end their stay at Senggigi because of the easy access to Mataram Airport and accommodations options are available to all budgets. If you are frugal or intrepid and take the slow ferry from Bali, it’s best to arrange transport in advance from the ferry dock to Senggigi, since the dock on the Lombok side is in a remote spot several kilometers south of Mataram.

There are plenty of activities you can do to complete your holiday. Sightseeing or touring organized by reputable local tour operators is the best option to discover what Lombok has to offer. Renting a car or motor cycle is also good alternative to get around, either self-driving, or with a driver so you can relax and enjoy the view. Car rental in Lombok is more expensive than Bali. Tip driver pocket money for meals if you stop for lunch or diner. If you are pleased with service, tip the driver or local guide at the end. If you collide with anything, or it collides with you, you are responsible for all costs.

Sending Key antara vb.6 dan vb.net

Saat ini saya sudah mulai konsen untuk development software dilingkungan vb.net, dan sebelumnya saya masih menggunakan vb.6 environment, melihat perkembangan dunia komputer sekarang ini, dipicu sejak dirilisnya windows vista oleh microsoft kemudian microsoft merelease Os terbarunya yakni windows 7 jadi arah bisnis software kedepan akan mengalami perubahan base dan metode pemrograman.
Secara bisnis, aplikasi yg masih menggunakan core COM ataupun COM+ akan ketinggalan jauh, baik dari segi kompatibilitas dengan sistem operasi maupun dari segi teknologinya, yah mau tidak mau para pengembang software harus segera melakukan migrasi keframework yang lebih canggih, dan kebetulan framework yang saya pilih yakni .NET Framework, memang terhitung terlambat bagi saya untuk segera migrasi, tapi masih lebih baik daripada tidak sama sekali.

Saat melakukan migrasi code dari VB.6 ke VB.NET banyak sekali penyesuaian-penyesuaian yang harus saya lakukan, baik dari code maupun konsep dari pemerograman itu sendiri, contoh kecilnya seperti judul diatas, misalnya saat kita ingin memanfaatkan event keypress pada control textbox, jika key yang ditekan adalah tombol “ENTER” otomatis program akan mengirim key “TAB” untuk loncat kecontrol lainnya, tetapi jika selain dari itu aplikasi harus melakukan converting kehuruf besar (Misalnya ditekan huruf ‘a’ maka akan menjadi huruf ‘A’).

Dari permasalahan diatas, kita akan membandingkan codenya.

'VB.6 Code
Private Sub TxtKodeBarang_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
  SendKeys "{Tab}"
Else
  KeyAscii = Asc(UCase(Chr(KeyAscii)))
End If
End Sub

Bandingkan dengan kode VB.NET dibawah ini

Private Sub TxtKodeBarang_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtKodeBarang.KeyPress
        If Asc(e.KeyChar.ToString) = 13 Then
            SendKeys.Send(vbTab)
        Else
            e.KeyChar = UCase(e.KeyChar)
        End If
 End Sub

Sama sekali berbeda dari segi kode maupun konsepnya, dan masih banyak lagi konversi kode yang harus saya lakukan, yah pelan-pelan tapi pasti lah. Yuk Majulah Dunia IT Indonesia.

Generate SN dgn trigger CPU ID

Ide ini tercipta saat ngobrol santai bareng broklyn aka Piter salah seorang programer dari miSolusi, kemarin tim development berhasil mendapatkan deal disebuah perusahaan retail komputer untuk develop POSnya, nah setelah proses instalasi, ternyata software yang dikembangkan ini bisa diduplikasi kekomputer lain menggunakan Norton-GHOST, wah kalo seperti ini bisa-bisa aplikasi yang kita jual didistribusikan tanpa sepengetahuan kita. Akhirnya kami mencoba menganalisa kemungkinan proteksi yang bisa diimplementasikan. Akhirnya kami mengambil keputusan untuk menggunakan CPU ID sebagai patokan Serial Number Softwarenya, dengan metode seperti ini software tidak akan bisa diduplikasi kekomputer lainnya.

Ok, sekarang kita akan membahas bagaimana cara mendapatkan sebuah CPU ID menggunakan kode visual basic, dulu saya pernah memposting tentang WMI (Windows Management Instrument) karena sekarang code yang kita bahas menggunakan WMI untuk mendapatkan nilai dari CPU ID, Yah tidak mau berkata panjang lebar, langsung aja kita mengintip code programnya. Codenya seperti Dibawah ini, agak panjang soalnya saya langsung COPAS dari formnya, dipilah sendiri ya lagi malas :)

Private asCpuPaths() As String
Private m_objCPUSet As SWbemObjectSet
Private m_objWMINameSpace As SWbemServices
Option Explicit

Private Sub cmdDone_Click()
Unload Me
End Sub

Private Sub Form_Load()
Dim oCpu As SWbemObject 'WMI Object, in this case, local CPUs
Dim sPath As String, sCaption As String

Dim lElement As Long
ReDim asCpuPaths(0) As String

On Error GoTo ErrorHandler

'Get Default NameSpace, which will be the one for the local machine
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
Set m_objWMINameSpace = GetObject("winmgmts:")
lstCPU.Clear

'Get CPU set
Set m_objCPUSet = m_objWMINameSpace.InstancesOf("Win32_Processor")
sCaption = m_objCPUSet.Count & " processor"
If m_objCPUSet.Count <> 1 Then sCaption = sCaption & "s"
sCaption = sCaption & " detected on this machine"
lblTitle.Caption = sCaption
'Populate list box with CPU names

For Each oCpu In m_objCPUSet
     With oCpu
        sPath = .Path_ & ""
            If sPath <> "" Then
                lstCPU.AddItem .Name
                'save path to array, so on machines with multiple CPUs,
                'each can be identified and their info loaded into text box

                lElement = IIf(asCpuPaths(0) = "", 0, UBound(asCpuPaths) + 1)
                ReDim Preserve asCpuPaths(lElement) As String
                asCpuPaths(lElement) = sPath
            End If
     End With
Next
If lstCPU.ListCount <> 0 Then lstCPU.ListIndex = 0
CleanUp:
 Set oCpu = Nothing
 Exit Sub
ErrorHandler:
 MsgBox "CPU Information could not be displayed due to the following error: " & Err.Description, , "WMI  Demo  Failed"
GoTo CleanUp
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set m_objCPUSet = Nothing
Set m_objWMINameSpace = Nothing
End Sub

Private Sub lstCPU_Click()
Dim oCpu As SWbemObject
'Refer to SDK documentation for more detail about each of these properties
Dim sInfoString As String
On Error Resume Next
Set oCpu = m_objCPUSet(asCpuPaths(lstCPU.ListIndex))
With oCpu
    sInfoString = "Description: " & .Description & vbCrLf
    sInfoString = sInfoString & "Processor ID: " & .ProcessorID & vbCrLf
    sInfoString = sInfoString & "Status: " & .Status & vbCrLf
    sInfoString = sInfoString & "Manufacturer: " & .Manufacturer & vbCrLf
    sInfoString = sInfoString & "Availability: " & AvailabilityToString(.Availability) & vbCrLf
    sInfoString = sInfoString & "Load Percentage: " & .LoadPercentage & vbCrLf
    sInfoString = sInfoString & "Current Clock Speed: " & .CurrentClockSpeed & " MHz" & vbCrLf
    sInfoString = sInfoString & "Maximum Clock Speed: " & .MaxClockSpeed & vbCrLf
    sInfoString = sInfoString & "Level 2 Cache Size: " & .L2CacheSize & vbCrLf
    sInfoString = sInfoString & "Level 2 Cache Speed: " & .L2CacheSpeed & vbCrLf
    sInfoString = sInfoString & "Power Management Supported: " & .PowerManagementSupported
End With
txtCpu.Text = sInfoString
End Sub

'Conversions from code to string were developed
'based on information in WMI SDK documentation
Private Function AvailabilityToString(Code As Integer) As String
Dim sAns As String

Select Case Code
    Case 1, 2
        sAns = "Unknown"
    Case 3
        sAns = "Running/Full Power"
    Case 4
        sAns = "Warning"
    Case 5
        sAns = "In Test"
    Case 6
        sAns = "Not Applicable"
    Case 7
        sAns = "Power Off"
    Case 8
        sAns = "Off Line"
    Case 9
        sAns = "Off Duty"
    Case 10
        sAns = "Degraded"
    Case 11
        sAns = "Not Installed"
    Case 12
        sAns = "Install Error"
    Case 13
        sAns = "Power Save - Unknown"
    Case 14
        sAns = "Power Save - Low Power Mode"
    Case 15
        sAns = "Power Save - Standby"
    Case 16
        sAns = "Power Cycle"
    Case 17
        sAns = "Power Save - Warning"
    Case Else
        sAns = "Unknown"
End Select
AvailabilityToString = sAns
End Function

Transformasi data dari MySQL ke MSSQL

Berhari-hari saya coba browsing diinternet untuk mencari software yang bisa melakukan transformasi data dari MySQL Ke MSSQL tapi tetap saja tidak ketemu, saya mencoba langsung dari enterprise managernya MSSQL sapa tau ada option IMPORT dari Enggine MySQL tetap saja nihil.. Benar-benar Microsoft anti Open Source ya, sampai masalah kompatibilitas hal sekecil ini tidak diincludekan. Sebenarnya banyak terdapat software-software untuk melakukan transformasi ini, tapi terkadang transformasi yang dilakukan ini sering terjadi antar table dengan field yang berbeda. Misalnya seperti kasus yang saya alami ini. Seminggu ini saya mencoba melakukan transformasi tabel ICD ( International Code Of Disease), Berhubung struktur tabel yang ada dari Tabel Sumber ( MySQL) berbeda dengan Struktur Tabel Tujuan ( MSSQL) maka saya terpaksa membuat sendiri tools kecil untuk melakukan proses transformasi ini.
data_transform

Model tools yang saya buat bisa dilihat pada screenshot diatas, sekarang kita akan membahas panjang lebar mulai dari proses transformasi, source code, sampai keverifikasi data transformnya, apakah ada data yang lost saat transformasi atau tidak.

Code Project Add-In for Visual Studio 2008

vs2008_search2Bagi programer yang menggunakan VS 2008 ada sebuah add in yang bisa dijadikan referensi untuk help, jadi ketika anda melakukan codeing, jika menemui kebuntuan anda bisa mencari solusinya langsung diadd-in ini. Add-in ini bisa mencari lebih dari 23.000 artikel dan code project serta menampilkan hasil yang relevan dari keyword yang dicari. Ayuk tunggu apa lagi buruan download disini