Skip to content

Instantly share code, notes, and snippets.

@aryadiahmad4689
Created December 17, 2020 12:06
Show Gist options
  • Save aryadiahmad4689/fc71e0e2b4ea175aa71d06da004df24d to your computer and use it in GitHub Desktop.
Save aryadiahmad4689/fc71e0e2b4ea175aa71d06da004df24d to your computer and use it in GitHub Desktop.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class RPCServer {
private final ServerSocket serverSocket;
@SuppressWarnings("CallToThreadStartDuringObjectConstruction")
public RPCServer(int port) throws IOException {
serverSocket = new ServerSocket(port);
String localIP = InetAddress.getLocalHost().getHostAddress();
System.out.println("Server is running on " + localIP + ":" + port);
while (true) {
Socket rpcClient = serverSocket.accept();
String address = rpcClient.getRemoteSocketAddress().toString();
System.out.println("New client connected : " + address);
System.out.println("Di Buat Oleh Ariadi Ahmad");
new Thread(() -> {
try {
addHook(rpcClient);
} catch (IOException ex) {
System.err.println("Client disconnected " + address);
}
}).start();
}
}
private void addHook(Socket rpcClient) throws IOException {
BufferedReader reader = new BufferedReader(new
InputStreamReader(rpcClient.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println("Client request : " + line);
String[] commands = line.split(":", 3);
double result;
int jumlahJamkerja = Integer.parseInt(commands[1]);
String message = "";
int upah;
double lembur;
int gaji;
switch (commands[0]) {
case "A":
upah = 5000;
if (jumlahJamkerja > 150){
lembur =(jumlahJamkerja -150 )*upah*1.25;
gaji = 150*upah;
result = gaji +lembur;
message = "gaji yang diterima :" + gaji + "Total Gaji : " + result ;
}else{
lembur = 0;
gaji = jumlahJamkerja *upah;
result = gaji +lembur;
message = "gaji yang diterima :" + gaji + "Total Gaji : " + result ;
}
break;
case "B":
upah = 6000;
if (jumlahJamkerja > 150){
lembur =(jumlahJamkerja -150 )*upah*1.25;
gaji = 150*upah;
result = gaji +lembur;
message = "gaji yang diterima :" + gaji + "Total Gaji : " + result ;
}else{
lembur = 0;
gaji = jumlahJamkerja *upah;
result = gaji +lembur;
message = "gaji yang diterima :" + gaji + "Total Gaji : " + result ;
}
break;
case "C":
upah = 7500;
if (jumlahJamkerja > 150){
lembur =(jumlahJamkerja -150 )*upah*1.25;
gaji = 150*upah;
result = gaji +lembur;
message = "gaji yang diterima :" + gaji + "Total Gaji : " + result ;
}else{
lembur = 0;
gaji = jumlahJamkerja *upah;
result = gaji +lembur;
message = "gaji yang diterima :" + gaji + "Total Gaji : " + result ;
}
break;
case "D":
upah = 9000;
if (jumlahJamkerja > 150){
lembur =(jumlahJamkerja -150 )*upah*1.25;
gaji = 150*upah;
result = gaji +lembur;
message = "gaji yang diterima :" + gaji + "Total Gaji : " + result ;
}else{
lembur = 0;
gaji = jumlahJamkerja *upah;
result = gaji +lembur;
message = "gaji yang diterima :" + gaji + "Total Gaji : " + result ;
}
break;
case "E":
upah = 9500;
if (jumlahJamkerja > 150){
lembur =(jumlahJamkerja -150 )*upah*1.25;
gaji = 150*upah;
result = gaji +lembur;
message = "gaji yang diterima :" + gaji + "Total Gaji : " + result ;
}else{
lembur = 0;
gaji = jumlahJamkerja *upah;
result = gaji +lembur;
message = "gaji yang diterima :" + gaji + "Total Gaji : " + result ;
}
break;
}
PrintStream printStream = new PrintStream(rpcClient.getOutputStream(), true);
printStream.println(message);
}
}
public static void main(String[] args) throws Exception {
RPCServer server = new RPCServer(3000);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment