diff --git a/docker-entrypoint-initdb.d/init.sql b/docker-entrypoint-initdb.d/init.sql
index bfd556eb92558e8d64bdb7b86984380f720e7e90..c69fec7f0a2fd0066c8598bed553c88fb3bc9afe 100644
--- a/docker-entrypoint-initdb.d/init.sql
+++ b/docker-entrypoint-initdb.d/init.sql
@@ -27,7 +27,9 @@ CREATE TABLE IF NOT EXISTS song (
     audio       VARCHAR(256) NOT NULL,
     image       VARCHAR(256),
     album_id    INT NOT NULL,
-    FOREIGN KEY (album_id) REFERENCES album (album_id) ON UPDATE CASCADE ON DELETE CASCADE
+    user_id     INT NOT NULL,
+    FOREIGN KEY (album_id) REFERENCES album (album_id) ON UPDATE CASCADE ON DELETE CASCADE,
+    FOREIGN KEY (user_id) REFERENCES "user" (user_id) ON UPDATE CASCADE ON DELETE CASCADE
 );
 
 -- INSERT data awal ke tabel "user"
@@ -35,7 +37,7 @@ INSERT INTO "user" (user_id, email, username, fullname, password, is_admin)
 VALUES
     (1, 'admin@example.com', 'admin1', 'Administrator', 'adminpass1', true),
     (2, 'user1@example.com', 'user1', 'Pengguna 1', 'upassword1', false),
-    (3, 'user2@example.com', 'user2', 'Pengguna 2', 'upasswaord2', false);
+    (3, 'user2@example.com', 'user2', 'Pengguna 2', 'upassword2', false);
 
 -- INSERT data awal ke tabel "album"
 INSERT INTO album (album_id, judul, penyanyi, image, year)
@@ -45,8 +47,8 @@ VALUES
     (3, 'Album 3', 'Penyanyi 3', 'image16.jpg', 2024);
 
 -- INSERT data awal ke tabel "song"
-INSERT INTO song (song_id, judul, penyanyi, year, audio, image, album_id)
+INSERT INTO song (song_id, judul, penyanyi, year, audio, image, album_id, user_id)
 VALUES
