75
BAB V KESIMPULAN DAN SARAN
A. KESIMPULAN
Berdasarkan hasil penelitian dan pengembangan terhadap perangkat lunak Aplikasi Translator Messenger yang dibangun, maka
dapat disimpulkan sebagai berikut: 1.
Perangkat lunak Aplikasi Translator Messenger dibuat menggunakan metode penelitian dan pengembangan. Melalui
tahapan analisis, desain, pengkodean dan pengujian. Perangkat lunak ini dikembangkan menggunakan bahasa pemrograman Java
dan diintegrasikan dengan Google Translate API sebagai penerjemah bahasa.
2. Hasil pengujian black-box menyatakan bahwa unjuk kerja
fungsionalitas semua fungsi pada Aplikasi Translator Messenger dapat dikatakan berfungsi sesuai dengan tujuan dari aplikasi
tersebut. 3.
Hasil pengujian kelayakan menyatakan sebagai berikut: a.
Hasil pengujian correctness menyatakan bahwa perangkat lunak Aplikasi Translator Messenger telah memenuhi standar indikator
correctness. b.
Hasil pengujian reliability menyatakan bahwa setiap 5 jam pengoperasian perangkat lunak terjadi 1 kesalahan program.
c. Hasil penilaian pengujian alpha yang dilakukan oleh ahli,
menghasilkan dari segi functionality sebesar 90 dari rentang
84 - 100 dan dapat dikategorikan sangat layak serta dari segi usability 85 dari rentang 84 - 100 dan dapat dikategorikan
sangat layak. d.
Sedangkan hasil pengujian beta menghasilkan 89.69 dari segi functionality dan dikategorikan sangat layak serta 83.45 dari segi
usability dan dikategorikan layak.
B. SARAN
Berdasarkan penelitian terhadap Aplikasi Translator Messenger yang telah dilakukan, maka dapat disimpulkan beberapa saran sebagai
berikut: 1.
Perlu adanya penambahan fitur-fitur yang lebih mendayagunakan aplikasi messenger, seperti video call, group discussion, mengirim
dokumen atau file, mengirim gambar dsb. 2.
Perlu adanya penambahan format aplikasi yang berbasis mobile dan web-based.
80
LAMPIRAN
Lampiran 1. SK Skripsi
Lampiran 2. Source Code
Chatser import java.net.;
import java.io.; import java.util.logging.;
import java.sql.; import javax.swing.;
import javax.swing.text.DefaultCaret;
public class ChatServer extends javax.swing.JFrame implements Runnable { private ChatServerThread clients[] = new ChatServerThread[50];
private ServerSocket server = null; private Thread thread = null;
private int clientCount = 0;
public Connection conn; public Statement st;
public ResultSet rs; public DefaultListModel list;
String usercocok, sql,sqllis; AmbilClient ambil = new AmbilClient;
public ChatServer { try {
initComponents; textser.setEditablefalse;
setTitle.:TM:.; setIconImagenew
javax.swing.ImageIcon getClass.
getResourcesun.jpg.getImage; server = new ServerSocket8000;
textser.setTextServer started: + server; start;
} catch IOException ex { Logger.getLoggerChatServer.class.getName.logLevel.SEVERE, null,
ex; }
} public void run
{ while thread = null
{ try
{ textser.append\n+Waiting for a client ...;
addThreadserver.accept; DefaultCaret caret = DefaultCarettextser.getCaret;
caret.setUpdatePolicyDefaultCaret.ALWAYS_UPDATE;
} catchIOException ioe
{
System.out.printlnServer accept error: + ioe; stop; } }
} public void start
{ if thread == null
{ thread = new Threadthis;
thread.start; }
} public void stop
{ if thread = null
{ thread.stop;
thread = null; }
} private int findClientint ID
{ for int i = 0; i clientCount; i++
if clients[i].getID == ID return i;
return -1; }
public synchronized void handleint ID, String input {
String [] hikhik = input.split ; String usersend = hikhik[3];
if usersend.equalssaiaremove{ for int i = 0; i clientCount; i++ {
clients[i].sendinput; }
removeID;
} else { for int i = 0; i clientCount; i++ {
clients[i].sendinput; }
} }
Override public synchronized void removeint ID
{ int pos = findClientID;
if pos = 0 {
ChatServerThread toTerminate = clients[pos]; textser.append\n+Removing client thread + ID;
if pos clientCount-1
for int i = pos+1; i clientCount; i++ clients[i-1] = clients[i];
clientCount--; try
{ toTerminate.close; } catchIOException ioe
{ System.out.printlnError closing thread: + ioe; } toTerminate.stop; }
}
private void addThreadSocket socket {
if clientCount clients.length {
textser.append\n + Client accepted: + socket; clients[clientCount] = new ChatServerThreadthis, socket;
try { clients[clientCount].open;
clients[clientCount].start; clientCount++;
} catch IOException ioe { System.out.printlnError opening thread: + ioe;
} }
else System.out.printlnClient refused: maximum + clients.length + reached.;
}
SuppressWarningsunchecked editor-fold defaultstate=collapsed desc=Generated Code
private void initComponents { jScrollPane1 = new javax.swing.JScrollPane;
textser = new javax.swing.JTextArea;
setDefaultCloseOperationjavax.swing.WindowConstants.EXIT_ON_CLOSE; textser.setColumns20;
textser.setRows5; jScrollPane1.setViewportViewtextser;
javax.swing.GroupLayout layout
= new
javax.swing.GroupLayoutgetContentPane; getContentPane.setLayoutlayout;
layout.setHorizontalGroup
layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEADING .addGrouplayout.createSequentialGroup
.addGap28, 28, 28 .addComponentjScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 345,
javax.swing.GroupLayout.PREFERRED_SIZE .addContainerGap28, Short.MAX_VALUE
; layout.setVerticalGroup
layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEADING .addGroupjavax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup .addGap22, 22, 22
.addComponentjScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 250, Short.MAX_VALUE
.addGap29, 29, 29 ;
pack; } editor-fold
public static void mainString args[] { java.awt.EventQueue.invokeLaternew Runnable {
public void run { new ChatServer.setVisibletrue;
} };
} Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea textser; End of variables declaration
}
ChatServerThread import java.net.;
import java.io.;
public class ChatServerThread extends Thread { private ChatServer server = null;
private Socket socket = null; private int ID = -1;
private DataInputStream streamIn = null; private DataOutputStream streamOut = null;
AmbilClient ambil = new AmbilClient; public ChatServerThreadChatServer server1, Socket socket1
{ server = server1;
socket = socket1; ID = socket.getPort;
} public void sendString msg
{ try { streamOut.writeUTFmsg;
streamOut.flush; }
catchIOException ioe { System.out.printlnID + ERROR sending: + ioe.getMessage;
server.removeID; stop;
} }
public int getID { return ID;
}
Override public void run
{ System.out.printlnServer Thread + ID + running.;
while true { try
{ server.handleID, streamIn.readUTF;
} catchIOException ioe
{
System.out.printlnID + ERROR reading: + ioe.getMessage; server.removeID;
stop;
} }
} public void open throws IOException
{ streamIn = new DataInputStreamnew BufferedInputStreamsocket.getInputStream;
streamOut = new DataOutputStreamnew BufferedOutputStreamsocket.getOutputStream;
} public void close throws IOException
{ if socket = null socket.close; if streamIn = null streamIn.close;
if streamOut = null streamOut.close; }
}
Login import com.google.api.GoogleAPI;
import com.google.api.GoogleAPIException; import com.google.api.translate.Language;
import com.google.api.translate.Translate; import java.awt.event.;
import java.util.logging.; import javax.swing.;
import java.sql.; import java.util.;
import java.io.; import java.net.;
import javax.swing.Timer;
public class Login extends javax.swing.JFrame implements Runnable{ public Connection conn;
public Statement st; public ResultSet rs;
private Socket socket = null; private Thread thread = null;
private DataInputStream console = null; private DataOutputStream streamOut = null;
private ThreadC client = null; DefaultListModel list = new DefaultListModel;
DefaultListModel check = new DefaultListModel; String username, password, chatWith, pilihbahasa, useraccept,
usersend, languagesend, languageaccept, hasiltranslate, passcocok; String [] hikhik;
Timer timer; JPanel panel2;
int x;
Vector pms = new Vector; Login clientApplication;
ArrayList ar = new ArrayList;
public Login { initComponents;
koneksilocalhost, chatting, root, ; tabbedPane.setEnabledAt1, false;
combolanguage;
GoogleAPI.setHttpReferrerhttp:ajax.googleapis.comajaxserviceslanguagetra nslate;
GoogleAPI.setKeyAIzaSyCGyGqo7zI- rHLQbeWA_ixxBg3pmLEqv4M;
menuSignout.setVisiblefalse; inputUsername.setFocusabletrue;
Login.this. setTitle.:TM:.;
setIconImagenew
javax.swing.ImageIcon getClass.
getResourcesun.jpg.getImage; }
SuppressWarningsunchecked editor-fold defaultstate=collapsed desc=Generated Code
private void initComponents {
jPanel2 = new javax.swing.JPanel; panelbackk1 = new chat.panelbackk;
jLabel1 = new javax.swing.JLabel; tabbedPane = new javax.swing.JTabbedPane;
loginPanel = new javax.swing.JPanel; panelback1 = new chat.panelback;
labelUsernName = new javax.swing.JLabel; inputUsername = new javax.swing.JTextField;
labelPassword = new javax.swing.JLabel; inputPassword = new javax.swing.JPasswordField;
bahasa = new javax.swing.JComboBox; connect = new javax.swing.JButton;
SignUp = new javax.swing.JLabel; chatPanel = new javax.swing.JPanel;
panelback2 = new chat.panelback; jScrollPane2 = new javax.swing.JScrollPane;
listUser = new javax.swing.JList; jMenuBar1 = new javax.swing.JMenuBar;
File = new javax.swing.JMenu; menuSignup = new javax.swing.JMenuItem;
menuSignout = new javax.swing.JMenuItem; menuExit = new javax.swing.JMenuItem;
setDefaultCloseOperationjavax.swing.WindowConstants.DISPOSE_ON_CLOS E;
setResizablefalse; addWindowListenernew java.awt.event.WindowAdapter {
public void windowClosingjava.awt.event.WindowEvent evt { formWindowClosingevt;
} };
jPanel2.setBorderjavax.swing.BorderFactory.createEtchedBorder;
panelbackk1.setBorderjavax.swing.BorderFactory.createEtchedBorder; jLabel1.setFontnew java.awt.FontTahoma, 1, 24;
jLabel1.setForegroundnew java.awt.Color255, 255, 255; jLabel1.setTextTranslator Messenger;
labelUsernName.setTextUsername; inputUsername.setCursornew
java.awt.Cursorjava.awt.Cursor.TEXT_CURSOR; inputUsername.addKeyListenernew java.awt.event.KeyAdapter {
public void keyReleasedjava.awt.event.KeyEvent evt { inputUsernameKeyReleasedevt;
} };
labelPassword.setTextPassword; bahasa.addActionListenernew java.awt.event.ActionListener {
public void actionPerformedjava.awt.event.ActionEvent evt { bahasaActionPerformedevt;
} };
connect.setTextLog In; connect.addActionListenernew java.awt.event.ActionListener {
public void actionPerformedjava.awt.event.ActionEvent evt { connectActionPerformedevt;
} };
SignUp.setTextSign Up; SignUp.addMouseListenernew java.awt.event.MouseAdapter {
public void mouseClickedjava.awt.event.MouseEvent evt { SignUpMouseClickedevt;
} };
javax.swing.GroupLayout panelback1Layout
= new
javax.swing.GroupLayoutpanelback1; panelback1.setLayoutpanelback1Layout;
panelback1Layout.setHorizontalGroup
panelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LE ADING
.addGrouppanelback1Layout.createSequentialGroup .addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig
nment.LEADING .addGrouppanelback1Layout.createSequentialGroup
.addGap52, 52, 52 .addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig
nment.LEADING, false .addGrouppanelback1Layout.createSequentialGroup
.addComponentlabelUsernName .addGap18, 18, 18
.addComponentinputUsername
.addGrouppanelback1Layout.createSequentialGroup .addComponentlabelPassword
.addGap18, 18, 18
.addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig nment.LEADING
.addComponentinputPassword, javax.swing.GroupLayout.PREFERRED_SIZE,
104, javax.swing.GroupLayout.PREFERRED_SIZE
.addComponentconnect .addGrouppanelback1Layout.createSequentialGroup
.addGap90, 90, 90 .addComponentbahasa,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE
.addGrouppanelback1Layout.createSequentialGroup .addGap135, 135, 135
.addComponentSignUp .addContainerGap116, Short.MAX_VALUE
; panelback1Layout.setVerticalGroup
panelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LE ADING
.addGroupjavax.swing.GroupLayout.Alignment.TRAILING, panelback1Layout.createSequentialGroup
.addContainerGap69, Short.MAX_VALUE .addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig
nment.BASELINE .addComponentlabelUsernName,
javax.swing.GroupLayout.PREFERRED_SIZE, 14,
javax.swing.GroupLayout.PREFERRED_SIZE .addComponentinputUsername,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE
.addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.UNRELATED .addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig
nment.BASELINE .addComponentlabelPassword
.addComponentinputPassword, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addGap18, 18, 18 .addComponentbahasa,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE
.addGap18, 18, 18 .addComponentconnect,
javax.swing.GroupLayout.PREFERRED_SIZE, 23,
javax.swing.GroupLayout.PREFERRED_SIZE .addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.UNRELATED
.addComponentSignUp .addGap32, 32, 32
; javax.swing.GroupLayout
loginPanelLayout =
new javax.swing.GroupLayoutloginPanel;
loginPanel.setLayoutloginPanelLayout; loginPanelLayout.setHorizontalGroup
loginPanelLayout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEA DING
.addGrouploginPanelLayout.createSequentialGroup .addComponentpanelback1,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE
.addContainerGapjavax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE
; loginPanelLayout.setVerticalGroup
loginPanelLayout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEA DING
.addComponentpanelback1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE
; tabbedPane.addTabLOGIN, loginPanel;
listUser.addMouseListenernew java.awt.event.MouseAdapter { public void mouseClickedjava.awt.event.MouseEvent evt {
listUserMouseClickedevt; }
}; jScrollPane2.setViewportViewlistUser;
javax.swing.GroupLayout panelback2Layout
= new
javax.swing.GroupLayoutpanelback2; panelback2.setLayoutpanelback2Layout;
panelback2Layout.setHorizontalGroup
panelback2Layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LE ADING
.addGrouppanelback2Layout.createSequentialGroup .addGap90, 90, 90
.addComponentjScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE,
124, javax.swing.GroupLayout.PREFERRED_SIZE
.addContainerGap122, Short.MAX_VALUE ;
panelback2Layout.setVerticalGroup
panelback2Layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LE ADING
.addGroupjavax.swing.GroupLayout.Alignment.TRAILING, panelback2Layout.createSequentialGroup
.addContainerGap26, Short.MAX_VALUE .addComponentjScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 209,
javax.swing.GroupLayout.PREFERRED_SIZE .addGap21, 21, 21
; javax.swing.GroupLayout
chatPanelLayout =
new javax.swing.GroupLayoutchatPanel;
chatPanel.setLayoutchatPanelLayout;
chatPanelLayout.setHorizontalGroup chatPanelLayout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEA
DING .addComponentpanelback2, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE ;
chatPanelLayout.setVerticalGroup
chatPanelLayout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEA DING
.addComponentpanelback2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE
; tabbedPane.addTabCHAT, chatPanel;
javax.swing.GroupLayout panelbackk1Layout
= new
javax.swing.GroupLayoutpanelbackk1; panelbackk1.setLayoutpanelbackk1Layout;
panelbackk1Layout.setHorizontalGroup
panelbackk1Layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LE ADING
.addGrouppanelbackk1Layout.createSequentialGroup .addGrouppanelbackk1Layout.createParallelGroupjavax.swing.GroupLayout.Ali
gnment.LEADING .addGrouppanelbackk1Layout.createSequentialGroup
.addGap67, 67, 67 .addComponentjLabel1
.addGrouppanelbackk1Layout.createSequentialGroup .addGap34, 34, 34
.addComponenttabbedPane, javax.swing.GroupLayout.PREFERRED_SIZE,
341, javax.swing.GroupLayout.PREFERRED_SIZE
.addContainerGap36, Short.MAX_VALUE ;
panelbackk1Layout.setVerticalGroup
panelbackk1Layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LE ADING
.addGrouppanelbackk1Layout.createSequentialGroup .addGap26, 26, 26
.addComponentjLabel1, javax.swing.GroupLayout.PREFERRED_SIZE,
29,
javax.swing.GroupLayout.PREFERRED_SIZE .addGap18, 18, 18
.addComponenttabbedPane, javax.swing.GroupLayout.PREFERRED_SIZE,
284, javax.swing.GroupLayout.PREFERRED_SIZE
.addContainerGap46, Short.MAX_VALUE ;
javax.swing.GroupLayout jPanel2Layout
= new
javax.swing.GroupLayoutjPanel2; jPanel2.setLayoutjPanel2Layout;
jPanel2Layout.setHorizontalGroup
jPanel2Layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEADI NG
.addComponentpanelbackk1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE ;
jPanel2Layout.setVerticalGroup
jPanel2Layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEADI NG
.addGroupjPanel2Layout.createSequentialGroup .addComponentpanelbackk1,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE
.addContainerGapjavax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE
; File.setTextFile;
File.addActionListenernew java.awt.event.ActionListener { public void actionPerformedjava.awt.event.ActionEvent evt {
FileActionPerformedevt; }
}; menuSignup.setTextSign Up;
menuSignup.addActionListenernew java.awt.event.ActionListener { public void actionPerformedjava.awt.event.ActionEvent evt {
menuSignupActionPerformedevt; }
}; File.addmenuSignup;
menuSignout.setTextSign Out; menuSignout.addActionListenernew java.awt.event.ActionListener {
public void actionPerformedjava.awt.event.ActionEvent evt { menuSignoutActionPerformedevt;
} };
File.addmenuSignout;
menuExit.setTextExit; menuExit.addActionListenernew java.awt.event.ActionListener {
public void actionPerformedjava.awt.event.ActionEvent evt { menuExitActionPerformedevt;
} };
File.addmenuExit;
jMenuBar1.addFile; setJMenuBarjMenuBar1;
javax.swing.GroupLayout layout
= new
javax.swing.GroupLayoutgetContentPane; getContentPane.setLayoutlayout;
layout.setHorizontalGroup
layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEADING .addComponentjPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
; layout.setVerticalGroup
layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEADING .addGrouplayout.createSequentialGroup
.addComponentjPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,
400, javax.swing.GroupLayout.PREFERRED_SIZE
.addContainerGapjavax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE
; pack;
} editor-fold public void run
{ while thread = null { try
{ streamOut.writeUTFconsole.readLine; streamOut.writeUTFhasil;
streamOut.flush; }
catchIOException ioe { System.out.printlnSending error: + ioe.getMessage;
stop; } } }
public void handleString msg {
try { hikhik = msg.split ;
usersend = hikhik[0]; useraccept = hikhik[2];
int pecah1 = msg.indexOf ; int pecah2 = msg.indexOf , pecah1 + 1;
int pecah3 = msg.indexOf , pecah2 + 1; int pecah4 = msg.indexOf , pecah3 + 1;
String ky = msg.substringpecah4;
String sqllanguagesend = select from mes where userMes LIKE + usersend + ;
st = conn.createStatement; rs = st.executeQuerysqllanguagesend;
if rs.next {
languagesend = rs.getString3; }
String sqllanguageaccept = select from mes where userMes LIKE + useraccept + ;
st = conn.createStatement; rs = st.executeQuerysqllanguageaccept;
if rs.next {
languageaccept = rs.getString3; } if ky.equals saiaremove {
forint i = 0; i pms.size; i++{ Message tmp = Messagepms.geti;
iftmp.chattingWith.equalsusersend{
tmp.textmes.append\n + usersend + sign out + \n; tmp.kirim.setEnabledfalse;
}
} } else {
if ky.equals saiaecit {
forint i = 0; i pms.size; i++{ Message tmp = Messagepms.geti;
ifusername.equalsusersend { iftmp.chattingWith.equalsuseraccept{
tabbedPane.removeTabAti+2; pms.removeElementAti; }
else if tmp.chattingWith.equalsusersend{ tmp.textmes.append\n + usersend + close chat + \n;
}
} } } else {
INI FIX LHO JANGAN DIHAPUS try {
hasiltranslate =
Translate.DEFAULT.executeky, Language.valueOflanguagesend, Language.valueOflanguageaccept;
} catch GoogleAPIException ex { Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null,
ex; }
if username.equalsusersend { } else {
if username.equalsuseraccept { if alreadyChattingusersend {
createNewPMusersend; } else {
} }
} for int i = 0; i pms.size; i++ {
Message tmp = Message pms.geti; if username.equalsuseraccept {
if tmp.chattingWith.equalsusersend { tmp.textmes.appendusersend + : + hasiltranslate + \n;
}} else if username.equalsusersend { if tmp.chattingWith.equalsuseraccept {
tmp.textmes.appendusersend + : + ky + \n; }
} }
}} } catch SQLException ex {
Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex;
} }
public void start throws IOException { console = new DataInputStreamSystem.in;
console = new DataInputStreaminputText.getText; console = new DataInputStreamsocket.getInputStream;
streamOut = new DataOutputStreamsocket.getOutputStream; if thread == null
{ client = new ThreadCthis, socket;
thread = new Threadthis; thread.start;
} }
public void stop { if thread = null
{ thread.stop; thread = null;
client.close; client.stop;
}} public void connect{
tabbedPane.setEnabledAt0, false; tabbedPane.setEnabledAt1, true;
tabbedPane.setSelectedIndex1; connect.setEnabledfalse;
inputUsername.setText; inputPassword.setText;
setTitleWelcome + username + - + pilihbahasa; menuSignout.setVisibletrue;
menuSignup.setVisiblefalse; menuExit.setVisiblefalse;
} public void combolanguage{
bahasa.addItemLanguage; bahasa.addItemAFRIKAANS;
bahasa.addItemALBANIAN; bahasa.addItemAMHARIC;
bahasa.addItemARABIC; bahasa.addItemARMENIAN;
bahasa.addItemAZERBAIJANI; bahasa.addItemBASQUE;
bahasa.addItemBELARUSIAN;
bahasa.addItemBENGALI; bahasa.addItemBIHARI;
bahasa.addItemBULGARIAN; bahasa.addItemBURMESE;
bahasa.addItemCATALAN; bahasa.addItemCHEROKEE;
bahasa.addItemCHINESE; bahasa.addItemCHINESE_SIMPLIFIED;
bahasa.addItemCHINESE_TRADITIONAL; bahasa.addItemCROATIAN;
bahasa.addItemCZECH; bahasa.addItemDANISH;
bahasa.addItemDHIVEHI; bahasa.addItemDUTCH;
bahasa.addItemENGLISH; bahasa.addItemESPERANTO;
bahasa.addItemESTONIAN; bahasa.addItemFILIPINO;
bahasa.addItemFINNISH; bahasa.addItemFRENCH;
bahasa.addItemGALICIAN; bahasa.addItemGEORGIAN;
bahasa.addItemGERMAN; bahasa.addItemGREEK;
bahasa.addItemGUARANI; bahasa.addItemGUJARATI;
bahasa.addItemHEBREW; bahasa.addItemHINDI;
bahasa.addItemHUNGARIAN; bahasa.addItemICELANDIC;
bahasa.addItemINDONESIAN; bahasa.addItemINUKTITUT;
bahasa.addItemIRISH; bahasa.addItemITALIAN;
bahasa.addItemJAPANESE; bahasa.addItemKANNADA;
bahasa.addItemKAZAKH; bahasa.addItemKHMER;
bahasa.addItemKOREAN; bahasa.addItemKURDISH;
bahasa.addItemKYRGYZ; bahasa.addItemLAOTHIAN;
bahasa.addItemLATVIAN; bahasa.addItemLITHUANIAN;
bahasa.addItemMACEDONIAN; bahasa.addItemMALAY;
bahasa.addItemMALAYALAM; bahasa.addItemMALTESE;
bahasa.addItemMARATHI; bahasa.addItemMONGOLIAN;
bahasa.addItemNEPALI; bahasa.addItemNORWEGIAN;
bahasa.addItemORIYA; bahasa.addItemPASHTO;
bahasa.addItemPERSIAN; bahasa.addItemPOLISH;
bahasa.addItemPORTUGUESE; bahasa.addItemPUNJABI;
bahasa.addItemROMANIAN; bahasa.addItemRUSSIAN;
bahasa.addItemSANSKRIT; bahasa.addItemSERBIAN;
bahasa.addItemSINDHI; bahasa.addItemSINHALESE;
bahasa.addItemSLOVAK; bahasa.addItemSLOVENIAN;
bahasa.addItemSPANISH; bahasa.addItemSWAHILI;
bahasa.addItemSWEDISH; bahasa.addItemTAGALOG;
bahasa.addItemTAJIK; bahasa.addItemTAMIL;
bahasa.addItemTELUGU; bahasa.addItemTHAI;
bahasa.addItemTIBETAN; bahasa.addItemTURKISH;
bahasa.addItemUIGHUR; bahasa.addItemUKRANIAN;
bahasa.addItemURDU; bahasa.addItemUZBEK;
bahasa.addItemVIETNAMESE; bahasa.addItemWELSH;
bahasa.addItemYIDDISH;
} private void menuSignoutActionPerformedjava.awt.event.ActionEvent evt {
String metyyu = username + to + chatWith + : + saiaremove; try {
streamOut.writeUTFmetyyu; } catch IOException ex {
Logger.getLoggerMessage.class.getName.logLevel.SEVERE, null,
ex;
} String query = delete from mes where userMes LIKE + username + ;
try { st.executeUpdatequery;
} catch SQLException ex { Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex;
} stop;
timer.stop;
try { conn.close;
} catch SQLException ex { Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex;
} try {
st.close; } catch SQLException ex {
Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex; }
try { rs.close;
} catch SQLException ex { Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex;
} this.dispose;
} private void FileActionPerformedjava.awt.event.ActionEvent evt {
this.dispose; }
private void menuSignupActionPerformedjava.awt.event.ActionEvent evt { new Sign.setVisibletrue;
} private void menuExitActionPerformedjava.awt.event.ActionEvent evt {
this.dispose; }
private void listUserMouseClickedjava.awt.event.MouseEvent evt { if
evt.getClickCount ==
1 ||
evt.getClickCount ==
2 ||
evt.getClickCount == 3 {
chatWith = StringlistUser.getSelectedValue; if chatWith.equalsusername{
JOptionPane.showMessageDialogthis, Its you; } else {
chatWith = StringlistUser.getSelectedValue; privateMessageManagerchatWith; }
} }
private void SignUpMouseClickedjava.awt.event.MouseEvent evt { new Sign.setVisibletrue;
} private void connectActionPerformedjava.awt.event.ActionEvent evt {
try { if
inputUsername.getText.equals ||
inputPassword.getText.equals ||bahasa.getSelectedItem.equalsLanguage {
if inputUsername.getText.equals{ JOptionPane.showMessageDialogthis, You must fill Username;
} else if inputPassword.getText.equals{
JOptionPane.showMessageDialogthis, You must fill Password; }
else if bahasa.getSelectedItem.equalsLanguage{ JOptionPane.showMessageDialogthis, You must choose Language;
} } else {
username = new StringinputUsername.getText; password = new StringinputPassword.getText;
String sql = select from identitas where username LIKE + username + ;
st = conn.createStatement; rs = st.executeQuerysql;
if rs.next {
passcocok = rs.getString4; if password.equalspasscocok {
connect; socket = new Socketlocalhost, 8000;
start; x = socket.getLocalPort;
try {
String sqlid = insert into mesuserMes,idsocket,userLanguage values + username + , + x + , + pilihbahasa + ;
st = conn.createStatement;
st.executesqlid; } catch SQLException ex {
Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex;
} ActionListener actionListener = new ActionListener {
public void actionPerformedActionEvent actionEvent { try {
list.clear; listUser.setModellist;
String sqluseronline = select from mes order by
userMes; st = conn.createStatement;
rs = st.executeQuerysqluseronline; while rs.next {
list.addElementrs.getObject1; }
} catch SQLException ex { Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex;
} }
}; timer = new Timer1000, actionListener;
timer.start; listUser.setModellist;
} else { JOptionPane.showMessageDialogthis, Username or Password
invalid; }
} else if password.equalspassword{ JOptionPane.showMessageDialogthis, Username or Password
invalid; }
} } catch UnknownHostException ex {
Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex; } catch IOException ex {
Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex; } catch SQLException ex {
Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex; }
} private void bahasaActionPerformedjava.awt.event.ActionEvent evt {
ifbahasa.getSelectedItem.equalsAFRIKAANS{
pilihbahasa = AFRIKAANS; } else ifbahasa.getSelectedItem.equalsALBANIAN{
pilihbahasa = ALBANIAN; } else ifbahasa.getSelectedItem.equalsAMHARIC{
pilihbahasa = AMHARIC; } else ifbahasa.getSelectedItem.equalsARABIC{
pilihbahasa = ARABIC; } else ifbahasa.getSelectedItem.equalsARMENIAN{
pilihbahasa = ARMENIAN; } else ifbahasa.getSelectedItem.equalsAZERBAIJANI{
pilihbahasa = AZERBAIJANI; } else ifbahasa.getSelectedItem.equalsBASQUE{
pilihbahasa = BASQUE; } else ifbahasa.getSelectedItem.equalsBELARUSIAN{
pilihbahasa = BELARUSIAN; } else ifbahasa.getSelectedItem.equalsBENGALI{
pilihbahasa = BENGALI; } else ifbahasa.getSelectedItem.equalsBIHARI{
pilihbahasa = BIHARI; } else ifbahasa.getSelectedItem.equalsBULGARIAN{
pilihbahasa = BULGARIAN; } else ifbahasa.getSelectedItem.equalsBURMESE{
pilihbahasa = BURMESE; } else ifbahasa.getSelectedItem.equalsCATALAN{
pilihbahasa = CATALAN; } else ifbahasa.getSelectedItem.equalsCHEROKEE{
pilihbahasa = CHEROKEE; } else ifbahasa.getSelectedItem.equalsCHINESE{
pilihbahasa = CHINESE; } else ifbahasa.getSelectedItem.equalsCHINESE_SIMPLIFIED{
pilihbahasa = CHINESE_SIMPLIFIED; } else ifbahasa.getSelectedItem.equalsCHINESE_TRADITIONAL{
pilihbahasa = CHINESE_TRADITIONAL; } else ifbahasa.getSelectedItem.equalsCROATIAN{
pilihbahasa = CROATIAN; } else ifbahasa.getSelectedItem.equalsCZECH{
pilihbahasa = CZECH; } else ifbahasa.getSelectedItem.equalsDANISH{
pilihbahasa = DANISH; } else ifbahasa.getSelectedItem.equalsDHIVEHI{
pilihbahasa = DHIVEHI; } else ifbahasa.getSelectedItem.equalsDUTCH{
pilihbahasa = DUTCH; } else ifbahasa.getSelectedItem.equalsENGLISH{
pilihbahasa = ENGLISH; } else ifbahasa.getSelectedItem.equalsESPERANTO{
+ , -
pilihbahasa = ESPERANTO; } else ifbahasa.getSelectedItem.equalsESTONIAN{
pilihbahasa = ESTONIAN; } else ifbahasa.getSelectedItem.equalsFILIPINO{
pilihbahasa = FILIPINO; } else ifbahasa.getSelectedItem.equalsFINNISH{
pilihbahasa = FINNISH; } else ifbahasa.getSelectedItem.equalsFRENCH{
pilihbahasa = FRENCH; } else ifbahasa.getSelectedItem.equalsGALICIAN{
pilihbahasa = GALICIAN; } else ifbahasa.getSelectedItem.equalsGEORGIAN{
pilihbahasa = GEORGIAN; } else ifbahasa.getSelectedItem.equalsGERMAN{
pilihbahasa = GERMAN; } else ifbahasa.getSelectedItem.equalsGREEK{
pilihbahasa = GREEK; } else ifbahasa.getSelectedItem.equalsGUARANI{
pilihbahasa = GUARANI; } else ifbahasa.getSelectedItem.equalsGUJARATI{
pilihbahasa = GUJARATI; } else ifbahasa.getSelectedItem.equalsHEBREW{
pilihbahasa = HEBREW; } else ifbahasa.getSelectedItem.equalsHINDI{
pilihbahasa = HINDI; } else ifbahasa.getSelectedItem.equalsHUNGARIAN{
pilihbahasa = HUNGARIAN; } else ifbahasa.getSelectedItem.equalsICELANDIC{
pilihbahasa = ICELANDIC; } else ifbahasa.getSelectedItem.equalsINDONESIAN{
pilihbahasa = INDONESIAN; } else ifbahasa.getSelectedItem.equalsINUKTITUT{
pilihbahasa = INUKTITUT; } else ifbahasa.getSelectedItem.equalsIRISH{
pilihbahasa = IRISH; } else ifbahasa.getSelectedItem.equalsITALIAN{
pilihbahasa = ITALIAN; } else ifbahasa.getSelectedItem.equalsJAPANESE{
pilihbahasa = JAPANESE; } else ifbahasa.getSelectedItem.equalsKANNADA{
pilihbahasa = KANNADA; } else ifbahasa.getSelectedItem.equalsKAZAKH{
pilihbahasa = KAZAKH; } else ifbahasa.getSelectedItem.equalsKHMER{
pilihbahasa = KHMER; } else ifbahasa.getSelectedItem.equalsKOREAN{
.
pilihbahasa = KOREAN; } else ifbahasa.getSelectedItem.equalsKURDISH{
pilihbahasa = KURDISH; } else ifbahasa.getSelectedItem.equalsKYRGYZ{
pilihbahasa = KYRGYZ; } else ifbahasa.getSelectedItem.equalsLAOTHIAN{
pilihbahasa = LAOTHIAN; } else ifbahasa.getSelectedItem.equalsLATVIAN{
pilihbahasa = LATVIAN; } else ifbahasa.getSelectedItem.equalsLITHUANIAN{
pilihbahasa = LITHUANIAN; } else ifbahasa.getSelectedItem.equalsMACEDONIAN{
pilihbahasa = MACEDONIAN; } else ifbahasa.getSelectedItem.equalsMALAY{
pilihbahasa = MALAY; } else ifbahasa.getSelectedItem.equalsMALAYALAM{
pilihbahasa = MALAYALAM; } else ifbahasa.getSelectedItem.equalsMALTESE{
pilihbahasa = MALTESE; } else ifbahasa.getSelectedItem.equalsMARATHI{
pilihbahasa = MARATHI; } else ifbahasa.getSelectedItem.equalsMONGOLIAN{
pilihbahasa = MONGOLIAN; } else ifbahasa.getSelectedItem.equalsNEPALI{
pilihbahasa = NEPALI; } else ifbahasa.getSelectedItem.equalsNORWEGIAN{
pilihbahasa = NORWEGIAN; } else ifbahasa.getSelectedItem.equalsORIYA{
pilihbahasa = ORIYA; } else ifbahasa.getSelectedItem.equalsPASHTO{
pilihbahasa = PASHTO; } else ifbahasa.getSelectedItem.equalsPERSIAN{
pilihbahasa = PERSIAN; } else ifbahasa.getSelectedItem.equalsPOLISH{
pilihbahasa = POLISH; } else ifbahasa.getSelectedItem.equalsPORTUGUESE{
pilihbahasa = PORTUGUESE; } else ifbahasa.getSelectedItem.equalsPUNJABI{
pilihbahasa = PUNJABI; } else ifbahasa.getSelectedItem.equalsROMANIAN{
pilihbahasa = ROMANIAN; } else ifbahasa.getSelectedItem.equalsRUSSIAN{
pilihbahasa = RUSSIAN; } else ifbahasa.getSelectedItem.equalsSANSKRIT{
pilihbahasa = SANSKRIT; } else ifbahasa.getSelectedItem.equalsSERBIAN{
0 1 2
pilihbahasa = SERBIAN; } else ifbahasa.getSelectedItem.equalsSINDHI{
pilihbahasa = SINDHI; } else ifbahasa.getSelectedItem.equalsSINHALESE{
pilihbahasa = SINHALESE; } else ifbahasa.getSelectedItem.equalsSLOVAK{
pilihbahasa = SLOVAK; } else ifbahasa.getSelectedItem.equalsSLOVENIAN{
pilihbahasa = SLOVENIAN; } else ifbahasa.getSelectedItem.equalsSPANISH{
pilihbahasa = SPANISH; } else ifbahasa.getSelectedItem.equalsSWAHILI{
pilihbahasa = SWAHILI; } else ifbahasa.getSelectedItem.equalsSWEDISH{
pilihbahasa = SWEDISH; } else ifbahasa.getSelectedItem.equalsTAGALOG{
pilihbahasa = TAGALOG; } else ifbahasa.getSelectedItem.equalsTAJIK{
pilihbahasa = TAJIK; } else ifbahasa.getSelectedItem.equalsTAMIL{
pilihbahasa = TAMIL; } else ifbahasa.getSelectedItem.equalsTELUGU{
pilihbahasa = TELUGU; } else ifbahasa.getSelectedItem.equalsTHAI{
pilihbahasa = THAI; } else ifbahasa.getSelectedItem.equalsTIBETAN{
pilihbahasa = TIBETAN; } else ifbahasa.getSelectedItem.equalsTURKISH{
pilihbahasa = TURKISH; } else ifbahasa.getSelectedItem.equalsUIGHUR{
pilihbahasa = UIGHUR; } else ifbahasa.getSelectedItem.equalsUKRANIAN{
pilihbahasa = UKRANIAN; } else ifbahasa.getSelectedItem.equalsURDU{
pilihbahasa = URDU; } else ifbahasa.getSelectedItem.equalsUZBEK{
pilihbahasa = UZBEK; } else ifbahasa.getSelectedItem.equalsVIETNAMESE{
pilihbahasa = VIETNAMESE; } else ifbahasa.getSelectedItem.equalsWELSH{
pilihbahasa = WELSH; } else ifbahasa.getSelectedItem.equalsYIDDISH{
pilihbahasa = YIDDISH; }
}
334
private void inputUsernameKeyReleasedjava.awt.event.KeyEvent evt { username = new StringinputUsername.getText;
} private void formWindowClosingjava.awt.event.WindowEvent evt {
if tabbedPane.getTitleAt0.equalsLOGIN{ this.dispose;
} else { String metyyu = username + to + chatWith + : + saiaremove;
try {
streamOut.writeUTFmetyyu; } catch IOException ex {
Logger.getLoggerMessage.class.getName.logLevel.SEVERE, null,
ex; }
String query = delete from mes where userMes LIKE + username + ; try {
st.executeUpdatequery; } catch SQLException ex {
Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex; }
stop; timer.stop;
try { conn.close;
} catch SQLException ex { Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex;
} try {
st.close; } catch SQLException ex {
Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex; }
try { rs.close;
} catch SQLException ex { Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex;
} this.dispose; }
} public void privateMessageManagerString chatWith {
55 5
ifchatWith.equalsIgnoreCaseusername return;
ifalreadyChattingchatWith createNewPMchatWith;
} public boolean alreadyChattingString chatWith {
forint i=0;ipms.size;i++ {
Message tmp = Messagepms.geti; iftmp.chattingWith.equalschatWith
{
tabbedPane.setSelectedIndexi+2; return true;
} }
return false; }
public void createNewPMString chatWith { panel2 = new MessageclientApplication, chatWith, username, socket,
streamOut; tabbedPane.addTabchatWith, panel2;
tabbedPane.setEnabledAttabbedPane.getTabCount-1, true; tabbedPane.setSelectedIndextabbedPane.getTabCount-1;
pms.addElementpanel2;
} public void koneksiString server, String db, String username, String
password{ try {
Class.forNamecom.mysql.jdbc.Driver; conn = null;
conn = DriverManager.getConnectionjdbc:mysql: + server + :3306 + db, username, password;
if conn == null { JOptionPane.showMessageDialogthis, gagal;
} } catch SQLException ex {
JOptionPane.showMessageDialogthis, tidak bisa koneksi ke database; Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex;
} catch ClassNotFoundException ex { Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex;
} }
667
public static void mainString args[] { java.awt.EventQueue.invokeLaternew Runnable {
public void run { new Login.setVisibletrue;
} };
} Variables declaration - do not modify
private javax.swing.JMenu File; private javax.swing.JLabel SignUp;
private javax.swing.JComboBox bahasa; private javax.swing.JPanel chatPanel;
public javax.swing.JButton connect; private javax.swing.JPasswordField inputPassword;
public javax.swing.JTextField inputUsername; private javax.swing.JLabel jLabel1;
private javax.swing.JMenuBar jMenuBar1; private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane2; private javax.swing.JLabel labelPassword;
private javax.swing.JLabel labelUsernName; private javax.swing.JList listUser;
private javax.swing.JPanel loginPanel; private javax.swing.JMenuItem menuExit;
private javax.swing.JMenuItem menuSignout; private javax.swing.JMenuItem menuSignup;
private chat.panelback panelback1; private chat.panelback panelback2;
private chat.panelbackk panelbackk1; private javax.swing.JTabbedPane tabbedPane;
End of variables declaration
}
889
Message import java.sql.;
import java.io.; import java.net.;
import java.util.logging.; import javax.swing.text.DefaultCaret;
public class Message extends javax.swing.JPanel { String chattingWith=null;
private Login parent; private Socket socket = null;
private DataOutputStream streamOut = null; String text, sql, idcocok, tambahtext;
String username = null;
public Connection conn; public Statement st;
public ResultSet rs;
public MessageLogin parent, String chattingWith, String username, Socket socket,DataOutputStream streamOut {
initComponents; this.parent = parent;
this.username = username; this.chattingWith = chattingWith;
this.socket = socket; this.streamOut = streamOut;
textmes.appendConnected: + socket + \n; textmes.setEditablefalse;
DefaultCaret caret = DefaultCarettextmes.getCaret; caret.setUpdatePolicyDefaultCaret.ALWAYS_UPDATE;
} SuppressWarningsunchecked
editor-fold defaultstate=collapsed desc=Generated Code private void initComponents {
jScrollPane1 = new javax.swing.JScrollPane; textmes = new javax.swing.JTextArea;
textInput = new javax.swing.JTextField; panelbackmes1 = new chat.panelbackmes;
panelbackmes2 = new chat.panelbackmes; panelbackmes4 = new chat.panelbackmes;
panelbackmes5 = new chat.panelbackmes; panelbackmes6 = new chat.panelbackmes;
exit = new javax.swing.JButton;
::;
panelbackmes7 = new chat.panelbackmes; panelbackmes8 = new chat.panelbackmes;
panelbackmes9 = new chat.panelbackmes; panelbackmes10 = new chat.panelbackmes;
panelbackmes11 = new chat.panelbackmes; kirim = new javax.swing.JButton;
textmes.setColumns20; textmes.setRows5;
jScrollPane1.setViewportViewtextmes;
textInput.addActionListenernew java.awt.event.ActionListener { public void actionPerformedjava.awt.event.ActionEvent evt {
textInputActionPerformedevt; }
}; javax.swing.GroupLayout
panelbackmes1Layout =
new javax.swing.GroupLayoutpanelbackmes1;
panelbackmes1.setLayoutpanelbackmes1Layout; panelbackmes1Layout.setHorizontalGroup
panelbackmes1Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGap0, 48, Short.MAX_VALUE ;
panelbackmes1Layout.setVerticalGroup
panelbackmes1Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGap0, 42, Short.MAX_VALUE ;
javax.swing.GroupLayout panelbackmes2Layout
= new
javax.swing.GroupLayoutpanelbackmes2; panelbackmes2.setLayoutpanelbackmes2Layout;
panelbackmes2Layout.setHorizontalGroup
panelbackmes2Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGap0, 48, Short.MAX_VALUE ;
panelbackmes2Layout.setVerticalGroup
panelbackmes2Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
=
.addGap0, 42, Short.MAX_VALUE ;
javax.swing.GroupLayout panelbackmes4Layout
= new
javax.swing.GroupLayoutpanelbackmes4; panelbackmes4.setLayoutpanelbackmes4Layout;
panelbackmes4Layout.setHorizontalGroup
panelbackmes4Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGap0, 48, Short.MAX_VALUE ;
panelbackmes4Layout.setVerticalGroup
panelbackmes4Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGap0, 42, Short.MAX_VALUE ;
javax.swing.GroupLayout panelbackmes5Layout
= new
javax.swing.GroupLayoutpanelbackmes5; panelbackmes5.setLayoutpanelbackmes5Layout;
panelbackmes5Layout.setHorizontalGroup
panelbackmes5Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGap0, 48, Short.MAX_VALUE ;
panelbackmes5Layout.setVerticalGroup
panelbackmes5Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGap0, 42, Short.MAX_VALUE ;
exit.setTextClose tab; exit.addActionListenernew java.awt.event.ActionListener {
public void actionPerformedjava.awt.event.ActionEvent evt { exitActionPerformedevt;
} };
javax.swing.GroupLayout panelbackmes6Layout
= new
javax.swing.GroupLayoutpanelbackmes6; panelbackmes6.setLayoutpanelbackmes6Layout;
panelbackmes6Layout.setHorizontalGroup
panelbackmes6Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGrouppanelbackmes6Layout.createSequentialGroup .addContainerGap
.addComponentexit .addContainerGap9, Short.MAX_VALUE
; panelbackmes6Layout.setVerticalGroup
panelbackmes6Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGrouppanelbackmes6Layout.createSequentialGroup .addContainerGap
.addComponentexit .addContainerGapjavax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE ;
javax.swing.GroupLayout panelbackmes7Layout
= new
javax.swing.GroupLayoutpanelbackmes7; panelbackmes7.setLayoutpanelbackmes7Layout;
panelbackmes7Layout.setHorizontalGroup
panelbackmes7Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGap0, 48, Short.MAX_VALUE ;
panelbackmes7Layout.setVerticalGroup
panelbackmes7Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGap0, 42, Short.MAX_VALUE ;
javax.swing.GroupLayout panelbackmes8Layout
= new
javax.swing.GroupLayoutpanelbackmes8; panelbackmes8.setLayoutpanelbackmes8Layout;
panelbackmes8Layout.setHorizontalGroup
panelbackmes8Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGap0, 48, Short.MAX_VALUE ;
panelbackmes8Layout.setVerticalGroup
??
panelbackmes8Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGap0, 42, Short.MAX_VALUE ;
javax.swing.GroupLayout panelbackmes9Layout
= new
javax.swing.GroupLayoutpanelbackmes9; panelbackmes9.setLayoutpanelbackmes9Layout;
panelbackmes9Layout.setHorizontalGroup
panelbackmes9Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGap0, 48, Short.MAX_VALUE ;
panelbackmes9Layout.setVerticalGroup
panelbackmes9Layout.createParallelGroupjavax.swing.GroupLayout.Alignment. LEADING
.addGap0, 42, Short.MAX_VALUE ;
javax.swing.GroupLayout panelbackmes10Layout
= new
javax.swing.GroupLayoutpanelbackmes10; panelbackmes10.setLayoutpanelbackmes10Layout;
panelbackmes10Layout.setHorizontalGroup
panelbackmes10Layout.createParallelGroupjavax.swing.GroupLayout.Alignment .LEADING
.addGap0, 48, Short.MAX_VALUE ;
panelbackmes10Layout.setVerticalGroup
panelbackmes10Layout.createParallelGroupjavax.swing.GroupLayout.Alignment .LEADING
.addGap0, 42, Short.MAX_VALUE ;
kirim.setTextSend; kirim.addActionListenernew java.awt.event.ActionListener {
public void actionPerformedjava.awt.event.ActionEvent evt { kirimActionPerformedevt;
} };
javax.swing.GroupLayout panelbackmes11Layout
= new
javax.swing.GroupLayoutpanelbackmes11;
AA
panelbackmes11.setLayoutpanelbackmes11Layout; panelbackmes11Layout.setHorizontalGroup
panelbackmes11Layout.createParallelGroupjavax.swing.GroupLayout.Alignment .LEADING
.addGrouppanelbackmes11Layout.createSequentialGroup .addContainerGap
.addComponentkirim, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE
.addContainerGap ;
panelbackmes11Layout.setVerticalGroup
panelbackmes11Layout.createParallelGroupjavax.swing.GroupLayout.Alignment .LEADING
.addGroupjavax.swing.GroupLayout.Alignment.TRAILING, panelbackmes11Layout.createSequentialGroup
.addContainerGapjavax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE
.addComponentkirim .addContainerGap
; javax.swing.GroupLayout layout = new javax.swing.GroupLayoutthis;
this.setLayoutlayout; layout.setHorizontalGroup
layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEADING .addGrouplayout.createSequentialGroup
.addContainerGap .addGrouplayout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEA
DING, false .addGrouplayout.createSequentialGroup
.addComponentpanelbackmes7, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.RELATED .addComponentpanelbackmes8,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE
.addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.RELATED
BBC
.addComponentpanelbackmes9, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.RELATED .addComponentpanelbackmes10,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE
.addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.RELATED .addComponentpanelbackmes11,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE
.addComponenttextInput .addGrouplayout.createSequentialGroup
.addComponentpanelbackmes4, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.RELATED .addComponentpanelbackmes1,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE
.addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.RELATED .addComponentpanelbackmes2,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE
.addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.RELATED .addComponentpanelbackmes5,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE
.addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.RELATED .addComponentpanelbackmes6, 0, 96, Short.MAX_VALUE
.addComponentjScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 312, Short.MAX_VALUE
.addContainerGapjavax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE
D E F
; layout.setVerticalGroup
layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEADING .addGrouplayout.createSequentialGroup
.addGrouplayout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEA DING
.addComponentpanelbackmes2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addComponentpanelbackmes5, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addGrouplayout.createParallelGroupjavax.swing.GroupLayout.Alignment.TRA ILING, false
.addComponentpanelbackmes4, javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE
.addComponentpanelbackmes1, javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE
.addComponentpanelbackmes6, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.RELATED .addComponentjScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 96,
javax.swing.GroupLayout.PREFERRED_SIZE .addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.UNRELATED
.addComponenttextInput, javax.swing.GroupLayout.PREFERRED_SIZE,
34, javax.swing.GroupLayout.PREFERRED_SIZE
.addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.RELATED .addGrouplayout.createParallelGroupjavax.swing.GroupLayout.Alignment.TRA
ILING
G H G
.addComponentpanelbackmes7, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addComponentpanelbackmes8, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addComponentpanelbackmes9, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addComponentpanelbackmes10, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addComponentpanelbackmes11, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addContainerGap ;
} editor-fold private void kirimActionPerformedjava.awt.event.ActionEvent evt {
text = textInput.getText; tambahtext = username + to + chattingWith + : + text;
try {
streamOut.writeUTFtambahtext; } catch IOException ex {
Logger.getLoggerMessage.class.getName.logLevel.SEVERE, null,
ex; }
textInput.setText; DefaultCaret caret = DefaultCarettextmes.getCaret;
caret.setUpdatePolicyDefaultCaret.ALWAYS_UPDATE;
} private void exitActionPerformedjava.awt.event.ActionEvent evt {
String metu = username + to + chattingWith + : + saiaecit; try {
streamOut.writeUTFmetu; } catch IOException ex {
Logger.getLoggerMessage.class.getName.logLevel.SEVERE, null,
ex; }
I J J
} private void textInputActionPerformedjava.awt.event.ActionEvent evt {
DefaultCaret caret = DefaultCarettextmes.getCaret; caret.setUpdatePolicyDefaultCaret.ALWAYS_UPDATE;
textInput.setFocusabletrue; text = textInput.getText;
tambahtext = username + to + chattingWith + : + text; try {
streamOut.writeUTFtambahtext; } catch IOException ex {
Logger.getLoggerMessage.class.getName.logLevel.SEVERE, null,
ex; }
textInput.setText; }
Variables declaration - do not modify public javax.swing.JButton exit;
private javax.swing.JScrollPane jScrollPane1; public javax.swing.JButton kirim;
private chat.panelbackmes panelbackmes1; private chat.panelbackmes panelbackmes10;
private chat.panelbackmes panelbackmes11; private chat.panelbackmes panelbackmes2;
private chat.panelbackmes panelbackmes4; private chat.panelbackmes panelbackmes5;
private chat.panelbackmes panelbackmes6; private chat.panelbackmes panelbackmes7;
private chat.panelbackmes panelbackmes8; private chat.panelbackmes panelbackmes9;
private javax.swing.JTextField textInput; public javax.swing.JTextArea textmes;
End of variables declaration
}
K L M
Sign import java.sql.;
import java.util.logging.; import javax.swing.;
public class Sign extends javax.swing.JFrame { public Connection conn;
public Statement st; String firstname, lastname, signuser, signpass, signemail, gender;
public Sign { initComponents;
setTitle.:TM:.; setIconImagenew
javax.swing.ImageIcon getClass.
getResourcesun.jpg.getImage; koneksilocalhost,chatting,root,;
} SuppressWarningsunchecked
editor-fold defaultstate=collapsed desc=Generated Code private void initComponents {
panelback1 = new chat.panelback; Submit = new javax.swing.JButton;
SignEmail = new javax.swing.JTextField; ComboGender = new javax.swing.JComboBox;
SignUser = new javax.swing.JTextField; SignPass = new javax.swing.JPasswordField;
SignFirstname = new javax.swing.JTextField; SignLastname = new javax.swing.JTextField;
jLabel6 = new javax.swing.JLabel; jLabel3 = new javax.swing.JLabel;
jLabel2 = new javax.swing.JLabel; jLabel1 = new javax.swing.JLabel;
jLabel5 = new javax.swing.JLabel; jLabel4 = new javax.swing.JLabel;
jMenuBar1 = new javax.swing.JMenuBar; jMenu1 = new javax.swing.JMenu;
menuExit = new javax.swing.JMenuItem;
setDefaultCloseOperationjavax.swing.WindowConstants.DISPOSE_ON_CLOS E;
addWindowListenernew java.awt.event.WindowAdapter { public void windowClosingjava.awt.event.WindowEvent evt {
formWindowClosingevt;
N O P
} };
Submit.setTextSubmit; Submit.addActionListenernew java.awt.event.ActionListener {
public void actionPerformedjava.awt.event.ActionEvent evt { SubmitActionPerformedevt;
} };
ComboGender.setModelnew javax.swing.DefaultComboBoxModelnew
String[] { Choose, L, P }; ComboGender.addActionListenernew java.awt.event.ActionListener {
public void actionPerformedjava.awt.event.ActionEvent evt { ComboGenderActionPerformedevt;
} };
jLabel6.setTextGender; jLabel3.setTextUsername;
jLabel2.setTextLastname; jLabel1.setTextFirstname;
jLabel5.setTextE-mail; jLabel4.setTextPassword;
javax.swing.GroupLayout panelback1Layout
= new
javax.swing.GroupLayoutpanelback1; panelback1.setLayoutpanelback1Layout;
panelback1Layout.setHorizontalGroup
panelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LE ADING
.addGroupjavax.swing.GroupLayout.Alignment.TRAILING, panelback1Layout.createSequentialGroup
.addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig nment.TRAILING
.addComponentSubmit .addGrouppanelback1Layout.createSequentialGroup
.addContainerGap47, Short.MAX_VALUE
Q R S
.addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig nment.TRAILING
.addComponentjLabel2 .addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig
nment.LEADING .addComponentjLabel4
.addComponentjLabel3 .addComponentjLabel6
.addComponentjLabel5
.addComponentjLabel1 .addGap37, 37, 37
.addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig nment.LEADING
.addComponentSignFirstname, javax.swing.GroupLayout.PREFERRED_SIZE,
134, javax.swing.GroupLayout.PREFERRED_SIZE
.addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig nment.LEADING
.addComponentSignEmail, javax.swing.GroupLayout.DEFAULT_SIZE, 134, Short.MAX_VALUE
.addComponentComboGender, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addComponentSignPass, javax.swing.GroupLayout.DEFAULT_SIZE, 134, Short.MAX_VALUE
.addComponentSignUser, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, 134, Short.MAX_VALUE .addComponentSignLastname,
javax.swing.GroupLayout.DEFAULT_SIZE, 134, Short.MAX_VALUE .addGap92, 92, 92
; panelback1Layout.setVerticalGroup
panelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LE ADING
.addGrouppanelback1Layout.createSequentialGroup .addGap51, 51, 51
.addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig nment.BASELINE
.addComponentjLabel1
T U
.addComponentSignFirstname, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addGap15, 15, 15 .addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig
nment.BASELINE .addComponentSignLastname,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE
.addComponentjLabel2 .addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.UNRELATED
.addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig nment.LEADING
.addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig nment.BASELINE
.addComponentSignUser, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addComponentjLabel3 .addGrouppanelback1Layout.createSequentialGroup
.addGap32, 32, 32 .addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig
nment.BASELINE .addComponentSignPass,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE
.addComponentjLabel4 .addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.UNRELATED
.addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig nment.BASELINE
.addComponentSignEmail, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE
.addComponentjLabel5
V W X
.addGap14, 14, 14 .addGrouppanelback1Layout.createParallelGroupjavax.swing.GroupLayout.Alig
nment.BASELINE .addComponentComboGender,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE
.addComponentjLabel6 .addPreferredGapjavax.swing.LayoutStyle.ComponentPlacement.RELATED, 36,
Short.MAX_VALUE .addComponentSubmit
.addGap25, 25, 25 ;
jMenu1.setTextFile; menuExit.setTextExit;
menuExit.addActionListenernew java.awt.event.ActionListener { public void actionPerformedjava.awt.event.ActionEvent evt {
menuExitActionPerformedevt; }
}; jMenu1.addmenuExit;
jMenuBar1.addjMenu1; setJMenuBarjMenuBar1;
javax.swing.GroupLayout layout
= new
javax.swing.GroupLayoutgetContentPane; getContentPane.setLayoutlayout;
layout.setHorizontalGroup
layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEADING .addComponentpanelback1,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE
; layout.setVerticalGroup
layout.createParallelGroupjavax.swing.GroupLayout.Alignment.LEADING .addComponentpanelback1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE
Y Z
; pack;
} editor-fold public void koneksiString server, String db, String username, String password{
try { Class.forNamecom.mysql.jdbc.Driver;
conn = DriverManager.getConnectionjdbc:mysql: + server + :3306 + db, username, password;
if conn == null { JOptionPane.showMessageDialogthis, gagal;
} } catch SQLException ex {
JOptionPane.showMessageDialogthis, tidak bisa koneksi ke database; Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex;
} catch ClassNotFoundException ex { Logger.getLoggerLogin.class.getName.logLevel.SEVERE, null, ex;
} }
private void ComboGenderActionPerformedjava.awt.event.ActionEvent evt { ifComboGender.getSelectedItem.equalsL{
gender = L; }
else ifComboGender.getSelectedItem.equalsP{ gender = P;
} }
private void SubmitActionPerformedjava.awt.event.ActionEvent evt { if SignFirstname.getText.equals || SignLastname.getText.equals ||
SignUser.getText.equals || SignPass.getText.equals || SignEmail.getText.equals
|| ComboGender.getSelectedItem.equalsChoose{
JOptionPane.showMessageDialogthis, You must fill out of the blank; } else {
try { firstname = SignFirstname.getText;
lastname = SignLastname.getText; signuser = SignUser.getText;
signpass = SignPass.getText; signemail = SignEmail.getText;
String sql = insert into identitasusername,firstname,lastname,password, email,gender +
values + signuser + , + firstname + + , + lastname + ,
[ \ ]
+ + signpass + , + signemail + , + gender + ;
st = conn.createStatement; st.executesql;
} catch SQLException ex { Logger.getLoggerSign.class.getName.logLevel.SEVERE, null, ex;
} SignFirstname.setText;
SignLastname.setText; SignUser.setText;
SignPass.setText; SignEmail.setText;
JOptionPane.showMessageDialogthis, Your data is saved; }
} private void menuExitActionPerformedjava.awt.event.ActionEvent evt {
try { this.dispose;
conn.close; st.close;
} catch SQLException ex { Logger.getLoggerSign.class.getName.logLevel.SEVERE, null, ex;
} }
private void formWindowClosingjava.awt.event.WindowEvent evt { this.dispose;
} public static void mainString args[] {
java.awt.EventQueue.invokeLaternew Runnable { public void run {
new Sign.setVisibletrue; }
}; }
Variables declaration - do not modify private javax.swing.JComboBox ComboGender;
private javax.swing.JTextField SignEmail; private javax.swing.JTextField SignFirstname;
private javax.swing.JTextField SignLastname; private javax.swing.JPasswordField SignPass;
private javax.swing.JTextField SignUser; private javax.swing.JButton Submit;
private javax.swing.JLabel jLabel1;
_ `
private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6; private javax.swing.JMenu jMenu1;
private javax.swing.JMenuBar jMenuBar1; private javax.swing.JMenuItem menuExit;
private chat.panelback panelback1; End of variables declaration
}
a b a
ThreadC import java.net.;
import java.io.; public class ThreadC extends Thread
{ private Socket socket = null;
private Login client = null; private DataInputStream streamIn = null;
public ThreadCLogin parent, Socket _socket { client = parent;
socket = _socket; open;
start;
} public void open
{ try { streamIn = new DataInputStreamsocket.getInputStream;
} catchIOException ioe
{ System.out.printlnError getting input stream: + ioe;
client.stop; }
} public void close
{ try { if streamIn = null streamIn.close;
} catchIOException ioe
{ System.out.printlnError closing input stream: + ioe; }
} public void run
{ while true { try
{ client.handlestreamIn.readUTF; }
catchIOException ioe { System.out.printlnListening error: + ioe.getMessage;
client.stop; }
} }}
c d e
Lampiran 3. Validasi Instrumen
f g g
h i j
k l m
Lampiran 4. Validasi Aplikasi VALIDASI APLIKASI
Aplikasi Translator Messenger Berbasis Java dan Google Translate API
n op o qrs t
: Drs. Totok Sukardiyono, M.T. Pekerjaan
: Dosen Pend. Teknik Informatika UNY
A. PETUNJUK