diff --git a/doc/Tubes Sister.zip b/doc/Tubes Sister.zip
new file mode 100644
index 0000000000000000000000000000000000000000..cbc4aa8c447f74acb11eb6fc893ca98a12775fa0
Binary files /dev/null and b/doc/Tubes Sister.zip differ
diff --git a/doc/Tubes Sister/Client.java b/doc/Tubes Sister/Client.java
new file mode 100644
index 0000000000000000000000000000000000000000..af2d8bb2a6d0862c1ddbca36f11a8ec525f7548d
--- /dev/null
+++ b/doc/Tubes Sister/Client.java	
@@ -0,0 +1,37 @@
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetAddress;
+
+public class Client {
+	/**
+	 * Contoh kode program untuk node yang mengirimkan paket. Paket dikirim
+	 * menggunakan UnreliableSender untuk mensimulasikan paket yang hilang.
+	 */
+	public static void main(String args[]) throws Exception
+	{
+		BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
+
+		String targetAddress = "localhost";
+		InetAddress IPAddress = InetAddress.getByName(targetAddress);
+		int targetPort = 9876;
+
+		DatagramSocket datagramSocket = new DatagramSocket();
+		UnreliableSender unreliableSender = new UnreliableSender(datagramSocket);
+
+		while (true)
+		{
+			String sentence = inFromUser.readLine();
+			if (sentence.equals("quit"))
+			{
+				break;
+			}
+
+			byte[] sendData = sentence.getBytes();
+			DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, targetPort);
+			unreliableSender.send(sendPacket);
+		}
+		datagramSocket.close();
+	}
+}
diff --git a/doc/Tubes Sister/Receiver.java b/doc/Tubes Sister/Receiver.java
new file mode 100644
index 0000000000000000000000000000000000000000..3e59a1defbe304f1bb3fa5c3af8b856224040bdb
--- /dev/null
+++ b/doc/Tubes Sister/Receiver.java	
@@ -0,0 +1,26 @@
+import java.net.DatagramSocket;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+
+public class Receiver
+{
+	/**
+	 * Contoh kode program untuk node yang menerima paket. Idealnya dalam paxos
+	 * balasan juga dikirim melalui UnreliableSender.
+	 */
+	public static void main(String args[]) throws Exception
+	{
+		int listenPort = 9876;
+		DatagramSocket serverSocket = new DatagramSocket(listenPort);
+
+		byte[] receiveData = new byte[1024];
+		while(true)
+		{
+			DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
+			serverSocket.receive(receivePacket);
+
+			String sentence = new String(receivePacket.getData(), 0, receivePacket.getLength());
+			System.out.println("RECEIVED: " + sentence);
+		}
+	}
+}
diff --git a/doc/Tubes Sister/TugasBesar1-IF3230SistemParaleldanTerdistribusi.pdf b/doc/Tubes Sister/TugasBesar1-IF3230SistemParaleldanTerdistribusi.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..17654bacca8eed5cf572a5993a18aa3104dc5b63
Binary files /dev/null and b/doc/Tubes Sister/TugasBesar1-IF3230SistemParaleldanTerdistribusi.pdf differ
diff --git a/doc/Tubes Sister/UnreliableSender.java b/doc/Tubes Sister/UnreliableSender.java
new file mode 100644
index 0000000000000000000000000000000000000000..aba09a12e5166a4c33220908192cba62d4ce0f5e
--- /dev/null
+++ b/doc/Tubes Sister/UnreliableSender.java	
@@ -0,0 +1,27 @@
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.SocketException;
+import java.util.Random;
+
+/**
+ * Kelas pembungkus DatagramSocket yang mensimulaiskan paket yang hilang
+ * dalam pengiriman.
+ */
+public class UnreliableSender
+{
+	private DatagramSocket datagramSocket;
+	private Random random;
+
+	public UnreliableSender(DatagramSocket datagramSocket) throws SocketException {
+		this.datagramSocket = datagramSocket;
+		random = new Random();
+	}
+
+	public void send(DatagramPacket packet) throws IOException {
+		double rand = random.nextDouble();
+		if (rand < 0.85) {
+			datagramSocket.send(packet);
+		}
+	}
+}
diff --git a/doc/Tubes Sister/referensi code.zip b/doc/Tubes Sister/referensi code.zip
new file mode 100644
index 0000000000000000000000000000000000000000..2b85da52b84e23a94602ad6a132cb449d1c3a90f
Binary files /dev/null and b/doc/Tubes Sister/referensi code.zip differ