Menu Horisontal

Senin, 31 Desember 2012

Fungsi-fungsi Date/Time

Sumber : http://putravb.blogspot.com/2012/01/fungsi-fungsi-datetime.html
Berikut ini merupakan Fungsi-fungsi dasar untuk mengolah data jenis Date/Time atau Tanggal/Waktu di Visual Basic

  • Now, digunakan untuk mendapatkan Tanggal dan Waktu sekarang.
    d = Now , hasilnya 13/01/2012 1:22:42

  • Date, digunakan untuk mendapatkan Tanggal sekarang.
    [ VB 6.0 ] d = Date , hasilnya 13/01/2012
    [ VB .NET ] d = Now.Date , hasilnya 13/01/2012

  • Time, digunakan untuk mendapatkan Waktu sekarang.
    [ VB 6.0 ] d = Time , hasilnya 1:22:42
    [ VB .NET ] d = Now.ToLongTimeString , hasilnya 1:22:42

  • Day(x), digunakan untuk mengambil nilai Tanggal saja dari x.
    [ VB 6.0 ] d = Day(#1/13/2012#) , hasilnya 13
    [ VB .NET ] d = #1/13/2012#.Day , hasilnya 13

  • Month(x), digunakan untuk mengambil nilai Bulan saja dari x.
    [ VB 6.0 ] d = Month(#1/13/2012#) , hasilnya 1
    [ VB .NET ] d = #1/13/2012#.Month , hasilnya 1

  • Year(x), digunakan untuk mengambil nilai Tahun saja dari x.
    [ VB 6.0 ] d = Year(#1/13/2012#) , hasilnya 2012
    [ VB .NET ] d = #1/13/2012#.Year , hasilnya 2012

  • Hour(x), digunakan untuk mengambil nilai Jam saja dari x.
    [ VB 6.0 ] d = Hour(#1:22:42 AM#) , hasilnya 1
    [ VB .NET ] d = #1:22:42 AM#.Hour , hasilnya 1

  • Minute(x), digunakan untuk mengambil nilai Menit saja dari x.
    [ VB 6.0 ] d = Minute(#1:22:42 AM#) , hasilnya 22
    [ VB .NET ] d = #1:22:42 AM#.Minute, hasilnya 22

  • Second(x), digunakan untuk mengambil nilai Detik saja dari x.
    [ VB 6.0 ] d = Second(#1:22:42 AM#) , hasilnya 42
    [ VB .NET ] d = #1:22:42 AM#.Second, hasilnya 42

  • DateSerial(x, y, z), digunakan untuk menghasilkan Tanggal dari kombinasi x, y, z.
    d = DateSerial(2012, 1, 13) , hasilnya 13/01/2012

  • TimeSerial(x, y, z), digunakan untuk menghasilkan Waktu dari kombinasi x, y, z.
    d = TimeSerial(1, 22, 42) , hasilnya 1:22:42

  • MonthName(x), digunakan untuk mendapatkan nama Bulan dari x.
    d = MonthName(2) , hasilnya Februari

  • WeekdayName(x), digunakan untuk mendapatkan nama Hari dari x.
    d = WeekdayName(2, , vbSunday) , hasilnya Senin
 Untuk menambah dan mengurangi data bertipe Date/Tanggal tidak semudah dengan data bertipe Angka yang hanya menggunakan operator + dan -. Karena itu ada fungsi khusus untuk melakukannya, berikut contoh penggunaannya :

Tutorial Starduino: Mengontrol 4 Relay Dari Komputer Via Komunikasi Serial RS232 Dengan Perantaraan Starduino Board

Sumber : http://telinks.wordpress.com/category/softwareprogramming/vb-net/
Sumber : http://teknikelektrolinks.com/
Pada tutorial Starduino kali ini, kita akan membahas tentang bagaimana mengontrol relay dari komputer melalui port komunikasi serial RS232 dengan menggunakan Starduino Board.
Gambar di samping adalah foto pengujian Starduino Board untuk mengontrol relay dan menampilkan statusnya di LCD 16×2.
Starduino Board, Modul Relay DRV04, dan Modul LCD 16×2 dapat dipesan melalui email ke info@teknikelektrolinks.com atau SMS ke 081231784018 atau BB ke 24B15B64.
Untuk pembelian paket Starduino + Modul DRV04 akan mendapatkan source code sketch Arduino pengontrolan relay melalui port serial + source code program VB.NET lengkap dengan Installer VB.NET 2005 Express Edition.
Untuk memudahkan eksperimen,  berikut adalah tabel perintah pengontrolan relay.
Perintah Aksi
‘A’ RELAY 1 ON
‘1’ RELAY 1 OFF
‘B’ RELAY 2 ON
‘2’ RELAY 2 OFF
‘C’ RELAY 3 ON
‘3’ RELAY 3 OFF
‘D’ RELAY 4 ON
‘4’ RELAY 5 OFF
Berikut adalah looping utama program yang berfungsi menerima data dari port serial dan mengeksekusi perintah sesuai data yang diterima dari komputer.
if (Serial.available())
{
  char inChar = Serial.read();
  if (inChar==’A')
    digitalWrite(RL1, HIGH);
  else if (inChar==’1′)
    digitalWrite(RL1, LOW);
  else if (inChar==’B')
    digitalWrite(RL2, HIGH);
  else if (inChar==’2′)
    digitalWrite(RL2, LOW);
  else if (inChar==’C')
    digitalWrite(RL3, HIGH);
  else if (inChar==’3′)
    digitalWrite(RL3, LOW);
  else if (inChar==’D')
    digitalWrite(RL4, HIGH);
  else if (inChar==’4′)
    digitalWrite(RL4, LOW);
}
Fungsi Serial.available() berfungsi mengembalikan jumlah karakter yang ada di dalam buffer port serial. Jika fungsi Serial.available() bernilai 0 (nol), maka tidak ada karakter dalam buffer. Jika fungsi Serial.available() > 0, maka ada karakter yang diterima dalam buffer port serial.
Fungsi Serial.read() berfungsi membaca/mengambil data karakter dari buffer port serial. Perintah char inChar = Serial.read() berfungsi mendeklarasikan variable inChar sebagai penampung data karakter hasil pembacaan fungsi Serial.read().
Selanjutnya, karakter dibandingkan dengan konstanta karakter sesuai dengan tabel perintah di atas untuk mengetahui perintah apa yang harus dieksekusi oleh kontroler.
Jika inChar==’A’, maka aktifkan RELAY-1 dan jika inChar==’1’, maka matikan RELAY-1. Pembandingan yang sama juga berlaku untuk perintah ‘B’, ‘2’, ‘C’, ‘3’, ‘D’, dan ‘4’.
Setelah program di upload ke Starduino, maka pengujian dapat dilakukan dengan mengirimkan karakter ‘A’, ‘1’, ‘B’, dan seterusnya dari komputer.
Untuk mengirimkan data secara manual bisa menggunakan terminal bawaan IDE Arduino atau program terminal seperti Hyperterminal.
Dapat juga pengontrolan dilakukan dengan menggunakan program aplikasi yang dapat Anda peroleh jika membeli paket Starduino Board + Modul DRV04. Berikut adalah tampilan program aplikasi Starduino+DRV04 yang dibuat menggunakan VB.NET 2005 Express Edition.
starduino_drv04_vbnet
Demikian sekelumit penjelasan mengenai pengontrolan relay dari komputer melalui port esrial RS232 dengan perantaraan Starduino Board.
Selamat belajar dan selamat berkarya!

Minggu, 30 Desember 2012

Mengetahui UserName dan ComputerName

Sumber : http://putravb.blogspot.com/2011/01/mengetahui-username-dan-computername.html
UserName dan ComputerName biasanya digunakan untuk melengkapi Form registrasi suatu aplikasi / software berbayar. Untuk mengetahui / mendapatkan UserName maupun ComputerName, hanya dibutuhkan 1 baris kode, berikut ini kodenya :

UserName :

s = Environ("UserName")

ComputerName :
s = Environ("ComputerName")

Selain itu, Anda juga bisa menggantikan teks yang berwarna merah untuk mendapatkan informasi yang lain. Seperti : UserDomain, OS, LogOnServer, ClientName, dll.

Operasi Angka VB.Net

Sumber : http://tidipia-comp.blogspot.com/2011/12/operasi-angka-vbnet.html

Berikut ini adalah fungsi-fungsi yang sering digunakan untuk mengolah data bertipe angka (integer, long, double, dll). Sebelumnya ketikkan kode berikut dibagian paling atas dari jendela kode dari Form yang merupakan Namespace Math dari .Net.
Imports System.Math

Berikut nama dan penggunaan fungsinya :

NamaFungsi
Sina = Sin(n * Angle)
Cosina = Cos(n * Angle)
Tangena = Tan(n * Angle)
Inv. Sina = Asin(n) / Angle
Inv. Cosina = Acos(n) / Angle
Inv. Tangena = Atan(n) / Angle
Sin Hyp.a = Sinh(n)
Cosin Hyp.a = Cosh(n)
Tangen Hyp.a = Tanh(n)
Inv. Sin Hyp.a = Log(n + Sqrt(n * n + 1))
Inv. Cosin Hyp.a = Log(n + Sqrt(n * n - 1))
Inv. Tangen Hyp.a = Log((1 + n) / (1 - n)) / 2

Dalam beberpa fungsi diatas terdapat variabel dengan nama Angel, yang bisa digantikan dengan nilai berikut :
Degress (DEG), gantikan dengan (3.14159265358979 / 180)
Radians (RAD), gantikan dengan 1
Grads (GRAD), gantikan dengan (3.14159265358979 / 200)
Contoh menghitung Sin dari 5 dengan ukuran DEG :

a = Sin(5 * (3.14159265358979 / 180))

Operasi String VB.Net

Sumber : http://tidipia-comp.blogspot.com/2011/12/operasi-string-vbnet.html

Maksud dari Operasi String diatas adalah terkait dengan method-method pada .Net untuk memanipulasi string. Berikut adalah beberapa contoh dasar operasi string tersebut :

Fungsi : Len
Deskripsi : Menghasilkan panjang string
Syntax: Len(string)
Contoh :
1. lngLen = Len("Visual Basic")
Hasil: lngLen = 12

Fungsi : Mid$ (or Mid)
Deskripsi : Menghasilkan potongan string mulai dan panjangnya dapat ditentukan
Syntax: Mid$(string, start[, length]) string
String yang ingin dipotong.
start Start pemotongan.
length Optional; panjang pemotongan.
Contoh :
strSubstr = Mid$("Visual Basic", 3, 4)
Hasil: strSubstr = "sual"

Fungsi : Left$ (or Left)
Deskripsi : Memotong string dari kiri
Syntax: Left$(string, length)
string String yang ingin dipotong length
Required; Panjang pemotongan
Contoh :
1. strSubstr = Left$("Visual Basic", 3)
Hasil: strSubstr = "Vis"
Diatas sama jika kita menggunakan Mid$:
strSubstr = Mid$("Visual Basic", 1, 3)

File dan Direktori VB.net

Sumber : http://tidipia-comp.blogspot.com/2011/12/file-dan-direktori-vbnet.html
Ok, teman-teman dan bapak-ibu semua, kali ini saya hendak membahas tentang mengutak-atik file dan direktori dengan menggunakan Visual Basic .Net.

Biasanya yang paling sering dibutuhkan pada project .Net anda terkait dengan file dan direktori adalah, menggandakan (copy), menghapus (delete) atau bahkan mengecek apakah file/direktori tersebut sudah ada dalam direktori lain.

Dan langsung saja, dibawah ini mudah-mudahan bisa menjadi jawabanya :

Directory / Folder.
Syntax untuk membuat direktori. Contoh membuat folder "testdir1" :
System.IO.Directory.CreateDirectory("C:\testDir1")

Syntax untuk mengecek apakah folder "testDir1" sudah ada atau belum pada path tertentu :
System.IO.Directory.Exists("C:\testDir1")

Syntax contoh untuk memindahkan folder "testDir2" yang berada didalam folder "C:\testDir1" ke folder "C:\testDir3" :
System.IO.Directory.Move("C:\testDir1\testDir2", "C:\testDir3")

Syntax untuk menghapus folder "testDir1" :
System.IO.Directory.Delete("C:\testDir1")

Mencari Selisih Tanggal dan Bulan VB.Net

 Sumber : http://tidipia-comp.blogspot.com/2011/12/mencari-selisih-tanggal-dan-bulan-vbnet.html

Masih dengan tema tanggal, berikut cara untuk mencari selisih tanggal dan bulan antara data tanggal pertama dan data tanggal kedua. Tidak sulit kok, karena .Net sudah menyertakan fungsi tersebut dengan menggunakan "DateDiff" , dibawah adalah contoh penggunaanya saja :

Disini untuk data rentang tanggalnya saya gunakan contoh dengan menggunakan DateTimePicker dan nilai kembali dengan tipe data Integer.
Ok, masukan dua buah DateTimePicker ke dalam form, kemudian ubah namanya :
Untuk tanggal awal ubah menjadi "dtPicker1", dan rentang tanggal akhir-nya dtPicker2.

Menghitung selisih tanggal :
Private Function HitungTanggal() As Integer
Return DateDiff(DateInterval.Day, dtPicker1.Value.Date, dtPicker2.Value.Date)
End Function

Menghitung selisih bulan :
Private Function HitungBulan() As Integer
Return DateDiff(DateInterval.Month, dtPicker1.Value.Date, dtPicker2.Value.Date)
End Function

Jika yang dicari selisih tanggal awal atau tanggal akhirnya hari ini, ganti dtPicker1/dtPicker2 dengan Date.Now .

Nah, pada aplikasi penggajian biasanya sering membutuhkan fungsi untuk menghitung jumlah hari juga, tapi tidak termasuk hari sabtu/minggu atau mencari jumlah hari kerja. Bagaimanakah caranya ? Berikut cuplikan syntax-syntax pada fungsi tersebut :

Private Function HitungHariKerja() As Integer
Dim tmpDate = Date.Now
Dim intResult As Integer = DatePart(DateInterval.Day, DateAdd(DateInterval.Day, -1, _
DateAdd(DateInterval.Month, 1, DateAdd(DateInterval.Day, _
DatePart(DateInterval.Day, Date.Now) + 1, Date.Now))))

For i As Integer = 0 To intResult
If Weekday(tmpDate) = 1 Then 'hari minggu (1)
intResult += -1
End If

If Weekday(tmpDate) = 7 Then 'hari sabtu (7)
intResult += -1
End If

tmpDate = DateAdd(DateInterval.Day, 1, tmpDate)
Next

Return intResult
End Function

Fungsi diatas jumlah hari kerja yang dicari adalah bulan dari tanggal sekarang, syntax nya terdapat pada deklarasi pertama kali (Dim tmpDate = Date.Now). Jika anda hendak mencari jumlah hari kerja bulan berikutnya atau bulan lalu, "Date.Now" pada deklarasi "tmpDate" bisa dikombinasikan dengan fungsi "DateAdd". Misalkan anda ingin menambahkan dua bulan berikutnya dari sekarang :
Dim tmpDate = DateAdd(DateInterval.Month, 2, Date.Now)

atau dua bulan lalu dari sekarang :
Dim tmpDate = DateAdd(DateInterval.Month, -2, Date.Now)

Bagaimana penjelasan saya kira-kira? apakah mudah dimengerti? Jika ada pertanyaan, saran, kritik atau masukan (cacian dan makian tidak termasuk) silahkan tinggalkan komentar dibawah. Terima kasih sudah berkunjung, semoga bermanfaat.

Casting Tipe Data VB.Net

Sumber : http://tidipia-comp.blogspot.com/2011/12/casting-tipe-data-vbnet.html
 
Nah sekarang kita akan membahas tentang casting tipe, dan dua keyword casting yang paling sering digunakan biasanya CType dan DirectCast. CType adalah kode konversi menjadi bagian dari kode yang mengevaluasi ekspresi. Oleh karena tidak ada pemanggilan ke prosedur, akibatnya CType akan dieksekusi lebih cepat. Berikut contoh dari CType :

Dim int As Integer = 1
Dim b As Boolean, c As Boolean

'Casting int ke Boolean, b = True
b = CType(int, Boolean)

Perhatian! CType bukan merupakan jalan satu-satunya menuju kesukesan solusi casting pada semua tipe. Khusus untuk casting dari tipe Object ke tipe lainnya, sebaiknya gunakan DirectCast. Lihat pada contoh dibawah :
Dim x As Integer = 123

' Boxing x ke Object
Dim myObj As Object = x

Console.WriteLine(”myObj= ” & myObj.ToString())
' Output: myObj= 123

' Unboxing, secara eksplisit
Dim y As Integer = DirectCast(myObj, Integer)

Console.WriteLine(”y= ” & y)
' Output: y= 123

Pada saat melakukan casting suatu objek ke tipe yang lebih spesifik, DirectCast lebih baik dibanding CType, karena ia tidak menggunakan method-method pembantu runtime.

Mulai dari VB.NET 2005 ke atas, ditambahkan keyword casting baru, yaitu TryCast. Perbedaan mendasar antara TryCast dengan CType dan DirectCast adalah mengenai nilai yang dikembalikan ketika operasi gagal dilakukan. Baik CType maupun DirectCast, keduanya sama-sama mengembalikan nilai InvalidCastException pada objek, sedangkan TryCast akan mengembalikan Nothing. Perhatikan contoh dibawah, agar lebih mantab ilmu kanuragan nya :

Function TestCast(ByVal o As Object) As String
Dim obj As IConvertible = TryCast(o, IConvertible)
If obj Is Nothing Then
Return "Objek tidak dapat dikonversi"
Else
Return "Tipe kode " & obj.GetTypeCode()
End If
End Function

Segitu dulu penjelasan seputar VB.Net mengenai Casting Tipe Data, terima kasih dan semoga bermanfaat.

Bersihkan Isi Semua TextBox pada Form VB.Net

Pada VB.6 Control TextBox bisa dibuat array, sehingga untuk membersihkan nya tinggal me-loop array dari Control TextBox tersebut lalu mengosongkan isinya. Pada Paltform .Net objek atau kontrol tidak bisa dibuat array, kalaupun bisa diakalin malah akan menambah syntax-syntax nya makin jelimet.

Dibawah ini contoh memberishkan isi semua TextBox pada form :
Private Sub ClearTextBox(ByVal frm As System.Windows.Forms.Form)
For Each ctl As Control In frm.Controls
If TypeOf ctl Is TextBox Then
CType(ctl, TextBox).Text = String.Empty
End If
Next
End Sub

Penggunaanya di dalam form tersebut :
ClearTextBox(Me)
Perhatian !!! Contoh diatas Jika TextBox anda berada pada form tanpa GroupBox, jika TextBox di form tersebut berada didalam GroupBox maka syntax nya akan berbeda lagi. Perhatikan perbedaanya :
Public Sub ClearTextBoxInBox(ByVal grb As System.Windows.Forms.GroupBox)
For Each ctl As Control In grb.Controls
If TypeOf ctl Is TextBox Then
CType(ctl, TextBox).Text = String.Empty
End If
Next
End Sub

Maka contoh penggunaanya :
CearTextBoxInBox(GroupBox1)
Sumber : http://tidipia-comp.blogspot.com/2011/12/bersihkan-isi-semua-textbox-pada-form.html

Sedikit penjelasan kedua fungsi diatas, "ctl" didekarasikan sebagai Control langsung pada saat di-looping dengan "for-each" pada syntax :
For Each ctl as Control In grb.Controls

karena yang di-looping objek nya bersifat global (Control), maka untuk pencarian objek TextBox perlu dilakukan validasi control dengan menyertakan TypeOf pada operator bersyarat "If" :
If TypeOf ctl Is TextBox Then

selanjutnya, jika ditemukan maka "ctl" (Control) di-casting ke bentuk object TextBox :
CType(ctl, TextBox).Text = String.Empty

Dan anda bisa melakukan modifikasi jika ingin menghapus isi TextBox pada semua GroupBox didalam form, caranya dengan membuat If Bersarang (If Nested). Pada If pertama lakukan validasi GroupBox, lalu letakan kondisi lagi didalamnya (If kedua) dengan validasi TextBox.

Terima kasih atas kunjunganya, semoga bermanfaat.

Selasa, 25 Desember 2012

Enable Remote Connection on SQL Server 2008 Express

Sumber : http://www.linglom.com/2009/03/28/enable-remote-connection-on-sql-server-2008-express/

Introduction

Last time, I wrote an article show how to enable remote connection on SQL Server 2005 Express. Now SQL Server 2008 Express is released for a while, it doesn’t allow remote connection on default installation as on SQL Server 2005 Express. So you have to enable it manually.


If you’re trying to connect to SQL Server 2008 Express remotely without enable remote connection first, you may see these error messages:
  • “Cannot connect to SQL-Server-Instance-Name
    An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 28 – Server doesn’t support requested protocol) (Microsoft SQL Server)”

    Server doesn't support requested protocol
  • “Cannot connect to SQL-Server-Instance-Name
    An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified) (Microsoft SQL Server)”

    Error Locating Server/Instance Specified
  • “Cannot connect to SQL-Server-Instance-Name
    Login failed for user ‘username‘. (Microsoft SQL Server, Error: 18456)”

    Login failed for user 'sa'
To enable remote connection on SQL Server 2008 Express, see the step below:
  1. Start SQL Server Browser service if it’s not started yet. SQL Server Browser listens for incoming requests for Microsoft SQL Server resources and provides information about SQL Server instances installed on the computer.
  2. Enable TCP/IP protocol for SQL Server 2008 Express to accept remote connection.
  3. (Optional) Change Server Authentication to SQL Server and Windows Authentication. By default, SQL Server 2008 Express allows only Windows Authentication mode so you can connect to the SQL Server with current user log-on credential. If you want to specify user for connect to the SQL Server, you have to change Server Authentication to SQL Server and Windows Authentication.
Note: In SQL Server 2008 Express, there isn’t SQL Server Surface Area Configuration so you have to configure from SQL Server Configuration Manager instead.

Step-by-step

  1. Open SQL Server Configuration Manager. Click Start -> Programs -> Microsoft SQL Server 2008 -> Configuration Tools -> SQL Server Configuration Manager.
    SQL Server Configuration Manager
  2. On SQL Server Configuration Manager, select SQL Server Services on the left window. If the state on SQL Server Browser is not running, you have to configure and start the service. Otherwise, you can skip to step 6.
    SQL Server Browser Service
  3. Double-click on SQL Server Browser, the Properties window will show up. Set the account for start SQL Server Browser Service. In this example, I set to Local Service account.
    Set Startup Account
  4. On SQL Server Browser Properties, move to Service tab and change Start Mode to Automatic. Therefore, the service will be start automatically when the computer starts. Click OK to apply changes.
    Set Start Mode to Automatic
  5. Back to SQL Server Configuration Manager, right-click on SQL Server Bowser on the right window and select Start to start the service.
    Start SQL Server Browser Service
  6. On the left window, expand SQL Server Network Configuration -> Protocols for SQLEXPRESS. You see that TCP/IP protocol status is disabled.
    Protocols for SQL EXPRESS
  7. Right-click on TCP/IP and select Enable to enable the protocol.
    Enable TCP/IP protocol
  8. There is a pop-up shown up that you have to restart the SQL Service to apply changes.
    Need to Restart SQL Server Service
  9. On the left window, select SQL Server Services. Select SQL Server (SQLEXPRESS) on the right window -> click Restart. The SQL Server service will be restarted.
    Restart SQL Server Service
  10. Open Microsoft SQL Server Management Studio and connect to the SQL Server 2008 Express.
    Open Microsoft SQL Server Management Studio
  11. Right-click on the SQL Server Instance and select Properties.
    Open Server Properties
  12. On Server Properties, select Security on the left window. Then, select SQL Server and Windows Authentication mode.
    Change Authentication to SQL Server and Windows Authentication
  13. Again, there is a pop-up shown up that you have to restart the SQL Service to apply changes.
    Need to Restart SQL Server Service
  14. Right-click on the SQL Server Instance and select Restart.
    Restart SQL Server Service
  15. That’s it. Now you should be able to connect to the SQL Server 2008 Express remotely.

Selasa, 11 Desember 2012

Menyisipkan Kontrol Baru

Sumber : http://pujanggavb.wordpress.com/2008/11/14/menyisipkan-kontrol-baru/

Menambahkan sebuah kontrol pada saat design mode memang mudah sekali. Anda tinggal memilih jenis kontrol yang disediakan ToolBox, kemudian melakukan dragging pada badan form. Bisakah Anda menciptakan atau menambahkan kontrol baru pada saat runtime atau melalui jendela kode?
Teknik berikut ini adalah teknik untuk menciptakan kontrol baru. Cukup aneh memang, Anda tidak memasukkan kontrol apapun, namun ketika program berjalan form tiba-tiba menciptakan kontrol-kontrol baru. Lebih aneh lagi kontrol-kontrol ini dapat diperintah layaknya kontrol yang Anda desain saat design mode.
Berikut ini contoh program untuk menyisipkan sebuah PictureBox, beberapa TextBox dan sebuah VScrollBar yang dijalankan ketika runtime.
Stop! Tidak perlu melakukan design apapun, ketikkan kode di bawah ini.



Option Explicit

   Dim ctl As Control
   Dim i As Long
   Dim AkhirTinggi As Long
   Dim AwalTop As Long

   Dim JumTextBox As Integer
   Dim myVsb As Control

  Dim WithEvents vsbScroll As VScrollBar
  Dim WithEvents Picture1 As PictureBox

  Private Sub Form_Load()
      'Membuat PictureBox
      Set ctl = Me.Controls.Add("VB.PictureBox", _
          "Picture1")
      ctl.Visible = True

      ctl.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
      Set Picture1 = ctl

      'Membuat TextBox baru
      JumTextBox = 20 '<-- banyaknya="banyaknya" br="br" textbox="textbox">      For i = 0 To JumTextBox
          Set ctl = Me.Controls.Add("VB.TextBox", _
          "Text" & CStr(i))
          'Agar kontrol ditampung PictureBox
          Set ctl.Container = Picture1
          'Memposisikan dan mengatur ukuran TextBox
          ctl.Move 60, 60 + (330 * i), 2000, 285

          AkhirTinggi = i * (60 + (330 * i) + 285)
          'Mengisi properti Text
          'sesuai dengan nama TextBox
          ctl.Text = ctl.Name

          'Menampilkan TextBox
          ctl.Visible = True
      Next

      'Membuat ScrollBar vertical
      Set ctl = Me.Controls.Add("VB.VScrollBar", _
          "vsbScroll")
      Set ctl.Container = Picture1
      ctl.Move Picture1.Width - 350, 0, 280, Picture1.Height - 100
      ctl.Max = JumTextBox * 300 + Picture1.Height
      ctl.SmallChange = 100
      ctl.LargeChange = 200
      ctl.Visible = True

      Set vsbScroll = ctl
  End Sub

  Sub vsbScroll_Change()
      'Memindahkan posisi TextBox
      For Each ctl In Me.Controls
          If TypeOf ctl Is TextBox Then
              ctl.Top = ctl.Top + (AwalTop - vsbScroll.Value)
          End If
      Next
      AwalTop = vsbScroll.Value
  End Sub

  Sub vsbScroll_Scroll()
      vsbScroll_Change
  End Sub

  Private Sub VScroll1_Change()
      For Each ctl In Me.Controls
          If TypeOf ctl Is TextBox Then
              ctl.Top = ctl.Top + (AwalTop - VScroll1.Value)
          End If
      Next

      AwalTop = VScroll1.Value
  End Sub
Jalankan program (F5), lihatlah apa yang terjadi! CObalah untuk mengklik atau menggerakan batang penggulung (VScrollBar).

Jumat, 05 Oktober 2012

PHP RSS Executing Microsoft SQL Server Stored Procedure from PHP on Linux Read more at http://www.devarticles.com/c/a/PHP/Executing-Microsoft-SQL-Server-Stored-Procedure-from-PHP-on-Linux

Sumber : http://www.devarticles.com/c/a/PHP/Executing-Microsoft-SQL-Server-Stored-Procedure-from-PHP-on-Linux/7/

On my Windows box (home2k), I use Microsoft SQL Server query analyzer to create the following stored procedure on pubs database (I will use this stored procedure on Sybase SQL Server with pubs2 database in my next article):
CREATE PROC sp_GetBooksByPrice
@minPrice money,
@maxPrice money,
@lowestPricedBook varchar(100) OUTPUT,
@highestPricedBook varchar(100) OUTPUT
AS
DECLARE @realminPrice money,  @realmaxPrice money, @totalBooks int
SELECT @realminPrice = min(price) FROM titles WHERE price >=@minPrice
SELECT @realmaxPrice = max(price) FROM titles WHERE price <
=@maxPrice
SELECT @lowestPricedBook =title FROM titles WHERE price = @realminPrice
SELECT @highestPricedBook =title  FROM titles WHERE price = @realmaxPrice
SELECT @totalBooks = COUNT(title)  FROM titles WHERE price >= @minPrice AND price <= @maxPrice
RETURN  @totalBooks
GO

On the Red Hat side, use an editor to create the following file called sp_test.php:
$myServer = "home2k";
$myUser = "sa";
$myPass = "";
$myDB = "pubs";

$s = mssql_connect($myServer, $myUser, $myPass)
or die("Couldn't connect to SQL Server on $myServer");

mssql_select_db($myDB, $s)
or die("Couldn't open database $myDB");

$proc = mssql_init("sp_GetBooksByPrice", $s);
$minPrice = 2.00;
$maxPrice = 20.00;
$lowestPricedBook = "";
$highestPricedBook = "";
$numBooks = 0;

// Bind the parameters
mssql_bind($proc, "@minPrice", $minPrice, SQLFLT8);
mssql_bind($proc, "@maxPrice", $maxPrice, SQLFLT8);
mssql_bind($proc, "@lowestPricedBook", $lowestPricedBook, SQLVARCHAR, TRUE, FALSE,100);
mssql_bind($proc, "@highestPricedBook", $highestPricedBook, SQLVARCHAR, TRUE, FALSE,100);

// Bind the return value
mssql_bind($proc, "RETVAL", $numBooks, SQLINT2);
mssql_execute($proc);
mssql_free_statement ($proc);
mssql_close($s);

echo "

There were $numBooks Books returned.

";
echo "The lowest price book was: $lowestPricedBook.
";
echo "The highest price book was: $highestPricedBook.";
?>

Save the file in /usr/local/Apache2/htdocs, open your browser, and input http://localhost/sp_test.php in address bar. It is useful when you debug your PHP code with MS SQL Server.
Read more at http://www.devarticles.com/c/a/PHP/Executing-Microsoft-SQL-Server-Stored-Procedure-from-PHP-on-Linux/7/#GMapUYYU2SbkICRo.99

Cara Lain Ada di : http://www.daniweb.com/web-development/php/threads/112159/php-mssql-stored-procedure-with-parameters-in-and-out

gave up trying to do the output code version of the Stored Procedure call, instead I changed my Stored Procedure to return a single row which would contain the information I needed.
Then, to call the MS SQL Server 2000 Stored Procedure from PHP, I did the following:
  
// Connect to SQL Server and check for errors
  1. $conn = mssql_connect($db_host,$db_user,$db_password);
  2. if ($conn===false)
  3. {
  4. echo 'Cannot connect to SQL Server Database. Please try again later. ';
  5. exit;
  6. }
  7. if (mssql_select_db("MyDatabase",$conn) === false)
  8. {
  9. echo 'Cannot connect to MyDatabase. Please try again later. ';
  10. exit;
  11. }
  12. $proc = mssql_init('MyStoredProcedure',$conn);
  13. mssql_bind($proc,'@ParameterOne',$ParameterOne,SQLVARCHAR);
  14. mssql_bind($proc,'@ParameterTwo',$ParameterTwo,SQLVARCHAR);
  15. mssql_bind($proc,'@ParameterThree',$ParameterThree,SQLVARCHAR);
  16. if ($result = mssql_execute($proc))
  17. {
  18. if ($row = mssql_fetch_row($result))
  19. {
  20. // now you can deal with the $row array to check out your results
  21. }
  22. }
 

Minggu, 30 September 2012

Implementing Automatic Application Failover

Sumber : http://sqlserver-indo.org/blogs/suherman/archive/2011/06/18/implementing-automatic-application-failover.aspx

wow…. sudah lama gak ngeblog. udah kangen banget pingin bisa ngeblog lagi, namun karena kesibukan kantor jadinya baru sekarang saya bisa nulis lagi.
Tulisan kali ini adalah hasil eksperimen saya terhadap pertanyaan dari salahsatu member di milis SQLServer-indo mengenai apakah aplikasi Visual Basic 6 dapat beradaptasi dengan fitur Database mirroring yang ada di SQL Server 2005 keatas.
Makin terpancing lagi karena di kantor saya sudah menerapkan Database Mirroring, namun aplikasi di client masih menggunakan Visual Foxpro. Jadi Apakah aplikasi Visual Basic 6 dan Visual Foxpro dapat beradaptasi dengan fitur Database Mirroring di SQL Server 2005 keatas ?
Jawabannya adalah …… BISA!
So, ga perlu deh migrasi ke .NET. Project berikutnya aja deh kalo tim saya mau pake .NET Smile
Langkah untuk membuat aplikasi VB6 anda dapat menjadi application failover adalah :
  1. Pastikan SQL Server Browser Services di kedua server (principal dan Mirror) sudah berjalan.
  2. pada sisi client sudah terinstal SQL Server Native Component yang dapat di didownload disini (untuk SQL Server 2008): X86 Package (sqlncli.msi) - 4549 KB
    X64 Package (sqlncli.msi) - 7963 KB
    IA64 Package (sqlncli.msi) - 11112 KB
  3. Gunakan connectionstring seperti contoh berikut (code ini untuk di vb6):
    Public Con As ADODB.Connection
     Sub OpenSQLCOnnection()
        Const CLOSED As Integer = 0
            If Con.State = CLOSED Then
            constr = "Provider=SQLNCLI10;"
            constr = constr & "Integrated Security=SSPI;"
            constr = constr & "Initial Catalog=AdventureWorks;"
            constr = constr & "Data Source=Suherman-PC\SS2008R2;"
            constr = constr & "FailoverPartner=Suherman-PC\MIRRORSERVER;"
            constr = constr & "DataTypeCompatibility=80;"
            constr = constr & "Network=dbmssocn;"
            Con.Open constr
            End If
    End Sub
  4. Selesai.
Yup, sesederhana itu aja. kita tinggal mengganti Provider untuk connectionstringnya dan menambah beberapa atribut di connectionstringnya.
Berikut ini saya sertakan juga sample application failover yg dibuat dari VB6 yang ddapat didownload disini. dan sample yang dibuat dengan VB.NET yang dapat didownload disini.
Semoga bermanfaat.

Rabu, 26 September 2012

Memanfaatkan Virtualbox sebagai server development (Ubuntu LAMP + Samba Server) part 1

Sumber : http://foxyland.blogspot.com/2012/04/memanfaatkan-virtualbox-sebagai-server.html
Hi guys... Long time no see... :) Wow... hampir dua tahun saya gak post di blog ini. Lots of things happen, tapi itu untuk lain kali dah... Untuk sekarang, saya mau share bagaimana saya memanfaatkan Oracle Virtualbox untuk membantu saya saat membangun aplikasi. Mungkin ada yang bertanya; "Ngapain kok capek-capek harus menggunakan virtualbox? Install aja langsung XAMPP atau AppServ. Beres kan?" . Nah alasannya ini:
  1. Melatih kita untuk ‘terbiasa’ dengan environment Linux, jadi kita bisa men-setup server Linux di production (berarti menghindari penggunaan keluarga Window$). Kalau aplikasi di-deploy dengan Linux, tentunya akan meniadakan biaya lisensi Windows. Berarti biaya yang lebih murah untuk client.
  2.  Dengan LAMP Server, kita juga menginstall Apache dan PHP. Jadi bisa digunakan juga untuk belajar PHP di waktu luang.
  3. Pasti pernah dengar keluhan, "Aplikasi saya bisa jalan di komputer saya dengan baik, tapi waktu diinstall di client kok gak jalan?” . Nah, dengan mesin virtual yang terpisah dari development box, saat development kita bisa lebih mensimulasi keadaan di production secara lebih riil (untuk yang gak tau apa itu production: yang dimaksud production adalah kondisi yang sebenarnya di client).
  4. Masih melanjutkan point 3) di atas, kita bisa melakukan testing aplikasi kita dengan lebih baik. Kita bisa memberi beban kepada server, bisa mengurangi kecepatan network, atau bahkan bisa mensimulasi keadaan koneksi network terputus atau server mendadak mati ditengah-tengah aplikasi yang sedang berjalan.
  5. Sebagian besar aplikasi yang saya buat menggunakan database MS-SQL Server sebagai back-end. Saya gak mau membebani komputer saya dengan service PHP atau MySQL atau PostgreSQL atau service-service lain yang tidak sedang saya gunakan. Dengan Virtualbox, kita bisa 'mematikan' server dan hanya menyalakan kalau diperlukan saja.
  6. Saya juga akan memanfaatkan Samba Server sebagai pengganti File Server Windows. Jadi ini juga bisa digunakan sebagai file server pengganti Windows Server. Lumayan kan? Windows Server harga-nya sekitar Rp 7jt. Daripada untuk beli Windows Server, client pasti gak akan keberatan kalau mereka cuma bayar 1/4-nya saja kepada kita untuk support Linux Server-nya :)
  7. "Kenapa Virtualbox? Kan lebih bagus VMWare?" Yup. Betul. Silahkan pakai VMWare kalau Anda mau --- tapi daripada Anda pakai VMWare versi pasar minggu, apa gak lebih baik pakai Oracle Virtualbox yang resmi (dan gratis)

Sabtu, 15 September 2012

Mssql Functions

sumber : http://id.php.net/manual/en/ref.mssql.php

Table of Contents

Rabu, 12 September 2012

Teknik Paging PHP dari rosihanari.net

Paging merupakan teknik menampilkan data dengan cara membaginya ke beberapa halaman. Teknik ini diberikan untuk mengurangi scrolling window apabila data yang disajikan terlalu banyak, sehingga akan menimbulkan kejemuan orang yang melihat dan juga akan menghasilkan page load time yang besar karena ukuran filenya besar (apabila data disajikan dalam satu halaman saja).
Untuk keperluan navigasi data biasanya disajikan dengan link berupa nomor halaman atau kadang berbentuk Previous dan Next.
Pada tutorial ini akan dipaparkan bagaimana ide membuat advance paging ini dilakukan. Advance paging adalah paging yang navigasinya berbentuk
1 2 3 4 … 20 Next >>
Contoh tampilan di atas diasumsikan terdapat 20 halaman paging dan halaman yang sedang aktif adalah halaman 1. Bila yang aktif halaman 10, maka tampilan navigasinya adalah:
<< Prev 1 ... 7 8 9 10 11 12 13 … 20 Next >>
Sedangkan bila yang aktif adalah halaman terakhir (20) maka tampilan navigasinya adalah
<< Prev 1 .. 17 18 19 20
Dalam contoh ini kasus advance paging ini akan diterapkan pada data guestbook atau buku tamu. Istilah ‘advance paging’ ini adalah istilah saya saja sih :-)
Mau tau bagaimana ide dan cara membuatnya? simak baik-baik artikel ini. Artikel ini merupakan request dari mas Sadeli (salah satu member saya)

Koneksi PHP dan SQL Server 2000 Bagian II

Sumber : http://lemahhegar.blogspot.com/2010/07/mengakses-microsoft-sql-server-2000_28.html

D. Membuat Koneksi ke MS SQL Server 2000 dengan PHP
Bagian ini akan membahas mengenai penulisan script untuk mendapatkan acces ke MS SQL server dengan metode ODBC. Fungsi yang digunakan untuk mengakses MS SQL server dengan metode tersebut adalah odbc_connect(dsn, nama user, password), script ini memerintahkan untuk melakukan koneksi terhadap sumber data yang telah kita buat DSN systemnya (nama sumber data yang dapat diakses oleh siapa saja yang memiliki akses terhadap mesin), dengan user name dan password yang telah disimpan dalam database MS SQL Server, mengenai DSN dan bagaimana membuat System DSN telah dibahas dengan cukup panjang pada bagian sebelumnya, sedangkan mengenai cara membuat user name dan password pada MS SQL server 2000 akan dijelaskan secara ringkas pada bagian ini, langkah yang dilakukan adalah sebagai berikut:

Koneksi PHP dan SQL Server 2000 Bagian I

Lihat Sumber berikut
http://lemahhegar.blogspot.com/2010/07/mengakses-microsoft-sql-server-2000.html

A. Pengenalan
a. Microsoft SQL Server 2000

Berdasarkan penjelasan yang ditemukan pada Wikipedia, Microsoft SQL Server adalah sebuah sistem manajemen basis data relasional (RDBMS) yang dikembangkan oleh Microsoft, bahasa query utamanya adalah Transact-SQL yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase. Pada umumnya SQL server digunakan oleh perusahaan yang memiliki basis data dalam skala kecil dan menengah, namun kemudian penggunaan SQL server berkembang sehingga digunakan oleh perusahaan yang memiliki basis data dalam skala besar. Microsoft SQL server dapat melakukan komunikasi data melalui jaringan dengan menggunakan protokol TDS (Tabular Data Stream), selain itu Microsoft SQL server juga mendukung penggunaan ODBC (Open Database Connectivity), dan juga memiliki driver JDBC untuk bahasa pemrograman java. Fitur lain dari SQL server ini adalah kemampuannya untuk membuat basis data mirroring dan clustering

Tips Membuat Script PHP Pengolah Password dengan MD5

Sumber : http://blog.rosihanari.net/tips-membuat-script-php-pengolah-password-dengan-md5/
Setiap password pengguna aplikasi hendaknya dienkripsi untuk keperluan faktor keamanan. Mengapa password harus dienkripsi? atau apa sih enkripsi itu? OK… enkripsi adalah teknik penyandian pesan, yang semula pesan tersebut dapat dibaca dan bermakna, setelah dienkripsi menjadi tidak terbaca dan tidak bermakna. Lantas… mengapa password harus dienkripsi? Pertanyaan tersebut saya balik, bagaimana jika password tidak dienkripsi? Apabila password tidak dienkripsi, maka dapat dengan mudah dibaca, dan digunakan oleh orang lain yang tidak berhak untuk masuk ke dalam sistem atau aplikasi.
Dalam PHP, tentu kita tidak asing dengan perintah atau function md5(). Function ini sering digunakan para programmer untuk mengenkripsi password sebelum hasil enkripsi tersebut disimpan dalam database sistem, ketika registrasi user baru. Hasil enkripsi md5() berupa suatu string acak dengan panjang 32 karakter (256 bit). Sudah amankah penggunaan md5()? Artikel ini akan membahasnya, serta memberikan tips bagaimana cara membuat script PHP yang baik untuk mengolah password.

Cek Validasi Tanggal di PHP dengan fungsi checkdate()

Sumber : http://blog.rosihanari.net/teknik-memvalidasi-input-tanggal-dengan-php/
Berikut ini saya jelaskan penggunaan  function checkdate() melalui contoh yang saya berikan.

Sebelumnya, perlu kita bahas terlebih dahulu cara penggunaan function checkdate() ini. Function ini akan menghasilkan nilai TRUE jika tanggal yang kita ingin cek adalah valid, serta FALSE jika tidak valid.
Function ini dalam penggunaannya memerlukan 3 buah parameter
 1.checkdate(m, d, y);

dengan m adalah bulan, d adalah tanggal dan y adalah tahun. Ketiga parameter tersebut bisa dalam bentuk string maupun integer.
Misalkan kita ingin mengecek apakah tanggal 12/02/2008 itu valid atau tidak, maka kita gunakan perintah

1.
2.$tgl = 12;
3.$bln = 2;
4.$thn = 2008;
5.if (checkdate($bln, $tgl, $thn)) echo "Tanggal Valid";
6.else echo "Tanggal Tidak Valid";
7.?>

Contoh di atas sebagai gambaran bila kita menggunakan tanggalnya sudah terpisah dan dinyatakan dalam bilangan integer. Lantas bagaimana bila tanggal yang kita peroleh dalam format string? misalnya “12/02/2008″?
Ya gak ada masalah.. Konsepnya adalah kita pecah terlebih dahulu dengan menggunakan explode(), lalu hasil pecahannya yang terdiri dari tanggal, bulan dan tahun ini barulah diletakkan pada parameter yang bersesuaian.
Ini dia contohnya

1.
2.$tgl = "12/02/2008";
3.$pecah = explode("/", $tgl);
4.if (checkdate($pecah[1], $pecah[0], $pecah[2])) echo "Tanggal Valid";
5.else echo "Tanggal Tidak Valid";
6.?>

Fungsi php simpan dan ambil tanggal/date pada mysql

Sumber : http://www.nusansifor.com/2009/11/fungsi-php-simpan-dan-ambil-tanggaldate-pada-mysql/comment-page-1/#comment-54237

Berikut salah satu fungsi simpel yg sering digunakan untuk mengconvert guna untuk menyimpan ke mysql dan kebalikkannya, yaitu untuk menampilkan tanggal/date dengan format yg kita inginkan, pada fungsi ini yang kita inginkan adalah dd/mm/yyyy (tanggal/bulan/tahun).
// FUNGSI DATE CONVERT
function jin_date_sql($date){
 $exp = explode('/',$date);
 if(count($exp) == 3) {
  $date = $exp[2].'-'.$exp[1].'-'.$exp[0];
 }
 return $date;
}
 
function jin_date_str($date){
 $exp = explode('-',$date);
 if(count($exp) == 3) {
  $date = $exp[2].'/'.$exp[1].'/'.$exp[0];
 }
 return $date;
}
Cara penggunaannya adalah sbb.:
Convert dari tanggal DD/MM/YYYY ke YYYY-MM-DD untuk insert ke database mysql
$data_tanggal_form = "23/02/2009"; // DD/MM/YYYY
$data_tanggal_mysql = jin_date_sql($data_tanggal_form);  
// hasilnya: 2009-01-01 = YYYY-MM-DD
 
Dan kebalikannya, yaitu ingin menampilkan.
Convert dari tanggal YYYY-MM-DD ke DD/MM/YYYY untuk tampil ambil dari database mysql
$data_tanggal_db = "2009-01-01"; // YYYY-MM-DD
$data_tanggal_tampil = jin_date_str($data_tanggal_db);  
// hasilnya: 23/02/2009 = DD/MM/YYYY

Minggu, 09 September 2012

Responsive Webdesign, Apa dan Bagaimana ?

Sumber : http://www.ariona.net/responsive-webdesign-apa-dan-bagaimana/
Saat ini, internet sudah dapat diakses oleh berbagai macam perangkat, mulai dari Komputer sampai dengan Smartphone. Dan yang menjadi permasalahan adalah semua perangkat tersebut memiliki layar dengan resolusi yang berbeda-beda, sehingga jika situs yang kita buat dibuka di dalam handphone dengan layar yang kecil, maka konten yang ditampilkanpun menjadi rusak, atau jika bisa ditampilkan secara penuh atau mungkin akan direpotkan dengan aktifitas zoom-in dan zoom-out untuk membaca kontent.
Disinilah Responsive webdesign berperan. Webdesign yang responsive akan langsung beradaptasi dengan ukuran layar device, sehingga konten yang ditampilkan tidak rusak atau tidak perlu lagi zoom-in dan zoom-out. Dan pada tutorial inilah saya akan membahas bagaimana cara membuat responsive web design tersebut dengan menggunakan metode CSS media queries.
Jika masih bingung apa yang sedang saya bicarakan, silahkan tengok demonstrasi berikut, lalu resize browser anda secara horizontal. Perhatikan bahwa konten juga ikut beradaptasi sesuai dengan ukuran browser.
Demonstrasi
Ketika browser diresize dengan ukuran lebar 768px, Sidebar berpindah lokasi menjadi di bawah. selanjutnya ketika browser diresize kembali ke ukuran 600px, List menu berubah menjadi Combo Menu. Menarik bukan jika desain web seperti itu ?.

HTML

Pertama-tama kita buat markup untuk demonstrasi tutorial ini, markup adalah layout web standar yakni header, navigation, content, sidebar dan footer.

 lang="en-US">

 </span><span class="pln">Responsive Demonstration</span><span class="tag">
id="wrapper">
id="navigation">
id="content"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
id="sidebar"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod quis nostrud exercitation ullamco laboris nisi ut tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
class="clear">
class="clear">
Perhatikan bahwa pada navigation, selain saya menuliskan Unordered list untuk menu, saya juga menyiapkan combobox untuk menu.

CSS

Selanjutnya kita beri style pada markup yang telah kita buat, untuk style berikut saya yakin anda sudah pada jago.
*{
 margin:0;padding:0;
}
body{
 background:#F9F4EB;
 font-family: georgia;
}
p{padding:20px;line-height:30px;}
a{color:black;text-decoration:none}
#wrapper{
 width:960px;
 margin:auto;
 background: white;
}
.clear{clear:both;}
#header{
 background:#9acf11;
 padding:20px;
}

#navigation ul{list-style:none;background:#62830a;overflow:hidden;}
#navigation ul li{float:left;padding:10px;border-right:1px solid #384b06;}
#navigation select{
 padding:10px;width:100%;
 display:none;
 background:#62830a
}
#content {
 float:left;
 width:600px;
}

