BAB 5 IMPLEMENTASI SISTEM
Bab ini akan menjelaskan proses pembuatan web jejaring sosial untuk Civitas Akademika UBAYA dengan hasil analisis dan desain sistem yang telah dibahas pada bab sebelumnya. Aplikasi membutuhkan beberapa perangkat lunak dan bahasa pemrograman yang memudahkan implementasi aplikasi. Adapun software dan bahasa pemrograman yang digunakan adalah:
Web server : XAMPP
Database server : Mysql
Bahasa pemrograman : PHP
Bab ini meliputi implementasi basis data yang menjelaskan tentang pembuatan tabel basis data hasil pemetaan relasi ER Diagram pada bab sebelumnya dan implementasi program mengenai detail dari pembuatan website jejaring sosial.
5.1. Implementasi Basis Data
Pada sub bab ini akan dibahas mengenai basis data yang merupakan hasil dari pemetaan Entity Relationship Diagram pada desain sistem di bab sebelumnya, dihasilkan tabel-tabel yang digunakan untuk menyimpan data yang akan digunakan pada kamus online ini. Berikut adalah struktur dari tabel-tabel yang akan digunakan beserta penjelasannya.
(2)
Tabel dosenajarmkbuka
Tabel ini digunakan untuk menyimpan data-data dari mata kuliah yang diajarkan oleh dosen. Field-field yang disediakan adalah NPK, KodeMkBuka, dan KP. Struktur dari tabel dapat dilihat Tabel 5. 1.
Tabel 5. 1 Struktur tabel dosenajarmkbuka
Nama Field Tipe panjang keterangan
NPK char 10 Field yang berisi primary key dari
dosen
KodeMkBuka varchar 15 Field yang menyimpan Kode
Mata Kuliah yang diajarkan oleh dosen.
KP varchar 20 Field yang menyimpan KP dari
Mata Kuliah yang diajarkan dosen
Tabel karyawan
Tabel ini digunakan untuk menyimpan data-data dari karyawan, dalam hal ini adalah dosen. Field-field yang disediakan adalah NPK, KodeDosen, Nama, Alamat, dan KodeKota. Struktur dari tabel dapat dilihat pada Tabel 5.2.
Tabel 5.2 Struktur tabel karyawan
Nama Field Tipe panjang Keterangan
NPK char 10 Field yang berisi primary key
KodeDosen varchar 8 Field yang berisi Kode Dosen yang dikeluarkan oleh fakultas
Nama varchar 40 Field yang berisi nama dosen
(3)
KodeKota varchar 4 Field yang berisi kota domisili dosen
Tabel kota
Tabel ini digunakan untuk menyimpan data-data dari kota. Field-field yang disediakan adalah KodeKota dan Nama. Struktur dari tabel dapat dilihat pada Tabel 5.3.
Tabel 5.3 Struktur tabel kota
Nama Field Tipe panjang Keterangan
KodeKota char 4 Field yang berisi primary key
Nama varchar 30 Field yang berisi nama kota
Tabel mahasiswa
Tabel ini digunakan untuk menyimpan data-data mahasiswa. Field-field yang disediakan adalah NRP, Nama, TglLahir, Agama, Gender, IPKTanpaE, IPKDenganE, Alamat. Struktur dari tabel dapat dilihat pada Tabel 5.4.
Tabel 5.4 Struktur tabel mahasiswa
Nama Field Tipe panjang Keterangan
NRP varchar 12 Field yang berisi primary key
Nama varchar 40 Field yang berisi nama mahasiswa
TglLahir date Field yang berisi tanggal lahir mahasiswa
Agama enum ('Buddh
a','Hindu ','Islam',' Kristen Katholik ','Kristen
(4)
Protesta n','Kong hucu')
Gender enum ('L','P') Field yang berisi gender mahasiswa IPKTanpaE Float (4,3) Field yang berisi IPK mahasiswa tanpa E IPKDenganE Float (4,3) Field yang berisi IPK mahasiswa dengan E Alamat Varchar 100 Field yang berisi alamat mahasiswa
Tabel matakuliah
Tabel ini digunakan untuk menyimpan data-data dari matakuliah. Field-field yang disediakan adalah KodeMk, Nama, tglfoto, dan sks. Struktur dari tabel dapat dilihat pada Tabel 5.5.
Tabel 5.5 Struktur tabel matakuliah
Nama Field Tipe panjang Keterangan
KodeMk varchar 10 Field yang berisi primary key
Nama varchar 40 Field yang berisi nama mata
kuliah
sks smallint 6 Field yang berisi tanggal foto
tersebut di-upload oleh user
Tabel mhsambilmk
Tabel ini digunakan untuk menyimpan data-data dari mata kuliah yang diambil mahasiswa, beserta nilai mahasiswa. Field-field yang disediakan adalah NRP, KodeMkBuka, KP, NTS, NAS, NA, KodeNisbi. Struktur dari tabel dapat dilihat pada Tabel 5.6.
Tabel 5.6 Struktur tabel mhsambilmk
Nama Field Tipe panjang Keterangan
NRP varchar 12 Field yang berisi primary key
(5)
Kuliah yang diambil oleh mahasiswa
KP varchar 2 Field yang berisi KP Mata Kuliah
yang diambil oleh mahasiswa
NTS smallint 6 Field yang berisi Nilai Tengah
Semester mahasiswa
NAS smallint 6 Field yang berisi Nilai Akhir
Semester mahasiswa
NA float 6,3 Field yang berisi Nilai Akhir
mahasiswa
KodeNisbi varchar 2 Field yang berisi Nilai nisbi dari mahasiswa yang bernilai A,AB,B,BC,C,D,E
Tabel mkbuka
Tabel ini digunakan untuk menyimpan data-data dari mata kuliah yang dibuka. Field yang disediakan adalah KodeMkBuka, KodeMK, UTSTgl, UTSTgl, UASTgl, JmlPertemuan, ThnAkademik, Semester. Struktur dari tabel dapat dilihat pada Tabel 5.7.
Tabel 5.7 Struktur tabel mkbuka
Nama Field Tipe panjang Keterangan
KodeMkBuka Varchar 15 Field yang merupakan primary key.
KodeMK varchar 10 Field yang berisi kode mata kuliah.
UTSTgl date Field yang berisi tanggal UTS
UASTgl date Field yang berisi tanggal UAS
ThnAkademik Varchar 4 Field yang berisi Tahun Akademik pada saat mata kuliah dibuka
Semester enum ('gasal','
genap','t
Field yang berisi semester (genap/gasal) saat mata kuliah
(6)
rimester 3')
dibuka.
Tabel mkbukajadwal
Tabel ini digunakan untuk menyimpan data-data dari jadwal mata kuliah yang dibuka. Field-field yang disediakan adalah KodeMkBuka, KP, Hari, JamAwal, JamAkhir. Struktur dari tabel dapat dilihat pada Tabel 5.8.
Tabel 5.8 Struktur tabel mkbukajadwal
Nama Field Tipe panjang Keterangan
KodeMkBuka varchar 15 Field yang berisi Kode Mata Kuliah yang dibuka
KP varchar 2 Field yang berisi KP dari Mata Kuliah
yang dibuka
Hari enum ('Senin','
Selasa',' Rabu','K amis','Ju mat','Sa btu','Min ggu')
Field yang berisi hari mata kuliah yang dibuka
JamAwal time Field yang berisi jam mulai mata kuliah
JamAkhir time Field yang berisi jam selesai mata kuliah
(7)
Tabel mkbukakp
Tabel ini digunakan untuk menyimpan data-data dari KP yang dibuka oleh mata kuliah. Field-field yang disediakan adalah KodeMkBuka dan KP. Struktur dari tabel dapat dilihat pada Tabel 5.9
Tabel 5.9 Struktur tabel mkbukakp
Nama Field Tipe panjang Keterangan
KodeMkBuka varchar 15 Field yang berisi Kode Mata Kuliah yang dibuka
KP varchar 2 Field yang berisi KP dari Mata
Kuliah yang dibuka
Tabel album
Tabel ini digunakan untuk menyimpan data-data dari album foto. Field-field yang disediakan adalah id_album, subyekAlbum, ketAlbum, id_user, id_fotoCover. Struktur dari tabel dapat dilihat pada Tabel 5.10
Tabel 5.10 Struktur tabel album
Nama Field Tipe panjang Keterangan
id_album int 11 Field yang berisi primary key
subyekAlbum varchar 50 Field yang berisi nama
ketAlbum varchar 100 Field yang berisi keterangan album
id_user int 11 Field yang berisi id user yang memiliki album
id_fotoCover int 11 Field yang berisi id foto untuk menjadi cover album
(8)
Tabel attforum
Tabel ini digunakan untuk menyimpan attachment dari forum. Field-field yang disediakan adalah id_attforum, jenis_file, dan id_forum. Struktur dari tabel dapat dilihat pada Tabel 5.11
Tabel 5.11 Struktur tabel attforum
Nama Field Tipe panjang Keterangan
id_attforum int 11 Field yang berisi primary key
jenis_file varchar 50 Field yang berisi jenis ekstensi file dari attachment forum
id_forum int 11 Field yang berisi id forum yang
akan ditambahkan attachment file
Tabel bahan
Tabel ini digunakan untuk menyimpan data-data dari bahan mata kuliah. Field-field yang disediakan adalah id_bahan, ketBahan, subyekBahan, timestamp, jenis_file, tipe, id_kelas, dan id_mk. Struktur dari tabel dapat dilihat pada Tabel 5.12
Tabel 5.12 Struktur tabel bahan
Nama Field Tipe panjang Keterangan
id_bahan integer 11 Field yang berisi primary key
ketBahan varchar 100 Field yang berisi keterangan dari bahan mata kuliah
subyekBahan varchar 50 Field yang berisi judul dari bahan mata kuliah
timestamp CURRENT
_TIMEST AMP
100 Field yang berisi waktu bahan mata kuliah diupload
(9)
mata kuliah
tipe enum ('UTS','
UAS')
Field yang berisi username dari anggota yang telah menulis topik tersebut.
id_kelas int 11 Field yang berisi id kelas
id_mk int 11 Field yang berisi id mata kuliah sebagai pelajaran dari bahan
Tabel catatan
Tabel ini digunakan untuk menyimpan catatan dari user. Field-field yang disediakan adalah id_catt, id_user, tanggal, topik, dan isi. Struktur dari tabel dapat dilihat pada Tabel 5.13
Tabel 5.13 Struktur tabel catatan
Nama Field Tipe panjang Keterangan
id_catt int 11 Field yang berisi primary key
id_user int 11 Field yang berisi id user
tanggal timestamp Field yang berisi waktu catatan disimpan
topik text Field yang berisi topik catatan
isi text Field yang berisi isi catatan
Tabel chat
Tabel ini digunakan untuk menyimpan history percakapan user. Field-field yang disediakan adalah id, from, to, message, sent dan recd. Struktur dari tabel dapat dilihat pada Tabel 5.14
Tabel 5.14 Struktur tabel chat
Nama Field Tipe panjang Keterangan
id int 10 Field yang berisi primary key
from int 255 Field yang berisi id user pengirim
(10)
to int 255 Field yang berisi id user penerima percakapan
message text Field yang berisi isi percakapan
sent datetime Field yang berisi waktu
percakapan
recd int 10 Field yang menandakan apakah
percakapan sudah dibaca oleh penerima atau belum
Tabel event
Tabel ini digunakan untuk menyimpan event yang diadakan oleh user. Field-field yang disediakan adalah id_event, tempat, id_user, keterangan, jamMulaiE, jamSelesaiE dan tema. Struktur dari tabel dapat dilihat pada Tabel 5.15
Tabel 5.15 Struktur tabel event
Nama Field Tipe panjang Keterangan
id_event int 11 Field yang berisi primary key
tempat varchar 50 Field yang berisi lokasi event yang diadakan user
tanggal date Field yang berisi tanggal event
diadakan
id_user int 11 Field yang berisi id user yang mengadakan event
keterangan text Field yang berisi keterangan
event
jamMulaiE time Field yang berisi jam mulai event
jamSelesaiE time Field yang berisi jam selesai event
(11)
tema varchar 50 Field yang berisi tema event
Tabel forum
Tabel ini digunakan untuk menyimpan forum yang diadakan oleh user. Field-field yang disediakan adalah id_forum, id_admin, topik, isi, dan timestamp. Struktur dari tabel dapat dilihat pada Tabel 5.16
Tabel 5.16 Struktur tabel forum
Nama Field Tipe panjang Keterangan
id_forum int 11 Field yang berisi primary key
id_admin int 11 Field yang berisi user yang
membuka diskusi
topik varchar 50 Field yang berisi topik forum
isi varchar 3500 Field yang berisi keterangan
forum
Tabel foto
Tabel ini digunakan untuk menyimpan foto yang diupload oleh user. Field-field yang disediakan adalah subyekFoto, ketFoto, jenisFoto, id_foto, id_album dan timestamp. Struktur dari tabel dapat dilihat pada Tabel 5.17
Tabel 5. 17 Struktur tabel foto
Nama Field Tipe panjang Keterangan
id_foto int 11 Field yang berisi primary key
subyekFoto varchar 50 Field yang berisi judul foto
ketFoto varchar 50 Field yang berisi keterangan foto
(12)
file foto
id_album int 11 Field yang berisi id album tempat
menampung foto
timestamp timestamp Field yang berisi waktu foto diupload
Tabel fotoevent
Tabel ini digunakan untuk menyimpan foto dari event yang diadakan oleh user. Field-field yang disediakan adalah subyekFoto, ketFoto, jenisFoto, id_foto, id_album dan timestamp. Struktur dari tabel dapat dilihat pada Tabel 5.18
Tabel 5.18 Struktur tabel fotoevent
Nama Field Tipe panjang Keterangan
id_foto int 11 Field yang berisi primary key
id_event int 11 Field yang berisi id event yang menandakan foto yang akan diupload pada event tertentu subyekFoto varchar 100 Field yang berisi judul foto event
ketFoto varchar 500 Field yang berisi keterangan foto
event
jenisFoto varchar 10 Field yang berisi jenis ekstensi file foto yang diupload
timestamp timestamp Field yang berisi waktu foto diupload
Tabel isiforum
Tabel ini digunakan untuk menyimpan isi forum yang dikirimkan oleh user. Field-field yang disediakan adalah id_isiforum, komentar, timestamp, id_user, dan id_topik. Struktur dari tabel dapat dilihat pada Tabel 5.19
(13)
Tabel 5.19 Struktur tabel isiforum
Nama Field Tipe panjang Keterangan
id_isiforum int 11 Field yang berisi primary key
Komentar text Field yang berisi isi forum
sebagai balasan dari user lain
Timestamp timestamp Field yang berisi waktu
pengiriman komentar untuk forum
id_user int 11 Field yang berisi id user yang mengirimkan balasan komentar untuk diskusi
id_topik int 11 Field yang berisi id topik diskusi
sebagai tempat menampung komentar
Tabel jadwalkuistugas
Tabel ini digunakan untuk menyimpan jadwal kuis dan tugas serta bahan, dan persentase masing-masing kuis dan tugas. Field-field yang disediakan adalah id_kt, jenis_kt, tanggal, jam, hari, bahan, id_kelas, ke, tipe, persen. Struktur dari tabel dapat dilihat pada Tabel 5.20
Tabel 5.20 Struktur tabel jadwalkuistugas
Nama Field Tipe panjang Keterangan
id_kt int 11 Field yang berisi primary key
jenis_kt enum ('Tugas',' Kuis')
Field yang berisi jenis tes
tanggal date Field yang berisi tanggal kuis atau deadline tugas diadakan
ruang varchar 11 Field yang berisi ruang tes diadakan atau tempat pengumpulan tes
(14)
akhir pengumpulan tugas
hari enum ('Senin','
Selasa',' Rabu','K amis','Ju mat','Sa btu')
Field yang berisi hari tes diadakan atau hari terakhir pengumpulan tugas
bahan varchar 500 Field yang berisi bahan tes
id_kelas varchar 15 Field yang berisi id kelas yang mengadakan tes
ke int 11 Field yang berisi urutan tes
tipe enum ('UTS','
UAS')
Field yang berisi tes untuk UTS atau UAS persen int 3 Field yang berisi persentase dari tes
Tabel komentaralbum
Tabel ini digunakan untuk menyimpan komentar album. Field-field yang disediakan adalah id_album, id_user, timestamp, dan isi. Struktur dari tabel dapat dilihat pada Tabel 5.21
Tabel 5.21 Struktur tabel komentaralbum
Nama Field Tipe panjang Keterangan
id_album Int 11 Field yang berisi primary key
id_user Int 11 Field yang berisi id user yang mengirim komentar
timestamp timestamp Field yang berisi waktu
pengiriman komentar untuk album
isi text Field yang berisi komentar album
(15)
Tabel komentarevent
Tabel ini digunakan untuk menyimpan komentar album. Field-field yang disediakan adalah id_album, id_user, timestamp, dan isi. Struktur dari tabel dapat dilihat pada Tabel 5.22
Tabel 5.22 Struktur tabel komentarevent
Nama Field Tipe panjang Keterangan
id_komentar Int 11 Field yang berisi primary key
id_event Int 11 Field yang berisi id event
id_pengirim Int 11 Field yang berisi id user yang mengirimkan komentar untuk event
Komentar text Field yang berisi komentar untuk
event tertentu
Timestamp timestamp Field yang berisi waktu komentar
event dikirimkan
Tabel komentarfoto
Tabel ini digunakan untuk menyimpan komentar foto. Field-field yang disediakan adalah id_foto, id_user, timestamp, dan isi. Struktur dari tabel dapat dilihat pada Tabel 5.23
Tabel 5.23 Struktur tabel komentarfoto
Nama Field Tipe panjang Keterangan
id_foto Int 11 Field yang berisi id foto yang akan dikomentari
id_user Int 11 Field yang berisi id user yang mengomentari foto
(16)
foto dikirmkan
isi varchar 500 Field yang berisi komentar foto
Tabel komentarshoutout
Tabel ini digunakan untuk menyimpan komentar shoutout. Field-field yang disediakan adalah id_shoutout, id_user, isi, timestamp. Struktur dari tabel dapat dilihat pada Tabel 5.24
Tabel 5.24 Struktur tabel komentarshoutout
Nama Field Tipe panjang Keterangan
id_shoutout Int 11 Field yang berisi id shoutoutyang
akan dikomentari
id_user Int 11 Field yang berisi id user yang mengomentari shoutout user isi varchar 1000 Field yang berisi isi komentar
shoutout
Timestamp timestamp Field yang berisi waktu
pengiriman komentar shoutout
Tabel memberevent
Tabel ini digunakan untuk menyimpan member event. Field-field yang disediakan adalah id_event, id_user. Struktur dari tabel dapat dilihat pada Tabel 5.25
Tabel 5.25 Struktur tabel memberevent
Nama Field Tipe panjang Keterangan
id_event Int 11 Field yang berisi id event
id_user Int 11 Field yang berisi user yang
menjadi member pada event tertentu
(17)
Tabel nilai
Tabel ini digunakan untuk menyimpan nilai. Field-field yang disediakan adalah id_kt, id_mhs, nilai. Struktur dari tabel dapat dilihat pada Tabel 5.26
Tabel 5.26 Struktur tabel nilai
Nama Field Tipe panjang Keterangan
id_kt Int 11 Field yang berisi id kuis tugas dari jadwalkuistugas
id_mhs Int 11 Field yang berisi id mahasiswa
yang akan mendapat nilai
nilai Int 11 Field yang berisi nilai mahasiswa
Tabel online
Tabel ini digunakan untuk menyimpan online. Field-field yang disediakan adalah session_id, id_user, last_time. Struktur dari tabel dapat dilihat pada Tabel 5.27
Tabel 5. 27 Struktur tabel online
Nama Field Tipe panjang Keterangan
session_id varchar 32 Field yang berisi primary key
id_user Int 11 Field yang berisi
last_time timestamp Field yang berisi
Tabel pesan
Tabel ini digunakan untuk menyimpan pesan. Field-field yang disediakan adalah id_pesan, id_pengirim, id_penerima, id_topik, timestamp, subyekPesan, isi. Struktur dari tabel dapat dilihat pada Tabel 5.28
Tabel 5.28 Struktur tabel pesan
Nama Field Tipe panjang Keterangan
(18)
id_pengirim Int 11 Field yang berisi id user yang menjadi pengirim pesan
id_penerima Int 11 Field yang berisi id user yang menjadi pengirim pesan
id_topik Int 11 Field yang berisi id topik pesan
Timestamp timestamp Field yang berisi waktu pesan dikirim
subyekPesan varchar 100 Field yang berisi judul pesan
Isi text Field yang berisi isi pesan
Tabel phototags
Tabel ini digunakan untuk menyimpan phototags. Field-field yang disediakan adalah id, id_foto, Title, x1, y1, x2, y2, width, height. Struktur dari tabel dapat dilihat pada Tabel 5.29
Tabel 5.29 Struktur tabel phototags
Nama Field Tipe panjang Keterangan
id int 255 Field yang berisi primary key
id_foto int 11 Field yang berisi id foto yang akan ditag
Title varchar 255 Field yang berisi nama orang yang ditag
x1 Int 11 Field yang berisi lokasi titik x kiri
atas letak tagging foto
y1 Int 11 Field yang berisi lokasi titik y kiri
atas letak tagging foto
x2 Int 11 Field yang berisi lokasi titik x
kanan bawah letak tagging foto
y2 Int 11 Field yang berisi lokasi titik y
kanan bawah letak tagging foto
(19)
yang akan ditag
height Int 11 Field yang berisi lebar area yang
akan ditag
Tabel shoutout
Tabel ini digunakan untuk menyimpan shoutout. Field-field yang disediakan adalah id_shoutout, timestamp, id_user, id_jenisshoutout, isishoutout. Struktur dari tabel dapat dilihat pada Tabel 5.30
Tabel 5.30 Struktur tabel shoutout
Nama Field Tipe panjang Keterangan
id_shoutout Int 11 Field yang berisi primary key
timestamp timestamp Field yang berisi waktu shoutout
id_user Int 11 Field yang berisi id user yang mengirimkan shoutout
id_jenisshoutout Int 11 Field yang berisi id jenis shoutout (1 untuk shoutout 2 untuk wall) isishoutout varchar 500 Field yang berisi isi shoutout
Tabel teman
Tabel ini digunakan untuk menyimpan teman. Field-field yang disediakan adalah id_subyek, id_obyek, statu. Struktur dari tabel dapat dilihat pada Tabel 5.31
Tabel 5.31 Struktur tabel teman
Nama Field Tipe panjang Keterangan
id_subyek Int 11 Field yang berisi id user sebagai
pengirim permintaan teman
id_obyek Int 11 Field yang berisi id user sebagai
penerima permintaan teman status varchar 10 Field yang berisi diterima atau
(20)
ditolak permintaan teman
Tabel user
Tabel ini digunakan untuk menyimpan user. Field-field yang disediakan adalah id_user, id_shoutout, password, hobi, deskripsi, email, sebagai, foto, height. Struktur dari tabel dapat dilihat pada Tabel 5.32
Tabel 5.32 Struktur tabel user
Nama Field Tipe panjang Keterangan
id_user Int 11 Field yang berisi primary key
id_shoutout varchar 100 Field yang berisi shoutout user
Password varchar 20 Field yang berisi password user
Hobi text Field yang berisi hobi user
Deskripsi text Field yang berisi dekripsi profil user
Email varchar 50 Field yang berisi email user
Sebagai enum ('Mhs','Dose
n','Admin','K aryawan')
Field yang berisi peran dari user
Foto Mediumte
xt
Field yang berisi foto yang digunakan untuk foto profil
5.2. Implementasi Proses
Pada sub bab ini akan dibahas mengenai implementasi dari desain proses yang telah dibuat pada bab sebelumnya. Adapun proses-proses yang akan dibahas, yaitu proses login, proses ubah profil, proses tambah catatan, proses upload foto, dan proses hapus wall.
(21)
Pada proses tambah login ini akan membahas tentang bagaimana user dapat menyimpan login ke web situs jejaring sosial. Pada listing program ini diperiksa terlebih dahulu apakah isian yang diisikan telah diisi dengan lengkap dan sesuai dengan NRP/NPK dan password. Jika lengkap dan benar maka data user dapat login ke halaman utama. Listing program dari proses login ini dapat dilihat pada Listing 5.1.
Listing 5.1 Listing program login
<? session_start();
require_once "../lib/config.inc.php"; require_once"../lib/Database.class.php"; require_once "../lib/Session.class.php";
$db = new Database (DB_SERVER, DB_USER, DB_PASS, DB_DATABASE); $db->connect(); $idUser=$_POST["id_utser"]; $pw=$_POST["password"]; $peran=$_POST["peran"]; $_SESSION["peran"]=$peran; if($peran=="mahasiswa")
$query = "SELECT * FROM ubaya.mahasiswa mhs INNER JOIN tgsakhir.user u ON mhs.NRP=u.id_user WHERE mhs.NRP='$idUser' AND u.password=’$pw’";
else
$query = "SELECT * FROM ubaya.karyawan dsn INNER JOIN tgsakhir.user u ON dsn.NPK=u.id_user WHERE dsn.NPK='$idUser' AND u.password=’$pw’";
$hasilQuery=mysql_query($query); $baris=mysql_num_rows($hasilQuery); if($baris>=1) { if($peran=="mahasiswa") $queryAmbilSemua=mysql_query("SELECT
mhs.*,u.hobi,u.deskripsi,u.id_user from ubaya.mahasiswa mhs INNER JOIN tgsakhir.user u ON mhs.NRP=u.id_user WHERE mhs.NRP='$idUser'");
else
$queryAmbilSemua=mysql_query("SELECT
dsn.*,u.hobi,u.deskripsi,u.id_user from ubaya.karyawan dsn INNER JOIN tgsakhir.user u ON dsn.NPK=u.id_user WHERE dsn.NPK='$idUser'");
$fetchAmbilSemua=mysql_fetch_array($queryAmbilSemua); $_SESSION["masterAmbilSemua"] = $fetchAmbilSemua;
$_SESSION["masterQueryAmbilSemua"]=$queryAmbilSemua; echo "1";
$objSession = new whosOnline(session_id(),$idUser); //session_id sudah otomatis mengenerate session_id tiap buka halaman
$objSession->tambahSession(); $_SESSION['username'] =$idUser;
$_SESSION['namalain'] =$fetchAmbilSemua['Nama']; }
(22)
Untuk proses ubah profil ini akan membahas tentang bagaimana user dapat mengubah profil di halaman profil. Pada proses ini yang dilakukan adalah mengambil nilai dari database yang kemudian ditampilkan di textbox, kemudian setelah klik simpan, data disimpan ke dalam database. Listing program ini dapat dilihat pada Listing 5.2.
Listing 5.2 Listing program ubah profil
Untuk proses tambah catatan ini akan membahas tentang bagaimana user dapat menambah catatan pada profilnya. Pada proses ini yang dilakukan adalah mengambil nilai dari textbox kemudian data disimpan ke dalam database. Jika textbox tidak terisi maka akan muncul peringatan. Listing program ini dapat dilihat pada Listing 5.3.
Listing 5.3 Listing program tambah catatan
<? require "../lib/config.inc.php"; require "../lib/Database.class.php";
$db = new Database (DB_SERVER, DB_USER, DB_PASS, DB_DATABASE); $db->connect();
$idUser = $_POST["idUser"]; $user[id_user] =$_POST["idUser"]; $user[email] =$_POST["email"]; $user[alamat] =$_POST["alamat"]; $user[hobi] =$_POST["hobi"];
$user[deskripsi] =$_POST["deskripsi"];
$hasil = $db->query_update("user", $user, "id_user='$idUser'"); echo “Data sudah disimpan”;
include "../content/simpanSession.php"; ?>
<? session_start();
require ("../lib/sambungDatabase.php");
$masterAmbilSemua = $_SESSION[masterAmbilSemua]; $topik = $_POST[topik];
$catt = $_POST[catt]; if($topik!=""&&$catt!="")
$sql = mysql_query("INSERT INTO tgsakhir.catatan (id_user,tanggal,topik,isi) VALUES
($masterAmbilSemua[id_user],CURRENT_TIMESTAMP,'$topik','$catt')"); else
echo "Isian masih kosong";
include "../content/tampilCatatan.php"; ?>
(23)
Untuk proses upload foto ini akan membahas tentang bagaimana user dapat mengupload foto untuk ditampilkan di profilnya. Listing program dari proses ini dapat dilihat pada Listing 5.4.
Listing 5.4 Listing program upload foto
Untuk proses log in akan dibahas bagaimana user akan masuk sebagai anggota atau sebagai administrator. Maka dari itu dilakukan pengecekan jika
Untuk proses hapus wall ini akan membahas tentang bagaimana user dapat menghapus pesan wall untuk wall user lain. Listing program dari proses ini dapat dilihat pada Listing 5.5.
Listing 5.5 Listing program hapus wall
<?
require ("lib/sambungDatabase.php"); require( "lib/class.upload.php" ); $idAlbum = $_POST["idAlbum"]; for($i=0;$i<5;$i++)
{
$a = $_FILES["file".$i];
$objUpload = new upload($_FILES["file".$i]); if($objUpload->uploaded) {
$extension = $objUpload->file_src_name_ext; $sql = mysql_query("INSERT INTO
tgsakhir.foto(id_album,jenisFoto) VALUES ('$idAlbum','$extension')"); $idFoto = mysql_insert_id();
$objUpload->file_new_name_body = $idFoto; $objUpload->Process('images/foto/'); if ($objUpload->processed) {
$objUpload->Clean(); } else {
} }
}
header ("location: editfoto.php?id=$idAlbum"); exit;
(24)
//Listing “script/tampilShoutOutWall.js” function hapusKomentar(idShoutout) {
params="idShoutOut=" + idShoutout;
var xmlhttp = GetXMLHTTP ("POST", "ajax/hapusKS.php", params); xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4) { if (xmlhttp.status == 200) {
hasil = xmlhttp.responseText; if(hasil=="true")
{
tabel = document.getElementById("shout_"+idShoutout);
tabel.parentNode.removeChild(tabel); }
} }
else { }
return false; }
xmlhttp.send(params); }
// Listing "ajax/hapusKS.php" <?php
include "../lib/Profile.class.php"; include "../lib/sambungDatabase.php";
$masterAmbilSemua = $_SESSION["masterAmbilSemua"]; $idShoutOut = $_POST["idShoutOut"];
$sql = mysql_query("DELETE FROM tgsakhir.shoutout WHERE tgsakhir.shoutout.id_shoutout=$idShoutOut");
if($sql) echo "true"; else echo "false"; ?>
(1)
yang akan ditag
height
Int
11
Field yang berisi lebar area yang
akan ditag
Tabel shoutout
Tabel ini digunakan untuk menyimpan shoutout. Field-field yang
disediakan adalah id_shoutout, timestamp, id_user, id_jenisshoutout,
isishoutout. Struktur dari tabel dapat dilihat pada Tabel 5.30
Tabel 5.30 Struktur tabel shoutout
Nama Field
Tipe
panjang
Keterangan
id_shoutout
Int
11
Field yang berisi primary key
timestamp
timestamp
Field yang berisi waktu shoutout
id_user
Int
11
Field yang berisi id user yang
mengirimkan shoutout
id_jenisshoutout
Int
11
Field yang berisi id jenis shoutout
(1 untuk shoutout 2 untuk wall)
isishoutout
varchar
500
Field yang berisi isi shoutout
Tabel teman
Tabel ini digunakan untuk menyimpan teman. Field-field yang disediakan
adalah id_subyek, id_obyek, statu. Struktur dari tabel dapat dilihat pada
Tabel 5.31
Tabel 5.31 Struktur tabel teman
Nama Field
Tipe
panjang
Keterangan
id_subyek
Int
11
Field yang berisi id user sebagai
pengirim permintaan teman
id_obyek
Int
11
Field yang berisi id user sebagai
penerima permintaan teman
status
varchar
10
Field yang berisi diterima atau
(2)
ditolak permintaan teman
Tabel user
Tabel ini digunakan untuk menyimpan user. Field-field yang disediakan
adalah id_user, id_shoutout, password, hobi, deskripsi, email, sebagai,
foto, height. Struktur dari tabel dapat dilihat pada Tabel 5.32
Tabel 5.32 Struktur tabel user
Nama Field
Tipe
panjang
Keterangan
id_user
Int
11
Field yang berisi primary key
id_shoutout
varchar
100
Field yang berisi shoutout user
Password
varchar
20
Field yang berisi password user
Hobi
text
Field yang berisi hobi user
Deskripsi
text
Field yang berisi dekripsi profil
user
varchar
50
Field yang berisi email user
Sebagai
enum
('Mhs','Dose
n','Admin','K
aryawan')
Field yang berisi peran dari user
Foto
Mediumte
xt
Field yang berisi foto yang
digunakan untuk foto profil
5.2. Implementasi Proses
Pada sub bab ini akan dibahas mengenai implementasi dari desain proses
yang telah dibuat pada bab sebelumnya. Adapun proses-proses yang akan dibahas,
yaitu proses login, proses ubah profil, proses tambah catatan, proses upload foto,
dan proses hapus wall.
(3)
Pada proses tambah login ini akan membahas tentang bagaimana user dapat
menyimpan login ke web situs jejaring sosial. Pada listing program ini diperiksa
terlebih dahulu apakah isian yang diisikan telah diisi dengan lengkap dan sesuai
dengan NRP/NPK dan password. Jika lengkap dan benar maka data user dapat
login ke halaman utama. Listing program dari proses login ini dapat dilihat pada
Listing 5.1.
Listing 5.1 Listing program login
<? session_start();
require_once "../lib/config.inc.php"; require_once"../lib/Database.class.php"; require_once "../lib/Session.class.php";
$db = new Database (DB_SERVER, DB_USER, DB_PASS, DB_DATABASE); $db->connect();
$idUser=$_POST["id_utser"]; $pw=$_POST["password"]; $peran=$_POST["peran"]; $_SESSION["peran"]=$peran; if($peran=="mahasiswa")
$query = "SELECT * FROM ubaya.mahasiswa mhs INNER JOIN tgsakhir.user u ON mhs.NRP=u.id_user WHERE mhs.NRP='$idUser' AND u.password=’$pw’";
else
$query = "SELECT * FROM ubaya.karyawan dsn INNER JOIN tgsakhir.user u ON dsn.NPK=u.id_user WHERE dsn.NPK='$idUser' AND u.password=’$pw’";
$hasilQuery=mysql_query($query); $baris=mysql_num_rows($hasilQuery); if($baris>=1)
{
if($peran=="mahasiswa")
$queryAmbilSemua=mysql_query("SELECT
mhs.*,u.hobi,u.deskripsi,u.id_user from ubaya.mahasiswa mhs INNER JOIN tgsakhir.user u ON mhs.NRP=u.id_user WHERE mhs.NRP='$idUser'");
else
$queryAmbilSemua=mysql_query("SELECT
dsn.*,u.hobi,u.deskripsi,u.id_user from ubaya.karyawan dsn INNER JOIN tgsakhir.user u ON dsn.NPK=u.id_user WHERE dsn.NPK='$idUser'");
$fetchAmbilSemua=mysql_fetch_array($queryAmbilSemua); $_SESSION["masterAmbilSemua"] = $fetchAmbilSemua;
$_SESSION["masterQueryAmbilSemua"]=$queryAmbilSemua; echo "1";
$objSession = new whosOnline(session_id(),$idUser); //session_id sudah otomatis mengenerate session_id tiap buka halaman
$objSession->tambahSession(); $_SESSION['username'] =$idUser;
$_SESSION['namalain'] =$fetchAmbilSemua['Nama']; }
(4)
Untuk proses ubah profil ini akan membahas tentang bagaimana user dapat
mengubah profil di halaman profil. Pada proses ini yang dilakukan adalah
mengambil nilai dari database yang kemudian ditampilkan di textbox, kemudian
setelah klik simpan, data disimpan ke dalam database. Listing program ini dapat
dilihat pada Listing 5.2.
Listing 5.2 Listing program ubah profil
Untuk proses tambah catatan ini akan membahas tentang bagaimana user
dapat menambah catatan pada profilnya. Pada proses ini yang dilakukan adalah
mengambil nilai dari textbox kemudian data disimpan ke dalam database. Jika
textbox tidak terisi maka akan muncul peringatan. Listing program ini dapat
dilihat pada Listing 5.3.
Listing 5.3 Listing program tambah catatan
<? require "../lib/config.inc.php"; require "../lib/Database.class.php";
$db = new Database (DB_SERVER, DB_USER, DB_PASS, DB_DATABASE); $db->connect();
$idUser = $_POST["idUser"]; $user[id_user] =$_POST["idUser"]; $user[email] =$_POST["email"]; $user[alamat] =$_POST["alamat"]; $user[hobi] =$_POST["hobi"];
$user[deskripsi] =$_POST["deskripsi"];
$hasil = $db->query_update("user", $user, "id_user='$idUser'"); echo “Data sudah disimpan”;
include "../content/simpanSession.php"; ?>
<? session_start();
require ("../lib/sambungDatabase.php");
$masterAmbilSemua = $_SESSION[masterAmbilSemua]; $topik = $_POST[topik];
$catt = $_POST[catt]; if($topik!=""&&$catt!="")
$sql = mysql_query("INSERT INTO tgsakhir.catatan (id_user,tanggal,topik,isi) VALUES
($masterAmbilSemua[id_user],CURRENT_TIMESTAMP,'$topik','$catt')"); else
echo "Isian masih kosong";
include "../content/tampilCatatan.php"; ?>
(5)
Untuk proses upload foto ini akan membahas tentang bagaimana user
dapat mengupload foto untuk ditampilkan di profilnya. Listing program dari
proses ini dapat dilihat pada Listing 5.4.
Listing 5.4 Listing program upload foto
Untuk proses log in akan dibahas bagaimana user akan masuk sebagai
anggota atau sebagai administrator. Maka dari itu dilakukan pengecekan jika
Untuk proses hapus wall ini akan membahas tentang bagaimana user dapat
menghapus pesan wall untuk wall user lain. Listing program dari proses ini dapat
dilihat pada Listing 5.5.
<?
require ("lib/sambungDatabase.php"); require( "lib/class.upload.php" ); $idAlbum = $_POST["idAlbum"]; for($i=0;$i<5;$i++)
{
$a = $_FILES["file".$i];
$objUpload = new upload($_FILES["file".$i]); if($objUpload->uploaded) {
$extension = $objUpload->file_src_name_ext; $sql = mysql_query("INSERT INTO
tgsakhir.foto(id_album,jenisFoto) VALUES ('$idAlbum','$extension')"); $idFoto = mysql_insert_id();
$objUpload->file_new_name_body = $idFoto; $objUpload->Process('images/foto/'); if ($objUpload->processed) {
$objUpload->Clean(); } else {
} }
}
header ("location: editfoto.php?id=$idAlbum"); exit;
(6)
//Listing “script/tampilShoutOutWall.js” function hapusKomentar(idShoutout) {
params="idShoutOut=" + idShoutout;
var xmlhttp = GetXMLHTTP ("POST", "ajax/hapusKS.php", params); xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4) { if (xmlhttp.status == 200) {
hasil = xmlhttp.responseText; if(hasil=="true")
{
tabel = document.getElementById("shout_"+idShoutout);
tabel.parentNode.removeChild(tabel); }
} }
else { }
return false; }
xmlhttp.send(params); }
// Listing "ajax/hapusKS.php" <?php
include "../lib/Profile.class.php"; include "../lib/sambungDatabase.php";
$masterAmbilSemua = $_SESSION["masterAmbilSemua"]; $idShoutOut = $_POST["idShoutOut"];
$sql = mysql_query("DELETE FROM tgsakhir.shoutout WHERE tgsakhir.shoutout.id_shoutout=$idShoutOut");
if($sql) echo "true"; else echo "false"; ?>