Showing posts with label PHP. Show all posts
Showing posts with label PHP. Show all posts

Sunday 14 August 2016

Select Database -CRUD 1 -Codeigniter 3


Gambar 1. Select Database -CRUD 1 -Codeigniter3


Source SQL:

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

--
-- Struktur dari tabel `user`
--

CREATE TABLE IF NOT EXISTS `user` (
  `role` int(1) NOT NULL,
  `id_user` int(4) NOT NULL,
  `username` varchar(50) NOT NULL,
  `password` char(128) NOT NULL,
  `last_login` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `user`
--

INSERT INTO `user` (`role`, `id_user`, `username`, `password`, `last_login`) VALUES
(1, 1, 'hasta', 'C1CF6A5C0E168B080C446E7F5600B2404BA06387DC10D96014C941E5F82615AE96AA231727D38728AA446F26B6765CFDBA3E9A18F27E39B0A4B8EA2A541B4E41', '2016-08-14 00:00:00'),
(2, 2, 'andi', 'ED0D587073B2A487FA0638D970255179F0F4D298B33ED39317797681BB57E2277C560FFB9A3F75A81ADC261D4D7CEE06769380751D44E0669226D4CF042E44B0', '2016-08-14 00:00:00');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


1. atur database:
hostname: localhost
usernam:root
password:
database:latihanci
(Pengaturan database disesuaikan dengan database yang akan digunakan)

source code: database.php (...\application\config\database.php)
$db['default'] = array(
 'dsn' => '',
 'hostname' => 'localhost',
 'username' => 'root',
 'password' => '',
 'database' => 'latihanci',
 'dbdriver' => 'mysqli',
 'dbprefix' => '',
 'pconnect' => FALSE,
 'db_debug' => (ENVIRONMENT !== 'production'),
 'cache_on' => FALSE,
 'cachedir' => '',
 'char_set' => 'utf8',
 'dbcollat' => 'utf8_general_ci',
 'swap_pre' => '',
 'encrypt' => FALSE,
 'compress' => FALSE,
 'stricton' => FALSE,
 'failover' => array(),
 'save_queries' => TRUE
);

2. Panggil Library database menjadi autoload

source code: database.php (...\application\config\autoload.php)
$autoload['libraries'] = array('database');

3.Ubah default_controller agar control Login.php (nama controller yang akan kita buat) menjadi halaman depan/utama :

source code: database.php (...\application\config\autoload.php)

$route['default_controller'] = 'login';

4.
source code: Login.php (...\application\controllers\Login.php)
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller{
 function __construct(){
  parent::__construct();
  $this->load->model('data_user');
  $this->load->helper('url');

 }
 public function index(){
  $data['user']=$this->data_user->tampil_data()->result();
  $this->load->view('loginform',$data);

 }

}

5.
source code: data_user.php (...\application\models\data_user.php)
<?php
class data_user extends CI_Model{
 function tampil_data(){
  return $this->db->get('user');
 }
}

6.
source code: loginform.php(...\application\views\loginform.php)

<!DOCTYPE html>
<html>
<head>
 <title>Select Database CI3</title>
</head>
<body>
 <center><h1>Codeigniter 3</h1></center>
 <table style="margin:20px auto;" border="1">
  <tr>
   <th>No</th>
   <th>Role</th>
   <th>Id User</th>
   <th>Username</th>
   <th>Password</th>
   <th>Last Login</th>
  </tr>
  <?php 
  $no = 1;
  foreach($user as $u){ 
  ?>
  <tr>
   <td><?php echo $no++ ?></td>
   <td><?php echo $u->role ?></td>
   <td><?php echo $u->id_user ?></td>
   <td><?php echo $u->username ?></td>
   <td><?php echo $u->password ?></td>
   <td><?php echo $u->last_login ?></td>
  
  </tr>
  <?php } ?>
 </table>
</body>
</html>

Tuesday 2 August 2016

Melihat Jumlah Pengunjung / Visitor Menggunakan CPANEL

1. Buka Cpanel, cari MATRICS dengan sroll kebawah kemudian pilih Awstats
Gambar 1. Memilih Awstats

2. Pilih domain yang ingin diketahui jumlah pengunjungnya
Gambar 2. Memilih domain.

3. Pilih periode kunjungan / reported period yang ingin diketahui
Gambar 3. Memilih periode kunjungan

4. Jika ingin mengetahui jumlah kunjunagn pertahun, ganti nama bulan menjadi Year
Gambar 4. Mengetahui jumlah pengunjung pertahun

jumlah pengunjung dapat diketahui dengan melihat Unique visitor atau Number of visits 

Unique visitor = jumlah pengunjung yang unik
Number of visits= tanpa memperhatikan unik atau tidak

Sekian dan Trimakasihh..






Sunday 22 May 2016

HTTP dan HTTPS (1)

Saat kita mengakses gmail, facebook dan kaskus, pada address bar browser muncul HTTPS. HTTPS berfungsi sebagai pengamanan data yang kita kirim maupun kita terima dari server. Pengamanan data dilakukan dengan cara mengenkripsi data, sehingga data tidak dapat dibaca oleh orang lain (man-in-the-middle attack). Pada saat komunikasi data dari web browser/klien, data tidak  secara langsung dikirim ke server tetapi melalui internet provider sehingga ada celah bagi orang lain untuk mebaca data tersebut. Tugas enkripsi data dilakukan oleh SSL (Secure Sockets Layer). SSL menggunakan algoritma sebaik mungkin sehingga orang lain tidak bisa men-decryption, sedangkan HTTP mempunyai fokus bagaimana data ditampilkan ke web browser. Saat pertama kali menggunakan https pada website tertentu, kita akan dikirimi sertifikat SSL (komunikasi SSL antara  web browser dan web server untuk membagun komunikasi yang aman biasa disebut SSL Handshake). Persetujuan sertifikat menandai bahwa transaksi data yang aman menggunakan enkripsi telah dimulai. Tidak semua website yang diakses membutuhkan persetujuan sertifikat SSL karena ada certificate authorityCertificate authority merupakan kumpulan data website terpercaya yang sudah tertanam pada browser dan diakui terpercaya.


HTTP + SSL = HTTPS

Friday 20 May 2016

Perbedaan Cookies dan Session

Cookies dan session ada didalam bahasa PHP, keduanya digunakan untuk menyimpan aktivitas user terhadap website.

Perbedaan Cookies dan Session :

Cookies:
1. Cookies disimpan di sisi klien
2. Cookies tidak aman bagi klien karena cookies dapat disisipi program yang tidak diketahi klien.
Karena cookies tidak aman maka browser klien dapat di-set untuk menghapus cookies dan bahkan men-disable fungsi cookies. Menurut sumber lain cookies juga tidak aman bagi sisi server karena cookies dapat di-edit oleh klien.
3. Data yang disimpan ke dalam metode cookies dapat bertahan lebih lama dan dapat diatur waktu expired-nya.

Session
1. Disimpan disisi server
2. Lebih aman karena tidak ada file yang dimasukan ke sisi klien
3. Setelah web browser klien dimatikan maka data yang disimpan metode session akan hilang dan waktu expired juga tidak dapat diatur.

Penggunaan cookies dapat dijumpai saat login pada facebook. Cookies akan diset pada waktu login jika anda menghapus cookies lewat browser maka ketika facebook di-reload akan kembali ke halaman login.

Tutorial Penggunaan Session:
http://komputasistat.blogspot.com/2016/05/untuk-apa-dan-bagimana-menggunakan.html

sumber:
http://stackoverflow.com/questions/6253633/cookie-vs-session
http://www.hackingwithphp.com/10/1/0/cookies-vs-sessions




Thursday 19 May 2016

Login dan Logout Menggunakan $_SESSION, PHP, MySQL( Tutorial $_SESSION 2 )

Gambar 1. Form login pada tutorial ini

Gambar 2. Form selamat datang dan logout

Jika pada tutorial sebelumnya (Untuk Apa dan Bagimana Menggunakan $_SESSION ( Tutorial $_SESSION 1 )) mambahas apa dan bagaimana cara menggunakan $_SESSION. Pada kali tutorial ini akan membahas login dan logout sebagai contoh penggunaan $_SESSION.



1. CSS bootstrap hanya optional, tanpa bootstrap sistem tetap berjalan.
source code 1 (formlogin.html) :
<html>
<head>
    <link href="dist/css/bootstrap.min.css?v=<?php time();?>" rel="stylesheet">
</head>
<body>
 <div class="container">
   <div style="border: 5px solid green; padding:5px; margin:auto; width:300px;" >
     <form action="autentifikasi.php" method="POST">
        Username: <input type="text"  class="form-control"  name="username"></input><br/>
        Password: <input type="password" class="form-control" name="password"></input><br/>
        <input class="btn btn-success form-control" type="submit" value="login">
     </form>
     </div>
    </div>
</body>
</html>

2. autentifikasi.php digunakan untuk menyimpan status komputer clinet ($_SESSION["status"] = "login";). Status akan bernilai login bila username dan password ada dalam database.
source code 2 (autentifikasi.php):
<?php
  if(isset($_POST['username'])&isset($_POST['password'])){
    $username=$_POST["username"];
    $password=$_POST["password"]; 
    $conn = mysql_connect("localhost", "root", "");
    if ($conn) {
       mysql_select_db("dbblog");
       $sql="SELECT * FROM user1 WHERE username='".$username."' and password='".$password."'";
       $retval = mysql_query($sql , $conn );
       $num_rows = mysql_num_rows( $retval); //jika password n username ditemukan jumlah baris yang ditemukan 
       //berarti 1
    if($num_rows==1){
       session_start();
       $_SESSION["status"] = "login";
       header("Location: http://localhost:8012/contohsession/halamandepan.php");
       die();
 }
    else{
       header("Location: http://localhost:8012/contohsession/formlogin.html");
       die();
}
} 
  else
    echo "fail";
}
?>

3. Jika status tidak bernilai login maka dilempar atau dikembalikan ke formlogin.html. Button logout akan diarahkan ke url logoutautentifikasi.php.
source code 3 (halamandepan.php):
<?php
  session_start();
if($_SESSION["status"]!="login"){
  header("Location: http://localhost:8012/contohsession/formlogin.html");
  }
?>
<html>
<head>
    <link href="dist/css/bootstrap.min.css?v=<?=time();?>" rel="stylesheet">
</head>
<body>
 <div class="container">
     <div style="border: 5px solid green; padding:5px; margin:auto; width:300px;" >
       <form action="logoutautentifikasi.php" method="POST">
           <center>SELAMAT DATANG</center>
          <center>DI TUTORIAL $_SESSION 2</center><br/>
          <input class="btn btn-success form-control" type="submit" value="logout">
       </form>
        </div>
    </div>
</body>
</html>


4.  Status login dihapus kemudian diarahkan ke formlogin.html.
source code 4 (logoutautentifikasi.php):

<?php
session_start();
unset($_SESSION['status']);
header("Location: http://localhost:8012/contohsession/formlogin.html");
?>

Trimakasih..

Untuk Apa dan Bagimana Menggunakan $_SESSION ( Tutorial $_SESSION 1 )

Untuk Apa?

Saat kita menggunakan e-commerce, youtube kadang kita bingung kenapa mereka tahu apa yang sebelumnya kita buka. $_SESSION pada PHP dapat berperan menyimpan informasi apa yang dilakukan user terhadap website. $_SESSION juga dapat berguna pada saat login, agar kita tidak perlu login berkali-kali. Data $_SESSION disimpan pada server (Jika cokies disimpan pada komputer client). File php.ini pada server adalah tempat untuk mengatur path session yang disimpan.

Untuk mengatur session path pada php.ini:
; where MODE is the octal representation of the mode. Note that this
; does not overwrite the process's umask.
; http://php.net/session.save-path
session.save_path="C:\xampp\tmp"

Gambar 1. File session disimpan
Session akan menyimpan user-key setiap komputer clint. Apabila komputer client kembali mengakses website, user-key akan dicocokkan dengan dengan user-key client.

Bagimana Menggunakan?

1. Buat file session1.php yang berisi nilai yang akan disimpan dalam contoh adalah status dan hobi.
source code 1:
<?php
session_start();

$_SESSION["hobi"] = "Main Komputer";
$_SESSION["status"] = "Sudah Login";
echo "Session disimpan.";

?>

2. Buat file session2.php yang berguna untuk me-load data yang tadi sudah disimpan.
source code 2:
<?php
session_start();

echo "Hobi Anda " . $_SESSION["hobi"] . ".<br>";
echo "Status Anda " . $_SESSION["status"] . ".";
?>

3. Jalankan session1.php kemudian session2.php.

Gambar 2. Hasil akhir

Trimakasih..
Tutorial $_SESSION kedua akan membahas contoh penggunaan $_SESSION pada saat login.



Wednesday 18 May 2016

Membuat Halaman Blog Sederhana Menggunakan MySQL dan PHP (2)

Gambar 1. Hasil dari akhir dari tutorial
Jika pada tutorialny sebelumnya navigasi kehalaman lain meggunakan nomor halaman (Paging/Membuat Halaman Web Sederhana Menggunakan MySQL dan PHP), maka kali ini navigasi antar halaman dibuat seperti pada Gambar 1. Tipe halaman seperti ini sering kita jumpai pada blog-blog.

1. Pertama buat database seperti pada Gambar 2. Variabel waktuposting adalah variabel yang digunakan untuk menyimpan kapan tulisan anda di-insert. Nilai dari variabel ini juga digunakan untuk mengurutkan tulisan yang akan ditampilkan pada blog.

Gambar 2. Database yang digunakan pada tutorial .
-ket. database:
nomor bertipe integer
judul bertipe varchar (200)
tulisan bertipe text
waktuposting bertipe datetime


2. Untuk penjelasan dapat dilihat pada tutorial sebelumnya (Paging/Membuat Halaman Web Sederhana Menggunakan MySQL dan PHP), karena hampir sama. Untuk source code phpny dapat dilihat dibawah


source code 1:

<?php
$conn = mysql_connect("localhost", "root", "");
if ($conn) {
//echo "Connected successfully";
mysql_select_db("dbblog");
} 
else
echo "fail";


 
  $halamanke=0;
  if(isset($_GET['halamanke']))
  $halamanke=$_GET['halamanke'];


 
  $sql="SELECT * FROM posting ORDER BY waktuposting DESC LIMIT ".$halamanke.", 1";
  $retval = mysql_query($sql , $conn );

    while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
           echo"
                <b>".$row['judul']."</b><br/>
                ".$row['waktuposting']."<br/>
                ".$row['tulisan']."
               <br/> ";       
         }


  $sql="SELECT * FROM posting ";
             $retval = mysql_query($sql , $conn );
 $num_rows = mysql_num_rows( $retval);

