Pages

Coding

Atasi penasaranmu dari coding java yang belum kamu ketahui.

Wawasan

Jadikan dirimu orang yang berwawasan agar orang lain menghargaimu.

Programmer

Tak ada programmer yang bodoh, hanya waktu dan usaha yang menjadi masalah.

Monday, April 23, 2018

WEB Service - Arsitektur REST dengan Framework Codeigniter

Hai, kali ini saya mendapat tugas membuat desain dan implementasi sistem informasi akademik sederhana menggunakan arsitektur web service Rest dan diimplementasikan menggunakan Apache, MySql, PHP dengan framework CodeIgniter. Tabel yang digunakan mahasiswa, dosen, matakuliah, dan krs. Operasi PHP ke table berupa add, edit, delete

Dalam program ini yang digunakan adalah framework Codeigniter sebagai client dan server. Bahan yang dibutuhkan sebagai berikut:

  1. Download akademik, rest_client dan rest_server dari github
  2. Dan XAMPP sebagai localhost dari program Apache HTTP Server dan  MySQL database, jika belum punya silahkan cari di google dan buka sebagai localhost

Setelah bahan sudah ada, berikut langkah pengerjaannya:
  1. Ekstrak dan taruh akademik.sql, rest_client.zip dan rest_server.zip di C:\xampp\htdocs\
  2. Kemudian buka browser dan ketik localhost/rest_client/ maka akan muncul tampilan seperti gambar disamping
  3. Selanjutnya buka tab baru dan ketik
    localhost/rest_server/ maka akan muncul tampilan seperti gambar disamping
  4. Setelah itu pada localhost XAMPP import akademik.sql terlebih dahulu untuk melakukan langkah selanjutnya














Sampai disini kita tinggal mengkonfigurasi dan mengedit coding dari Codeigniter. Caranya sebagai berikut: 


1. Buka file routes.php pada  C:\xampp\htdocs\rest_client\application\config cari dan ganti coding seperti ini $route['default_controller'] = 'mahasiswa'; . Penggantian coding tersebut bertujuan agar default tampilan controller web yang dibuka adalah dari file mahasiswa.php 
2. Setelah itu buka file routes.php pada C:\xampp\htdocs\rest_server\application\config cari dan ganti coding seperti ini $route['default_controller'] = 'mahasiswa'; .Penggantian coding tersebut bertujuan agar default tampilan controller web yang dibuka adalah dari file Mahasiswa.php yang ada pada C:\xampp\htdocs\rest_server\application\controllers
3. Pada tahapan ini kita sudah bisa membuka tampilan server - client mahasiswa dan tampilan database akademik. Selanjutnya buka file mahasiswa.php pada  C:\xampp\htdocs\rest_client\application\controllers . Ubahlah coding nama menjadi dosen, nim menjadi nama, id_jurusan/jurusan menjadi matakuliah, dan alamat menjadi krs
4. Lakukan tahapan tersebut pada file Mahasiswa.php yang ada di C:\xampp\htdocs\rest_server\application\controllers
5. Selanjutnya kita diwajibkan mengubah konfigurasi coding list.php, edit.php, dan create.php yang ada pada C:\xampp\htdocs\rest_client\application\views\mahasiswa . Ubahlah coding nama menjadi dosen, nim menjadi nama, id_jurusan/jurusan menjadi matakuliah, dan alamat menjadi krs .
6. Dan ubah data tersebut juga pada database yang ada pada localhost. Maka tampilan controller web  pada client akan seperti berikut
Tampilan Controller Client


Tampilan Edit Data


7. Sampai tahapan ini tugas kita sudah akan selesai, selanjutnya kita harus menambahkan fungsi add pada tampilan controller client. Maka kita harus membuka file list.php yang ada pada C:\xampp\htdocs\rest_client\application\views\mahasiswa . Tambahkan coding <?php echo anchor('mahasiswa/create/'.$m->nama,'Add');?> pada line akhir setelah </table> . Maka tampilan controller client akan seperti berikut
Tampilan Controller Client


 Tampilan Tambah Data

8. Tampilan controller server akan seperti gambar berikut

Dan FINISH. Tugas kita membuat Arsitektur REST dengan Framework Codeigniter sudah selesai. Kita sekarang dapat menambahkan data, mengedit data, dan  menghapus data. Data yang ada pada tampilan client akan sama dengan data yang ada pada server dan database localhost. 