-    (1, 'Lagu 1', 'Penyanyi A', 2023, 'Lady Gaga Bradley Cooper - Shallow (Lyrics) (A Star Is Born Soundtrack).mp3', 'image14.png', 1),
-    (2, 'Lagu 2', 'Penyanyi B', 2022, 'Carly_Rae_Jepsen_-_Call_Me_Maybe_.mp3', 'image15.png', 2),
-    (3, 'Lagu 3', 'Penyanyi C', 2024, 'Carly_Rae_Jepsen_-_Call_Me_Maybe_.mp3', 'image14.png', 1);
\ No newline at end of file
+    (1, 'Lagu 1', 'Penyanyi A', 2023, 'Lady Gaga Bradley Cooper - Shallow (Lyrics) (A Star Is Born Soundtrack).mp3', 'image14.png', 1, 1),
+    (2, 'Lagu 2', 'Penyanyi B', 2022, 'Carly_Rae_Jepsen_-_Call_Me_Maybe_.mp3', 'image15.png', 2, 1),
+    (3, 'Lagu 3', 'Penyanyi C', 2024, 'Carly_Rae_Jepsen_-_Call_Me_Maybe_.mp3', 'image14.png', 1, 3);
\ No newline at end of file
diff --git a/src/app/controllers/AuthController.php b/src/app/controllers/AuthController.php
index 98ff775efb2a2344fd13edf9b6d1a8cb998449dc..df7d164358a1d8690de3376574c8cae6bc49eca5 100644
--- a/src/app/controllers/AuthController.php
+++ b/src/app/controllers/AuthController.php
@@ -14,7 +14,8 @@ class AuthController extends Controller implements ControllerInterface{
             session_start();
 
             //check if session exist
-            $signed_in = isset($_SESSION["signed_in"]) ? $_SESSION["signed_in"] : false;
+            $signed_in = isset($_SESSION["user_id"]) ? $_SESSION["user_id"] : false;
+            
             if($signed_in){
                 //session exist, proceed to redirect to home
                 $path = BASEURL . "";
diff --git a/src/app/models/SongModel.php b/src/app/models/SongModel.php
index 71c25c6cbec587d62278cecd735b5cdf6fb4003c..7f2f79d551a9cd670971c3aad97cce805fe5ed0f 100644
--- a/src/app/models/SongModel.php
+++ b/src/app/models/SongModel.php
@@ -49,12 +49,13 @@ class SongModel
     }
 
     public function addSong($judul, $penyanyi, $year, $audio, $image, $album_id) {
+        session_start();
         if ($album_id == "undef") {
-            $query = "INSERT INTO song (judul, penyanyi, year, audio, image) 
-            VALUES (:judul, :penyanyi, :year, :audio, :image)";
+            $query = "INSERT INTO song (judul, penyanyi, year, audio, image, user_id) 
+            VALUES (:judul, :penyanyi, :year, :audio, :image, :user)";
         } else {
-            $query = "INSERT INTO song (judul, penyanyi, year, audio, image, album_id) 
-            VALUES (:judul, :penyanyi, :year, :audio, :image, :album_id)";
+            $query = "INSERT INTO song (judul, penyanyi, year, audio, image, album_id, user_id) 
+            VALUES (:judul, :penyanyi, :year, :audio, :image, :album_id, :user)";
         }
         $this->database->query($query);
         $this->database->bind('judul', $judul);
@@ -62,6 +63,7 @@ class SongModel
         $this->database->bind('year', $year);
         $this->database->bind('audio', $audio);
         $this->database->bind('image', $image);
+        $this->database->bind('user', $_SESSION['user_id']);
         // $this->database->bind('', $genre);
         // $this->database->bind('duration', $duration);
         if ($album_id != "undef") {
diff --git a/src/storage/images/3351b0317d19f1ee63c645a42962117c.png b/src/storage/images/3351b0317d19f1ee63c645a42962117c.png
new file mode 100644
index 0000000000000000000000000000000000000000..210e1e6776813ebc6dd10473215eb0b40386da92
Binary files /dev/null and b/src/storage/images/3351b0317d19f1ee63c645a42962117c.png differ
diff --git a/src/storage/images/4a7cad2f04cf9fb71890abe70770583e.png b/src/storage/images/4a7cad2f04cf9fb71890abe70770583e.png
new file mode 100644
index 0000000000000000000000000000000000000000..26c99acc79328a018a9a784ebb3d601c5dcd77f2
Binary files /dev/null and b/src/storage/images/4a7cad2f04cf9fb71890abe70770583e.png differ
diff --git a/src/storage/images/5b2900aa6f3666b42af1b59bdf10e7bc.png b/src/storage/images/5b2900aa6f3666b42af1b59bdf10e7bc.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e8471cc738a7863025290025c990f56c548840f
Binary files /dev/null and b/src/storage/images/5b2900aa6f3666b42af1b59bdf10e7bc.png differ
diff --git a/src/storage/images/60f5a1a40a8c2bb9945d183ab128fafc.png b/src/storage/images/60f5a1a40a8c2bb9945d183ab128fafc.png
new file mode 100644
index 0000000000000000000000000000000000000000..26c99acc79328a018a9a784ebb3d601c5dcd77f2
Binary files /dev/null and b/src/storage/images/60f5a1a40a8c2bb9945d183ab128fafc.png differ
diff --git a/src/storage/images/980a2812f2a76d6e4b6eaff91a2563de.png b/src/storage/images/980a2812f2a76d6e4b6eaff91a2563de.png
new file mode 100644
index 0000000000000000000000000000000000000000..26c99acc79328a018a9a784ebb3d601c5dcd77f2
Binary files /dev/null and b/src/storage/images/980a2812f2a76d6e4b6eaff91a2563de.png differ
diff --git a/src/storage/images/9c7bf07e9fac9e2b21732c87a3bd27f7.png b/src/storage/images/9c7bf07e9fac9e2b21732c87a3bd27f7.png
new file mode 100644
index 0000000000000000000000000000000000000000..092877a0af7ab33f15892acf6bdb3d1344cb2d3b
Binary files /dev/null and b/src/storage/images/9c7bf07e9fac9e2b21732c87a3bd27f7.png differ
diff --git a/src/storage/images/a659ccbfc79f3265cc0ec9849c3eb995.png b/src/storage/images/a659ccbfc79f3265cc0ec9849c3eb995.png
new file mode 100644
index 0000000000000000000000000000000000000000..26c99acc79328a018a9a784ebb3d601c5dcd77f2
Binary files /dev/null and b/src/storage/images/a659ccbfc79f3265cc0ec9849c3eb995.png differ
diff --git a/src/storage/images/aadbc1865738efa51f1dd157328e722a.png b/src/storage/images/aadbc1865738efa51f1dd157328e722a.png
new file mode 100644
index 0000000000000000000000000000000000000000..26c99acc79328a018a9a784ebb3d601c5dcd77f2
Binary files /dev/null and b/src/storage/images/aadbc1865738efa51f1dd157328e722a.png differ
diff --git a/src/storage/images/bae4380ef47b6e97b3432d8fa784cd94.png b/src/storage/images/bae4380ef47b6e97b3432d8fa784cd94.png
new file mode 100644
index 0000000000000000000000000000000000000000..26c99acc79328a018a9a784ebb3d601c5dcd77f2
Binary files /dev/null and b/src/storage/images/bae4380ef47b6e97b3432d8fa784cd94.png differ
diff --git a/src/storage/images/df93b6465c3e712803797c7566eb6a22.png b/src/storage/images/df93b6465c3e712803797c7566eb6a22.png
new file mode 100644
index 0000000000000000000000000000000000000000..26c99acc79328a018a9a784ebb3d601c5dcd77f2
Binary files /dev/null and b/src/storage/images/df93b6465c3e712803797c7566eb6a22.png differ
diff --git a/src/storage/songs/1a1b23536b63e56dc545748a7c92e820.mp3 b/src/storage/songs/1a1b23536b63e56dc545748a7c92e820.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..b6b67ad4f667c31a5f4300a40d73edcd1e5e1bca
Binary files /dev/null and b/src/storage/songs/1a1b23536b63e56dc545748a7c92e820.mp3 differ
diff --git a/src/storage/songs/3c34f93a97588b9dec686a909d027234.mp3 b/src/storage/songs/3c34f93a97588b9dec686a909d027234.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..b6b67ad4f667c31a5f4300a40d73edcd1e5e1bca
Binary files /dev/null and b/src/storage/songs/3c34f93a97588b9dec686a909d027234.mp3 differ
diff --git a/src/storage/songs/3efddb37347acf8ede47da5f00ba2504.mp3 b/src/storage/songs/3efddb37347acf8ede47da5f00ba2504.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..b51461896401dab99deb276a9399d6332699658f
Binary files /dev/null and b/src/storage/songs/3efddb37347acf8ede47da5f00ba2504.mp3 differ
diff --git a/src/storage/songs/4d642d6aa8faafe8c7bde97901cf1d5e.mp3 b/src/storage/songs/4d642d6aa8faafe8c7bde97901cf1d5e.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..b51461896401dab99deb276a9399d6332699658f
Binary files /dev/null and b/src/storage/songs/4d642d6aa8faafe8c7bde97901cf1d5e.mp3 differ
diff --git a/src/storage/songs/4e748de68fdb3fa5ec0982089572a3f8.mp3 b/src/storage/songs/4e748de68fdb3fa5ec0982089572a3f8.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..d533b11444aaac7380a62d55286ee37bdd8ed209
Binary files /dev/null and b/src/storage/songs/4e748de68fdb3fa5ec0982089572a3f8.mp3 differ
diff --git a/src/storage/songs/4fc3ebad6da0d64f6427c3c1e32e8b06.mp3 b/src/storage/songs/4fc3ebad6da0d64f6427c3c1e32e8b06.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..1f68181de703f51898a0aead480362e54088f2a1
Binary files /dev/null and b/src/storage/songs/4fc3ebad6da0d64f6427c3c1e32e8b06.mp3 differ
diff --git a/src/storage/songs/737b4859710a41506b58edab9fefe86f.mp3 b/src/storage/songs/737b4859710a41506b58edab9fefe86f.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..d533b11444aaac7380a62d55286ee37bdd8ed209
Binary files /dev/null and b/src/storage/songs/737b4859710a41506b58edab9fefe86f.mp3 differ
diff --git a/src/storage/songs/b863b45dbf30e46952868bec5f2e6205.mp3 b/src/storage/songs/b863b45dbf30e46952868bec5f2e6205.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..b51461896401dab99deb276a9399d6332699658f
Binary files /dev/null and b/src/storage/songs/b863b45dbf30e46952868bec5f2e6205.mp3 differ
diff --git a/src/storage/songs/e0a9246e417997dc7ebc5b7f7e5b4ca8.mp3 b/src/storage/songs/e0a9246e417997dc7ebc5b7f7e5b4ca8.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..b6b67ad4f667c31a5f4300a40d73edcd1e5e1bca
Binary files /dev/null and b/src/storage/songs/e0a9246e417997dc7ebc5b7f7e5b4ca8.mp3 differ
diff --git a/src/storage/songs/e403497fa6dd66a6cb1434adb2aaf640.mp3 b/src/storage/songs/e403497fa6dd66a6cb1434adb2aaf640.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..b6b67ad4f667c31a5f4300a40d73edcd1e5e1bca
Binary files /dev/null and b/src/storage/songs/e403497fa6dd66a6cb1434adb2aaf640.mp3 differ