Laporan pemrograman visual3

16
Laporan pemrograman visual Aplikasi Chatting (server-client) Menggunakan windows socket dengan bahasa c++ Disusun oleh : Fenty tri hidayati 09091003058 (www.blog.unsri.ac.id/fenty ) FAKULTAS ILMU KOMPUTER JURUSAN SISTEM INFORMASI UNIVERSITAS SRIWIJAYA

description

 

Transcript of Laporan pemrograman visual3

Page 1: Laporan pemrograman visual3

Laporan pemrograman visual

Aplikasi Chatting (server-client)

Menggunakan windows socket dengan bahasa c++

Disusun oleh :

Fenty tri hidayati

09091003058

(www.blog.unsri.ac.id/fenty)

FAKULTAS ILMU KOMPUTER

JURUSAN SISTEM INFORMASI

UNIVERSITAS SRIWIJAYA

TAHUN AJARAN 2010-2011

Page 2: Laporan pemrograman visual3

BAB IPENDAHULUAN

1.1 Pendahuluan

C++ builder adalah sebuah aplikasi yang digunakan untuk pengembangan dengan memanfaatkan keistimewaan konsep-konsep antar muka grafis dalam Microsoft Windows. Aplikasi yang dihasilkan C++ builder berkait erat dengan Windows itu sendiri sehingga dibutuhkan pengetahuan bagaimana cara kerja dari windows.

Seperti layaknya bahasa pemrograman yang berobjek Visual lainnya C++ Builder ini mempunyai kelebihan antara lain digolongkan ke dalam kelompok RAD(Rapid Application Development), yang merupakan perangkat pemrograman yang mampu membuat aplikasi dengan mudah dan cepat. C++ Builder juga tergolong kelompok bahasa pemrograman

yang menggunakan prinsip Even Driven. Keunggulan lainnya dari C++ Builder ini adalah dalam pengembangan Database dalam pemrograman database ini, terutama program yang sangat sederhana sekali, Anda sudah dapat menjalankan program tersebut tanpa harus menuliskan sebaris kode.

Dalam Pemrograman Visual banyak istilah dan konsep untuk menyebut “sesuatu” yang membentuk sebuah aplikasi. Istilah-istilah tersebut memiliki arti yang sama dalam lingkungan Pemrograman Visual yang lain, misalnya objek, properti, dan event.

Untuk itu dengan keistimewaan borland C++ builder ini, dibangun la

sebuah aplikasi chatting (server-client) dengan menggunakan komponen

windows socket. Windows socket yang berfungsi sebagai jembatan untuk

software aplikasi yang berhuubungan dengan network service terutama

TCP/IP pada sistem operasi windows. Socket juga memungkinkan

terjadinya pertukaran data antar program atau proses baik dalam satu

mesin atau antar mesin.

Page 3: Laporan pemrograman visual3

Maksud dan Tujuan

1. Memberikan informasi mengenai coding aplikasi chatting

menggunakan komponen windows socket di borland C++ builder.

2. Mengetahui bagaimana menghubungkan server socket dengan

client socket dalam aplikasi chatting di borland C++ builder.

BAB IIPEMBAHASAN

Membuat Aplikasi Chatting (Server-Client) dengan menggunakan windows socket di Borland C++ Builder

Page 4: Laporan pemrograman visual3

Pada pembuatan aplikasi chatting yang menggunakan jaringan internet

(TCP/IP atau UDP) , intranet atau LAN ada dua aplikasi di dalamnya, yaitu :

1. Server Application

2. Client Application

Aplikasi chatting ini menggunakan komponen windows socket. Socket

adalah salah satu komponen Borland C++ Builder dan merupakan

jembatan yang bisa memungkinkan terjadinya komunikasi di dalam

jaringan komputer dengan kata lain bisa disebut sebagai middleware.

Socket biasanya digunakan untuk membangun aplikasi terdistribusi.

Winsocks atau windows socket sebenarnya merupakan kepanjangan

