diff --git a/__pycache__/app.cpython-36.pyc b/__pycache__/app.cpython-36.pyc
deleted file mode 100644
index d31d7560dc777c87b174b232f3f3ddba8cfcacec..0000000000000000000000000000000000000000
Binary files a/__pycache__/app.cpython-36.pyc and /dev/null differ
diff --git a/__pycache__/conftest.cpython-36-PYTEST.pyc b/__pycache__/conftest.cpython-36-PYTEST.pyc
deleted file mode 100644
index f16c2c0a147fd45a1b320af4c8ca5a0c2e34be3c..0000000000000000000000000000000000000000
Binary files a/__pycache__/conftest.cpython-36-PYTEST.pyc and /dev/null differ
diff --git a/__pycache__/setup.cpython-36.pyc b/__pycache__/setup.cpython-36.pyc
deleted file mode 100644
index 865a7b67ff720bb1405e0992b68a56e0f43e82a0..0000000000000000000000000000000000000000
Binary files a/__pycache__/setup.cpython-36.pyc and /dev/null differ
diff --git a/app.py b/app.py
index 3f4e43bf871b0f10b1c0c8ca897761cbadb2ac4d..80753af784f91bfaeef65dfe975d35ba85d01ec5 100644
--- a/app.py
+++ b/app.py
@@ -17,6 +17,7 @@ app.register_blueprint(login_route)
 app.register_blueprint(register_route)
 app.register_blueprint(comment_route)
 app.register_blueprint(admin_route)
+app.register_blueprint(apbd_route)
 
 cors = CORS(app)
 
diff --git a/database/database.py b/database/database.py
index b65a731cb9e5c983a872892bd0255fae1252e2a3..40c327e0b7851ad440a78193b722b3998397cbed 100644
--- a/database/database.py
+++ b/database/database.py
@@ -45,6 +45,7 @@ class Rekening(mongo.Document):
     kode_rekening = mongo.StringField(required=True)
     nama_rekening = mongo.StringField(required=True)
     jumlah_rincian = mongo.IntField(required=True)
+    persentase = mongo.IntField()
 
 class Kegiatan(mongo.Document):
     id_program = mongo.IntField(required=True)
@@ -52,6 +53,7 @@ class Kegiatan(mongo.Document):
     nama_kegiatan = mongo.StringField(required=True)
     rekening = mongo.ListField(mongo.StringField(), default=[], required=True)
     jumlah_rincian = mongo.IntField(default = 0)
+    persentase = mongo.IntField()
 
 class Program(mongo.Document):
     id_skpd = mongo.IntField(required=True)
@@ -59,6 +61,7 @@ class Program(mongo.Document):
     nama_program = mongo.StringField(required=True)
     kegiatan = mongo.ListField(mongo.IntField(), default=[], required=True)
     jumlah_rincian = mongo.IntField(default = 0)
+    persentase = mongo.IntField()
 
 class SKPD(mongo.Document):
     id_urusan = mongo.IntField(required=True)
@@ -66,6 +69,7 @@ class SKPD(mongo.Document):
     nama_skpd = mongo.StringField(required=True)
     program = mongo.ListField(mongo.IntField(), default=[], required=True)
     jumlah_rincian = mongo.IntField(default = 0)
+    persentase = mongo.IntField()
 
 class Urusan(mongo.Document):
     tahun = mongo.IntField(required=True)
@@ -73,6 +77,7 @@ class Urusan(mongo.Document):
     nama_urusan = mongo.StringField(required=True)
     skpd = mongo.ListField(mongo.IntField(), default=[], required=True)
     jumlah_rincian = mongo.IntField(default = 0)
+    persentase = mongo.IntField()
 
 if __name__ == "__main__":
     app = Flask(__name__)
diff --git a/migrate/migrate.py b/migrate/migrate.py
index e29f04644d976b82371b282c1939366a39f4ec31..40470e2cd4841e877b50a54956060a7251de1b1a 100644
--- a/migrate/migrate.py
+++ b/migrate/migrate.py
@@ -9,42 +9,44 @@ class Rekening(mongo.Document):
     id_kegiatan = mongo.IntField(required=True)
     kode_rekening = mongo.StringField(required=True)
     nama_rekening = mongo.StringField(required=True)
