Buku ini membahas cara membangun aplikasi client-server menggunakan Java RMI. Pembahasan dimulai dari penjelasan tentang apa itu RMI dan syarat-syarat agar suatu objek dapat diakses melalui RMI. Selanjutnya dijelaskan cara membuat server RMI untuk menyimpan objek dan cara membuat client RMI untuk mengakses objek di server. Contoh aplikasi sederhana yang dibangun untuk memperjelas pembahasan juga
Aplikasi perangkat lunak klinik kecantikan Ultimate Skin Care (USC) dirancang untuk mengelola data pasien, rekam medis, obat, penyakit, dan dokter secara digital. USC dimaksudkan untuk meningkatkan efisiensi pelayanan dengan menggantikan sistem manual di klinik kecantikan skala kecil.
User interface merupakan antarmuka pengguna yang memungkinkan pengguna berinteraksi dengan sistem komputer. Perancangan user interface yang baik harus mempertimbangkan karakteristik pengguna dan mudah digunakan. Evaluasi desain dilakukan untuk meningkatkan kualitas antarmuka.
Dokumen tersebut membahas definisi dan jenis-jenis persyaratan perangkat lunak, termasuk persyaratan fungsional, non fungsional, produk dan proses. Dokumen tersebut juga membahas aktivitas yang terkait dengan persyaratan perangkat lunak seperti elicitation, analisis, spesifikasi dan validasi persyaratan."
Dokumen tersebut membahas tentang pengujian perangkat lunak, termasuk definisi pengujian perangkat lunak, tujuan pengujian, jenis pengujian seperti manual testing, automated testing, unit testing, integration testing, serta metode pengujian seperti white box testing dan black box testing.
penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)Kukuh Setiawan
油
Dokumen tersebut membahas tentang materi perkuliahan teknik kompilasi yang mencakup penanganan kesalahan, optimasi kode, dan tabel informasi. Topik utama yang disinggung adalah jenis-jenis penanganan kesalahan dalam kompilasi, teknik recovery dan repair untuk menangani kesalahan, serta jenis-jenis optimasi kode dan tabel informasi yang digunakan dalam kompilasi.
Materi yang ada pada slide ini berisi :
Penjelasan Umum Relasi Kelas
Penjelasan Derajat Relasi Kelas
Konsep dan Simulasi Relasi Kelas Dependency
Konsep dan Simulasi Relasi Kelas Association
Konsep dan Simulasi Relasi Kelas Aggregation
Konsep dan Simulasi Relasi Kelas Composition
Konsep Relasi Kelas Generalisasi (Inheritance)
Penjelasan Konsep MVC
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaDEDE IRYAWAN
油
Makalah ini membahas tentang peranan semaphore dalam sistem operasi. Semaphore adalah variabel integer yang digunakan untuk sinkronisasi antarproses. Terdapat dua operasi pada semaphore yaitu down dan up. Semaphore dapat berupa binary semaphore atau counting semaphore. Fungsi utama semaphore adalah menyelesaikan masalah section kritis dengan memenuhi syarat eksklusivitas bersama, kemajuan, dan waiting terbatas.
Dokumen tersebut membahas tentang teknik kompilasi, meliputi:
1. Pendahuluan tentang proses kompilasi dan fase-fasenya
2. Penganalisa leksikal (scanner) yang membaca program sumber dan mengubahnya menjadi token
3. Penganalisa sintaks (parser) yang memeriksa kesesuaian token dengan aturan sintaks
Dokumen tersebut membahas tentang definisi dialog antara manusia dan komputer serta berbagai jenis ragam dialog interaktif seperti dialog berbasis perintah, dialog berbasis bahasa pemrograman, dialog berbasis bahasa alami, dialog berbasis menu dan formulir, serta dialog berbasis manipulasi langsung dan antarmuka grafis.
Dokumen ini membahas tentang kriptografi dan keamanan sistem informasi. Kriptografi adalah seni melindungi data dan informasi dari pihak yang tidak dikehendaki baik saat ditransmisikan maupun disimpan. Dokumen ini juga membahas teknik-teknik kriptografi tradisional seperti substitusi, bloking, dan permutasi, serta teknik modern seperti DES, AES, dan RSA. Jenis serangan terhadap kriptografi dan jalur komunikasi seperti sniffing, replay
Teknik Pengujian Perangkat Lunak membahas berbagai teknik pengujian perangkat lunak termasuk rencana pengujian, proses pengujian, pengujian berbasis kasus, pengujian putih dan hitam, serta pengujian berbasis objek.
Dokumen tersebut membahas strategi dan prinsip-prinsip pengujian perangkat lunak, mulai dari pengujian unit, integrasi, validasi, hingga sistem. Beberapa poin penting adalah perlunya perencanaan pengujian, independensi pengujian, serta pendekatan berbasis resiko."
This document outlines the key activities and functions of an academic information system including inputting and managing student biodata, course registrations, schedules, attendance, grades, transcripts, and reports. The system allows input and management of biodata, course registrations, schedules, attendance, grades, transcripts, and generates various reports.
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptxYaya610291
油
Pertemuan membahas tentang sinkronisasi proses dan masalah critical section. Video ditayangkan untuk mendemonstrasikan konsep sinkronisasi proses. Berbagai metode sinkronisasi dibahas seperti semaphore, test and set, swap, mutex lock, dan larik memutar untuk mengatasi masalah race condition dan memastikan akses bersamaan hanya dilakukan satu proses."
Dokumen ini membahas strategi perancangan antarmuka dengan banyak window untuk menampilkan informasi secara efisien. Beberapa strategi yang disebutkan adalah penggunaan beberapa monitor, pembelahan tampilan, penumpukan window, dan koordinasi antar-window untuk menavigasi informasi secara terkait. Dokumen ini juga membahas penerapan strategi-strategi tersebut pada penjelajahan gambar dan halaman web.
Mata pelajaran Pemodelan Perangkat Lunak adalah mata pelajaran yang ditempuh oleh siswa kelas XI SMK jurusan Rekayasa Perangkat Lunak. Pada Pertemuan 1 mata pelajaran PPL ini membahas mengenai konsep rekayasa perangkat lunak dan macam-macam perangkat lunak berdasarkan domain aplikasi
PKM Karsa Cipta
Mevici Dianresti(1317051040)
Universitas Lampung
Jurusan Ilmu Komputer
2014
Aplikasi Pelestarian Budaya Lampung(APEL BUDALAM) Berbasis Android
Dokumen tersebut merupakan bagian dari seri tutorial membuat aplikasi chat menggunakan Java. Dokumen ini membahas tentang persiapan yang dibutuhkan sebelum membuat aplikasi chat seperti menentukan spesifikasi aplikasi, peralatan yang dibutuhkan, konfigurasi project, dan membuat kelas-kelas dasar yang akan digunakan oleh server dan client.
Laporan ini membahas percobaan membuat aplikasi chatting menggunakan protokol TCP dengan model komunikasi client-server. Percobaan ini melibatkan pengkodean program client dan server serta pengujian komunikasi antara kedua program tersebut.
penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)Kukuh Setiawan
油
Dokumen tersebut membahas tentang materi perkuliahan teknik kompilasi yang mencakup penanganan kesalahan, optimasi kode, dan tabel informasi. Topik utama yang disinggung adalah jenis-jenis penanganan kesalahan dalam kompilasi, teknik recovery dan repair untuk menangani kesalahan, serta jenis-jenis optimasi kode dan tabel informasi yang digunakan dalam kompilasi.
Materi yang ada pada slide ini berisi :
Penjelasan Umum Relasi Kelas
Penjelasan Derajat Relasi Kelas
Konsep dan Simulasi Relasi Kelas Dependency
Konsep dan Simulasi Relasi Kelas Association
Konsep dan Simulasi Relasi Kelas Aggregation
Konsep dan Simulasi Relasi Kelas Composition
Konsep Relasi Kelas Generalisasi (Inheritance)
Penjelasan Konsep MVC
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaDEDE IRYAWAN
油
Makalah ini membahas tentang peranan semaphore dalam sistem operasi. Semaphore adalah variabel integer yang digunakan untuk sinkronisasi antarproses. Terdapat dua operasi pada semaphore yaitu down dan up. Semaphore dapat berupa binary semaphore atau counting semaphore. Fungsi utama semaphore adalah menyelesaikan masalah section kritis dengan memenuhi syarat eksklusivitas bersama, kemajuan, dan waiting terbatas.
Dokumen tersebut membahas tentang teknik kompilasi, meliputi:
1. Pendahuluan tentang proses kompilasi dan fase-fasenya
2. Penganalisa leksikal (scanner) yang membaca program sumber dan mengubahnya menjadi token
3. Penganalisa sintaks (parser) yang memeriksa kesesuaian token dengan aturan sintaks
Dokumen tersebut membahas tentang definisi dialog antara manusia dan komputer serta berbagai jenis ragam dialog interaktif seperti dialog berbasis perintah, dialog berbasis bahasa pemrograman, dialog berbasis bahasa alami, dialog berbasis menu dan formulir, serta dialog berbasis manipulasi langsung dan antarmuka grafis.
Dokumen ini membahas tentang kriptografi dan keamanan sistem informasi. Kriptografi adalah seni melindungi data dan informasi dari pihak yang tidak dikehendaki baik saat ditransmisikan maupun disimpan. Dokumen ini juga membahas teknik-teknik kriptografi tradisional seperti substitusi, bloking, dan permutasi, serta teknik modern seperti DES, AES, dan RSA. Jenis serangan terhadap kriptografi dan jalur komunikasi seperti sniffing, replay
Teknik Pengujian Perangkat Lunak membahas berbagai teknik pengujian perangkat lunak termasuk rencana pengujian, proses pengujian, pengujian berbasis kasus, pengujian putih dan hitam, serta pengujian berbasis objek.
Dokumen tersebut membahas strategi dan prinsip-prinsip pengujian perangkat lunak, mulai dari pengujian unit, integrasi, validasi, hingga sistem. Beberapa poin penting adalah perlunya perencanaan pengujian, independensi pengujian, serta pendekatan berbasis resiko."
This document outlines the key activities and functions of an academic information system including inputting and managing student biodata, course registrations, schedules, attendance, grades, transcripts, and reports. The system allows input and management of biodata, course registrations, schedules, attendance, grades, transcripts, and generates various reports.
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptxYaya610291
油
Pertemuan membahas tentang sinkronisasi proses dan masalah critical section. Video ditayangkan untuk mendemonstrasikan konsep sinkronisasi proses. Berbagai metode sinkronisasi dibahas seperti semaphore, test and set, swap, mutex lock, dan larik memutar untuk mengatasi masalah race condition dan memastikan akses bersamaan hanya dilakukan satu proses."
Dokumen ini membahas strategi perancangan antarmuka dengan banyak window untuk menampilkan informasi secara efisien. Beberapa strategi yang disebutkan adalah penggunaan beberapa monitor, pembelahan tampilan, penumpukan window, dan koordinasi antar-window untuk menavigasi informasi secara terkait. Dokumen ini juga membahas penerapan strategi-strategi tersebut pada penjelajahan gambar dan halaman web.
Mata pelajaran Pemodelan Perangkat Lunak adalah mata pelajaran yang ditempuh oleh siswa kelas XI SMK jurusan Rekayasa Perangkat Lunak. Pada Pertemuan 1 mata pelajaran PPL ini membahas mengenai konsep rekayasa perangkat lunak dan macam-macam perangkat lunak berdasarkan domain aplikasi
PKM Karsa Cipta
Mevici Dianresti(1317051040)
Universitas Lampung
Jurusan Ilmu Komputer
2014
Aplikasi Pelestarian Budaya Lampung(APEL BUDALAM) Berbasis Android
Dokumen tersebut merupakan bagian dari seri tutorial membuat aplikasi chat menggunakan Java. Dokumen ini membahas tentang persiapan yang dibutuhkan sebelum membuat aplikasi chat seperti menentukan spesifikasi aplikasi, peralatan yang dibutuhkan, konfigurasi project, dan membuat kelas-kelas dasar yang akan digunakan oleh server dan client.
Laporan ini membahas percobaan membuat aplikasi chatting menggunakan protokol TCP dengan model komunikasi client-server. Percobaan ini melibatkan pengkodean program client dan server serta pengujian komunikasi antara kedua program tersebut.
Laporan program chatting client serverRara Ariesta
油
Dokumen tersebut membahas tentang membangun aplikasi chatting client-server menggunakan bahasa pemrograman Java. Aplikasi ini terdiri dari kode server yang menerima koneksi dari beberapa client, dan kode client untuk melakukan chatting."
Sistem antrian real-time ini mengatur dan memanggil nomor antrian secara otomatis untuk pelayanan pelanggan di lebih dari satu counter pelayanan dan jenis layanan. Aplikasi ini mampu mencatat dan memanggil kembali nomor antrian bahkan jika terjadi gangguan listrik, serta memindahkan nomor antrian ke layanan berikutnya tanpa mengambil nomor baru.
Dokumen ini memberikan panduan cara membuat aplikasi pengiriman SMS sederhana menggunakan modul Gammu dan bahasa pemrograman Java. Modul Gammu dapat digunakan untuk mengelola fungsi SMS pada handphone atau modem, dan dapat dikombinasikan dengan berbagai bahasa pemrograman. Tutorial ini menjelaskan langkah-langkah persiapan yang dibutuhkan, cara mengirim SMS secara manual lewat command prompt, dan contoh koding Java sederhana
This document describes a multi-client chat client-server application created using Java socket programming. It includes the code for the ChatServer.java and ChatClient.java classes. The ChatServer class handles multiple client connections and broadcasts messages to all connected clients. The ChatClient class represents the graphical client interface that connects to the server and allows users to send and receive chat messages. The application allows for multiple clients to simultaneously chat by connecting to a central chat server.
Dokumen ini membahas tentang membangun aplikasi chatting menggunakan bahasa pemrograman Java dengan arsitektur client-server. Dokumen ini menjelaskan cara kerja program chatting pada sisi server dan client serta source code Java untuk kedua sisi tersebut.
Bab 10 dokumen tersebut membahas tentang jaringan dalam Java. Pembahasan mencakup konsep dasar jaringan seperti IP address, protokol, port, paradigma client/server, dan socket. Kemudian dibahas pula package jaringan Java yang menyediakan class seperti ServerSocket, Socket, MulticastSocket, dan DatagramPacket untuk membangun aplikasi jaringan.
Artikel ini menjelaskan cara membuat aplikasi chatting menggunakan bahasa pemrograman Java. Terdapat dua program yang dibuat, yaitu program server yang mengirim pesan ke klien dan sebaliknya, program klien yang mengirim pesan ke server. Langkah-langkah kompilasi dan penjalanaan program juga dijelaskan.
Server membalik string menerima koneksi dari client dan membalik string yang dikirim client kemudian mengirim string terbalik kembali ke client. Server berjalan pada port tertentu dan menerima input dari client lewat socket koneksi, membalik string tersebut, lalu mengirim hasilnya kembali ke client.
Praktikum ini membahas tentang Internet Address class dalam Java untuk merepresentasikan alamat IP versi 4 dan 6. Kelas InetAddress digunakan oleh kelas jaringan lainnya untuk menangani nama host dan alamat IP. Ada beberapa metode statis untuk mengambil objek InetAddress seperti getByName, getAllByName, dan getLocalHost. Latihan membuat program menggunakan kelas ini untuk koneksi ke server.
Dokumen ini memberikan panduan lengkap untuk membuat aplikasi Android yang dapat menyimpan data ke database MySQL menggunakan PHP. Langkah-langkahnya meliputi pembuatan database dan tabel di MySQL, file PHP untuk menyimpan data ke database, aplikasi Android untuk mengumpulkan input dan mengirimkannya ke server, serta pengujian program.
Dokumen tersebut membahas tentang tiga protokol komunikasi antar sistem yaitu RPC (Remote Procedure Call), SOAP (Simple Object Access Protocol), dan REST (Representational State Transfer). RPC memungkinkan pengaksesan prosedur yang berada di komputer lain, SOAP menggunakan protokol HTTP untuk pertukaran objek, sedangkan REST menggunakan prinsip-prinsip representasi sumber daya melalui URL.
SSL digunakan untuk mengamankan data transaksi online dengan mengenkripsinya sehingga tidak dapat dibaca pihak lain. Tutorial ini menjelaskan langkah-langkah membuat sertifikat SSL menggunakan XAMPP, meliputi pembuatan virtual host, sertifikat CA, sertifikat klien, penandatanganan sertifikat, dan instalasi sertifikat CA di browser.
Dokumen tersebut membahas tentang operasi input/output (I/O) pada bahasa pemrograman Java menggunakan streams. Secara umum dibedakan menjadi dua jenis streams yaitu byte streams dan character streams, dimana byte streams digunakan untuk data biner sedangkan character streams untuk karakter. Dokumen ini juga menjelaskan cara membaca dan menulis input/output menggunakan kedua jenis streams tersebut baik dari console maupun file.
Socket Programming TCP Echo Client Server (Python)Lusiana Diyan
油
Transmission Control Protocol (TCP) merupakan protokol pada transport layer berbasis connection-oriented. TCP menjamin realibitas pengiriman data. Selain itu, TCP memiliki mekanisme three-way handshake sebelum client-server dapat saling mengirimkan data. Pada gambar 1 berikut menunjukkan alur komunikasi client-server mengggunakan TCP.
PENGENALAN SSISTEM OPERASI, IDE VISUAL C++, DAN ALGORITMA PEMROGRAMANNur Kholifah Hidayah
油
Laporan praktikum ini membahas pengenalan sistem operasi Windows, IDE Visual C++, dan algoritma pemrograman menggunakan bahasa C++. Terdapat penjelasan tentang konsep dasar sistem operasi, IDE, algoritma, dan flowchart. Juga dilaporkan hasil praktikum menampilkan teks dan menghitung luas segitiga menggunakan Visual C++.
Melihat Nama PC Menggunakan Aplikasi Pemograman Javayoyomay93
油
Aplikasi Java sederhana untuk mengambil nama komputer menggunakan kode InetAddress.getLocalHost() dan host.getHostName(). Program disimpan dengan nama "AmbilNama.java" dan dieksekusi untuk menampilkan nama komputer.
Mengambil IP Pada PC Menggunakan Bahasa Pemrograman Javayoyomay93
油
Program Java untuk mengambil alamat IP dan nama host lokal pada komputer menggunakan perintah InetAddress.getByName() dan mencetak hasilnya menggunakan println().
The document describes a program for creating a multi-client chatting application using Java Swing. It involves creating a chat server class with methods for accepting client connections, handling message passing between clients, and maintaining a list of connected clients. It also involves creating a chat client class with methods for connecting to the server, sending and receiving messages, and displaying messages and a list of connected clients. The program listing includes the code for the ChatServer and ChatClient classes to implement the client-server architecture for a graphical multi-user chat application.
Topik 11 Employee Engagement dan Analitik SentimenSeta Wicaksana
油
Di era digital, keterlibatan karyawan (Employee Engagement) menjadi faktor kunci dalam menentukan produktivitas, inovasi, dan retensi tenaga kerja dalam suatu organisasi. Karyawan yang terlibat secara emosional dengan pekerjaannya cenderung lebih produktif, loyal, dan memiliki kontribusi lebih besar terhadap keberhasilan bisnis.
Namun, tantangan utama yang dihadapi organisasi adalah bagaimana mengukur engagement karyawan secara objektif dan real-time. Pendekatan tradisional seperti survei tahunan sering kali tidak memberikan gambaran yang akurat tentang perasaan dan pengalaman kerja karyawan sehari-hari.
HR Analytics telah membawa perubahan besar dengan menghadirkan Analitik Sentimen (Sentiment Analysis) yang memungkinkan organisasi untuk menganalisis data keterlibatan karyawan secara lebih mendalam, berbasis data, dan real-time. Dengan memanfaatkan teknologi seperti Artificial Intelligence (AI), Machine Learning (ML), dan Natural Language Processing (NLP), organisasi kini dapat:
Mengukur tingkat kepuasan dan emosi karyawan berdasarkan data komunikasi digital dan feedback.
Memprediksi kemungkinan disengagement dan turnover karyawan menggunakan predictive analytics.
Menyesuaikan strategi keterlibatan karyawan dengan program yang lebih personal dan berbasis data.
Dengan pendekatan berbasis HR Analytics dan Analitik Sentimen, perusahaan dapat mengoptimalkan pengalaman kerja karyawan, meningkatkan retensi tenaga kerja, serta membangun lingkungan kerja yang lebih sehat dan produktif.
Membuat Aplikasi Chatting Client Server Dengan Pemrograman Java
1. Membuat Aplikasi Client Server
Dengan Bahasa Pemrograman Java
Oleh :
Yohana Damayanti
(061130701312)
6CD
JURUSAN TEKNIK KOMPUTER
POLITEKNIK NEGERI SRIWIJAYA
PALEMBANG
2. 1.1 PENDAHULUAN
Bahasa pemrograman java banyak diaplikasikan dalam berbagai program
maupun aplikasi yang berbasis PC atau mobile. Salah satu penerapannya adalah pada
program chatting, dipilihnya bahasa java sebagai bahasa pembuatan program ini
dikarenakan dalam java memiliki kelas thread sebagai kelas default yang tidak
dimiliki oleh bahasa pemrograman lain. Program chat ini terdiri dari dua sisi, yaitu
sisi client dan server. Dalam pembuatan aplikasi chatting ini, kita harus menyiapkan
dua buah PC/Laptop atau lebih untuk satu dijadikan sebagai server, dan yang lainnya
dijadikan sebagai Client.
1.2 PEMBAHASAN
1.2.1 Hasil runing program
1.2.1.1 Server
Gambar 1.1 Hasil Running Program Server Menunggu Client
3. Gambar 1.2 Hasil Running Program Ketika Server Menerima Client Baru
Gambar 1.3 Hasil Running Program dengan input obrolan dari client 1,2 dan 3
4. 1.2.1.2 Client
Gambar 1.4 Hasil Running Tampilan Pada Client 1
Gambar 1.5 Hasil Running Tampilan Pada Client 2
Gambar 1.6 Hasil Running Tampilan Pada Client 3
5. Gambar 1.7 Hasil Running Program pada Client 1 melakukan chatting
Gambar 1.8 Hasil Running Program pada Client 2 melakukan chatting
Gambar 1.9 Hasil Running Program pada Client 3 melakukan chatting
6. 1.2.2 Pembahasan Source Code
1.2.2.1 Pembahasan kelas Server
public class iniserver {
private static ServerSocket serverSocket;
private static final int PORT = 1111;
Kode diatas merupakan perintah agar socket server hanya dapat diakses oleh
sendiri. Port = 1111 merupakan port yang disiapkan pada server diatas. iniserver
merupakan nama kelas program javanya.
public static void main(String[] args) throws IOException {
try {
serverSocket = new ServerSocket(PORT);
System.out.println("Server berjalan, menunggu client...");
} catch (IOException ioEx) {
System.out.println("nTidak dapat mensetup port!");
System.exit(1);
}
Kode diatas merupakan perintah untuk membuat sebuar socket server
bernama serverSocket. Server berjalan, menunggu client akan muncul ketika
program dijalankan. "nTidak dapat mensetup port!" akan muncul ketika program
dijalankan saat masih ada program yang sama yang dijalankan.
do {
Socket client = serverSocket.accept();
System.out.println("nClient baru diterima.n");
ClientHandler handler = new ClientHandler(client);
handler.start();
} while (true);
Kode diatas merupakan perintah untuk menunggu client terhubung / connect
pada server. Selama masih ada client yang ingin masuk maka server tetap bisa
menerima client tersebut.
class ClientHandler extends Thread {
private Socket client;
private Scanner input;
private PrintWriter output;
7. private Scanner userEntry;
public ClientHandler(Socket socket) {
client = socket;
try {
input = new Scanner(client.getInputStream());
output = new PrintWriter(client.getOutputStream(), true);
userEntry = new Scanner(System.in);
} catch (IOException ioEx) {
//ioEx.printStackTrace();
Kode diatas merupakan thread untuk mensetup referensi ke socket. Input
merupakan Scanner untuk mendapatkan input. Output merupakan perintah agar
menerima masukan dari keyboard.
public void run() {
String received;
String message;
do {
received = input.nextLine();
System.out.println(received);
System.out.print("");
System.out.print("server: ");
message = userEntry.nextLine();
output.println(message);
} while (!received.equals("QUIT"));
Kode diatas berfungsi untuk menerima dan mengirimkan pesan pada input stream
socket. Program diatas akan terus berjalan selama client tidak mengirimkan pesan
QUIT.
try {
if (client != null) {
System.out.println("Menutup
koneksi...");
client.close();
}
} catch (IOException ioEx) {
System.out.println("Penutupan koneksi
gagal!");
Kode diatas berfungsi untuk mengakhiri program.
1.2.2.2 Pembahasan kelas Client
8. public class Client {
private static InetAddress host;
private static final int PORT = 1111;
public static void main(String[] args) {
try {
host = InetAddress.getLocalHost();
} catch (UnknownHostException uhEx) {
System.out.println("nHost ID tidak
ditemukan!n");
System.exit(1);
}
sendMessages();
}
Kode diatas merupakan perintah agar socket server hanya dapat diakses oleh
sendiri. Port = 1111 merupakan port yang disiapkan pada server diatas. client
merupakan nama kelas program javanya.
private static void sendMessages() {
Socket socket = null;
try {
socket = new Socket(host, PORT);
Scanner networkInput = new
Scanner(socket.getInputStream());
PrintWriter networkOutput = new
PrintWriter(socket.getOutputStream(),
true);
Scanner userEntry = new Scanner(System.in);
String message, response;
do {
System.out.print("klien 1: ");
message = userEntry.nextLine();
networkOutput.println(message);
response = networkInput.nextLine();
System.out.println("nSERVER> " + response);
} while (!message.equals("QUIT"));
Kode diatas merupakan perintah untuk mensetup stream untuk masukan dari
keyboard, yang kemudian di scan oleh scanner UserEntry dan di simpan dalam string
message. Setelah itu program akan mengirimkan pesan ke server dan menunggu
server merespon pesan tersebut. Kode akan berjalan selama message tidak
menampilkan QUIT.
try {
System.out.println("nMenutup
koneksi...");
socket.close();
} catch (IOException ioEx) {
System.out.println("Gagal menutup
koneksi!");
System.exit(1);
9. Kode diatas merupakan perintah untuk mengakhiri program ketika user akan
keluar.
1.3 Lampiran
1.3.1 Kelas Server
Berikut adalah listing program aplikasi chatting kelas server:
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class iniserver {
private static ServerSocket serverSocket;
private static final int PORT = 1111;
public static void main(String[] args) throws IOException {
try {
serverSocket = new ServerSocket(PORT);
System.out.println("Server berjalan, menunggu
client...");
} catch (IOException ioEx) {
System.out.println("nTidak dapat mensetup port!");
System.exit(1);
}
do {
//Menunggu koneksi dari client...
Socket client = serverSocket.accept();
System.out.println("nClient baru diterima.n");
//Buat thread untuk menangani komunikasi dengan client
ini
//lewatkan socket yang relevan ke contructor dari
thread ini
ClientHandler handler = new ClientHandler(client);
handler.start(); //menjalankan thread yang telah
dibuat
} while (true);
}
}
class ClientHandler extends Thread {
private Socket client;
private Scanner input;
private PrintWriter output;
private Scanner userEntry;
public ClientHandler(Socket socket) {
//Set up referensi ke socket yang berasosiasi...
10. client = socket;
try {
input = new Scanner(client.getInputStream());
output = new PrintWriter(client.getOutputStream(),
true);
userEntry = new Scanner(System.in);
} catch (IOException ioEx) {
//ioEx.printStackTrace();
}
}
public void run() {
String received;
String message;
do {
//Terima pesan dari client pada input stream socket...
received = input.nextLine();
System.out.println(received);
System.out.print("");
System.out.print("server: ");
message = userEntry.nextLine();
//Kirim pesan (message)ke client pada output stream
socket...
//Terima respon dari client pada stream input socket...
output.println(message);
//Ulangi sampai client mengirimkan pesan 'KELUAR'...
} while (!received.equals("KELUAR"));
try {
if (client != null) {
System.out.println("Menutup koneksi...");
client.close();
}
} catch (IOException ioEx) {
System.out.println("Penutupan koneksi gagal!");
}
}
}
1.3.2 Kelas Client
Berikut adalah listing program aplikasi chatting kelas client:
import java.io.*;
import java.net.*;
import java.util.Scanner;
11. public class Client {
private static InetAddress host;
private static final int PORT = 1111;
public static void main(String[] args) {
try {
host = InetAddress.getLocalHost();
} catch (UnknownHostException uhEx) {
System.out.println("nHost ID tidak ditemukan!n");
System.exit(1);
}
sendMessages();
}
private static void sendMessages() {
Socket socket = null;
try {
socket = new Socket(host, PORT);
Scanner networkInput = new
Scanner(socket.getInputStream());
PrintWriter networkOutput = new
PrintWriter(socket.getOutputStream(), true);
//Set up stream untuk masukan dari keyboard...
Scanner userEntry = new Scanner(System.in);
String message, response;
do {
System.out.print("klien 1: ");
message = userEntry.nextLine();
//Kirim pesan (message)ke server pada output stream
socket...
//Terima respon dari server pada stream input
socket...
networkOutput.println(message);
response = networkInput.nextLine();
//Tampilkan respon dari server...
System.out.println("nSERVER> " + response);
} while (!message.equals("KELUAR"));
} catch (IOException ioEx) {
//ioEx.printStackTrace();
} finally {
try {
System.out.println("nMenutup koneksi...");
socket.close();
} catch (IOException ioEx) {
System.out.println("Gagal menutup koneksi!");
System.exit(1);
}
}
}