dari windows socket API (Application Programming Interface) yang

berfungsi sebagai jembatan untuk software aplikasi yang berhuubungan

dengan network service terutama TCP/IP pada sistem operasi windows.

Socket juga memungkinkan terjadinya pertukaran data antar program

atau proses baik dalam satu mesin atau antar mesin.

Pemrograman Jaringan modern sekarang ini berbasis pada model

client/server. Pada sebagian besar kasus, server biasanya mengirim data,

sedangkan client menerimanya. Pembahasan tentang model

Client/Server tidak akan lepas dari konsep sistem terdistribusi. Sebab

client/server merupakan model dasar dari sistem terdistribusi.

Dengan pembagian fungsi untuk tiap komponen dalam suatu sistem,

manfaatnya:

- Berbagi resource

- Berbagi beban kerja

- Tidak membedakan platform

- Meningkatkan efisiensi

Ada dua organisasi yang menstandarisasi pemrograman jaringan

dan protocol di internet, yaitu:

- Internet Engineering Task Force (IETF) : TCP/IP, MIME, dan SMTP

Page 5: Laporan pemrograman visual3

- World Wide Web Consortium (W3C) : HTTP, HTML, XHTML, MathML, dan

XML

Dokumen-dokument IETF dipublikasikan sebagai Internet drafts dan

requests for comments (RFCs). RFCs and Internet drafts berasal dari

informational dokumen dari keinginan umum sampai spesifikasi detail dari

Internet protokol seperti HTTP.

Dokumen RFCs dipublikasikan jika disetujui oleh Internet Engineering

Steering Group (IESG) dari IETF. Semua dokumen standar IETF yang

disetujui adalah RFCs, tetapi tidak semua RFCs adalah standar IETF. RFCs

banyak terdapat di Internet, misalnya http://www.faqs.org/rfc/ dan

http://www.ietf.org/rfc.html

ARSITEKTUR CLIENT-SERVER

Client/Server dapat diartikan sebagai kemampuan komputer untuk

meminta layanan request data kepada komputer lain. Komputer yang

meminta layanan disebut sebagai client, sedangkan yang menyediakan

layanan disebut sebagai server.

Pengertian lain, client melakukan permintaan suatu informasi atau

mengirim perintah ke server. Server akan menerima permintaan dan

perintah client. Kemudian server akan memproses memproses

berdasarkan permintaan tersebut, dan mengembalikan kepada client

sebagai hasil pemrosesan yang sudah dilakukan.

Page 6: Laporan pemrograman visual3

Arsitektur Model Client/Server

Service Request adalah permintaan dari client baik berupa permintaan

data maupun perintah ke server.

Service Response berupa balasan dari server atas permintaan dari client

berupa hasil proses.

Data yang diminta oleh client dapat diambil dari database pada sisi server

yang sering disebut database server, seperi misalnya MySQL, PostgreSQL,

Oracle, atau SQL Server.

Karakteristik Client-Server:

Client dan Server merupakan item proses (logika) terpisah yang

bekerja sama pada suatu jaringan komputer untuk mengerjakan

suatu tugas

Service : Menyediakan layanan terpisah yang berbeda

Shared resource : Server dapat melayani beberapa client pada saat

yang sama dan mengatur pengaksesan resource

Asymmetrical Protocol : antara client dan server merupakan

hubungan one-to-many. Client memulai komunikasi dengan

mengirim request ke server. Server menunggu permintaan dari

client. Kondisi tersebut juga memungkinkan komunikasi callback.

Transparency Location : proses server dapat ditempatkan pada

mesin yang sama atau terpisah dengan proses client. Client/server

akan menyembunyikan lokasi server dari client.

Mix-and-match : tidak tergantung pada platform

Client –

Web Browser

Middleware PHP, JSP,ASP

Server – Apache, IIS

Service Request Services Response

Database: MySQL, Oracle

Data Request

Page 7: Laporan pemrograman visual3

