Minggu, 01 Juni 2014

Integrasi Aplikasi Enterprise

Halo semua.
setelah sekian lama ga ngeblog akhirnya bikin postingan baru lagi.
ehehehe...

kali ini saya akan membuat postingan bagai manacara membuat aplikasi berbasis web menggunakan PHP..
postingan ini juga bermaksud untuk memenuhi tugas kampus yang di berikan oleh dosen mata kuliah Integrasi Aplikasi Enterprise, bapak Taufik Nur Hadi.

oke langsung saja kita mulai

pertama, berikut adalah soal kasus yang beliau berikan.



Keterangan :
  1. Komputer 1 dan Komputer 2 terhubung melalui kabel LAN atau Wireless
  2. Pada Komputer 1 terdapat sebuah database yang berisi 2 tabel. Yaitu table pegawaiyang memiliki fieldsebagai berikut : nip,password, nama, jenis_kelamin, nohp dan alamat.Dan table rekap absensi pegawai yang memiliki field sebagai berikut : id_rekap, nip, jumlah_masuk, jumlah_alfa, bulan_absen.
  3. Pada Komputer 1 terdapat sebuah aplikasi yang dapat mengelola data pegawai (add, edit , delete dan list pegawai) dan sebuah report dari rekap absensi
  4. Pada Komputer 2 terdapat sebuah database yang berisi 2 tabel, yaitu table pegawai (sama seperti table pegawai pada komputer 1) dan table absensi pegawai yang memiliki field sebagai berikut : id_absen, tgl_absen (datetime), nip, keterangan (enum : masuk, alfa).
  5. Pada Komputer 2 terdapat sebuah aplikasi yang dapat mengelola data pegawai (add, edit , delete dan list pegawai) dan aplikasi bagi pagawai untuk melakukan absensi (absensi dapat dilakukan setelah login).
  6. Kedua data pegawai di kedua database di dua computer yang berbeda harus selalu sama / konsisten. Jika ada penambahan data pegawai baru melalui salah satu aplikasi disalah satu komputer, maka table pegawai dikomputer lain harus diupdate juga.
  7. Setiap akhir bulan harus ada proses otomatis untuk melakukan rekap absensi pegawai. Dan data rekap absensi tersebut harus disimpan di table rekap absensi pegawa yang berada di computer 1.
Tambahan :
  1. Buatlah aplikasi diatas menggunakan PHP
  2. Gunakan database MySQL
  3. Gunakan format data berikut ini dalam melakukan pertukaran data antar komputer:
    1. FixLength
    2. Variable position
    3. Delimiter ( _ )
    4. XML
    5. JSON


nah, mari langsung saja pada progress pengerjaannya.
pertama hal yang kita butuhkan yaitu database-nya.
maka install dahulu XAMPP, kalau belum punya bisa di download di sini



setelah di install buka XAMPP, lalu klik start pada Apache dan MySql untuk menjalankan database dan servernya.
lalu buat database yang kita butuhkan untuk soal diatas
  1. Untuk komputer 1 terdapat sebuah database yang berisi 2 tabel. Yaitu table pegawaiyang memiliki fieldsebagai berikut : nip,password, nama, jenis_kelamin, nohp dan alamat.Dan table rekap absensi pegawai yang memiliki field sebagai berikut : id_rekap, nip, jumlah_masuk, jumlah_alfa, bulan_absen.
  2. Untuk komputer 2 terdapat sebuah database yang berisi 2 tabel, yaitu table pegawai (sama seperti table pegawai pada komputer 1) dan table absensi pegawai yang memiliki field sebagai berikut : id_absen, tgl_absen (datetime), nip, keterangan (enum : masuk, alfa).
table pegawai komputer 1

table rekap absensi pegawai komputer 1

table absensi komputer 2

table pegawai komputer 2


setelah databse siap, kemudian kita buat skrip - skrip php untuk integrasinya
- pertama buat form pegawai
------------------------------------------------------------------------------------------------------------
<?php
include "koneksi.php";
if(isset($_GET['edit'])){
$q=mysql_query("select * from pegawai where nip='$_GET[id]'");
$r=mysql_fetch_array($q);
$nip=$r['nip'];
$nama=$r['nama'];
$jk=$r['jenis_kelamin'];
$alamat=$r['alamat'];
$noHp=$r['no_hp'];

}else{
$nip="";
$nama="";
$jk="";
$nama="";
$noHp="";

}
?>

<html>
<head>
<title> Form Pegawai </title>
</head>
<body>
<div id="header"></div>

<div id="container">
<form action="simpanPegawai.php" method="post">
<table>
<tr>
<td><b>NIP</b></td>
<td><b>:</b> <input type="text" name="nip" id="nip" required="required"
placeholder="NIP Pegawai" value="<?php echo $nip; ?>" />
<input type="hidden" name="id" id="id" />
</td>
</tr>

<tr>
<td><b>Nama</b></td>
<td><b>:</b> <input type="text" name="nama" id="nama" required="required"
placeholder="Nama Pegawai" value="<?php echo $nama; ?>" />
</td>
</tr>

