SlideShare une entreprise Scribd logo
1  sur  15
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




                                         BAB I

                                   PENDAHULUAN



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.




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 II

                             PEMBAHASAN




Membuat Aplikasi Chatting (Server-Client) dengan menggunakan
           windows socket di Borland C++ Builder
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

- 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.


                  Service Request                  Services Response

       Client –                     Middleware                     Server –
                                    PHP, JSP,ASP                  Apache, IIS
        Web
                                                                                Data Request


                                                                  Database: MySQL,
                                                                       Oracle




                                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

    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




          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



  Pada komponen Server Socket terdapat dua buah event, yaitu event

  onconnect dan event onread.



  Masukkan kode TForm1::ServerSocConnect(TObject *Sender,
     void __fastcall program berikut pada event onconnect:
           TCustomWinSocket *Socket)
  1. Event OnConnect
       {
               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");
       }
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::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);
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
    void __fastcall TForm1::BtnConnectClick(TObject *Sender)
    {
             ServerSoc->Port=StrToInt(txtPort->Text);
             ServerSoc->Open();
    }
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::BtnSendClick(TObject *Sender)
    {
           for(int i=0;i<ServerSoc->Socket->ActiveConnections;i++)
           {
                  ServerSoc->Socket->Connections[i]->SendText(txtSend-
           >Text);
           }
           Memo1->Lines->Add(txtSend->Text);
    }



   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");
      }
Saat Client berhasil terhubung ke Server maka pada Memo1 Server Side

  akan muncul tulisan “Connected”.



2. Event OnRead
   void __fastcall TForm1::ClientSocRead(TObject *Sender, TCustomWinSocket
   *Socket)
   {
            Memo1->Lines->Add(Socket->ReceiveText());
   }

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



       •   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.



Pada tombol Button Send masukkan kode program berikut :