Message-based-exchange : antara client dan server berkomunikasi

dengan mekanisme pertukaran message.

Encapsulation of service : message memberitahu server apa yang

akan dikerjakan

Scalability : sistem C/S dapat dimekarkan baik vertikal maupun

horisontal

Integrity : kode dan data server diatur secara terpusat, sedangkan

pada client tetap pada komputer tersendiri

MIDDLEWARE

Software yang berfungsi sebagai lapisan konversi atau penerjemah. Juga

sebagai konsolidator dan integrator. Middleware saat ini dikembangkan

untuk memungkinkan satu aplikasi berkomunikasi dengan lainnya

walaupun berjalan pada platform yang berbeda.

ARSITEKTUR SOFTWARE

- Data, menyediakan struktur dan fungsi untuk manipulasi informasi,

yang terdiri dari banyak objek data. Sebagai contoh : relational

Database, file grafik, file suara atau multimedia data stream

- Processing, terfokus pada pemrosesan objek data, yang biasanya

disebut sebagai middleware.

- Presentation, terfokus untuk membuat data tersedia untuk user dan

menangani interaksi dengan user. Ada dua level :

User interface

Presentation management, menyediakan operasi dasar untuk

membangun dan mengontrol user interface di bawah kontrol

aplikasi. Meliputi : layanan tampilan, kontrol dialog dan API.

Contoh : X-Windows, MS Windows

Page 8: Laporan pemrograman visual3

Tahapan dan Screenshot dari aplikasi chatting (server-client)

Adapun langkah pertama yang harus Anda siapkan dalam membuat

aplikasi chatting (server-client) di borland C++ builder adalah buat

sebuah form yang tampak di dalam gambar 1.1.

Letakkan komponen Server Socket (ServerSoc), dua Button (ada

BtnConnect dan BtnSend), textfield (ada dua yaitu untuk txtPort dan

txtSend), dan yang terakhir memo(memo1)

SERVER

Gambar 1.1 tampilan form server

Page 9: Laporan pemrograman visual3

Pada komponen Server Socket terdapat dua buah event, yaitu event

onconnect dan event onread.

Masukkan kode program berikut pada event onconnect:

1. Event OnConnect

Pada event OnClientConnect, dideklarasikan sebuah variabel temp

dengan tipe AnsiString, variabel ini kemudian diberi nilai Socket-

>RemoteAddress; yang merupakan alamat IP (IP Address) dari tiap

client yang akan terhubung ke server ini. Saat Server berhasil

terhubung ke Client maka pada Memo1 Server Side akan muncul

tulisan “Connected”.

Selanjutnnya masukkan kode program berikut pada event onread :

2. Event OnRead

void __fastcall TForm1::ServerSocConnect(TObject *Sender,

TCustomWinSocket *Socket)

{AnsiString temp;

temp=Socket->RemoteAddress;

int i;

for(i=0;i<serverSoc->Socket->ActiveConnections;i++)

{ServerSoc->Socket->Connections[i]->SendText(temp+"Connected");

}Memo1->Lines->Add(temp+" Connected");

}

void __fastcall TForm1::ServerSocRead(TObject *Sender,

TCustomWinSocket *Socket)

{int i;

AnsiString temp,temp2; //untuk temporarinya

temp=Socket->ReceiveText();

temp2=Socket->RemoteAddress;

for(i=0;i<ServerSoc->Socket->ActiveConnections;i++)

{ServerSoc->Socket->Connections[i]-

>SendText(temp2+":"+temp);}Memo1->Lines->Add(temp2+":"+temp);

}

Page 10: Laporan pemrograman visual3

Pada event OnClientRead, dideklarasikan dua buah variabel AnsiString

(temp, temp2). temp=Socket->ReceiveText();  dimana temp berisi

pesan yang diterima Server dari Client.

Untuk Button, terdapat dua buah button yaitu Button Connect dan

Button Send. Masukkan kode program berikut ke dalam tombol

Connect:

1. Button Connect

Fungsi Button connect disini yaitu untuk mengkoneksikan server

socket dengan client socket.

ServerSoc->Port=StrToInt(txtPort->Text);

(ServerSoc= nama Server Socket yang kita buat sendiri)

txtPort merupakan nama textfield yang berisi port dari server yang

aktif.

syntax Port=StrToInt(txtPort->Text);

(dilakukan karena port berupa angka sedangkan textfield berupa

string sehingga nilainya harus di parsing dari string ke integer)

syntax ServerSoc->Open();( berfungsi untuk mengaktifkan server

socket).

Pada tombol Send masukkan kode program berikut :

2. Button Send

void __fastcall TForm1::BtnConnectClick(TObject *Sender)

{ServerSoc->Port=StrToInt(txtPort->Text);

ServerSoc->Open();

}

void __fastcall TForm1::BtnSendClick(TObject *Sender)

{for(int i=0;i<ServerSoc->Socket->ActiveConnections;i++)

{ServerSoc->Socket->Connections[i]->SendText(txtSend-

>Text);}Memo1->Lines->Add(txtSend->Text);

}

Page 11: Laporan pemrograman visual3

Fungsi tombol Button Send yaitu untuk Server Socket mengirim

pesan yang diinputkan pada txtSend ke Client.

Langkah selanjutnya,buat tampilan form kedua yang digunkan

untuk client seperti gambar 1.2 di bawah. Letakkan komponen Client

Socket (ClientSoc), Button (ada dua button yaitu BtnConnect dan

BtnSend),Textfield (ada empat buah textfield yaitu

txtIp,txtPort,txtName,txtMsg), dan terakhir komponen Memo (Memo1).

2. CLIENT

Gambar 1.2 form Client

Selanjutnya ke bagian pengisian koding. Untuk pembuatan koding

hampir sama dengan pembuatan koding pada Server Socket.

Pada Server Socket juga terdapat dua buah event, yaitu :

1. Event OnConnect

void __fastcall TForm1::ClientSocConnect(TObject *Sender,

TCustomWinSocket *Socket)

{

Memo1->Lines->Add("Connected to Server");

}

Page 12: Laporan pemrograman visual3

Saat Client berhasil terhubung ke Server maka pada Memo1 Server

Side akan muncul tulisan “Connected”.

2. Event OnRead

Fungsi event OnRead yaitu untuk pembacaan pesan yang diterima

dari server.

Untuk Button, terdapat dua buah button yaitu Button connect dan

Button Send. Pada tombol Button Connect masukkan kode program

berikut :

3. Button Connect

txtIp berisi ip address server yang dituju, dalam kasus ini

digunakan ip address 127.0.0.1 sebagai localhost, karena

dalam aplikasi chat ini pada sebuah komputer yang sama

(Server dan Client nya berada pada komputer yang sama).

Namun jika server nya berada pada komputer yang lain, maka

ip address nya disesuaikan dengan ip address komputer

dimana server diletakan.

txtport berisi port server (portnya harus sama dengan port

server yang Client yang akan dikoneksikan). Ingat Portnya di

parsing dulu ke Integer, karena textfield bertipe String.

void __fastcall TForm1::ClientSocRead(TObject *Sender, TCustomWinSocket

*Socket)

{

Memo1->Lines->Add(Socket->ReceiveText());

}

void __fastcall TForm1::BtnConnectClick(TObject *Sender){ ClientSoc->Address=txtip->Text; ClientSoc->Port=StrToInt(txtport->Text); ClientSoc->Open();  //mengaktifkan Client Socket}

Page 13: Laporan pemrograman visual3

Pada tombol Button Send masukkan kode program berikut :

4. Button Send

Client Socket mengirim pesan yang diinputkan pada txtmsg ke

server.

void __fastcall TForm1::BtnSendClick(TObject *Sender)

{

ClientSoc->Socket->SendText(txtname->Text+”#”+txtmsg->Text);

}