diff --git a/buffer.py b/buffer.py
index e5d7040654d45e393e44d7ee0d17b1da45555c4e..fe49f98f83e7bf589de1c4c3bbfbdbf62a903ebd 100644
--- a/buffer.py
+++ b/buffer.py
@@ -8,10 +8,21 @@ class FileBuffer:
 
     def read(self, filename) -> List[Segment]:
         # To-Do
-        # return array of segment
-        return 
+        # return array of segment,
+        # array of segment hanya berisi data, sementara header kosong
+        f = open(filename, "rb")
+        segments = []
+        while 1:
+            data = f.read(DATA_SIZE)
+            if not data:
+                break
+            segments.append(Segment(data=data))
+        return segments
 
     def write(self, segments:List[Segment], filename):
         # To-Do
         # write array of segment to file
+        with open(filename, 'wb') as f:
+            for seg in segments:
+                f.write(seg.get_data)
         return