if($halamanke==0)
  echo"<a href='halamanblog.php?halamanke=".($halamanke+1)."'>Halaman Lebih Lama</a>| ";
else if(($halamanke+1)==$num_rows )
  echo"|<a href='halamanblog.php?halamanke=".($halamanke-1)."'>Halaman Lebih Baru</a> ";
else{
 echo"<a href='halamanblog.php?halamanke=".($halamanke+1)."'>Halaman Lebih Lama</a> | ";
  echo"<a href='halamanblog.php?halamanke=".($halamanke-1)."'>Halaman Lebih Baru</a> ";
}
?>

Tuesday 17 May 2016

Paging/Membuat Halaman Web Sederhana Menggunakan MySQL dan PHP

Gambar 1. Halaman Web

Mungkin kita sering melihat halaman web yang seperti Gambar 1 atau bahkan sudah menerapkan pada blog/website namun belum tahu bagaimana cara membuatnya. Pada tutorial kali ini akan membahas bagaimana membuat halaman web yang sederhana menggunakan MySQL dan PHP  yang nantinya bisa dimodifikasi sendiri.


1. Karena sumber data berasal dari database maka langkah pertama adalah membuat koneksi ke database. Dalam tutorial ini menggunakan
host: localhost,
user name: root,
password: kosong/""
nama database: pagingdb

source code 1 :
<?php 
  $conn = mysql_connect("localhost", "root", "");
  if ($conn) {
    //echo "Connected successfully";
    mysql_select_db("pagingdb");
 } 
  else
    echo "fail";
?>

2. Jika sudah terkoneksi dengan database langkah selanjutnya menginisialisasi jumlah baris dalam satu tabel ($jumlahBarisPertabel) dan halaman yang pertama kali dibuka ($halamanke). Kita juga membuat kode untuk menerima nilai halaman yang dibuka ( $_GET['halamanke'] ), yang akan berguna pada saat nanti user memilih nomor halaman.
source code 2.
<?php
  $jumlahBarisPertabel=5;
  $halamanke=1;
  if(isset($_GET['halamanke'])) // untuk mengecek apakah ada nilai yang diberikan 
  $halamanke=$_GET['halamanke'];
?>


3. Untuk mendapatkan data dari database kita mengunakan query  "SELECT * FROM namaTabel LIMIT $barispertama$jumlahBarisPertabel". Variabel $jumlahBarisPertabel berguna untuk menentukan jumlah baris yang diambil, baris pertamanya ditentukan  dari nilai variabel $barispertama,

source code 3.

<?php
  $barispertama=($halamanke-1)*$jumlahBarisPertabel;
  $sql="SELECT * ". 
            "FROM anggotatim ".
            "LIMIT $barispertama, $jumlahBarisPertabel";
  $retval = mysql_query($sql , $conn );
