Selasa, 03 Juni 2014

Integrasi Aplikasi Enterprise (lajutan...)

oke...
kali ini saya akan melanjutkan progress dari tugas integrasi yang kemarin.
kali ini saya akan membuat aplikasi untuk menampilkan rekap absensi dari pegawainya dengan pencarian.

pertama membuat form Rekap Absen Pegawainya

script rekapAbsen.php
------------------------------------------------------------------------------------------------------------
<HTML>
<head>
<titte><h1>Rekap Absensi</h1></titte>
<head>
<body>

<div id="Container">
<form action="search.php" method="POST">
<table>
<tr>
<td>Pencarian Rekap Absensi</td>
</tr>
<tr>
<td><input type="text" name="nip" placeholder="nip"></td></tr>
<tr>
<td></td><td></td><td><input type="submit" name="SUBMIT" id="SUBMIT" value="Search"></td></tr>
</table>
</form>
<form>
<table bgcolor="#FFF1234">
                           <tr bgcolor="#DFE6EF" style="color:#FF3333;">
                           
                                   <th>NIP</th>
                                          <th>Jumlah Masuk</th>
                                                 <th>Jumlah Alfa</th>
                                                        <th>Bulan Absen</th>
                                                         
                        </tr>
                        <?php
                        include "koneksi.php";
                        $tampil="select * from rekap_absensi";
                        $q=$mysqli->query($tampil);
                        $no=0;
                        while ($record=$q->fetch_array()) {
                               $no++;
                               ?>
                        <tr style="background-color:#FFFFFF;">
    <td><center><?php echo $record ['nip'];?></center></td>
                            <td><center><?php echo $record ['jumlah_masuk'];?></center></td>
                            <td><center><?php echo $record ['jumlah_alfa'];?></center></td>
                            <td><center><?php echo $record ['bulan_absen'];?></center></td>
                            </td>
                         </tr>
                       <?php
                        }
                        ?>
                </table>
                   
</div>
</body>
</html>
------------------------------------------------------------------------------------------------------------
tampilan form rekap absensi

kemudian buat file search.php sebagai executor untuk pencariannya

script search.php
------------------------------------------------------------------------------------------------------------
<?php

 ?>
 <head>
<titte><h1>Rekap Absensi</h1></titte>
<head>
  <body>
<div id="Container">
<form action="search.php" method="POST">
<table>
<tr>
<td>Pencarian Rekap Absensi</td>
</tr>
<tr>
<td><input type="text" name="nip" placeholder="nip"></td></tr>
<tr>
<td></td><td></td><td><input type="submit" name="SUBMIT" id="SUBMIT" value="Search"></td></tr>
</table>
</form>
<form>
<table bgcolor="#FFF1234">
                           <tr bgcolor="#DFE6EF" style="color:#FF3333;">
                            
                                   <th>NIP</th>
                                          <th>Jumlah Masuk</th>
                                                 <th>Jumlah Alfa</th>
                                                        <th>Bulan Absen</th>
                                                           
                        </tr>;
<?php
include "koneksi.php";
$nip= $_POST['nip']; //mengambil nilai yang diinputkan di kotak pencarian nip
$q = " select * from rekap_absensi where nip like '%$nip%' "; //untuk menjalankan query sql pencarian
$result = $mysqli->query($q);
while ($record=$result->fetch_array()) {
                               
                               ?>
                        <tr style="background-color:#FFFFFF;">
    <td><center><?php echo $record ['nip'];?></center></td>
                            <td><center><?php echo $record ['jumlah_masuk'];?></center></td>
                            <td><center><?php echo $record ['jumlah_alfa'];?></center></td>
                            <td><center><?php echo $record ['bulan_absen'];?></center></td>
                            </td>
                         </tr>
                       <?php
                        }
                        ?>
                </table>
                    
</div>
</body>


------------------------------------------------------------------------------------------------------------
kemudian buka http://localhost/integrasi1/rekapAbsen.php (jangan lupa jalankan dulu servernya)
lalu input-kan nip pegawai yang akan di lihat rekapannya.
misal saya mencari dengan nip "1111"

maka hasil yang akan keluar yaitu hanya absensi untuk pegawai dengan nip "1111"


sekian dulu tulisan hari ini.
semoga ilmu yang saya share di sini dapat bermanfaat.
apa bila membutuhkan informasi tambahan dapat mengunjungi halaman berikut http://www.taufiknuradi.com/

TERIMAKASIH ^_^

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

Tentang Dosen Pengajar EAI

konichiwa minna-san...
minn-san wa genki desu ka??
^^

oke kali ini saya akan sedikit curhat tentang salah satu dosen pengajar mata kuliah EAI (Enterprise Application Integration) di kampus saya tercinta, Telkom University. mulai dari mana ya??

oke lah langsung aja.

Menurut saya beliau itu orangnya baik, murah senyum, rasa humornya tinggi jadi sering ngelucu juga pas lagi kuliah. Jadi, meskipun kuliah bersama beliau selalu dapet jadwal pagi (Rabu jam 06.30am dan Jum;at jam 08.30am), ngantuk di pagi hari jd gampang hilang saat beliau sedikit menambah guyonan khas beliau. Cara mengajar beliau juga termasuk enak dan mudah untuk di pahami.

Namun sayangnya beliau sering di sibukkan dengan kegiatan di luar kampus sehingga mengorbankan kegiatan perkuliahan. Apa lagi setelah pelaksanaan UTS kemarin. bisa di bilang jarang sekali bertemu dengan beliau di kelas.

Selain itu untuk masalah nilai beliau bisa di bilang sedikit jahat. Saat ujian bila ada coretan atau tipe-x nillai ujian di kurangi 10 point. Kasihan kan sama yang sudah berusaha atau mungkin gugup saat ujian terus salah tulis jadi makin takut salah. 

Namun ada hal yang menarik juga dari masalah nilai. Saat selesai pelaksanaan UTS kemarin, ada saat yang namanya Pengampunan dosa. Jadi kita di minta untuk mengisi absensi dan mengisi absen ersebut dapat nilai tambahan untuk nilai UTS.

ummmm... mungkin sampai di sini dulu curhatan di atas.
curhatan di atas saya buat dengan sepenuh hati tanpa ada maksud untuk menjelek - jelekkan beliau...

Sore ja..
mata ne~~

^^

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