<tr>
<td><b>Password</b></td>
<td><b>:</b> <input type="password" name="password" value="<?php echo $password; ?>" />
</td>
</tr>

<tr>
<td><b>Jenis Kelamin</b></td>
<td><b>:</b>
<select name="jk" id="jk">
<option value="<?php echo $jk; ?>"><?php echo $jk; ?> </option>
<option value="L">L</option>
<option value="P">P</option>
</select>
</td>
</tr>

<tr>
<td><b>No HP</b></td>
<td><b>:</b> <input type="text" name="noHP" id="noHP" required="required"
placeholder="Nomor HP" value="<?php echo $noHp; ?>" />
</td>
</tr>

<tr>
<td><b>Alamat</b></td>
<td><b>:</b> <textarea name="alamat" id="alamat" required="required">
<?php echo $alamat; ?>
</textarea>
</td>
</tr>

<tr>
<td><input type="submit" name="simpan" />
</td>
</tr>

</table>
</form>

<table bgcolor="#000000">
                <tr bgcolor="#0000FF" style="color: #FFFFFF;">
                    <th>No</th>
                    <th>NIP</th>
                    <th>Nama</th>
                    <th>Jenis Kelamin</th>
                    <th>No Telp</th>
                    <th>Alamat</th>
                    <th>Aksi</th>
                </tr>
            <?php
                $tampil="select * from pegawai";
                $q=mysql_query($tampil);
                $no=0;
                while($record=mysql_fetch_array($q)){
                    $no++;
                    ?>
                <tr style="background-color: #FFFFFF;">
                            <td><?php echo $no; ?></td>
                            <td><?php echo $record['nip']; ?></td>
                            <td><?php echo $record['nama']; ?></td>
                            <td><?php echo $record['jenis_kelamin']; ?> </td>
                            <td><?php echo $record['no_hp']; ?></td>
                            <td><?php echo $record['alamat']; ?></td>
                            <td><a href="?edit&id=<?php echo $record['nip']; ?>">Edit </a> |
                                <a href="?hapus&id=<?php echo $record['nip']; ?>">Hapus </a>
                            </td>
                        </tr>
                    <?php
                }
            ?>
            </table>


</div>
</body>
</html>
------------------------------------------------------------------------------------------------------------
- berikut tampilan dari form pegawai

- script simpan pegawai
------------------------------------------------------------------------------------------------------------
<?php
include "koneksi.php";

$id=$_POST['id'];
$nip=$_POST['nip'];
$password=$_POST['password'];
$nama=$_POST['nama'];
$jk=$_POST['jk'];
$noHp=$_POST['noHP'];
$alamat=$_POST['alamat'];

if(empty($id)){
$sql= "INSERT INTO `pegawai` (`nip`, `password`, `nama`, `jenis_kelamin`, `no_hp`, `alamat`) VALUES ('".$nip."', '".$password."', '".$nama."', '".$jk."', '".$noHp."', '".$alamat."');"; //query sql yang digunakan untuk menginputkan data ke tabel pegawai
mysql_query($sql);

}else{

if(!empty($password)){
$editPass=", 'password'='$password'";
}
$sql="UPDATE pegawai set nip='".$nip."',
nama='".$nama."',
jenis_kelamin='".$jk."',
no_hp='".$noHp."',
alamat='".$alamat."'
$editPass
where nip='".$id."'";
mysql_query($sql);

}

//CSV
/* $jenisIntegrasi="csv";
$data=$id."_".$nip."_".$password."_".$nama."_".$jk."_".$noHp."_".$alamat; */

$kembali="http://localhost/Komputer2/formPegawai.php";
$kirim="http://localhost/Komputer1/integrasiTerima.php";

/*Fix Length
$jenisIntegrasi ="Fix Length";
$panjang=array(10,10,255,1,12,500,255);
$fl=array($id,$nip,$nama,$jk,$no_hp,$alamat);
if(!empty($password)){
$fl[6]=$password;

}

for($i=0;$i<count($fl);$i++){
if(strlen($f1[$i])<$panjang[$i]){
$sisa=($panjang[$i])-strlen($f1[$i]);
for($j=0;$j<$sisa;$j++){
$f1[$i]=$f1[$i]." ";

}
}
}
$data="";
for($i=0;$i<count($f1);$i++){
$data=$data.$f1[$i];
}
$data=$data."_";

*/

//JSON
$jenisIntegrasi="json";
$data="&id=".$id."&nip=".$nip;
echo "<script>document.location.href='$kirim?jenis=$jenisIntegrasi&data=$data&kembali=$kembali'</script>";


// include "integrasiKirim.php";

?>

------------------------------------------------------------------------------------------------------------

- script integrasi kirim, pada komputer 2
------------------------------------------------------------------------------------------------------------

<!DOCTYPE html>

<html lang="en">
<head>
<meta charset="utf-8">
<title>Integrasi</title>

<script>
var xmlhttp=new XMLHttpRequest();
function kirimData()
{

var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.location.href="<?php echo $kembali; ?>";
// document.getElementById("container").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","http://localhost/Komputer1/integrasiTerima.php?jenis=<?php echo $jenisIntegrasi."&data=".$data; ?>",true);
xmlhttp.send();
}
</script>
</head>
<body onload="kirimData()">