-    jumlah_rincian = mongo.IntField(required=True)
+    jumlah_rincian = mongo.StringField(required=True)
 
 class Kegiatan(mongo.Document):
     id_program = mongo.IntField(required=True)
     id_kegiatan = mongo.IntField(required=True)
     nama_kegiatan = mongo.StringField(required=True)
     rekening = mongo.ListField(mongo.StringField(), default=[], required=True)
-    jumlah_rincian = mongo.IntField(default = 0)
+    jumlah_rincian = mongo.StringField(default = '0')
 
 class Program(mongo.Document):
     id_skpd = mongo.IntField(required=True)
     id_program = mongo.IntField(required=True)
     nama_program = mongo.StringField(required=True)
     kegiatan = mongo.ListField(mongo.IntField(), default=[], required=True)
-    jumlah_rincian = mongo.IntField(default = 0)
+    jumlah_rincian = mongo.StringField(default = '0')
 
 class SKPD(mongo.Document):
     id_urusan = mongo.IntField(required=True)
     id_skpd = mongo.IntField(required=True)
     nama_skpd = mongo.StringField(required=True)
     program = mongo.ListField(mongo.IntField(), default=[], required=True)
-    jumlah_rincian = mongo.IntField(default = 0)
+    jumlah_rincian = mongo.StringField(default = '0')
 
 class Urusan(mongo.Document):
     tahun = mongo.IntField(required=True)
     id_urusan = mongo.IntField(required=True)
     nama_urusan = mongo.StringField(required=True)
     skpd = mongo.ListField(mongo.IntField(), default=[], required=True)
-    jumlah_rincian = mongo.IntField(default = 0)
+    jumlah_rincian = mongo.StringField(default = '0')
 
 # memasukkan data urusan
 with open("dummy.csv") as f:
     reader = csv.reader(f)
     next(reader) # skip header
     urusan = { }
+    count = 0;
     for row in reader:
+        count+=1
         id_urusan = int(row[3])
         nama_urusan = row[5]
         id_skpd = int(row[6])
@@ -125,30 +127,39 @@ for key in kegiatan.keys():
 with open("dummy.csv") as f:
     reader = csv.reader(f)
     next(reader) # skip header
-    rekening = {}
+    rekening = []
     for row in reader:
         id_kegiatan = int(row[16])
         kode_rekening = row[19]
         nama_rekening = row[20]
-        jumlah_rincian = int(row[21])
-        if not(kode_rekening in rekening):
-            newRekening = {'id_kegiatan': id_kegiatan, 'kode_rekening': kode_rekening, 'nama_rekening': nama_rekening, 'jumlah_rincian': jumlah_rincian}
-            rekening[kode_rekening] = newRekening
-for key in rekening.keys(): 
-    nominal = rekening[key]['jumlah_rincian']
-    new_rekening = Rekening(id_kegiatan=rekening[key]['id_kegiatan'], kode_rekening=rekening[key]['kode_rekening'], nama_rekening=rekening[key]['nama_rekening'], jumlah_rincian=rekening[key]['jumlah_rincian'])
+        jumlah_rincian = row[21]
+        newRekening = {'id_kegiatan': id_kegiatan, 'kode_rekening': kode_rekening, 'nama_rekening': nama_rekening, 'jumlah_rincian': jumlah_rincian}
+        rekening.append(newRekening)
+        # rekening[kode_rekening] = newRekening
+
+count = 1
+for key in rekening: 
+    print(count)
+    nominal = int(key['jumlah_rincian'])
+    new_rekening = Rekening(id_kegiatan=key['id_kegiatan'], kode_rekening=key['kode_rekening'], nama_rekening=key['nama_rekening'], jumlah_rincian=key['jumlah_rincian'])
     new_rekening.save()
     # Tambahkan jumlah rincian kegiatan
-    parent_kegiatan = Kegiatan.objects(id_kegiatan=rekening[key]['id_kegiatan'])
+    parent_kegiatan = Kegiatan.objects(id_kegiatan=key['id_kegiatan'])
     id_program = parent_kegiatan[0]['id_program']