4. Button Send
    void __fastcall TForm1::BtnSendClick(TObject *Sender)
    {
             ClientSoc->Socket->SendText(txtname->Text+”#”+txtmsg->Text);
    }



   Client Socket mengirim pesan yang diinputkan pada txtmsg ke server.

Contenu connexe

Tendances

Modul 12rev1
Modul 12rev1Modul 12rev1
Modul 12rev1gung_sono
 
Tipe tipe dan model client server-plus
Tipe tipe dan model client server-plusTipe tipe dan model client server-plus
Tipe tipe dan model client server-plusDenny Yahya
 
Basis data klien server
Basis data klien serverBasis data klien server
Basis data klien serverRangga Ananto
 
Tugas 2 0317-fahreza yozi-1612510832
Tugas 2 0317-fahreza yozi-1612510832Tugas 2 0317-fahreza yozi-1612510832
Tugas 2 0317-fahreza yozi-1612510832fahreza yozi
 
Web service as back end programming kemuning senja
Web service as back end programming kemuning senjaWeb service as back end programming kemuning senja
Web service as back end programming kemuning senjaalifha12
 

Tendances (8)

Choirul (client-01)
Choirul (client-01)Choirul (client-01)
Choirul (client-01)
 
Modul 12rev1
Modul 12rev1Modul 12rev1
Modul 12rev1
 
Tipe tipe dan model client server-plus
Tipe tipe dan model client server-plusTipe tipe dan model client server-plus
Tipe tipe dan model client server-plus
 
Kelompok 7
Kelompok 7Kelompok 7
Kelompok 7
 
Basis data klien server
Basis data klien serverBasis data klien server
Basis data klien server
 
Sister 06 - client server
Sister   06 - client serverSister   06 - client server
Sister 06 - client server
 
Tugas 2 0317-fahreza yozi-1612510832
Tugas 2 0317-fahreza yozi-1612510832Tugas 2 0317-fahreza yozi-1612510832
Tugas 2 0317-fahreza yozi-1612510832
 
Web service as back end programming kemuning senja
Web service as back end programming kemuning senjaWeb service as back end programming kemuning senja
Web service as back end programming kemuning senja
 

Similaire à Aplikasi Chatting Borland C

Pertemuan 10 (database client-server)
Pertemuan 10 (database client-server)Pertemuan 10 (database client-server)
Pertemuan 10 (database client-server)Rifky A Ayub
 
Pemrograman-Berbasis-Web-Pertemuan-1.ppt
Pemrograman-Berbasis-Web-Pertemuan-1.pptPemrograman-Berbasis-Web-Pertemuan-1.ppt
Pemrograman-Berbasis-Web-Pertemuan-1.pptAbdurRozak19
 
Tugas 2 0317-dewi apriliani-1412510602
Tugas 2 0317-dewi apriliani-1412510602Tugas 2 0317-dewi apriliani-1412510602
Tugas 2 0317-dewi apriliani-1412510602dewiapril1996
 
Tugas 2 ihsan riadi - 1412511162
Tugas 2   ihsan riadi - 1412511162Tugas 2   ihsan riadi - 1412511162
Tugas 2 ihsan riadi - 1412511162ihsan riadi
 
Tugas 2 0317-imelda felicia-1412510545
Tugas 2 0317-imelda felicia-1412510545Tugas 2 0317-imelda felicia-1412510545
Tugas 2 0317-imelda felicia-1412510545imeldafelicia
 
Tugas 2 0317-nurul azmi-1412510587
Tugas 2 0317-nurul azmi-1412510587Tugas 2 0317-nurul azmi-1412510587
Tugas 2 0317-nurul azmi-1412510587nurul azmi
 
Jeni web programming-bab 1-pengenalan pemrograman web
Jeni web programming-bab 1-pengenalan pemrograman webJeni web programming-bab 1-pengenalan pemrograman web
Jeni web programming-bab 1-pengenalan pemrograman webSejahtera Affif
 
Edwinprassetyo-1100631028-tugas1
Edwinprassetyo-1100631028-tugas1Edwinprassetyo-1100631028-tugas1
Edwinprassetyo-1100631028-tugas1Edwin Prassetyo
 
Jeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman WebJeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman WebIndividual Consultants
 
Pertemuan 09 client server
Pertemuan 09   client serverPertemuan 09   client server
Pertemuan 09 client serveraingaingaing
 
Tugas rekweb 2 individu
Tugas rekweb 2 individuTugas rekweb 2 individu
Tugas rekweb 2 individuFani Heryati
 
Pengelolaan server jaringan
Pengelolaan server jaringanPengelolaan server jaringan
Pengelolaan server jaringannyotob
 
Bab10 pengelolaan server_jaringan
Bab10 pengelolaan server_jaringanBab10 pengelolaan server_jaringan
Bab10 pengelolaan server_jaringanAgung Sakepris
 
pengelolaan-server-jaringan
pengelolaan-server-jaringanpengelolaan-server-jaringan
pengelolaan-server-jaringanBagasPratamaCQ
 
Konsep Server secara Sistem Operasi, Aplikasi dan Fisik (Server PC)
Konsep Server secara Sistem Operasi, Aplikasi dan Fisik (Server PC)Konsep Server secara Sistem Operasi, Aplikasi dan Fisik (Server PC)
Konsep Server secara Sistem Operasi, Aplikasi dan Fisik (Server PC)Alveraadk
 

Similaire à Aplikasi Chatting Borland C (20)

Pertemuan 10 (database client-server)
Pertemuan 10 (database client-server)Pertemuan 10 (database client-server)
Pertemuan 10 (database client-server)
 
practica ADI
practica ADIpractica ADI
practica ADI
 
Pemrograman-Berbasis-Web-Pertemuan-1.ppt
Pemrograman-Berbasis-Web-Pertemuan-1.pptPemrograman-Berbasis-Web-Pertemuan-1.ppt
Pemrograman-Berbasis-Web-Pertemuan-1.ppt
 
Tugas 2 0317-dewi apriliani-1412510602
Tugas 2 0317-dewi apriliani-1412510602Tugas 2 0317-dewi apriliani-1412510602
Tugas 2 0317-dewi apriliani-1412510602
 
Tugas 2 ihsan riadi - 1412511162
Tugas 2   ihsan riadi - 1412511162Tugas 2   ihsan riadi - 1412511162
Tugas 2 ihsan riadi - 1412511162
 
Tugas 2 0317-imelda felicia-1412510545
Tugas 2 0317-imelda felicia-1412510545Tugas 2 0317-imelda felicia-1412510545
Tugas 2 0317-imelda felicia-1412510545
 
Tugas 2 0317-nurul azmi-1412510587
Tugas 2 0317-nurul azmi-1412510587Tugas 2 0317-nurul azmi-1412510587
Tugas 2 0317-nurul azmi-1412510587
 
Jeni web programming-bab 1-pengenalan pemrograman web
Jeni web programming-bab 1-pengenalan pemrograman webJeni web programming-bab 1-pengenalan pemrograman web
Jeni web programming-bab 1-pengenalan pemrograman web
 
Dasar web-dan-html
Dasar web-dan-htmlDasar web-dan-html
Dasar web-dan-html
 
Edwinprassetyo-1100631028-tugas1
Edwinprassetyo-1100631028-tugas1Edwinprassetyo-1100631028-tugas1
Edwinprassetyo-1100631028-tugas1
 
Jeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman WebJeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman Web
 
Dasar web dan html
Dasar web dan htmlDasar web dan html
Dasar web dan html
 
Pertemuan 09 client server
Pertemuan 09   client serverPertemuan 09   client server
Pertemuan 09 client server
 
Tugas rekweb 2 individu
Tugas rekweb 2 individuTugas rekweb 2 individu
Tugas rekweb 2 individu
 
Dasar web dan html
Dasar web dan htmlDasar web dan html
Dasar web dan html
 
Pengelolaan server jaringan
Pengelolaan server jaringanPengelolaan server jaringan
Pengelolaan server jaringan
 
Bab10 pengelolaan server_jaringan
Bab10 pengelolaan server_jaringanBab10 pengelolaan server_jaringan
Bab10 pengelolaan server_jaringan
 
pengelolaan-server-jaringan
pengelolaan-server-jaringanpengelolaan-server-jaringan
pengelolaan-server-jaringan
 
Konsep Server secara Sistem Operasi, Aplikasi dan Fisik (Server PC)
Konsep Server secara Sistem Operasi, Aplikasi dan Fisik (Server PC)Konsep Server secara Sistem Operasi, Aplikasi dan Fisik (Server PC)
Konsep Server secara Sistem Operasi, Aplikasi dan Fisik (Server PC)
 
Mengenal komputasi awan
Mengenal komputasi awanMengenal komputasi awan
Mengenal komputasi awan
 

Aplikasi Chatting Borland C

  • 1. 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)
  • 2. FAKULTAS ILMU KOMPUTER JURUSAN SISTEM INFORMASI UNIVERSITAS SRIWIJAYA TAHUN AJARAN 2010-2011 BAB I PENDAHULUAN 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.
  • 3. 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. 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.
  • 4. BAB II PEMBAHASAN Membuat Aplikasi Chatting (Server-Client) dengan menggunakan windows socket di Borland C++ Builder
  • 5. 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
  • 6. - Meningkatkan efisiensi Ada dua organisasi yang menstandarisasi pemrograman jaringan dan protocol di internet, yaitu: - Internet Engineering Task Force (IETF) : TCP/IP, MIME, dan SMTP - 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.
  • 7. 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. Service Request Services Response Client – Middleware Server – PHP, JSP,ASP Apache, IIS Web Data Request Database: MySQL, Oracle 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
  • 8.  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  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
  • 9. - 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 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.
  • 10. 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 Pada komponen Server Socket terdapat dua buah event, yaitu event onconnect dan event onread. Masukkan kode TForm1::ServerSocConnect(TObject *Sender, void __fastcall program berikut pada event onconnect: TCustomWinSocket *Socket) 1. Event OnConnect { 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"); }
  • 11. 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::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); 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 void __fastcall TForm1::BtnConnectClick(TObject *Sender) { ServerSoc->Port=StrToInt(txtPort->Text); ServerSoc->Open(); }
  • 12. 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::BtnSendClick(TObject *Sender) { for(int i=0;i<ServerSoc->Socket->ActiveConnections;i++) { ServerSoc->Socket->Connections[i]->SendText(txtSend- >Text); } Memo1->Lines->Add(txtSend->Text); } 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),
  • 13. 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"); }
  • 14. Saat Client berhasil terhubung ke Server maka pada Memo1 Server Side akan muncul tulisan “Connected”. 2. Event OnRead void __fastcall TForm1::ClientSocRead(TObject *Sender, TCustomWinSocket *Socket) { Memo1->Lines->Add(Socket->ReceiveText()); } 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 void __fastcall TForm1::BtnConnectClick(TObject *Sender) { ClientSoc->Address=txtip->Text; ClientSoc->Port=StrToInt(txtport->Text); ClientSoc->Open(); //mengaktifkan Client Socket } • 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.
  • 15. 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. Pada tombol Button Send masukkan kode program berikut : 4. Button Send void __fastcall TForm1::BtnSendClick(TObject *Sender) { ClientSoc->Socket->SendText(txtname->Text+”#”+txtmsg->Text); } Client Socket mengirim pesan yang diinputkan pada txtmsg ke server.