• Tidak ada hasil yang ditemukan

4. IMPLEMENTASI SISTEM

N/A
N/A
Protected

Academic year: 2021

Membagikan "4. IMPLEMENTASI SISTEM"

Copied!
35
0
0

Teks penuh

(1)

50

Universitas Kristen Petra

4. IMPLEMENTASI SISTEM

Pada bab ini akan dibahas implementasi dari sistem yang telah dirancang

dan dijelaskan pada bab sebelumnya. Pembahasan implementasi dibagi menjadi

tiga bagian yaitu implementasi Web service, aplikasi Android dan Web admin.

Implementasi Web Service

Dalam sistem, Web Service digunakan sebagai standar yang digunakan

untuk bertukar informasi antara aplikasi dengan database pada sistem. Aplikasi

menggunakan bahasa pemrograman HTML,Javascript,Jquery,CSS dan PHP pada

Server. Web Service digunakan untuk mengambil data yang digunakan pada

Aplikasi Android. Web Service yang digunakan adalah JSON. Pemanggilan fungsi

menggunakan HTTP GET.

Fungsi Login

Fungsi ini membutuhkan parameter berupa username dan password dengan

method post yang digunakan untuk pengecekan data dari form login dari user.

Password di encrypt menggunakan MD5 dan mengembalikan hasil validasi yang

berbentuk string menggunakan json_encode. Fungsi login dapat dilihat pada

Segmen Program 4.1.

Segmen Program 4.1. Fungsi Login

<?php

public function checkuser($username,$psw) {

$q="SELECT * ". "FROM user ".

"WHERE username='$username' AND password='$psw'"; $this->perintah = mysql_query($q); while($r=mysql_fetch_array($this->perintah)) { $arr[] = $r; }

(2)

51

Segmen Program 4.1. Fungsi Login (Lanjutan)

echo '{"items":'. json_encode($arr).'}'; } } header("content-type: application/json"); $db = new DBconnect(); if (isset($_POST["username"]) || isset($_POST["psw"])) { $username=mysql_real_escape_string($_POST["username"]); $psw=mysql_real_escape_string($_POST["psw"]); $psw=md5($psw); // Encrypted Password $db->checkuser($username,$psw); } ?>

Fungsi Register

Fungsi ini membutuhkan parameter berupa username, password, kota,

namalengkap, alamat, nohandphone, dan status yang digunakan untuk memasukan

data ke tabel user. Semua data dari form diamankan menggunakan

mysql_real_escape_string dan Password di encrypt menggunakan MD5. Fungsi ini

juga melakukan pengecekan terhadap username yang ada dalam database sehingga

tidak dapat membuat user dengan username yang sama. Fungsi Register dapat

dilihat pada Segmen Program 4.2.

Segmen Program 4.2. Fungsi Register

function insert_user($username,$password,$kota,$namalengkap,$alamat,$ nohandphone,$status)bxxx { $uname=mysql_real_escape_string($username); $pass=mysql_real_escape_string($password);

(3)

52

Segmen Program 4.2. Fungsi Register (Lanjutan)

$pass=md5($pass); $kota=mysql_real_escape_string($kota); $namalengkap=mysql_real_escape_string($namalengkap); $alamat=mysql_real_escape_string($alamat); $nohandphone=mysql_real_escape_string($nohandphone); $status=mysql_real_escape_string($status); $hasil="";

$q="SELECT * FROM user WHERE Username='$uname'"; $res=mysql_query($q); while ($row=mysql_fetch_assoc($res)) { $hasil="kembar"; } if ($hasil=="") {

$q="INSERT INTO `user`(`Username`, `Password`, `Kota`, `Nama_Lengkap`, `Alamat_lengkap`, `No_Handphone`, `Status`,`Pangkat`,`Profile_Picture`) VALUES ('$uname','$pass','$kota','$namalengkap','$alamat','$nohandp hone','$status','newbie','newbie.jpg')"; mysql_query($q); } return $hasil; }

Fungsi GetData

Fungsi ini membutuhkan parameter pgs yang merupakan data offset. Data offset

digunakan pada query untuk mengambil data urutan berdasarkan offset. Data yang

dihasil dikirim menggunakan json_encode. Fungsi GetData dapat dilihat pada

Segmen Program 4.3.

(4)

53

Segmen Program 4.3. Fungsi GetData

public function GetData()

{

$pgs=$_GET["pgs"]; $q="SELECT

p.*,u.Username,u.Pangkat,u.Profile_Picture,l.latitude,l.long itude

FROM posting p INNER JOIN user u ON (p.Username=u.Username) JOIN lokasi l on (p.Id_Post=l.Id_Posting) LIMIT 2 OFFSET $pgs"; $this->perintah = mysql_query($q); while($r=mysql_fetch_array($this->perintah)) { $arr[] = $r; }

echo '{"items":'. json_encode($arr).'}'; }

Fungsi GetComment

Fungsi ini membutuhkan parameter pg dan id. Parameter id merupakan data

id_posting dan Parameter pg merupakan data offset yang nantinya digunakan pada

query MySQL. Fungsi ini juga me-replace hasil dari comment yang memiliki string

‘@’ didepannya menjadi sebuah link. Semua data yang dihasilkan dikirim

menggunakan json_encode. Fungsi GetComment dapat dilihat pada Segmen

Program 4.4.

(5)

54

Segmen Program 4.4. Fungsi GetComment

public function GetComment()

{ $id=$_GET["id"]; $pg=$_GET["page"]; $pgs=$pg*3; // di awal 0*3 $ttlData=0;

$q="SELECT COUNT(*) AS TtlData FROM komentar WHERE Id_Post=$id"; //mencari di post tsb ada berapa komentar $this->perintah = mysql_query($q); while($r=mysql_fetch_array($this->perintah)) { $ttlData=$r["TtlData"]; } $finish=false; if ($pgs+3>=$ttlData) { $finish=true; }

$q="SELECT * from komentar where Id_Post=$id LIMIT 3 OFFSET $pgs ";

$this->perintah = mysql_query($q);

while($r=mysql_fetch_array($this->perintah)) {

$r["Komentar"]=preg_replace("/(\@)([^\s]+)/", " <a data-ajax='false' onclick='openuser($2)' name='$2'>@$2</a> ", $r['Komentar']);

if ($finish) {

$r["selesai"]="s"; }

(6)

55

Segmen Program 4.4. Fungsi GetComment (Lanjutan)

else {

$r["selesai"]="b"; }

$arr[] = $r; }

echo '{"items":'. json_encode($arr).'}'; }

(7)

56

Fungsi IncLike

Fungsi ini membutuhkan parameter id dan user. Parameter id digunakan

untuk mengetahui id posting yang ditambah nilai like-nya. Fungsi ini juga

melakukan pengecekan terhadap user jika user tersebut sudah pernah memberikan

vote, sehingga tidak dapat memberikan vote lagi untuk kedua kali. Data yang dihasil

dikirim menggunakan json_encode. Fungsi IncLike dapat dilihat pada Segmen

Program 4.5.

Segmen Program 4.5. Fungsi IncLike

public function IncLike()

{

$id=$_GET["id"]; $user=$_GET["user"]; $hasil="";

$q="SELECT * FROM inclike WHERE username= '$user' AND id_post= $id"; //echo $q; $res=mysql_query($q); while ($row=mysql_fetch_assoc($res)) { $hasil="kembar"; echo json_encode("kembar"); } if ($hasil=="") {

$q="INSERT INTO `inclike`(`Id_post`, `username`, `like_unlike`) VALUES ('$id','$user',1)";

mysql_query($q);

echo json_encode("masuk"); }

return $hasil; }

(8)

57

Fungsi Popular

Fungsi ini digunakan untuk mengetahui posting gambar terpopular dari

seluruh data yang ada. Fungsi ini mengambil data like dan unlike sebagai

perhitungan data dan diurutkan menggunakan metode Descending. Data yang

dihasilkan dikirim menggunakan json_encode. Fungsi Popular dapat dilihat pada

Segmen Program 4.6.

Segmen Program 4.6. Fungsi Popular

public function popular()

{ //$id=$_GET["id"]; $q="SELECT p.*, COALESCE(x.ttllike,0) AS ttllike,COALESCE(x2.ttlunlike,0) AS ttlunlike FROM posting p LEFT JOIN (

SELECT id_post,count(id_like) AS ttllike,SUM(id_like) AS sumlike FROM inclike WHERE like_unlike=1 GROUP BY id_post ) x ON (x.id_post=p.id_post) LEFT JOIN (

SELECT id_post,count(id_like) AS ttlunlike,SUM(id_like) AS sumunlike

FROM inclike

WHERE like_unlike=2 GROUP BY id_post

) x2 ON (x2.id_post=p.id_post)

ORDER BY COALESCE(x.ttllike,0)/ (x.sumlike+x2.sumunlike) DESC";

$this->perintah = mysql_query($q);

while($r=mysql_fetch_array($this->perintah)) {

(9)

58

Segmen Program 4.6. Fungsi Popular (Lanjutan)

}

echo '{"items":'. json_encode($arr).'}'; }

Fungsi Distance

Fungsi ini membutuhkan parameter latitude,longitude yang dituju,

latitude,longitude asal tempat dan unit untuk menentukan satuan dari data yang

dihasilkan. Fungsi ini mengkonversikan parameter-parameter tersebut menjadi

satuan yang dapat operasikan. Data yang dihasilkan dikirim menggunakan

json_encode. Fungsi Distance dapat dilihat pada Segmen Program 4.7.