Secara garis besar View pada Codeigniter adalah informasi yang di tampilkan kepada User, sebuah View secara normal adalah sebuah laman web, tetapi di Codeigniter, sebuah View bisa dibuat menjadi sebuah penggalan halaman web seperti header atau footer.

Sedangkan Controller berguna sebagai perantara antara Model, View dan berbagai resources yang dibutuhkan untuk memproses HTTP Request dan mengenerate sebuah web page. 

Tugas Arsitektur Rest Codeigniter UTS yang sudah saya selesaikan saya upload di github klik disini atau di GD client, server, dan database

 

Monday, April 9, 2018

WEB Service - Arsitektur REST Untuk Menambahkan dan Menampilkan DB

Tugas 5 kuliah Web Service  
 
Nama : M.Imam Catur T.P
NIM  : 16.01.53.0187
 
 
Buatlah program menggunakan arsitektur REST untuk menambah dan menampilkan data mahasiswa 


1. Coding tambahjson.php

<html>
<head>
<title>Rest Web Services</title>
</head>
<body>
<a href="restjson.php">Lihat Datar Mahasiswa <br/></a>
<?php
if (isset ($_POST['nim'])) {
$url = 'http://localhost/webservice/jsonmhsw.php&#8217';
$data="{\"nim\":\"".$_POST['nim']."\",\"nama\":\"".$_POST['nama']."\",\"prodi\":\"".$_POST['progdi']."\"}";
echo "datanya".$data;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
//echo "response ".$response;
curl_close($ch);
}
?>
<form method="POST" action="tambahjson.php">
<table>
<tr>
<td>NIM</td>
<td><input type="text" name="nim" id="nim"></td>
</tr>
<tr>
<td>Nama</td>
<td><input type="text" name="nama" id="nama"></td>
</tr>
<tr>
<td>Progdi</td>
<td><input type="text" name="progdi" id="progdi"></td>
</tr>
<tr>
<tr>
<td><input type="submit" name="submit" id="submit" value="Tambah"></td>
<td></td>
</tr>
</table>
</form>
</body>
</html>


2. Coding restjson.php

    <?php
    // Check for the path elements
    // Turn off error reporting
    error_reporting(0);

    // Report runtime errors
    error_reporting(E_ERROR | E_WARNING | E_PARSE);

    // Report all errors
    error_reporting(E_ALL);

    // Same as error_reporting(E_ALL);
    ini_set("error_reporting", E_ALL);

    // Report all errors except E_NOTICE
    error_reporting(E_ALL & ~E_NOTICE);
    $path = $_SERVER[PATH_INFO];
    if ($path != null) {
    $path_params = spliti ("/", $path);
    }
    if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    if ($path_params[1] == null) {
    $con=mysqli_connect("localhost","root","","akademik");
    // Check connection
    if (mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $sql="SELECT nim,nama,prodi FROM mahasiswa";
    if ($result=mysqli_query($con,$sql))
    {
    // Fetch one and one row
    $arr = Array();
    while ($row=mysqli_fetch_assoc($result))
    {
    $arr[] = $row;
    }
    echo json_encode($arr);
    // Free result set
    mysqli_free_result($result);
    }
    mysqli_close($con);
    }
    else if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    if ($path_params[1] != null) {
    $con=mysqli_connect("localhost","root","","akademik");
    // Check connection
    if (mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    $sql="SELECT nim,nama,prodi FROM mahasiswa where nim = '$path_params[1]'";
    if ($result=mysqli_query($con,$sql))
    {
    // Fetch one and one row
    $arr = Array();
    while ($row=mysqli_fetch_assoc($result))
    {
    $arr[] = $row;
    }
    echo json_encode($arr);
    mysqli_free_result($result);
    }
    mysqli_close($con);
    }
    }
    }
    ?>


3. Coding jsonmhsw.php


    <?php
    // Check for the path elements
    // Turn off error reporting
    error_reporting(0);

    // Report runtime errors
    error_reporting(E_ERROR | E_WARNING | E_PARSE);

    // Report all errors
    error_reporting(E_ALL);

    // Same as error_reporting(E_ALL);
    ini_set("error_reporting", E_ALL);

    // Report all errors except E_NOTICE
    error_reporting(E_ALL & ~E_NOTICE);
    $path = $_SERVER[PATH_INFO];
    if ($path != null) {
    $path_params = spliti ("/", $path);
    }
    if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    if ($path_params[1] == null) {
    $con=mysqli_connect("localhost","root","","akademik");
    // Check connection
    if (mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $sql="SELECT nim,nama,prodi FROM mahasiswa";
    if ($result=mysqli_query($con,$sql))
    {
    // Fetch one and one row
    $arr = Array();
    while ($row=mysqli_fetch_assoc($result))
    {
    $arr[] = $row;
    }
    echo json_encode($arr);
    // Free result set
    mysqli_free_result($result);
    }
    mysqli_close($con);
    }
    else if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    if ($path_params[1] != null) {
    $con=mysqli_connect("localhost","root","","akademik");
    // Check connection
    if (mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    $sql="SELECT nim,nama,prodi FROM mahasiswa where nim = '$path_params[1]'";
    if ($result=mysqli_query($con,$sql))
    {
    // Fetch one and one row
    $arr = Array();
    while ($row=mysqli_fetch_assoc($result))
    {
    $arr[] = $row;
    }
    echo json_encode($arr);
    mysqli_free_result($result);
    }
    mysqli_close($con);
    }
    }
    }
    ?>



4. Gambar Data dan Hasil
 




 

Sunday, March 18, 2018

WEB Service - Program PHP untuk menampilkan tabel format XML

Tugas 2 kuliah Web Service

Nama : M.Imam Catur T.P
NIM  : 16.01.53.0187

Dipunyai database : akademik dan tabel mahasiswa dengan field sb:

nim varchar(15)

nama varchar(150)

alamat varchar(250)

progdi varchar(10)

Buatlah program php untuk menampilkan isi tabel mahasiswa dengan format XML


 1. Coding access.php

<?php
//Koneksi
$servername = "localhost";

$username = "root";

$password = "";

$dbname = "akademik";


// Membuat konesi

$conn = new mysqli($servername, $username, $password, $dbname);

// Mengecek koneksi

 if ($conn->connect_error)

 {

    die("Connection failed: " . $conn->connect_error);

 }


$sql = "SELECT nim, nama, alamat, progdi FROM mahasiswa";

$result = $conn->query($sql);


 if ($result->num_rows > 0)

 {

  // output data masing-masing row

  $doc = new DOMDocument();

  $doc->formatOutput = true;

  $r = $doc->createElement( "akademik" );

  $doc->appendChild( $r );

  while($row = $result->fetch_assoc())

  {

   $b = $doc->createElement( "mhsw" );

   echo "<br> nim: ". $row["nim"]. " - Nama: ". $row["nama"]. " "." - Alamat: " . $row["alamat"]." - Progdi: " . $row["progdi"] . "<br>";

   echo "<br> ";

   $nim = $doc->createElement( "nim" );

   $nim->appendChild

   (

   $doc->createTextNode( $row["nim"] )

   );

   $b->appendChild( $nim );



  $nama = $doc->createElement( "nama" );

  $nama->appendChild

  (

  $doc->createTextNode( $row["nama"] )

  );

  $b->appendChild( $nama );


  $alamat = $doc->createElement( "alamat" );

  $alamat->appendChild

  (

  $doc->createTextNode( $row["alamat"] )

  );

  $b->appendChild( $alamat );


  $progdi = $doc->createElement( "progdi" );

  $progdi->appendChild

  (

  $doc->createTextNode( $row["progdi"] )

  );

  $b->appendChild( $progdi );

  $r->appendChild( $b );

    }

} else {

    echo "0 results";

}

echo $doc->saveXML();

$doc->save("akademik.xml");

$conn->close();

?>


2. Gambar data dan hasil

Gambar data file php, sql dan xml



 Gambar data di localhost

Wednesday, December 28, 2016

Polimorphism itu apa sih?


Di dalam bahasa, sebuah kata Polimorphism terdiri dari 2 kata, yaitu Poly : "Banyak", dan Morph : "Bentuk" (Wikipedia). 
Secara singkat, Polymorphism adalah suatu obyek yang memiliki sifat yang sama dengan induknya atau pada class nya sendiri. Sifat objeknya ini bisa dalam bentuk yang berbeda-beda (dalam bentuk yang banyak). Pada Polymorphism, bisa terjadi banyak perubahan sifat pada subclass nya.

Polymorphism mempunyai 2 bentuk polymorphism yaitu:

1. Override
Override merupakan pendefinisian ulang suatu metode oleh subclass. Syarat Override yaitu nama metode, return type, dan parameter harus sama. Jika tidak sama maka bukan dianggap sebagai override tetapi metode yang baru pada subclass.

2. Overload
Overload merupakan pendefinisian ulang suatu metode dalam class yang sama. Syarat overload yaitu nama metode dan tipe parameter harus berbeda dalam class yang sama. Pada class anjing terdapat overload pada metode suara.

 Oke guys, saya kira cukup dari artikel saya. Silahkan buka artikel lain dari blog ini yang membahas lebih lanjut dari contoh program Overide dan Overload serta pembahasannya.
Salam Blogger 😊

Tuesday, December 27, 2016

Contoh Program Gaji Sederhana

Salam blogger 😀
Oke guys, kali ini saya bagi ilmu sama kalian semua yang lagi cari coding Program Gaji dengan bahasa java yang saya buat dengan Software Netbeans. Oke langsung aja ke inti pembahasannya.

Silahkan comot codingnya. Jangan asal copas, saran saya pelajari juga codingnya biar bisa dan paham.

package program.gaji;

//Paket yang diperlukan
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.Scanner;
public class ProgramGaji {

  
    //Program utama
    public static void main(String[] args)
throws IOException  {
       
        InputStreamReader isr=new InputStreamReader (System.in);
        BufferedReader br=new BufferedReader(isr);
        Scanner Input=new Scanner (System.in);
        BufferedReader jab=new BufferedReader (new InputStreamReader (System.in));
        BufferedReader gol=new BufferedReader (new InputStreamReader (System.in));
       
        //Deklarasi variable
        int gaji=0;
        int tunjab,tunker;
        char golongan,jabatan;
        double pajak,tunjak,gatot;
      
      
        //Input nama
        System.out.print ("Nama Karyawan        :");
        String Nama=br.readLine();
        //Input golongan
        System.out.print ("Golongan (A,B,C,D)   :");
        golongan=(char) gol.read();
        //Input jumlah anak
        System.out.print ("Jumlah Anak          :");
        int jumnak=Input.nextInt();
        //Input masa kerja
        System.out.print ("Masa Kerja(tahun)    :");
        int masa=Input.nextInt ();
        //Input kode jabatan
        System.out.print ("Kode Jabatan (M,S,K) :");
        jabatan=(char) jab.read();   
               
       
       //Menguji golongan karyawan
        if (golongan =='A'||golongan=='a'){
            gaji =200000;
        }
        else if (golongan =='B'||golongan=='b'){
            gaji=150000;
        }
        else if (golongan =='C'||golongan=='c'){
            gaji=100000;
        }
        else {
            gaji=75000;
        }
       
      
        //Menguji jabatan karyawan
        if (jabatan=='M'||jabatan=='m'){
            tunjab=200000;
        }
        else if (jabatan=='S'||jabatan=='s'){
            tunjab=150000;
        }
        else {
            tunjab=100000;
        }
              
        //Menguji masa kerja
        if (masa<=1){
            tunker=100000;
        }
        else if (masa<=5){
            tunker=150000;
        }
        else {
            tunker=200000;
        }
       
       
        //Perhitungan gaji
        pajak=(gaji*0.01);
        gatot= (gaji+tunjab+tunker)-pajak;
       
        //Tampilan Output
        System.out.println ("================================================");
        System.out.println ("         Slip Gaji Karyawan PT.SENTOSA          ");
        System.out.println ("________________________________________________");
        System.out.println ("Nama Karyawan         : "+Nama);
        System.out.println ("Gaji Pokok              : "+gaji);
        System.out.println ("Tunjangan Jabatan         : "+tunjab);
        System.out.println ("Tunjangan Masa Kerja     : "+tunker);
        System.out.println ("Gaji Total              : "+gatot);
                         
    }
}



Berikut tampilan outputnya:
Tampilan Output

Contoh Program Gaji dengan Polimorphism sederhana

Hallo guys, salam blogger. 😀😊
Kali ini saya akan beri contoh coding java Program gaji dengan sentuhan Polimorphisme. Sebelumnya dulu saya pernah buat program gaji sederhana dengan Software Netbeans. Tapi, kali ini saya akan beri contoh program gaji yang saya buat dengan software JCreator.

Oke langsung saya bahas deh, kali ini saya sediakan Coding dan tampilannya. Silahkan di coba, copas aja dan run.


//----Program Gaji Dengan Polimorphism ----
//paket yang digunakan
import java.io.*;
import java.util.Scanner;

//class pegawai
class Pegawai{
    //deklarsi dari class pegawai
    String nama, nip;
   
    //method  input pegawai
    public void InputPegawai() throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        Scanner a=new Scanner(System.in);
       
        System.out.print("Masukkan Nama: ");
        nama=a.nextLine();
        System.out.print("Masukkan NIP: ");
        nip=a.nextLine();
                   
    }
    //method cetak pegawai
    public void CetakPegawai(){
    System.out.println("\n\t----Gaji Pegawai----");
    System.out.println("Nama: "+nama);
    System.out.println("NIP: "+nip);
   
    }
}
//class tetap -> pegawai
class Tetap extends Pegawai{
    //deklarasi dari class tetap
    int jum_masuk, gol, gatot, gapok, u_transport;
   
   
    //method input tetap
    public void InputTetap() throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        Scanner b=new Scanner(System.in);
       
        InputPegawai();
        System.out.print("Masukkan Golongan [1/2/3]:");
        gol=b.nextInt();
        System.out.print("Masukkan Jumlah Masuk:");
        jum_masuk=b.nextInt();
        System.out.print("");
    }
    //method cetak tetap
    public void CetakTetap(){
       
        //kondisi
        if(gol==1){
            gapok=750000;
            u_transport=12500;
        }
        else if (gol==2){
            gapok=1000000;
            u_transport=17500;
        }
        else if(gol==3){
            gapok=1200000;
            u_transport=10000;
        }
        else{
            System.out.print("Masukkan Anda Salah!");   
        }
        CetakPegawai();
        gatot=gapok+(jum_masuk*u_transport);
       
        System.out.println("Gaji Total:"+gatot);
        System.out.println("");
    }
}
//class kontrak -> pegawai
class Kontrak extends Pegawai{
    //deklarasi class kontrak
    int jum_masuk, gatot;
       
    //method input kontrak
    public void InputKontrak() throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        Scanner c=new Scanner(System.in);
       
        InputPegawai();
        System.out.print("Masukkan Jumlah Masuk:");
        jum_masuk=c.nextInt();
        System.out.print("");
    }
    //method cetak kontrak
    public void CetakKontrak(){
        CetakPegawai();
        gatot=jum_masuk*150000;
       
        System.out.println("Gaji Total:"+gatot);
        System.out.println("");
    }
}
//class penurunan/output
class Penurunan{
    public static void main(String[]args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
            Tetap T = new Tetap(); //memanggil class tetap
            Kontrak K = new Kontrak(); //memanggil clas kontrak


        //deklarasi class penurunan
        int pilihan, lanjut;
       
            System.out.println("========================");
            System.out.println("------PROGRAM Gaji Karyawan------");
           
            //percabangan
            do{
            Scanner d=new Scanner(System.in);
            System.out.println("========================");
            System.out.println("1. Pegawai Tetap");
            System.out.println("2. Pegawai Kontrak");
            System.out.println("");
            System.out.print("Masukkan Pilihan:");
            pilihan=d.nextInt();
            //kondisi
           
            if(pilihan==1){
           
               
                T.InputTetap();
                T.CetakTetap();
            }
            else if(pilihan==2){
               
               
                K.InputKontrak();
                K.CetakKontrak();
            }
            else{
                System.out.println("Masukkan Anda Salah!");
            }
        System.out.print("Lanjutkan? Ya[1]/Tidak[2]=");
        lanjut=d.nextInt();
        System.out.print("");   
    }while(lanjut==1);


    System.out.print("\t\tTERIMAKASIH");
}}



Oke, coding udah selesai silahkan comot, dan silahkan comment kalo mau tanya-tanya. Dan tampilan output ada dibawah. Salam blogger 😊

Tampilan outputnya seperti ini:

Tampilan Output