Dim ClientIndex As Byte
Dim cRequest As Integer
Dim cData As String
Dim i As Integer
Dim iGD As Integer
Sub MulaiServer()
WS(0).LocalPort = 3000
WS(0).Listen
cRequest = 1
ClientIndex = 1
End Sub
Private Sub Form_Load()
MulaiServer
GD.Rows = 41
For i = 1 To 40
GD.Col = 0
GD.Row = i
GD.Text = i
Next i
iGD = 1
End Sub
Private Sub Timer1_Timer()
For i = 1 To GD.Rows - 1
GD.Row = i
GD.Col = 4
If GD.Text = "START" Then
GD.Col = 3
GD.Text = Time
End If
Next i
End Sub
Private Sub WS_ConnectionRequest(index As Integer, ByVal requestID As Long)
Load WS(cRequest)
WS(cRequest).Close
WS(cRequest).Accept requestID
cRequest = cRequest + 1 '
End Sub
Private Sub WS_DataArrival(index As Integer, ByVal bytesTotal As Long)
WS(index).GetData cData, vbString, bytesTotal
Call CekData(index)
End Sub
Sub CekData(index)
On Error Resume Next
Dim kata() As String
kata = Split(cData, "-")
Select Case kata(0)
Case "START"
GD.Row = iGD
GD.Col = 1
GD.Text = kata(1) 'WS(index).RemoteHostIP
GD.Col = 2
GD.Text = Time
GD.Col = 4
GD.Text = "START"
GD.Col = 5
GD.Text = kata(2)
iGD = iGD + 1
Case "STOP"
For i = 1 To GD.Rows - 1
GD.Row = i
GD.Col = 1
If GD.Text = kata(1) Then
GD.Col = 4
GD.Text = "STOP"
End If
Next i
End Select
End Sub
Private
Sub WS_Error(index As Integer, ByVal Number As Integer, Description As
String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As
String, ByVal HelpContext As Long, CancelDisplay As Boolean)
WS(index).Close
End Sub
Sub hapus()
kode.Enabled = True
clearform Me
Call rubahcmd(Me, True, False, False, False)
cmdproses(1).Caption = "&simpan"
End Sub
Sub prosesdb(log As Byte)
Select Case log
Case 0
sql = "insert into barang(kode,nama,harga)" & _
" values('" & kode.Text & _
"','" & nama.Text & _
"' ,'" & harga.Text & "')"
Case 1
sql = "update barang set nama ='" & nama.Text & "', " & _
" harga ='" & harga.Text & "' " & _
" where kode ='" & kode.Text & "'"
Case 2
sql = "delete from barang where kode='" & kode.Text & "'"
End Select
MsgBox "pemrosesan RECORD database telah berhasil....!", vbInformation, "data barang"
db.BeginTrans
db.Execute sql, adCmdTable
db.CommitTrans
Adodc1.Refresh
Call hapus
kode.SetFocus
End Sub
Sub tampilbarang()
On Error Resume Next
kode.Text = rs!kode
nama.Text = rs!nama
harga.Text = rs!harga
End Sub
Private Sub Cmdproses_Click(Index As Integer)
Select Case Index
Case 0
Call hapus
kode.SetFocus
Case 1
If cmdproses(1).Caption = "&simpan" Then
Call prosesdb(0)
Else
Call prosesdb(1)
End If
Case 2
x = MsgBox("yakin RECORD barang akan di hapus...!", vbQuestion + vbYesNo, "barang")
If x = vbYes Then prosesdb 2
Call hapus
kode.SetFocus
Case 3
Call hapus
kode.SetFocus
Case 4
Unload Me
Case 5
Adodc1.Refresh
End Select
End Sub
Private Sub Form_Load()
Call opendb
Call hapus
End Sub
Private Sub kode_keypress(keyascii As Integer)
If keyascii = 13 Then
If kode.Text = "" Then
MsgBox "masukan kode barang..!", vbInformation, "barang"
kode.SetFocus
Exit Sub
End If
sql = "select * from barang where kode='" & kode.Text & "'"
If rs.State = adStateOpen Then rs.Close
rs.Open sql, db, adopendymic, adLockOptimistic
If rs.RecordCount <> 0 Then
tampilbarang
Call rubahcmd(Me, False, True, True, True)
cmdproses(1).Caption = "&edit"
kode.Enabled = False
Else
x = kode.Text
Call hapus
kode.Text = x
Call rubahcmd(Me, False, True, True, True)
cmdproses(1).Caption = "&simpan"
End If
nama.SetFocus
End If
End Sub
LISTING MODULE SERVER
Public db As New ADODB.Connection
Public rs As New ADODB.Recordset
Public rs2 As New ADODB.Recordset
Public sql As String
Sub opendb()
If db.State = adStateOpen Then db.Close
db.CursorLocation = adUseClient
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\pertemuan X\test.mdb;Persist Security Info=False"
End Sub
Sub clearform(f As Form)
Dim ctl As Control
For Each ctl In f
If TypeOf ctl Is TextBox Then ctl.Text = ""
If TypeOf ctl Is ComboBox Then ctl.Text = ""
Next
End Sub
Sub center(f As Form)
f.Move (Screen.Width - f.Width) / 2, (Screen.Height - f.Height) / 4
End Sub
Sub rubahcmd(f As Form, l0 As Boolean, l1 As Boolean, l2 As Boolean, l3 As Boolean)
f.cmdproses(0).Enabled = l0
f.cmdproses(1).Enabled = l1
f.cmdproses(2).Enabled = l2
f.cmdproses(3).Enabled = l3
End Sub
Bagaimana menjadi orang bijak? Tidak
mudah menjelaskannya karena saya sendiri belum merasa sebagai orang
bijak.Konon caranya banyak dan bisa dilihat dari berbagai prespektif
antara lain:
·selalu mengevaluasi diri apa adanya (kekuatan dan kelemahan) sebelum mengevaluasi orang lain;sekaligusmau mengakui kelemahan diri kita;
·selalu memprioritaskan pengunaan sumberdaya secara optimum (tidak boros) tanpa merugikan pihak lain;
·berempati terhadap orang lain yang sedang mengalami duka atau sukacita;
·menahan emosi (bersabar dan menahan amarah) atas kritik orang lain tentang diri kita;
·menjadi pendengar dan pembicara yang baik (ucapan,bahasa tubuh,kadar emosi);
·merespon pendapat orang lain tanpa harus menyakiti orang tersebut; dan hendaknya memberi jalan keluarnya;
·berpenampilan murah senyum dan tidak kikir menghargai orang lain;sekaligus menihilkan sifat menyakiti orang lain;
·menunjukkan kerendahan hati namun tidak rendah diri kecuali di hadapan Allah;
·selalu menambah ilmu pengetahuan utamanya agama dan memanfaatkannya demi rahmatan lil alamin;
·mensyukuri apapun yang diberikan Allah kepada kita;
·mengurangi
rasa kesedihan atas kehidupan yang keras; bersabar dan siap-siaplah
menerima pertolongan yang segera datang dari Allah;
Ditulis oleh Eko Budhi Suprasetiawan e-mail : ekobs@developerforce.net Last update 8 July 2002
Tujuan
Dalam latihan ini Anda akan mengenal pemrograman jaringan dalam Java.
Rancangan
Anda akan mengembangkan aplikasi client server
sederhana, di mana sebuah server berjalan dan jika dihubungi oleh
sebuah client akan mengirimkan pesan "Salam Keadilan !"
Pembekalan
Pemrograman jaringan dikembangkan untuk
menyambungkan proses-proses komputasi yang lumrahnya berjalan dalam
mesin-mesin yang berbeda yang terhubung dalam suatu jaringan komputer.
Contohnya adalah :
Web browser mengakses Web server melalui jaringan.
Aplikasi basis data, di mana terdapat client dan server yang berada
di mesin komputer yang terpisah, dan berinteraksi dalam dalam jaringan.
Aplikasi e-mail di mana terdapat mail client berkomunikasi dengan mail server.
Dalam pemrograman jaringan, inti tantangannya adalah bagaimana
Anda dapat mengirimkan data dari sebuah proses ke proses lainnya
melalui pipa yang menghubungkan keduanya. Pipa antara dua proses ini
dapat dianalogikan dengan saluran telepon antara dua pembicara. Dalam
analogi sambungan telepon, seorang pembicara dapat bercakap di satu
sisi , kemudian suaranya akan mengalir melalui kabel telepon ke lawan
bicaranya, sehingga lawan bicara dapat mendengarnya, dan sebaliknya.
Dalam pemrograman jaringan, setelah Anda membuat sebuah pipa data
antara dua proses, maka masing-masing proses akan memegang satu ujung.
Setiap ujung dari pipa data ini disebut socket. Aliran data antara
kedua socket ini disebut data stream. Masing-masing socket menggenggam
dua stream, yaitu output stream dan input stream.
Sebuah proses dapat mengirim data ke proses lain dengan menuliskannya
ke output stream yang dimiliki sebuah socket. Sebuah proses dapat
menerima data dengan membacanya dari input stream yang dimiliki sebuah
socket. Dengan cara ini maka dapat terjadi pertukaran data, komunikasi
dan interaksi antara dua proses yang berbeda meskipun mereka terpisah
dalam jaringan. Proses-proses ini dapat terpisah tetapi terjaring, baik
dalam intranet, extranet atapun internet, tidak peduli apakah satu
proses berada di Afrika Tengah dan proses lainnya berada di tengah
Samudra Pasifik.
Class-class untuk mengembangkan pemrograman jaringan dikumpulkan dalam
package java.net, yang mempunyai dua class utama yaitu dan
java.net.ServerSocket, digunakan untuk membangun server
java.net.Socket, digunakan untuk membangun pipa antara server dan client
Persiapan
Anda perlu meng-install terlebih dahulu Java Development Kit (JDK)
Buatlah sebuah directory untuk latihan Anda, misalnya /home/lab/touch
Langkah
Langkah 1 : Dengan text editor tulislah SalamKeadilanServer.java
import java.io.*;
import java.net.*;
public class SalamKeadilanServer
{
private String namaServer;
private ServerSocket serverSocket;
public SalamKeadilanServer(String namaServer, int port)
throws IOException
{
this.namaServer = namaServer;
System.out.println("Menghidupkan server bernama :
" + namaServer + " di port : " + port);
serverSocket = new ServerSocket(port);
}
public void operateService()
throws IOException
{
System.out.println(namaServer + " menanti connection ... ");
Socket socket = serverSocket.accept();
String alamatClient = socket.getInetAddress().getHostAddress();
System.out.println(namaServer + " menangkap connection dari "
+ alamatClient);
InputStream inputStream = socket.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
OutputStream outputStream = socket.getOutputStream();
PrintWriter printWriter = new PrintWriter(outputStream, true);
String namaClient = bufferedReader.readLine();
System.out.println(namaServer + " membaca nama client : "
+ namaClient);
System.out.println(namaServer + " mengirim pesan : ");
String pesanDikirim = "Pesan dari " + namaServer + ", untuk "
+ namaClient + "di " + alamatClient +
" : Salam Keadilan !";
System.out.println(pesanDikirim);
printWriter.println(pesanDikirim);
bufferedReader.close();
printWriter.close();
socket.close();
System.out.println(namaServer + " menutup connection.");
}
}
Simpanlah di directory yang telah Anda persiapkan sebagai SalamKeadilanServer.java
Langkah 2 : Dengan text editor tulislah SalamKeadilanServerApp.java
public class SalamKeadilanServerApp
{
public static void main(String[] args)
{
if(args.length<2)
{
System.out.println("Cara penggunaan
:java SalamKeadilanServerApp
<namaServer> <port>");
System.exit(0);
}
try
{
String namaServer = args[0];
String portStr = args[1];
int port = Integer.parseInt(portStr);
SalamKeadilanServer server =
new SalamKeadilanServer(namaServer, port);
server.operateService();
}
catch(java.io.IOException ioe)
{
ioe.printStackTrace();
}
}
}
Simpanlah di directory yang telah Anda persiapkan sebagai SalamKeadilanServerApp.java
Langkah 3 : Dengan text editor tulislah SalamKeadilanClient.java
import java.io.*;
import java.net.*;
public class SalamKeadilanClient
{
private String namaClient;
private String alamatServer;
private int port;
public SalamKeadilanClient(String namaClient, String alamatServer, int port)
{
System.out.println("Membuat client dengan nama : " + namaClient);
this.namaClient = namaClient;
this.alamatServer = alamatServer;
this.port = port;
}
public void connectToServer()
throws IOException
{
System.out.println(namaClient + " menghubungi server di alamat "
+ alamatServer + " di " + port);
Socket socket = new Socket(alamatServer, port);
InputStream inputStream = socket.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
OutputStream outputStream = socket.getOutputStream();
PrintWriter printWriter = new PrintWriter(outputStream, true);
System.out.println(namaClient + " mengirim data tentang nama ke server.");
printWriter.println(namaClient);
System.out.println(namaClient + " menangkap pesan dari server : ");
String pesan = bufferedReader.readLine();
System.out.println(pesan);
bufferedReader.close();
printWriter.close();
System.out.println(namaClient + " menutup connection.");
socket.close();
}
}
Simpanlah di directory yang telah Anda persiapkan sebagai SalamKeadilanClient.java
Langkah 4 : Dengan text editor tulislah SalamKeadilanClientApp.java
public class SalamKeadilanClientApp
{
public static void main(String[] args)
{
if(args.length<3)
{
System.out.println("Cara penggunaan:
java SalamKeadilanClientApp
<namaClient> <alamatServer> <nomorPortdariServer>");
System.exit(0);
}
try
{
String namaClient = args[0];
String alamatServer = args[1];
String portStr = args[2];
int port = Integer.parseInt(portStr);
SalamKeadilanClient client = new SalamKeadilanClient
(namaClient, alamatServer, port);
client.connectToServer();
}
catch(java.io.IOException ioe)
{
ioe.printStackTrace();
}
}
}
Simpanlah di directory yang telah Anda persiapkan sebagai SalamKeadilanClientApp.java
Langkah 5 : Persiapkan dua buah console
Anda akan meng-compile
dan meluncurkan aplikasi dari console. Luncurkan dua buah console, dan
lakukan change directory di kedua console tsb ke directory yang sudah
dipersiapkan.
Untuk dapat sukses melakukan kompilasi dan meluncurkan aplikasi, Anda
harus menge-set setidaknya dua buah variabel lingkungan dalam Operating
System Anda, yaitu : Variabel lingkungan PATH harus memuat directory
dimana perintah java dan javac. Contoh untuk menge-set variabel
lingkungan PATH :
$ export PATH=/home/lab/jdk1.3.1_01/bin:$PATH
Variabel lingkungan CLASSPATH harus memuat directory di mana file
.class dari aplikasi Anda berada. Contoh untuk menge-set variabel
lingkungan CLASSPATH :
$ export CLASSPATH=/home/lab/touch
Langkah 6 : Meng-compile SalamKeadilanServerApp.java di console pertama
Melalui console, jalankan javac :
$ javac SalamKeadilanServerApp.java
Jika Anda menjalani langkah-langkah dengan benar, Anda dapat
menemukan file SalamKeadilanServerApp.class, dan
SalamKeadilanServer.class di dalam directory yang sama.
Langkah 6 : Meng-compile SalamKeadilanClientApp.java di console kedua
Melalui console, jalankan javac :
$ javac SalamKeadilanClientApp.java
Jika Anda menjalani langkah-langkah dengan benar, Anda dapat
menemukan file SalamKeadilanClientApp.class, dan
SalamKeadilanClient.class di dalam directory yang sama.
Langkah 7 : Meluncurkan aplikasi SalamKeadilanServerApp di console pertama
Untuk meluncurkan aplikasi Anda, melalui console, jalankan java :
Membuat client dengan nama : ekobs@developerforce.net
ekobs@developerforce.net menghubungi server di alamat localhost di 8080
Langkah 9 : Perkembangan komunikasi client-server
Saat SalamKeadilanServerApp mendapat connection, akan ditemukan log :
SalamKeadilanServer menangkap connection dari 127.0.0.1
SalamKeadilanServer membaca nama client : ekobs@developerforce.net
SalamKeadilanServer mengirim pesan :
Pesan dari SalamKeadilanServer, untuk ekobs@developerforce.net
di 127.0.0.1 : Salam Keadilan !
Di sisi client, dapat ditemukan log :
ekobs@developerforce.net mengirim data tentang nama ke server.
ekobs@developerforce.net menangkap pesan dari server :
Pesan dari SalamKeadilanServer, untuk ekobs@developerforce.net
di 127.0.0.1 : Salam Keadilan !
Selanjutnya keduanya menutup connection. Di sisi client :