#sidebar{float:left;width:360px;}

#footer{
 background:#62830a;
}
Untuk menu yang menggunakan combobox, saya hide terlebih dahulu, karena kita akan memunculkannya pada resolusi 600px kebawah sebagai pengganti menu list.

Let’s Make it Responsive

Tahap yang paling utama dari tutorial ini adalah membuat layout yang kita buat menjadi responsive. Seperti yang saya katakan tadi, bahwa kita akan menggunakan CSS media queries untuk membuat layout kita menjadi responsive. Contoh penggunaannya seperti berikut
@media screen and (max-width:768px){
 /* Masukkan style yang akan dirubah */
}
Jika saya translate ke bahasa Indonesia :) , kira-kira menjadi seperti berikut :
“Jika website dibuka dengan perangkat layar dan ukuran maksimal layar adalah 768px maka gunakan style berikut”
Maksud screen adalah website yang dibuka menggunakan layar baik itu monitor atau layar handphone, kita juga bisa membuat style untuk printer, jadi medianya print.
Cukup penjelasan singkatnya, kita lanjutkan ke praktek. Seperti yang saya demonstrasikan pertama kita buat style untuk ukuran layar 768px ke bawah. Jadi dalam file CSS tambahkan kode berikut :
@media screen and (max-width:768px){
 
}
yang akan kita rubah adalah ukuran #wrapper, #content dan #sidebar, jadi tambahkan kode berikut di dalam Media Queries yang kita buat barusan.
@media screen and (max-width:768px){
 #wrapper{
  width:90%;
 }
 #content{
  width:100%;
  float:none;
 }
 #sidebar{
  width:100%;
  float:none;
  border-top:1px solid #384b06;
 }
}
Jika kita menggunakan persentasi untuk ukuran, maka layout akan otomatis berubah mengikuti ukuran layar. Selanjutnya kita override float:left pada #content dan #sidebar menjadi none, dan kita tambahkan border atas pada #sidebar, sebagai pemisah antara #content dan #sidebar.
Selanjutnya kita tambahkan media querie baru untuk ukuran layar 600px ke bawah. Dalam query ini kita akan menyembunyikan Menu List dan menampilkan menu combo.
@media screen and (max-width:600px){
 #navigation ul{display:none;}                           
 #navigation select{display:block;}
}
Yep, projek selesai, silahkan save dan buka pada browser. Coba untuk meresize browser secara horizontal. Sebagai contoh kasus lainnya Saya juga membuat web ini responsive, namun hanya untuk ukuran 800px.

Kesimpulan

Pada dasarnya kita bisa menggunakan persentasi untuk membuat web menjadi responsive, namun cara ini sangat sulit karena kita harus menentukan setiap ukuran element dalam persentasi. Untuk itu cara Media Query lah yang termudah untuk membuat website menjadi responsive dan Jangan Lupa untuk meninggalkan komentar :) .

Sumber Referensi

Sebagai sumber referensi lainnya anda dapat membuka situs-situs berikut. disana dibahas bagaimana membuat video, gambar, table menjadi responsive.

Update

Tambahkan tag berikut di dalam header supaya bisa berjalan dengan baik di perangkat Android atau iOS. Karena jika tidak kedua device tersebut biasanya menampilkan versi desktop bukan versi mobile.
 name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" >