<div id="container">
</div>

</body>

</html>
------------------------------------------------------------------------------------------------------------

- Script koneksi, script ini yang digunakan untuk menhubungkan database di komputer 1 dengan database di komputer 2
------------------------------------------------------------------------------------------------------------

<?php
$database="komputer2";
$host="localhost";
$user="root";
$password="";
$konek=mysql_connect($host,$user,$password);
$db=mysql_select_db($database);

?>
------------------------------------------------------------------------------------------------------------

- Script integrasi terima, pada komputer 1
------------------------------------------------------------------------------------------------------------

<?php
include "koneksi.php";

$jenis=$_GET['jenis'];

if($jenis=="csv"){
   $data=explode("_",$_GET['data']);
   $id=$data[0];
   $nip=$data[1];
   $password=$data[2];
   $nama=$data[3];
   $jk=$data[4];
   $noHp=$data[5];
   $alamat=$data[6];
  // echo $_GET['data'];

  }else if ($jenis=="fixLenght"){
$panjang= array(10,10,255,1,12,500,255);
$data= $_GET['data'];
$data=str_replace("%20"," ",$data);
$arPeg[0]=substr($data,0,$panjang[0]);
for($i=1;$i<count($panjang);$i++){
$mulai=0;
$batas=$panjang[$i];
for($j=0;$j<$i;$j++){
$mulai=$mulai+$panjang[$j];
 }
 $arPeg[$i]=substr($data,$mulai,$batas);
}
$id=trim($arPeg[0]);
$nip=trim($arPeg[1]);
$password=trim($arPeg[2]);
$nama=$arPeg[3];
$jk= $arPeg[4];
$noHp= $arPeg[5];
$alamat= $arPeg[6];

if($password== '-'){
$password="";
}
} else if ($jenis=="json"){
$id="";
if(isset($_GET['id'])){
$id=$_GET['id'];
}
$json-url = 'http://localhost/Komputer2/JSON.php?nip='.$_GET['nip']."&id";
$ch = curl_init ($json_url);
$json_string="";
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array('Content-type: application/json'),
CURLOPT_POSTFIELDS => $json_string

);
curl_setopt_array($ch, $options); //Setting curl option
$result = curl_exec($ch); //Getting JSON result string
$decode = json_decode($result, true);
$data; //=array();;
foreach($decode['pegawai'] as $row){
$nip=>$row['nip'];
$nama=>$row['nama'];
$password=>$row['password'];
$jenis_kelamin=>$row['jenis_kelamin'];
$no_hp=>$row['no_hp'];
$alamat=>$row['alamat'];
}
// print_r($data);

}

// Eksekusi Data ke database
if(empty($id)){
       $sql= "INSERT INTO `pegawai` (`nip`, `password`, `nama`, `jenis_kelamin`, `no_hp`, `alamat`) VALUES ('".$nip."', '".$password."', '".$nama."', '".$jk."', '".$noHp."', '".$alamat."');";
       mysql_query($sql); //query sql untuk memasukkan data ke dalam tabel pegawai
   
 // echo $sql;
   }else{
$editPass="";
if(!empty($password)){
$editPass=", 'password'='$password'";

}
$sql="UPDATE pegawai set nip='".$nip."', //digunakan untuk mengedit data yang telah di inputkan sebelumnya
nama='".$nama."',
jenis_kelamin='".$jk."',
no_hp='".$noHp."',
alamat='".$alamat."'
$editPass
where nip='".$id."'";
$mysql_query($sql);
   }
   echo"<script>document.location.href='".$_GET['kembali']."'</script>";
?>
------------------------------------------------------------------------------------------------------------

- Script JSON, sebagai tipe data integrasinya menggunakan Java Script Object Notation
------------------------------------------------------------------------------------------------------------

<?php
include "koneksi.php";
$nip="";
if(isset($_GET['nip'])) {
$nip=$_GET['nip'];

}
$id=$_GET['id'];
$sql="select * from pegawai where nip='".$nip."'";
$q=mysql_query($sql);
$rec=mysql_fetch_array($q);
$arPegawai=array(
"pegawai"=>array(
"nip"=>$rec['nip'],
"nama"=>$rec['nama'],
"password"=>$rec['password'],
"alamat"=>$rec['alamat'],
"no_hp"=>$rec['no_hp'],
"jenis_kelamin"=>$rec['jenis_kelamin']
)
);

echo json_encode($arPegawai);


?>
------------------------------------------------------------------------------------------------------------
sampai di sini dulu penjelasan dari saya, bila ada kesempatan akan saya update lagi.
terimakasih sudah berkujung dan semoga dapat bermanfaat
apabila membutuhkan informasi tambahan dapat mengunjungi website dari bapak Taufik Nur Hadi, selaku dosen saya di http://www.taufiknuradi.com/

TERIMA KASIH ^_^

Santiaji Trapsilo
1106110109
SI-35-03
Sistem Informasi
Telkom Enginering School
Telkom University

Tidak ada komentar:

Posting Komentar