Segmen Program 4.7. Fungsi Distance

function distance($lat1, $lon1, $lat2, $lon2, $unit) { // menghitung jarak dalam km

$theta = $lon1 - $lon2;

$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)); $dist = acos($dist); $dist = rad2deg($dist); $miles = $dist * 60 * 1.1515; $unit = strtoupper($unit); if ($unit == "K") { return (ceil($miles * 1.609344)); } else if ($unit == "N") { return ($miles * 0.8684); } else { return $miles; } }

(10)

59

Fungsi GetNearme

Fungsi ini membutuhkan parameter latitude dan longitude asal yang

digunakan untuk mengukur jarak terdekat dari latitude dan longitude posting yang

ada. Lalu data yang ada diurutkan menggunakan bubble sort. Data yang dihasilkan

dikirim menggunakan json_encode. Fungsi GetNearme dapat dilihat pada Segmen

Program 4.8.

Segmen Program 4.8. Fungsi GetNearme

public function GetNearme() // menghitung lokasi terdekat {

$lat=$_GET["latitude"]; $lng=$_GET["longitude"];

$q=" SELECT * from lokasi l INNER JOIN posting p ON (p.`Id_Post`=l.Id_Posting) JOIN user u ON (u.Username=p.Username)"; $this->perintah = mysql_query($q); while($r=mysql_fetch_array($this->perintah)) { $jrk=$this->distance($lat,$lng,$r["Latitude"],$r["Longitude"],"K"); $r["jarak"]=$jrk." km"; $r["jarak2"]=$jrk; $arr[] = $r; } for ($i=0;$i<count($arr);$i++) { for ($j=$i+1;$j<count($arr);$j++) { if ($arr[$j]["jarak2"]<$arr[$i]["jarak2"]) { $temp=$arr[$j]; $arr[$j]=$arr[$i]; $arr[$i]=$temp;

(11)

60

Segmen Program 4.1. Fungsi GetNearme (Lanjutan)

}

}

}// bubble sort jarak

echo '{"items":'. json_encode($arr).'}'; }

Fungsi Getrating

Fungsi ini membutuhkan parameter username yang merupakan primary key pada

tabel. Fungsi ini digunakan untuk menghitung rating pada user yang dituju. Data

yang dihasilkan dikirim menggunakan json_encode. Fungsi GetData dapat dilihat

pada Segmen Program 4.9.

Segmen Program 4.9. Fungsi Getrating

public function Getrating()

{ $username=$_GET["username"]; $q="SELECT p.Username,p.id_post,COALESCE(x.ttllike,0) AS ttllike,COALESCE(x2.ttlunlike,0) AS ttlunlike, (SUM(COALESCE(x.ttllike,0))-SUM(COALESCE(x2.ttlunlike,0)))/(SUM(COALESCE(x.ttllike,0))+S UM(COALESCE(x2.ttlunlike,0))) *5 AS rating,, COUNT(p.id_post) as totalpost

FROM posting p LEFT JOIN (

SELECT id_post,count(id_like) AS ttllike FROM inclike WHERE like_unlike=1 GROUP BY id_post ) x ON (x.id_post=p.id_post) LEFT JOIN (

SELECT id_post,count(id_like) AS ttlunlike FROM inclike

(12)

61

Segmen Program 4.9. Fungsi Getrating (Lanjutan)

WHERE like_unlike=2

GROUP BY id_post

) x2 ON (x2.id_post=p.id_post) WHERE p.Username= '$username' ORDER BY COALESCE(x.ttllike,0)-COALESCE(x2.ttlunlike,0) DESC"; $this->perintah = mysql_query($q); while($r=mysql_fetch_array($this->perintah)) { $arr[] = $r; }

echo '{"items":'. json_encode($arr).'}'; }

Fungsi GetSearch

Fungsi ini membutuhkan parameter pgs yang merupakan data offset. Data offset

digunakan pada query untuk mengambil data urutan berdasarkan offset. Data yang

dihasilkan dikirim menggunakan json_encode. Fungsi GetData dapat dilihat pada

Segmen Program 4.10.

Segmen Program 4.10. Fungsi GetSearch

public function GetSearch()

{ $keyword=$_GET["keyword"]; $jenismasakan=$_GET["jenismasakan"]; $tipetempat=$_GET["tipetempat"]; $awal=$_GET["awal"]; $akhir=$_GET["akhir"];

$q="SELECT p.*,t.Nama_Tipe_Tempat FROM posting p INNER JOIN tipe_tempat t ON (p.`Id_Post`=t.`Id_Post`)

WHERE ('$keyword' ='' OR p.Nama_Makanan LIKE '%%') AND ('$jenismasakan' ='' OR p.Jenis_Masakan = '$jenismasakan') AND ('$tipetempat' ='' OR t.Nama_Tipe_Tempat = '$tipetempat') AND ($awal ='' OR p.Harga >= $awal) AND ($akhir ='' OR p.Harga <= $akhir) ";

(13)

62

Segmen Program 4.10. Fungsi GetSearch (Lanjutan)

$this->perintah = mysql_query($q);

while($r=mysql_fetch_array($this->perintah)) {

$arr[] = $r; }

echo '{"items":'. json_encode($arr).'}'; }

Fungsi GetItem

Fungsi ini membutuhkan parameter id transaksi sebagai data yang dituju untuk

melihat makanan apa saja yang. Data yang dihasilkan dikirim menggunakan

json_encode. Fungsi GetItem dapat dilihat pada Segmen Program 4.11.

Segmen Program 4.11. Fungsi GetItem

public function GetItem()

{ $id=$_GET["id"]; $q="SELECT * FROM transaksi t JOIN isi_transaksi i ON i.`Id_Transaksi` = t.`Id_Transaksi` JOIN item m ON m.Id_Item = i.Id_Item JOIN posting p ON p.Id_Post = m.Id_Post WHERE i.`Id_Transaksi`=$id"; $this->perintah = mysql_query($q); while($r=mysql_fetch_array($this->perintah)) { $arr[] = $r; }

echo '{"items":'. json_encode($arr).'}'; }

(14)

63

Implementasi Aplikasi Android

Aplikasi android ini dibangun berdasarkan desain user interface yang telah

dirancang pada bab sebelumnya. Penjabaran aplikasi Android dibagi menjadi

beberapa bagian program menurut fitur yang disediakan antara lain sebagai berikut.

Fungsi GetLokasi

Fungsi ini digunakan untuk mengambil data posisi user melalui melalui GPS pada

gadget yang user pakai. Data yang dihasilkan disimpan dalam local storage. Fungsi

GetLokasi dapat dilihat pada Segmen Program 4.12.

Segmen Program 4.12. Fungsi GetLokasi

if (navigator.geolocation) { //google MAP API

navigator.geolocation.getCurrentPosition(showPosition); } else {

alert("Tidak ada geolocation"); }; function showPosition(position) { console.log("Latitude : "+position.coords.latitude + ",Longitude: " + position.coords.longitude); var la1=position.coords.latitude; var ln1=position.coords.longitude; window.localStorage.setItem("la1",la1); window.localStorage.setItem("ln1",ln1); }

Fungsi Share Facebook // Tanya

Fungsi ini digunakan untuk dapat mengirimkan data ke facebook. Fungsi GetData

dapat dilihat pada Segmen Program 4.13.

(15)

64

Segmen Program 4.13. Fungsi Share Facebook

<script>

(function(d, s, id) {

var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return;

js = d.createElement(s); js.id = id;

js.src =

"//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.3"; fjs.parentNode.insertBefore(js, fjs);

}(document, 'script', 'facebook-jssdk')); </script>

Fungsi Upload Gambar/Video

Fungsi ini membutuhkan parameter picture source dan destination source yang

digunakan untuk mengupload sebuah gambar/video. Data yang didapat bisa dari

gallery maupun langsung dari camera.. Fungsi Upload Gambar/Video dapat dilihat

pada Segmen Program 4.14.

Segmen Program 4.14. Fungsi Upload Gambar/Video

var pictureSource; var destinationType; document.addEventListener("deviceready",onDeviceReady,false) ; function onDeviceReady() { pictureSource=navigator.camera.PictureSourceType; destinationType=navigator.camera.DestinationType; } function onPhotoDataSuccess(imageData) { var smallImage = document.getElementById('smallImage'); smallImage.style.display = 'block';

(16)

65

Segmen Program 4.1. Fungsi Upload Gambar/Video

} function onPhotoFileSuccess(imageData) { console.log(JSON.stringify(imageData)); var smallImage = document.getElementById('smallImage'); smallImage.style.display = 'block'; smallImage.src = imageData; } function win(r) { alert("success "+r.response); console.log("Code = " + r.responseCode); console.log("Response = " + r.response); console.log("Sent = " + r.bytesSent); window.localStorage.setItem("filename", r.response); } function fail(error) {

alert("An error has occurred: Code = " + error.code); } function onPhotoURISuccess(imageURI) { var largeImage = document.getElementById('largeImage'); largeImage.style.display = 'block'; largeImage.src = imageURI;

(17)

66

Segmen Program 4.14. Fungsi Upload Gambar/Video (Lanjutan)

window.localStorage.setItem("filenamelocal", imageURI);

var options = new FileUploadOptions(); options.fileKey="file";

var ft = new FileTransfer();

var xurl=ipconfig+"services/temp.php";

ft.upload(imageURI, xurl , win, fail, options); window.location="uploadfoto.html"; } function capturePhotoWithData() { navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50 }); } function capturePhotoWithFile() { navigator.camera.getPicture(onPhotoFileSuccess,

onFail, { quality: 50, destinationType: Camera.DestinationType.FILE_URI });

}

function uploadVideo(mediaFile,method) { var ft = new FileTransfer(), path = mediaFile,

name = "video.mp4";

var options = new FileUploadOptions(); options.chunkedMode = false;

options.fileKey = "file"; options.fileName = name;

options.mimeType = "video/mp4";

(18)

67

Segmen Program 4.14. Fungsi Upload Gambar/Video (Lanjutan)

ft.upload(path, ipconfig+"/services/tempvideo.php", function(r) { alert('Success ' + r.response); }, function(error) { alert('Error ' + path + ': ' + error.code); }, options); } function onPhotoURISuccessvid(imageURI) { uploadFile(imageURI,"library"); }

function getVideo(source, type) { navigator.camera.getPicture(onPhotoURISuccessvid, onFail, { quality: 50, destinationType: destinationType.FILE_URI, sourceType: source, mediaType: type}); } function getPhoto(source) { navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, destinationType: destinationType.FILE_URI, sourceType: source }); } function onFail(message) {

alert('Failed because: ' + message); }

(19)

68

Fungsi GoDirection

Fungsi ini membutuhkan parameter latitude,longitude asal dan tujuan yang

dibaca oleh google map API dan menjadi direction untuk user. Fungsi GetData

dapat dilihat pada Segmen Program 4.15.

Segmen Program 4.15. Fungsi GoDirection

<script>

var directionsDisplay;

var directionsService = new google.maps.DirectionsService(); var map;

var haight = new google.maps.LatLng(la1,ln1); var oceanBeach = new google.maps.LatLng(la2,ln2); function initialize() {

directionsDisplay = new google.maps.DirectionsRenderer(); var mapOptions = {

zoom: 14, center: haight }

map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

directionsDisplay.setMap(map); }

function calcRoute() {

var selectedMode = document.getElementById('mode').value; var request = { origin: haight, destination: oceanBeach, travelMode: google.maps.TravelMode[selectedMode] }; directionsService.route(request, function(response, status) { if (status == google.maps.DirectionsStatus.OK) {

(20)

69

Segmen Program 4.1. Fungsi GoDirection (Lanjutan)

directionsDisplay.setDirections(response); } }); } google.maps.event.addDomListener(window, 'load', initialize);

Fungsi GetComment

Fungsi ini membutuhkan parameter id posting untuk menampilkan komentar yang

ada pada sebuah posting. Fungsi mengirimkan data ajax dengan tambahan

parameter page untuk menghitung offset. Fungsi GetComment dapat dilihat pada

Segmen Program 4.16.

Segmen Program 4.16. Fungsi GetComment

function get_comment(id_post){ // untuk view comment var page=0; if (arrPage[id_post]!=null) { page=arrPage[id_post]; } arrPage[id_post]=page+1; var AmbilData; var xurl=ipconfig+'services/index/posting_service.php?page='+pag e+'&id='+id_post+'&f=comment'; //console.log(xurl); $.ajax({ type : 'GET', url : xurl, async: true, beforeSend: function(x) { if(x && x.overrideMimeType) {

(21)

70

Segmen Program 4.16. Fungsi GetComment (Lanjutan)

x.overrideMimeType("application/j-son;charset=UTF-8"); } }, dataType : 'json', success : function(data){ AmbilData = data.items; //alert(data.items); if (page==0) { $("#dcomment"+id_post).html(""); } else if (page==1) { $("#dcomment2_"+id_post).html(""); }

$.each(AmbilData, function(index, loaddata) { if (page==0)

{ $("#dcomment"+id_post).append("<ul>

<b>"+loaddata.Username+"</b> "+loaddata.Komentar+" </ul>"); }

else {

$("#dcomment2_"+id_post).append("<ul>

<b>"+loaddata.Username+"</b> "+loaddata.Komentar+" </ul>"); }

if (loaddata.selesai=="s") {

$("#seemore_"+id_post).hide(); // button bawah $("#dcomment2_"+id_post).hide(); //

}

//return index<2;//batas comment view });

(22)

71

Segmen Program 4.16. Fungsi GetComment (Lanjutan)

},

error: function(jqXHR, exception) { alert("error get_comment"); }

}); };

Fungsi IncLike

Fungsi ini membutuhkan parameter username pengguna dan id_posting yang

ditambah nilai like-nya. Fungsi mengirim data ajax untuk melakukan eksekusi

query pada server. Dan Server mengembalikan data berupa JSON. Fungsi GetData

dapat dilihat pada Segmen Program 4.17.

Segmen Program 4.17. Fungsi IncLike

function inclike(id_post){ var username=window.localStorage.getItem("username"); var AmbilData; var xurl=ipconfig+'services/index/posting_service.php?id='+id_po st+'&user='+username+'&f=inc_like'; $.ajax({ type : 'GET', url : xurl, async: true, beforeSend: function(x) { if(x && x.overrideMimeType) {

x.overrideMimeType("application/j-son;charset=UTF-8"); } }, dataType : 'json', success : function(data){

(23)

72

Segmen Program 4.17. Fungsi IncLike (Lanjutan)

if (data=="kembar")

{

alert("like sudah dilakukan"); }

else {

alert("berhasil tambah like"); show_like(id_post,1);

notif(username+' like your photo'); }

},

error: function(jqXHR, exception) { alert("error inc_like"); } }); }

Fungsi GetData

Fungsi ini digunakan untuk menampilkan data posting pada halaman utama. Fungsi

ini mengirim ajax ke server dan server mengembalikan data dalam format JSON.

Data yang didapat digunakan untuk me-replace variable-variable yang ada pada

halaman. Fungsi ini juga mengecek apakah posting tersebut berupa gambar atau

video. Fungsi GetData dapat dilihat pada Segmen Program 4.18.

Segmen Program 4.18. Fungsi GetData

function get_data(){ var AmbilData; var xurl=ipconfig+'services/index/posting_service.php?f=post&pgs =0'; console.log(xurl); $.ajax({ type : 'GET',

(24)

73

Segmen Program 4.18. Fungsi GetData (Lanjutan)

url : xurl,

async: true,

beforeSend: function(x) {

if(x && x.overrideMimeType) {

x.overrideMimeType("application/j-son;charset=UTF-8"); } }, dataType : 'json', success : function(data){ if(data){ AmbilData = data.items;

$.each(AmbilData, function(index, loaddata) { var isi=$("#template").html(); isi=isi.replace("xprofpict",loaddata.Profile_Picture); isi=isi.replace("xpangkat",loaddata.Pangkat); isi=isi.replace("xnamamakanan",loaddata.Nama_Makanan); var hargax = accounting.formatMoney(loaddata.Harga, { symbol: "Rp", format: "%s %v" }); // 5,318,008.00 GBP isi=isi.replace("xharga",hargax); isi=isi.replace("xcaption",loaddata.Caption); isi=isi.replace("xuserpost",loaddata.Username); isi=isi.replace("xuserpost1",loaddata.Username);//tombol follow isi=isi.replace("xgouser",loaddata.Username);//click user

(25)

74

Segmen Program 4.1. Fungsi GetData (Lanjutan)

isi=isi.replace("xgouser1",loaddata.Username);//click user isi=isi.replace("xdate",loaddata.Posting_Date); isi=isi.replace("xcomment2","dcomment2_"+loaddata.Id_Post); isi=isi.replace("xcomment","dcomment"+loaddata.Id_Post); isi=isi.replace("xlike","like"+loaddata.Id_Post); isi=isi.replace("xunlike","unlike"+loaddata.Id_Post); isi=isi.replace("like_hide","like_hide"+loaddata.Id_Post); isi=isi.replace("like_show","like_show"+loaddata.Id_Post); isi=isi.replace("unlike_hide","unlike_hide"+loaddata.Id_Post ); isi=isi.replace("unlike_show","unlike_show"+loaddata.Id_Post ); isi=isi.replace("xklikmenu","klikmenu"+loaddata.Id_Post); if(status=="Resto_Owner" && loaddata.Username==username){

alert(loaddata.Id_Post+"ini punya login"); $("#klikmenu"+loaddata.Id_Post).hide(); // jika member tidak bisa membuat

}

isi=isi.replace("la2",loaddata.latitude); isi=isi.replace("ln2",loaddata.longitude);

(26)

75

Segmen Program 4.1. Fungsi GetData (Lanjutan)

isi=isi.replace("xid1",loaddata.Id_Post); isi=isi.replace("xid2",loaddata.Id_Post);//comment isi=isi.replace("xid3",loaddata.Id_Post);// see more

isi=isi.replace("xid4",loaddata.Id_Post);// id see more isi=isi.replace("xid6",loaddata.Id_Post);// show like isi=isi.replace("xid5",loaddata.Id_Post);// klik menu isi=isi.replace("xid7",loaddata.Id_Post);// report spam isi=isi.replace("xfb",loaddata.Id_Post);//share facebook isi=isi.replace("submit-komentar","submit-komentar"+loaddata.Id_Post); var str = loaddata.Image; var n = str.indexOf("mp4"); if(n==-1) { isi=isi.replace("xximg","<img class='sizeimg' src='daftarimage/"+loaddata.Image+"' />"); } else{ isi=isi.replace("xximg","<video width='100%' height='240' controls> "+ "<source src='daftarimage/"+loaddata.Image+"' type='video/mp4'>"+

(27)

76

Segmen Program 4.1. Fungsi GetData (Lanjutan)

"</video>"); } isi=isi.replace("ximg","daftarimage/"+loaddata.Image); show_like(loaddata.Id_Post,1);//like show_like(loaddata.Id_Post,2);//unlike get_comment(loaddata.Id_Post); $("#content2").append(isi); });

}//jika data itu ada else{

alert("habis");

}//jika data tidak ada

},

error: function(jqXHR, exception) { alert("error get_data");

} }); }

Fungsi InsertKomentar

Fungsi ini digunakan untuk memasukan komentar pada database. Fungsi ini

membutuhkan parameter komentar, id, dan username yang akan dikirimkan

melalui ajax. Data yang dihasilkan oleh server berbentuk JSON. Fungsi

InsertKomentar dapat dilihat pada Segmen Program 4.19.

(28)

77

Segmen Program 4.19. Fungsi InsertKomentar

$(document).ready(function() { $.mobile.allowCrossDomainPages = true; $.support.cors = true; $("#submit-komentar").click(function() { var komentar=$("#Komentar").val(); alert(aktifID); urlx= ipconfig+'services/index/insert-komentar.php?komentar='+komentar+'&id='+aktifID+'&user='+use rname; $.ajax({ type : 'GET', url : urlx, async: true, beforeSend: function(x) {

if(x && x.overrideMimeType) { x.overrideMimeType("application/j-son;charset=UTF-8"); } }, // //pengecekan kedua // data: {komentar:komentar,id:aktifID,user:username}, dataType : 'json', success : function(data){ //alert("cc"); $("#Komentar").val(""); get_comment(aktifID);

$( "#popuplogin" ).popup( "close" ); //alert("success");

},

(29)

78

Segmen Program 4.19. Fungsi InsertKomentar (Lanjutan)

//alert("dd");

$("#Komentar").val(""); get_comment(aktifID); //???

$( "#popuplogin" ).popup( "close" ); //alert("gagal"); }

}); });

});