?>

4. Setelah kita mendapatkan data yang diinginkan kemudian kita susun data tadi menjadi tabel (seperti yang dieksekusi pada source code 4).
source code 4:
<?php
    echo"<table>";
    while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
           echo"<tr>
                <td>".$row['Nama']."</td>
                <td>".$row['Nomor']."</td>
                </tr>";       
         }
    echo  " </table>";
?>

5. Untuk menampilkan nomor halaman dan membuka halaman tersebut kita perlu mengetahui jumlah dari seluruh baris yang ada dalam tabel yang ada. Kemudian kita susun informasi tadi menjadi nomor halaman seperti pada source code 5.
ceil() berguna untuk membulatkan bilangan desimal ke atas.

source code 5:
<?php
  $sql="SELECT * ". 
            "FROM anggotatim "; //Query untuk mendapatkan seluruh data
             $retval = mysql_query($sql , $conn );
 $num_rows = mysql_num_rows( $retval);// menghitung jumlah baris data

 for($i=1;$i<=ceil($num_rows/$jumlahBarisPertabel);$i++){ //menyusun nomor halaman
  echo"<a href='pagingsederhana.php?halamanke=".$i."'>".$i."</a> ";
 }
?>

6. Semua source code tadi dijadikan satu pada source code 6 dengan nama pagingsederhana.php. Jika di-run hasil nya seperti Gambar 2.

source code 6:
<?php
$conn = mysql_connect("localhost", "root", "");
if ($conn) {
//echo "Connected successfully";
mysql_select_db("pagingdb");
} 
else
echo "fail";


  $jumlahBarisPertabel=5;
  $halamanke=1;
  if(isset($_GET['halamanke']))
  $halamanke=$_GET['halamanke'];

  $barispertama=($halamanke-1)*$jumlahBarisPertabel;
  $sql="SELECT * ". 
            "FROM anggotatim ".
            "LIMIT $barispertama, $jumlahBarisPertabel";
  $retval = mysql_query($sql , $conn );

    echo"<table>";
    while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
           echo"<tr>
                <td>".$row['Nama']."</td>
                <td>".$row['Nomor']."</td>
                </tr>";       
         }
    echo  " </table>";

  $sql="SELECT * ". 
            "FROM anggotatim ";
             $retval = mysql_query($sql , $conn );
 $num_rows = mysql_num_rows( $retval);

 for($i=1;$i<=ceil($num_rows/$jumlahBarisPertabel);$i++){
  echo"<a href='pagingsederhana.php?halamanke=".$i."'>".$i."</a> ";
 }
?>

Gambar 2. Hasil dari source code  6

Tuesday 10 May 2016

Menjalankan / Run File PHP Dengan Interval Waktu Tertentu (CRON JOBS)


Cron jobs dibutuhkan untuk menjalankan sistem secara otomatis pada interval waktu tertentu. Pada umunya crons jobs yang terdapat pada cpanel digunakan untuk mengunduh data dan mengirimkan email. Pada tutorial kali ini akan membahas cara menggunakan crons job yang terdapat pada cpanel.


Sebelum mengoperasikan Crons Jobs terlebih dahulu kita buat file php yang akan dieksekusi
(tutorial ini menggunakan hosting 000webhost paket gratis)

1. Buka cpanel kemudian pilih file manager 
Gambar 1. Memilih File Manager
2. Memilih direktori public_html
Gambar 2. Memilih diretori public_html
3. Membuat file baru dengan memilih menu New File
Gambar 3. Membuat file baru
4. Tutorial ini menggunakan kode php yang berfungsi untuk mengirimkan email
berikut source code-nya:


<?php
// the message
$msg = "First line of text\nSecond line of text";

// use wordwrap() if lines are longer than 70 characters
$msg = wordwrap($msg,70);

// send email
mail("someone@example.com","My subject",$msg);
?>
sumber: http://www.w3schools.com/php/func_mail_mail.asp


Setelah file yang akan dieksekusi dibuat, mari kita setting Crons Job-nya
1. Pilih Cron Jobs.
Gambar 4, Memilih Cron Jobs
2. Atur interval waktu dan dimana letak file yang akan dieksekusi, kemudan pilih Add
(Gambar 5 akan mengeksekusi file setiap 5 menit sekali)
Gambar 5. Menambahkan tugas pada cron jobs

Selesai..
(Pada contoh tutorial, setiap 5 menit email akan masuk ke alamat yang ditujukan)



Sunday 18 October 2015

Mendapatkan JSON dari Server / URL untuk Android 1 ( Android JSON Parsing )

Text berformat JSON adalah salah satu cara untuk berkomunikasi antar platform. Pada tutorial kali ini, text berformat json digunakan untuk berkomunikasi antara website dengan android.

1. Buat New Project tutorial selengkapnya dapat dilihat pada : Membuat Aplikasi Dengan Android Studio 1
Gambar 1. Membuat project baru

2.  Copy source code dibawah ke MainActivity.java
(contoh text berformat json yang digunakan dari google maps api. Tutorial dapat dilihat pada: Mendapatkan Browser Api Key ( Google Maps Directions Api  )  . Dapat juga menggunakan text format json dari sumber lain coba googling)


import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class MainActivity extends AppCompatActivity {

    TextView outputTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        outputTextView = (TextView) findViewById(R.id.output);
        Async a = new Async();
        a.execute("");

    }
    //  AsyncTask untuk  dapat melakukan koneksi dengan website dan juga berfungsi untuk multithreading
    public class Async extends AsyncTask<String, Integer, String> {

        @Override
        protected String doInBackground(String... params) {
            String data = "";
            try {
                data = downloadUrl("https://maps.googleapis.com/maps/api/directions/json?key=API_KEY_ANDA&origin=-6.649919,106.84452099999999&destination=-6.646100000000001,106.844472&sensor=false&units=metric&mode=driving&alternatives=true");
            } catch (Exception e) {

                Log.d("Background Task", e.toString());
            }
            return data;
        }

        @Override
        protected void onPostExecute(String result) {
            outputTextView.setText(result);

        }
    }

    private String downloadUrl(String strUrl) throws IOException {
        String data = "";
        InputStream iStream = null;
        HttpURLConnection urlConnection = null;
        try {
            URL url = new URL(strUrl);

            // membuat http connection untuk berkomunikasi url
            urlConnection = (HttpURLConnection) url.openConnection();

            // mengkoneksikan dengan url
            urlConnection.connect();

            // Membaca data dari url
            // Data yang sudah terbaca merupakan sequance data /  byte streams
            iStream = urlConnection.getInputStream();

            //byte stream yang sudah didapat didecode menjadi characters stream menggunakan InputStreamReader
            //BufferedReader akan membaca text dari character-input stream, dan melakukan buffering characters sehenggiga dapat dengan efesien membaca character, array dan perbaris
            BufferedReader br = new BufferedReader(new InputStreamReader(iStream));

            //StringBuffer digunkan untuk memodifikasi character-input stream menjadi String
            StringBuffer sb = new StringBuffer();

            String line = "";
            while ((line = br.readLine()) != null) { // jika saat baris dibaca berisi null maka tidak akan diinput ke sb
                sb.append(line);
            }

            data = sb.toString();

            br.close();

        } catch (Exception e) {
            Log.d("Exception url", e.toString());
        } finally {
            iStream.close();
            urlConnection.disconnect();
        }

        return data;
    }
}


3. Copy source code dibawah ke activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <TextView android:text="@string/hello_world" android:layout_width="wrap_content"  android:id="@+id/output"
        android:layout_height="wrap_content" />

</RelativeLayout>



4. Copy code dibawah pada AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />

Gambar 2. Peletakan kode permission pada AndroidManifest.xml



Setelah itu run aplikasi



Hasilnya:
Gambar 3. Hasil dari program yang telah ditulis

Setelah Json diperoleh , json ini dapat diolah menggunakan method yang dimiliki object String namun dibutuhkan cara yang panjang maka biasanya menggunakan JSONObject .


Nantikan tutorial selanjutnya untuk mengolah text berformat Json diatas