Sistem Pendeteksian Manusia Untuk Keamanan Ruangan Menggunakan Viola-Jones

59
LAMPIRAN A: Source Code Aplikasi Client
//MainFrame.java
package main;
import
import
import
import

java.awt.Dimension;
java.awt.Toolkit;
java.awt.event.ActionEvent;
java.awt.event.ActionListener;

import
import
import
import
import
import


javax.swing.JFrame;
javax.swing.JMenu;
javax.swing.JMenuBar;
javax.swing.JMenuItem;
javax.swing.JOptionPane;
javax.swing.UIManager;

import
import
import
import

org.opencv.core.Core;
org.opencv.core.Mat;
org.opencv.highgui.Highgui;
org.opencv.highgui.VideoCapture;

import
import
import

import

panel.DetectPanel;
panel.TopPanel;
function.CamPanel;
function.Detector;

public class MainFrame{
public static void main (String[] args){
try {
UIManager.setLookAndFeel(UIManager.
getSystemLookAndFeelClassName());
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
JFrame frame = new JFrame("
Sistem Pendeteksian Manusia – Jonatan Sianturi");
frame.setDefaultCloseOperation
(JFrame.EXIT_ON_CLOSE);
frame.setSize(1340, 630);
Dimension screen = Toolkit.getDefaultToolkit()
.getScreenSize();

int widthOfScreen = (screen.width –
frame.getSize().width)/2;
int heightOfScreen = (screen.height –
frame.getSize().height)/2 - 10;
frame.setLocation(widthOfScreen, heightOfScreen);
frame.setResizable(false);
frame.setLayout(null);
JMenuBar menuBar=new JMenuBar();
JMenu menuFile=new JMenu("File");
JMenu menuHelp=new JMenu("Help");
menuBar.add(menuFile);
menuBar.add(menuHelp);
JMenuItem fileExit=new JMenuItem("Exit");
JMenuItem fileAbout=new JMenuItem("About");
fileExit.addActionListener(new ActionListener() {

Universitas Sumatera Utara

60
@Override

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
int
dialogResult
=
JOptionPane.showConfirmDialog (null, "Are you
sure
want
to
exit?",
"Exit",
JOptionPane.YES_NO_OPTION);
if(dialogResult == JOptionPane.YES_OPTION){
System.exit(0);
}
}
});
fileAbout.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null,
"Copyrigth ©2014 Jonatan Sianturi" ,
"About",
JOptionPane.INFORMATION_MESSAGE);
}
});
menuFile.add(fileExit);
menuHelp.add(fileAbout);
TopPanel topPanel = new TopPanel();
Detector detector=new Detector();
CamPanel camPanel = new CamPanel();
DetectPanel detectPanel = new DetectPanel();
frame.add(topPanel);
frame.add(camPanel);
frame.add(detectPanel);
frame.setJMenuBar(menuBar);
frame.setVisible(true);
//Buka video stream
Mat webcam_image=new Mat();

VideoCapture webCam =new VideoCapture(0);
if( webCam.isOpened())
{
// Thread.sleep(10000);
webCam.set(Highgui.CV_CAP_PROP_FRAME_WIDTH,
480);
webCam.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT,
320);
Thread.sleep(1000);
while( true )
{
webCam.read(webcam_image);
if( !webcam_image.empty() )
{
camPanel.MatToBufferedImage
(webcam_image);
camPanel.repaint();
long start_time = System.nanoTime();
webcam_image=detector.
Detect(webcam_image);


Universitas Sumatera Utara

61
detectPanel.MatToBufferedImage
(webcam_image);
detectPanel.repaint();
long end_time = System.nanoTime();
System.out.println(String.format("Time:
%.2f
ms",
(float)(end_time
start_time)/1000000));
}
else
{
System.out.println("No frame");
break;
}
}

}
else{
System.out.println("No camera");
}
webCam.release();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

Universitas Sumatera Utara

62
LAMPIRAN B: Source Code Aplikasi Server
//Server.java
package main;
import

import
import
import
import

java.io.IOException;
java.io.PrintWriter;
java.net.ServerSocket;
java.net.Socket;
java.util.Scanner;

import sound.Sound;
public class Server {
private static ServerSocket serverSocket;
private static final int PORT = 1234;
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();
ClientHandler handler = new ClientHandler(client);
handler.start();
} while (true);
}
}
class ClientHandler extends Thread {
private Socket client;
private Scanner input;
private PrintWriter output;
public ClientHandler(Socket socket) {
//Set up referensi ke socket yang beraosiasi...

client = socket;
try {
input = new Scanner(client.getInputStream());
output = new PrintWriter(client.getOutputStream(), true);
} catch (IOException ioEx) {
//ioEx.printStackTrace();
}
}
public void run() {
String received;
received = input.nextLine();
output.println("Informasi telah diterima server");
System.out.println(received);
Sound sound = new Sound();

Universitas Sumatera Utara

63
sound.play();
try {
if (client != null) {
client.close();
}
} catch (IOException ioEx) {
System.out.println("Penutupan koneksi gagal!");
}
}
}

Universitas Sumatera Utara