Implementasi Web Admin

Web Admin digunakan untuk mengoperasikan data yang digunakan pada

aplikasi. Admin dapat menambah, mengedit, menghapus, dan memblokir data yang

ada agar pengguna dapat dibantu oleh admin untuk melakukan aksi yang tidak dapat

dilakukan oleh pengguna aplikasi.

Fungsi Add User

Fungsi ini digunakan untuk memasukan User baru pada database. Fungsi

ini membutuhkan parameter username, password, namalengkap, kota, no

handphone, alamat lengkap, status, pangkat yang akan dieksekusi melalui query..

Fungsi AddUser dapat dilihat pada Segmen Program 4.20.

Segmen Program 4.20. Fungsi Add User

if ( isset( $_POST['add'] ) ){ include 'db.php'; $username=mysql_real_escape_string($_POST['username']) ; $password= mysql_real_escape_string($_POST['password']) ;

(30)

79

Segmen Program 4.1. Fungsi Add User (Lanjutan)

$namalengkap= mysql_real_escape_string($_POST['namalengkap']) ; $alamatlengkap= mysql_real_escape_string($_POST['alamatlengkap']) ; $kota= mysql_real_escape_string($_POST['kota']) ; $nohandphone= mysql_real_escape_string($_POST['nohandphone']) ; $status= mysql_real_escape_string($_POST['status']) ; $pangkat= mysql_real_escape_string($_POST['pangkat']) ; $q="INSERT INTO `user`(`Username`, `Password`, `Nama_Lengkap`, `Alamat_Lengkap`, `Kota`, `No_Handphone`,

`Status`, `Pangkat`) VALUES