-    parent_kegiatan.update_one(inc__jumlah_rincian=nominal)
+    jumlah_rincian_kegiatan = int(parent_kegiatan[0]['jumlah_rincian']) + nominal
+    parent_kegiatan.update_one(set__jumlah_rincian=str(jumlah_rincian_kegiatan))
     # Tambahkan jumlah rincian program
     parent_program = Program.objects(id_program=id_program)
     id_skpd = parent_program[0]['id_skpd']
-    parent_program.update_one(inc__jumlah_rincian=nominal)
+    jumlah_rincian_program = int(parent_program[0]['jumlah_rincian']) + nominal
+    parent_program.update_one(set__jumlah_rincian=str(jumlah_rincian_program))
     # Tambahkan jumlah rincian skpd
     parent_skpd = SKPD.objects(id_skpd=id_skpd)
     id_urusan = parent_skpd[0]['id_urusan']
-    parent_skpd.update_one(inc__jumlah_rincian=nominal)
+    jumlah_rincian_skpd = int(parent_skpd[0]['jumlah_rincian']) + nominal
+    parent_skpd.update_one(set__jumlah_rincian=str(jumlah_rincian_skpd))
     # Tambahkan jumlah rincian urusan
-    parent_urusan = Urusan.objects(id_urusan=id_urusan).update_one(inc__jumlah_rincian=nominal)
\ No newline at end of file
+    parent_urusan = Urusan.objects(id_urusan=id_urusan)
+    jumlah_rincian_urusan = int(parent_urusan[0]['jumlah_rincian']) + nominal
+    parent_urusan.update_one(set__jumlah_rincian=str(jumlah_rincian_urusan))
+    count+=1
\ No newline at end of file
diff --git a/modules/apbd.py b/modules/apbd.py
index 614258ecc3355285d53ed0dee2ee4e9137ba9acc..61b8f7778d887dcf6724ba3af2f7112cd72f8557 100644
--- a/modules/apbd.py
+++ b/modules/apbd.py
@@ -5,62 +5,17 @@ apbd_route = Blueprint('apbd', __name__, template_folder="templates")
 
 # get all urusan
 @apbd_route.route("/api/urusan", methods=["GET"])
-def
+def getAllUrusan():
+    urusans = db.Urusan.objects()
 
-@login_route.route("/api/login", methods=["POST"])
-def login_user():
-    form = request.get_json()
-    username = form.get("username")
-    password = form.get("password")
-    # TO DO : seed and hash the password
+    jumlah_rincian = 0
+    for urusan in urusans:
+        jumlah_rincian += urusan['jumlah_rincian']
     
-    user = db.User.objects(username=username)
+    for urusan in urusans:
+        urusan.persentase = (urusan['jumlah_rincian']/jumlah_rincian)*100
 
-    if len(user) > 0 and user[0].password == password:
-        key = current_app.config.get("SECRET_KEY")
-        token = Token.generate_from(user[0].id, key)
-
-        del user[0].password
-        return jsonify({
-            "status": 200,
-            "data": {
-                "token": token.decode("utf-8"),
-                "user": user[0]
-            }
-        })
-    else:
-        return jsonify({
-            "status": 404,
-            "message": "User not found"
-        })
-
-
-@login_route.route("/api/check-user", methods=["POST"])
-def check_user_existence():
-    form = request.get_json()
-    username = form.get("username")
-    
-    exists = db.User.objects(username = username)
-
-    if len(exists) > 0:
-        return jsonify({
-            "status": 200,
-            "message": "User exists",
-            "exist":True
-        })
-    else:
-        return jsonify({
-            "status": 404,
-            "message": "User not found",
-            "exist":False
-        })
-
-
-@login_route.route("/api/get-user", methods=["POST"])
-@validate_login_token(pass_user=True)
-def get_user_from_token(user):
     return jsonify({
-        "status": 200,
-        "data": user
-    })
-    
\ No newline at end of file
+        'status': "200",
+        'response': urusans
+    })
\ No newline at end of file