('$username','$password','$namalengkap','$alamatlengkap','$k ota',$nohandphone,'$status','$pangkat')"; $result = mysql_query($q); if (!$result) { echo "<script type='text/javascript'>alert('gagal tambah

User');</script>";

header("Location: user.php");

die('Invalid query: ' . mysql_error());

(31)

80

if($result){

echo "<script type='text/javascript'>alert('berhasil tambah

User');</script>"; header("Location: user.php"); } mysql_close($conn); }

Fungsi Delete User

Fungsi ini digunakan untuk menghapus data user pada database. Fungsi ini

membutuhkan parameter username yang akan dihapus. Fungsi DeleteUser dapat

dilihat pada Segmen Program 4.21.

Segmen Program 4.21. Fungsi Delete User

if( isset($_GET['user']) ){

$user =mysql_real_escape_string($_REQUEST['user']); //echo $user;

echo "<script type='text/javascript'>alert('berhasil delete $user');</script>";

// sending query

$result=mysql_query("DELETE FROM user WHERE Username = '$user'")

or die(mysql_error()); echo $result;

if (!$result) {

die('Invalid query: ' . mysql_error()); echo"Gagal Delete User";

(32)

81

Segmen Program 4.21. Fungsi Delete User (Lanjutan)

}

if($result){

echo "Berhasil Delete User"; }

header("Location: user.php"); }

Fungsi Block/Unblock User

Fungsi ini digunakan untuk block maupun unblock user pada database.

Fungsi ini membutuhkan parameter username yang akan dipilih. Fungsi

Block/Unblock User dapat dilihat pada Segmen Program 4.22.

Segmen Program 4.22. Fungsi Block/Unblock User

if( isset($_GET['user']) ){

$user =mysql_real_escape_string($_REQUEST['user']); echo $user;

$result=mysql_query("UPDATE `user` SET `Block`=1 WHERE `Username` = '$user'")

or die(mysql_error()); echo $result;

if (!$result) {

die('Invalid query: ' . mysql_error()); echo"aaa";

}

(33)

82

Segmen Program 4.1. Fungsi Block/Unblock User (Lanjutan)

echo "<script

type='text/javascript'>alert('berhasil delete $user');</script>";

Segmen Program 4.22. Fungsi Block/Unblock User header("Location: user.php"); } } if( isset($_GET['user_unblock']) ){ $user =mysql_real_escape_string($_REQUEST['user_unblock']);

$result=mysql_query("UPDATE `user` SET `Block`=0 WHERE `Username` = '$user'")

or die(mysql_error()); echo $result;

if (!$result) {

die('Invalid query: ' . mysql_error()); echo"aaa"; } if($result){ echo "<script type='text/javascript'>alert('berhasil delete $user');</script>"; header("Location: user.php"); } }

Fungsi Login Admin

Fungsi ini digunakan untuk login pada halaman admin. Fungsi ini membutuhkan

parameter username dan password untuk dilakukan validasi dengan data pada

database. Fungsi Login Admin dapat dilihat pada Segmen Program 4.23.

(34)

83

Segmen Program 4.23. Fungsi Login Admin

function validationcheck(){

if (document.mylogin.username.value == "") { alert("Please Enter Username.");

document.mylogin.username.focus();

} else if (document.mylogin.password.value == "") { alert("Please Enter Password.");

document.mylogin.psw.focus(); } else { alert("berhasil"); <?php $user="zgxzgend_yoel"; $pass="yoel1yoel2"; $host="101.50.1.33"; $db="zgxzgend_ta";

mysql_connect($host, $user, $pass) or die (mysql_error);

mysql_select_db($db);

session_start(); //mulai session, krena kita akan menggunakan session pd file php ini

//include 'config.php'; //hubungkan dengan config.php untuk berhubungan dengan database

$username=$_POST['username']; //tangkap data yg di input dari form login input username

$password=$_POST['password']; //tangkap data yg di input dari form login input password

$username = stripslashes($username); $password = stripslashes($password);

(35)

84

Segmen Program 4.23. Fungsi Login Admin (Lanjutan)

$password = mysql_real_escape_string($password);

$query=mysql_query("select * from Admin where Username='$username' and Password='$password'"); //melakukan pengampilan data dari database untuk di cocokkan $xxx=mysql_num_rows($query); //melakukan pencocokan

if($xxx==TRUE){ // melakukan pemeriksaan kecocokan dengan percabangan.

$_SESSION['username']=$username; //jika cocok, buat session dengan nama sesuai dengan username

header("location:user.php"); // dan alihkan ke index.php

}else{ //jika tidak tampilkan pesan gagal login ?> alert("gagal/password salah") <?php } ?> } }

Referensi

Dokumen terkait

Maka dibutuhkan reaktor shunt untuk menstabilkan tingkat tegangan sehingga pada sistem saluran transmisi antara Tasikmalaya-Depok dapat menyalurkan daya dengan

Sekarang kamu jadi tahu kan, bagaimana cara diet yang sehat dan tepat? Bahkan kamu gak perlu repot, karena Xavola dapat membantu kamu untuk turunkan berat badan

Jasa konstruksi menyeluruh di bidang konstruksi industri dan proses antara lain pertambangan, konstruksi pembangkit tenaga listrik, kimia dan fasilitas terkait, konstruksi

Proses yang digunakan untuk memproduksi alumunium adalah proses elektrolisa dengan memakai metoda Hall-Heroult katoda yang dipakai PT INALUM masih di impor dari

1) Sebagian besar ISPA adalah disebabkan virus dan tidak berespon pada terapi antibiotik. Suatu kenyataan yang sering tidak diperhatikan, akibatnya penderita mendapatkan

Metode ini akan digunakan dalam penelitian yang akan diarahkan pada masalah PT LEN Persero, yaitu pengaruh budaya dan komitmen organisasi terhadap kinerja

Dengan ini menyatakan bahwa Karya Tulis Ilmiah dengan judul “Analisis Kualitatif Senyawa Boraks Pada Produk Otak-otak Bermerk Yang Beredar di Kecamatan Banyudono” merupakan