Senin, 30 Mei 2016

FP PWEB PPDB with Framework CI

Web dibuat dengan menggunakan Framework Code Igniter dan Bootstrap.


Rancangan Basis Data

Basis data dirancang menggunakan MySql. Rancangan terdiri dari 6 Tabel. 

Tabel users
Tabel sekolah
Tabel rilis_pengumuman
Tabel prioritas pilihan

Nilai mata pelajaran dimasukkan ke tabel users

Interface

Siswa
Siswa masuk ke web dan melakukan login sesuai username dan password yang telah diberikan. Setelah masuk siswa dapat mendaftar dan melengkapi biodata. Setelah itu siswa dapat memilih pilihan prioritas sekolah sebanyak tiga sekolah. Jika selesai maka siswa dapat memberi berkas nilai kepada pihak sekolah untuk diverifikasi. Setelah pemberkasan selesai siswa dapat menunggu hasil pengumuman di tab pengumuman.

Sekolah
Sekolah masuk ke web dan melakukan login. Setelah masuk sekolah dapat memasukkan nilai yang telah diberikan oleh siswa. Dan dapat melakukan verifikasi terhadap nilai tersebut jika. Sekolah juga dapat melihat siswa sementara yang diterima sampai nantinya rilis batas akhir pengumuman oleh admin. 

Admin
Admin masuk ke web dan melakukan login. Setelah masuk admin dapat pergi ke beberapa pilihan. Untuk pilihan siswa, admin dapat melakukan verifikasi dan pembatalan verifikasi serta menghapus akun siswa. Admin juga dapat membuat akun baru untuk siswa. Untuk nilai, admin dapat memasukkan nilai siswa bersangkutan ataupun memperbaharuinya. Di pilihan sekolah admin dapat mendaftarkan sekolah lain, dan dapat menghapus sekolah dari daftar. dan di pilihan pengumuman admin dapat melakukan rilis untuk pengumuman yang dapat di lihat di akun siswa.

Arsitektur sistem dan penjelasannya

public_html/
ppdb/
–––– application/ 
–––––––– config/ 
–––––––––––– autoload.php 
–––––––––––– ... 
–––––––––––– doctypes.php 
–––––––––––– foreign_chars.php 
–––––––––––– grocery_crud.php 
–––––––––––– ... 
–––––––– controllers/ 
–––––––––––– Home.php 
–––––––––––– Login.php
–––––––––––– Main.php 
–––––––––––– Verifylogin.php  
–––––––––––– index.html 
–––––––––––– Welcome.php 
–––––––– libraries/ 
–––––––––––– index.html 
–––––––– models/ 
–––––––––––– index.html 
–––––––––––– Main_model.php
–––––––––––– User.php  
–––––––– views/ 
–––––––––––––––– umum/
–––––––––––––––––––– p_loginpage.php
–––––––––––––––– admin/
–––––––––––––––––––– admin_footer.php
–––––––––––––––––––– admin_header.php
–––––––––––––––––––– admin_nav.php
–––––––––––––––––––– charts.php
–––––––––––––––––––– form.php
–––––––––––––––––––– index.php
–––––––––––––––––––– widgets.php
–––––––––––––––– siswa/
–––––––––––––––––––– siswa_head.php
–––––––––––––––––––– siswa_footer.php
–––––––––––––––––––– siswa_isi_pengumuman.php
–––––––––––––––––––– siswa_isi_biodata.php
–––––––––––––––––––– siswa_isi_sekolah.php
–––––––––––––––––––– siswa_nav.php
–––––––––––––––– sekolah/
–––––––––––––––––––– sekolah_head.php
–––––––––––––––––––– sekolah_footer.php
–––––––––––––––––––– sekolah_isi_pengumuman.php
–––––––––––––––––––– sekolah_isi_inputnilai.php
–––––––––––––––––––– sekolah_isi_verifikasi.php
–––––––––––––––––––– sekolah_nav.php
–––––––––––– index.html 
–––––––––––– welcome_message.php 
–––– font/ 
–––––––– glyphicons-halflings-regular.eot 
–––––––– glyphicons-halflings-regular.svg
–––––––– glyphicons-halflings-regular.ttf
–––––––– glyphicons-halflings-regular.woff
–––– sass/
–––––––– bootstrap/
–––––––––––– mixins/
–––––––––––––––– _alerts.scss
–––––––––––––––– ...
–––––––––––––––– _vendor-prefixes.scss
–––––––––––– _alerts.scss
–––––––––––– _badges.scss
–––––––––––– ... 
–––––––––––– _wells.scss
–––––––––––– index.html
–––––––– _bootstrap-compass.scss
–––––––– _bootstrap-mincer.scss
–––––––– _bootstrap-sprockets.scss
–––––––– _bootstrap.scss
–––––––– index.html
–––––––– style.scss
–––– style/
–––––––– css/
–––––––––––– bootstrap-table.css
–––––––––––– bootstrap-theme.css
–––––––––––– ...
––––––––––––styles.css
–––––––– css2/
–––––––––––– animate.css

–––––––––––– icomoon.css
–––––––––––– ...
–––––––––––– style.css.map
–––– script/   
–––––––– js/
–––––––––––– bootsrap-datepicker.js
–––––––––––– bootstrap-table.js
–––––––––––– ...
–––––––––––– respond.min.js
–––––––– js2/
–––––––––––– bootstrap.min.js
–––––––––––– index.html
–––––––––––– ...
–––––––––––– respond.min.js
–––– system/ 
–––– user_guide/ 
–––– change_log.txt 
–––– example_database.sql 
–––– index.php 
–––– licence-grocery-crud.txt 
–––– license.tx

Model
Model berisi query yang dipanggil melalui controller. Di sini dipergunakan dua model terpisah yaitu user.php dan main_model.php. User.php di khususkan untuk menghandle session dari user yang login sedangkan main_model berisi query database yang dipergunakan di website sebagai penampil data, input data, hapus data, dan sebagainya.

Views
View berisi tampilan yang ditampilkan di website. Di sini dipisahkan menjadi empat yaitu umum,siswa, sekolah dan admin. Sesuai namanya siswa untuk menampilkan tampilan dari akun siswa, sekolah untuk menampilkan tampilan akun sekolah, dan admin menampilkan tampilan dari akun admin. Cara penampilan di view diatur juga sedemikian rupa yaitu dengan memisahkan bagian head, nav, body dan footer, yang mana load dari tampilan akan dipanggil satu persatu dari controller. Dibuat terpisah karena umumnya head,nav dan footer umumnya sama tampilannya, dan hanya bodynya yang isinya berbeda, di sini lah dimanfaatkan juga kelebihan dari CI.
Untuk Penjelasan tampilan-tampilan dari bodynya kurang lebih sesuai namanya seperti "sekolah_isi_pengumuman.php" maka itu merupakan php body yang berisi tampilan pengumuman untuk sekolah. Dan untuk admin memang agak berbeda charts.php untuk tampilan isi sekolah, forms.php untuk tampilan isi pengumuman, index.php untuk tampilan isi siswa  dan widgets.php untuk tampilan isi nilai siswa. CSS dan Js yang diletakkan terpisah juga dapat dipanggil melalui view. CSS dan Js yang diperlukan disini sebagian besar dipanggil atau dideklarasikan di bagian head.

CSS
CSS berisi pengaturan untuk tampilan yang disini menggunakan framework tampilan bootstrap. File-file CSS ini diletakkan terpisah dan dipanggil diview jika views membutuhkan. Dan pengaturan untuk pemakainnya juga diatur di views.

Script
Script di sini berisi file js atau java script. Hampir sama dengan CSS, yaitu meleteakkan file js di tempat terpisah yang kemudian dapat digunakan dengan cara dipanggil di view.

Asumi
Siswa mendapatkan username dan password melalui sekolah, dan username password telah dibuat oleh admin sebelumnya. Siswa dapat mendaftar dan menunggu hasil sesuai kebijakan yang ditentukan dan pengumuman kepada siswa akan muncul saat admin menggunakan tombol rilis pengumuman. Sekolah yang dituju dapat mengkonfirmasi data siswa secara online setelah sebelumnya siswa tersebut tersebut menyerahkan berkasnya dan melengkapi syarat offline dari sekolah bersangkutan. Kelulusan siwa akan diatur sesuai nilai tertinggi dan giliran verifikasi. Sekolah juga dapat memantau siswa mana saja yang masih asuk jangkauan kelulusan, selama proses berlangsung. Pembatalan verifikasi hanya bisa dilakukan admin dan admin dapat memodifikasi akun, ataupun menghapusnya. 

Jumat, 20 Mei 2016

Tutorial Grocery CRUD dan Contoh Pembuatan Database

Kali ini saya akan membuat tutorial tentang salah satu template di CodeIgniter yaitu grocery CRUD(Create, Replace, Update, Delete). Apa fungsinya? Fungsi dari Grocery CRUD adalah agar database kita bisa memiliki kemampuan umtuk melakukan Create, Replace, Update, Delete.

Berikut langkah-langkah dari pembuatan database menggunakan Grocery CRUD
1. Download Grocery CRUD dan copykan ke dalam folder CI
2. Buka folder ci/application/config/database.php menggunakan sublime text atau text editor lainnya, kemudian isikan code dibawah ini untuk me-replace code lama
<?php  
 defined('BASEPATH') OR exit('No direct script access allowed');  
 $active_group = 'default';  
 $query_builder = TRUE;  
 $db['default']['hostname'] = 'localhost';  
 $db['default']['username'] = 'root';  
 $db['default']['password'] = '';  
 $db['default']['database'] = 'my_new_cms';  
 $db['default']['dbdriver'] = 'mysqli';  
 $db['default']['dbprefix'] = '';  
 $db['default']['pconnect'] = TRUE;  
 $db['default']['db_debug'] = TRUE;  
 $db['default']['cache_on'] = FALSE;  
 $db['default']['cachedir'] = '';  
 $db['default']['char_set'] = 'utf8';  
 $db['default']['dbcollat'] = 'utf8_general_ci';  
 $db['default']['swap_pre'] = '';  
 $db['default']['autoinit'] = TRUE;  
 $db['default']['stricton'] = FALSE;  
 $db['default']['failover'] = array();  
3. Kita akan membuat controller. Buat file dengan nama Main.php dan save di folder ci/application/controllers, ketikkan code di bawah ini
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');  
 class Main extends CI_Controller {  
   function __construct()  
   {  
     parent::__construct();  
     $this->load->database();  
   }  
   public function index()  
   {  
     echo "<h1>Welcome to the world of Codeigniter</h1>";
   }  
 }  
4. Buat database baru di mysql dengan nama my_new_cms dan ketikkan syntax di bawah ini, syntax ini berisi tabel "employee" dengan beberapa data
 CREATE TABLE IF NOT EXISTS `employees` (  
  `employeeNumber` int(11) NOT NULL AUTO_INCREMENT,  
  `lastName` varchar(50) NOT NULL,  
  `firstName` varchar(50) NOT NULL,  
  `extension` varchar(10) NOT NULL,  
  `email` varchar(100) NOT NULL,  
  `officeCode` varchar(10) NOT NULL,  
  `file_url` varchar(250) CHARACTER SET utf8 NOT NULL,  
  `jobTitle` varchar(50) NOT NULL,  
  PRIMARY KEY (`employeeNumber`)  
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1703 ;  
 INSERT INTO `employees` (`employeeNumber`, `lastName`, `firstName`, `extension`, `email`, `officeCode`, `file_url`, `jobTitle`) VALUES  
 (1002, 'Murphy', 'Diane', 'x5800', 'dmurphy@classicmodelcars.com', '1', '', 'President'),  
 (1056, 'Patterson', 'Mary', 'x4611', 'mpatterso@classicmodelcars.com', '1', '', 'VP Sales'),  
 (1076, 'Firrelli', 'Jeff', 'x9273', 'jfirrelli@classicmodelcars.com', '1', '', 'VP Marketing'),  
 (1088, 'Patterson', 'William', 'x4871', 'wpatterson@classicmodelcars.com', '6', '', 'Sales Manager (APAC)'),  
 (1102, 'Bondur', 'Gerard', 'x5408', 'gbondur@classicmodelcars.com', '4', 'pdftest.pdf', 'Sale Manager (EMEA)'),  
 (1143, 'Bow', 'Anthony', 'x5428', 'abow@classicmodelcars.com', '1', '', 'Sales Manager (NA)'),  
 (1165, 'Jennings', 'Leslie', 'x3291', 'ljennings@classicmodelcars.com', '1', '', 'Sales Rep'),  
 (1166, 'Thompson', 'Leslie', 'x4065', 'lthompson@classicmodelcars.com', '1', '', 'Sales Rep'),  
 (1188, 'Firrelli', 'Julie', 'x2173', 'jfirrelli@classicmodelcars.com', '2', 'test-2.pdf', 'Sales Rep'),  
 (1216, 'Patterson', 'Steve', 'x4334', 'spatterson@classicmodelcars.com', '2', '', 'Sales Rep'),  
 (1286, 'Tseng', 'Foon Yue', 'x2248', 'ftseng@classicmodelcars.com', '3', '', 'Sales Rep'),  
 (1323, 'Vanauf', 'George', 'x4102', 'gvanauf@classicmodelcars.com', '3', '', 'Sales Rep'),  
 (1337, 'Bondur', 'Loui', 'x6493', 'lbondur@classicmodelcars.com', '4', '', 'Sales Rep'),  
 (1370, 'Hernandez', 'Gerard', 'x2028', 'ghernande@classicmodelcars.com', '4', '', 'Sales Rep'),  
 (1401, 'Castillo', 'Pamela', 'x2759', 'pcastillo@classicmodelcars.com', '4', '', 'Sales Rep'),  
 (1501, 'Bott', 'Larry', 'x2311', 'lbott@classicmodelcars.com', '7', '', 'Sales Rep'),  
 (1504, 'Jones', 'Barry', 'x102', 'bjones@classicmodelcars.com', '7', '', 'Sales Rep'),  
 (1611, 'Fixter', 'Andy', 'x101', 'afixter@classicmodelcars.com', '6', '', 'Sales Rep'),  
 (1612, 'Marsh', 'Peter', 'x102', 'pmarsh@classicmodelcars.com', '6', '', 'Sales Rep'),  
 (1619, 'King', 'Tom', 'x103', 'tking@classicmodelcars.com', '6', '', 'Sales Rep'),  
 (1621, 'Nishi', 'Mami', 'x101', 'mnishi@classicmodelcars.com', '5', '', 'Sales Rep'),  
 (1625, 'Kato', 'Yoshimi', 'x102', 'ykato@classicmodelcars.com', '5', '', 'Sales Rep'),  
 (1702, 'Gerard', 'Martin', 'x2312', 'mgerard@classicmodelcars.com', '4', '', 'Sales Rep');
5. Ubah file Main.php menjadi berikut ini
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');  
 class Main extends CI_Controller {  
   function __construct()  
   {  
     parent::__construct();  
     /* Standard Libraries of codeigniter are required */  
     $this->load->database();  
     $this->load->helper('url');  
     /* ------------------ */   
     $this->load->library('grocery_CRUD');  
   }  
   public function index()  
   {  
     echo "<h1>Welcome to the world of Codeigniter</h1>";//Just an example to ensure that we get into the function  
     die();  
   }  
   public function employees()  
   {  
     $this->grocery_crud->set_table('employees');  
     $output = $this->grocery_crud->render();  
     echo "<pre>";  
     print_r($output);  
     echo "</pre>";  
     die();  
   }  
 }  
6. Ketikkan localhost/nama_folder/index.php/employee, jika berhasil maka akan keluar seperti dibawah ini
stdClass Object  
 (  
   [output] => Your output will appear here....  
   [js_files] => Array  
     (  
       [763b4d272e158bdb8ed5a12a1824c94f494954bd] => http://grocery_crud/public/grocery_crud/themes/datatables/js/jquery-1.6.2.min.js  
       [0b677f3fc6fb25b4baf39eb144222116c5b60254] => http://grocery_crud/public/grocery_crud/themes/flexigrid/js/cookies.js  
       [ec3ae62b8d5838972e858fe54447bd4bd8d79f88] => http://grocery_crud/public/grocery_crud/themes/flexigrid/js/flexigrid.js  
       [2c0ff56d0cbc6f80a5ef9c770d478f0e00c3170d] => http://grocery_crud/public/grocery_crud/themes/flexigrid/js/jquery.form.js  
       [474495ff1e895eab81fb8afba4db9b06c15b19af] => http://grocery_crud/public/grocery_crud/themes/flexigrid/js/jquery.numeric.js  
     )  
   [css_files] => Array  
     (  
       [732b03aa54d124f062757b71e5560acdc5632ba6] => http://grocery_crud/public/grocery_crud/themes/flexigrid/css/flexigrid.css  
     )  
 )  
7. Sekarang kita akan membuat view, buat file our_templates.php dan simpan di folder ci/application/views, ketikkan code berikut ini
 <!DOCTYPE html>  
 <html lang="en">  
 <head>  
   <meta charset="utf-8" />  
 <?php   
 foreach($css_files as $file): ?>  
   <link type="text/css" rel="stylesheet" href="<?php echo $file; ?>" />  
 <?php endforeach; ?>  
 <?php foreach($js_files as $file): ?>  
   <script src="<?php echo $file; ?>"></script>  
 <?php endforeach; ?>  
 <style type='text/css'>  
 body  
 {  
   font-family: Arial;  
   font-size: 14px;  
 }  
 a {  
   color: blue;  
   text-decoration: none;  
   font-size: 14px;  
 }  
 a:hover  
 {  
   text-decoration: underline;  
 }  
 </style>  
 </head>  
 <body>  
 <!-- Beginning header -->  
   <div>  
     <a href='<?php echo site_url('examples/offices_management')?>'>Offices</a> |   
     <a href='<?php echo site_url('examples/employees_management')?>'>Employees</a> |  
     <a href='<?php echo site_url('examples/customers_management')?>'>Customers</a> |  
     <a href='<?php echo site_url('examples/orders_management')?>'>Orders</a> |  
     <a href='<?php echo site_url('examples/products_management')?>'>Products</a> |   
     <a href='<?php echo site_url('examples/film_management')?>'>Films</a>  
   </div>  
 <!-- End of header-->  
   <div style='height:20px;'></div>   
   <div>  
     <?php echo $output; ?>  
   </div>  
 <!-- Beginning footer -->  
 <div>Footer</div>  
 <!-- End of Footer -->  
 </body>  
 </html>  
8. Ubah file Main.php menjadi seperti berikut ini
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');   
  class Main extends CI_Controller {   
   function __construct()   
   {   
    parent::__construct();   
    /* Standard Libraries of codeigniter are required */   
    $this->load->database();   
    $this->load->helper('url');   
    /* ------------------ */    
    $this->load->library('grocery_CRUD');   
   }   
   public function index()   
   {   
    echo "<h1>Welcome to the world of Codeigniter</h1>";//Just an example to ensure that we get into the function   
      die();   
   }   
   public function employees()   
   {   
    $this->grocery_crud->set_table('employees');   
    $output = $this->grocery_crud->render();   
    $this->_example_output($output);     
   }   
   function _example_output($output = null)   
   {   
    $this->load->view('our_template.php',$output);    
   }   
  }   
9. Ketikkan localhost/nama_folder/index.php/employee, jika benar maka akan muncul seperti gambar di bawah ini
Demikian tutorial tentang Grocery CRUD

Jumat, 01 April 2016

Tugas ETS Pemrograman Web

Link: takequest.com

1.

Domain: IDR 115.000/tahun 
Hosting: IDR 552.000/tahun

Langkah-langkah pengerjaan Web:
Karena web merupakan tugas kelompok, bagian pembelian dan persiapan disiapkan oleh teman saya, saya mulai penjelasan saat sudah masuk CPanel
1. Pemilihan dan penginstalan CMS, kami menggunakan Wordpress 4.4.2
2. Menentukan tema melalui Wordpress
3. Setting halaman utama, slider, posting, dan halaman-halaman yang kemungkinan akan digunakan
4. Menginstall plugin untuk login dan signup user
5. Post job sebagai uji coba
6. Membuat category dari job placement

Fitur Web dan progress
Contoh Slider


Login dan Register member


Halaman Member membuat postingan job placement

Halaman interaksi member, untuk media sosial seperti facebook kami tidak menemukan plugin yang sesuai dengan versi wordpress yang saat ini kami gunakan, jadi untuk sementara masih terbatas di halaman ini interaksi antar member


2.
koneksi.php
<?php   
  $servername = "localhost";   
  $username = "";   
  $password = "";   
  $db = "etspweb";   
  $conn = mysqli_connect($servername, $username, $password);   
  if ($conn->connect_error) {   
   die("Connection failed: " . $conn->connect_error);   
  }    
  ?>   


login.php
<?php  
  include ('koneksi.php');  
 ?>  
 <!DOCTYPE html>  
 <html>    
    <head>  
    <title> Halaman Login </title>  
    </head>    
    <body>    
       <form method="POST" action="koneksi.php">   
            <label>Username: </label>   
            <input name="username" type="text"><br>  
            <label class="col-md-4 control-label">Password :</label>   
            <input name="password" type="password"><br>  
            <button class="btn btn-primary" type="submit">Login</button>  
       </form>    
    </body>  
 </html>  

tampilkandata.php
<html>    
    <head>  
    <title> Data MK </title>   
    </head>    
    <body>   
       <h1>Daftar Mata Praktikum dan Jumlah Praktikan</h1>   
       <table>   
         <thead>   
            <tr>   
            <th>No.</th>    
            <th>Kode</th>    
            <th>Mata Praktikum</th>    
            <th>Jumlah Praktikan</th>    
            </tr>    
         </thead>    
         <tbody>   
            <?php    
              include "koneksi.php";    
              $count = 1;    
              $result = $conn->query("select * from 'mk'");   
              if(mysqli_num_rows($result) > 0)   
              {   
                 while($row = mysqli_fetch_assoc($result))   
                 {   
                   echo"<tr>";    
                   echo "<td>".$count."</td>";    
                   echo "<td>".$row["kode_mk"]."</td>";    
                   echo "<td>".$row["nama_mk"]."</td>";    
                   echo "<td>".$row["jumlah_praktikan"]."</td>";    
                   echo "</tr>";    
                   $count++;   
                 }    
              }   
            ?>   
         </tbody>    
       </table>   
       <input type="submit" value="Tambah data MK">   
    </body>    
  </html>    

Jumat, 11 Maret 2016

10K Line Of Code

Untuk menjadi ahli dalam suatu bidang, dibutuhkan waktu yang tidak sedikit, istilahnya adalah jam terbang. Menurut hukum 10.000 jam, untuk menjadi ahli, seseorang perlu melakukan kegiatan yang ditekuninya itu selama 10 ribu jam. Teori 10 ribu jam ini dimuat dalam buku “Outliers” karya Malcolm Gladwell. Perumpamaan ini sedikit diubah dalam pemrograman web kali ini, bukan dengan menggunakan waktu, tetapin menggunakan jumlah line yang telah kita kerjakan. Istilah ini bisa di sebut dengan 10000 Line Of Code(LOC). Dalam menempuh 10K LOC ini saya baru mencapai 113/10000 line, berikut ini adalah sedikit dokumentasi dari apa yang sudah saya kerjakan sebelumnya, source code bisa dilihat di Google Drive saya di alamat http://intip.in/10KLOC

TM4connection.php

<?php  
   $servername = "localhost";  
   //$username = "Hendra Darmawan";  
   //$password = "HDN116337";  
   // Create connection  
   $conn = mysqli_connect($servername);  
   // Check connection  
   if (!$conn)  
   {  
     die("Connection failed: ". mysqli_connect_error());  
   }  
   echo "Connected successfully";  
   ?>  
Pada bagian ini, kita hanya mengecek koneksi kita, untuk mengecek koneksi ini, kita membutuhkan Program Web Server, dan saya menggunakan XAMPP yang umum digunakan. Jika kita ingin membuka file php yang telah kita buat setelah menginstall XAMPP langkah-langkahnya adalah:
1. Buka XAMPP Control Panel
2. Akan muncul window seperti di bawah ini

3. Klik Start pada bagian Apache, kemudian buka browser, dan ketikkan localhost/(namafolder)/(namafile_.php, untuk penyimpanan file sendiri, masuk ke folder XAMPP, kemudian htdocs

4. Jika code anda benar maka pada browser anda akan ada tulisan Connected Succesfully
Hasil




TM4.php
<html>  
   <head>  
    <title> Variabel </title>  
   </head>  
   <body>  
    <?php  
      $nilai_1 = 10;  
      $nilai_2 = 3;  
      $nilai_3 = 2 * $nilai_1 + 8 * $nilai_2;  
      echo "Nilai = ", $nilai_3+56;  
      echo "<br>";  
      $jumlah=$nilai_1+$nilai_2;  
      echo "Hasil dari $nilai_1+$nilai_2 adalah : $jumlah";  
      echo "<br><br> ";  
      echo "Nama : Hendra <br>";  
      echo "NRP : 5114100073"  
      ?>  
   </body>  
 </html>  
Pada bagian ini, kita hanya akan melakukan operasi matematika yang simple, dan mencetak Nama dan NRP
Hasil







TM4array.php

<html>  
   <head>  
    <title>Pemrograman PHP dengan array</title>  
   </head>  
   <body>  
    <?php  
      $nama[]="Darmawan";  
      $nama[]="Hendra";  
      echo $nama[1], $nama[0];  
      echo "<br>";  
      $kampus[1]="ITS";  
      $kampus[2]="Surabaya";  
      echo "Kampusku adalah $kampus[1] $kampus[2]";  
      ?>  
   </body>  
 </html>  
Pada bagian ini, kita akan belajar menggunakan array di dalam php, bila array tidak didefinisikan dengan suatu bilangan, maka index akan array akan dimulai dengan 0, seperti pada nama, dan apabila array didefinisikan dengan suatu bilangan, maka index akan sesuai dengan bilangan tersebut seperti pada contoh ITS dan Surabaya
Hasil




CodeIgniter
Download file codeigniter di website codeigniter, extract file di htdocs, kemudian buat file php pada application/views, satu untuk menampilkan hello world dengan nama hello.php, satu untuk menampilkan error dengan nama error.php, dan satu lagi untuk menampilkan data phonebook dengan nama phonebook.php
Source Code hello.php
<!DOCTYPE html>  
 <HTML>  
   <HEAD>  
    <TITLE>  
      Hello World  
    </TITLE>  
   </HEAD>  
 <BODY>  
        <H1>Hello World</H1>  
 </BODY>  
 </HTML>  

Source Code error.php
 <!DOCTYPE html>  
 <HTML>  
   <HEAD>  
    <TITLE>  
      Error :v  
    </TITLE>  
   </HEAD>  
 <BODY>  
        <H1>Error ...</H1>  
 </BODY>  
 </HTML>  

Source Code phonebook.php

<!DOCTYPE html>  
 <HTML>  
   <HEAD>  
    <TITLE>  
      PHP  
    </TITLE>  
   </HEAD>  
 <BODY>  
        <H1>This is the data of the phonebook database</H1>  
 </BODY>  
 </HTML>  

Untuk menjalankan 3 code diatas, kita membutuhkan code lagi di application/controller, buat 3 file, Hello.php, Error.php, dan Phonebook.php
Source Code Hello.php
<?php  
 defined('BASEPATH') OR exit('No direct script access allowed');  
 class Hello extends CI_Controller {  
      public function index()  
      {  
           $this->load->view('hello');  
      }  
 }  

Source Code Error.php
<?php  
 defined('BASEPATH') OR exit('No direct script access allowed');  
 class Error extends CI_Controller {  
      public function index()  
      {  
           /*$this->load->view('error');*/  
           echo 'Error...';  
      }  
 }  

Source Code Phonebook.php

<?php  
 defined('BASEPATH') OR exit('No direct script access allowed');  
 class Phonebook extends CI_Controller {  
      public function index()  
      {  
           $this->load->view('phonebook');  
      }  
 }  

Kemudian buka file routes.php di /application/config menjadi
 $route['default_controller'] = 'hello';  
 $route['404_override'] = 'error';  
 $route['translate_uri_dashes'] = FALSE; 

Senin, 30 November 2015

FILESYSTEM IN USERSPACE (FUSE)

Ya, dalam postingan kali ini, kita akan membahas FUSE. Apa itu FUSE? Sebelum membahas FUSE kita harus memahami apa itu FIlesystem.

File System/sistem berkas adalah struktur logika yang digunakan untuk mengendalikan akses terhadap data yang ada pada harddisk.
Dalam File System, terdapat berbagai jenis-jenisnya dan penggunaan algoritma yang berbeda. Semakin baru jenis dari sebuah File System, maka semakin bagus pula kualitas dari File System tersebut.

Misalnya FAT (File Allocation Table). Jenis partisi terdahulu pada Windows yang kemudian diperbaharui dengan adanya FAT-16, FAT -32, dan yang terakhir adalah jenis NTFS (New Technology File System).
Pada Linux, terdapat jenis File System EXT 2 (Extended 2), Swap (Virtual Memory), dan lain-lain. File System terbaru pada Linux adalah EXT 4 yang tentunya lebih baik dari versi-versi EXT yang lainnya.
Filesystem in Userspace (FUSE) merupakan mekanisme sistem operasi untuk sistem operasi Unix-like yang memungkinkan pengguna tidak ber-hak istimewa menciptakan file system mereka sendiri tanpa mengubah kode kernel. Hal ini dicapai dengan menjalankan kode file system di userspace, sedangkan modul FUSE hanya menyediakan "jembatan" untuk antarmuka kernel yang sebenarnya.


Module kernel FUSE dan FUSE library berhubungan melalui sebuah special file descriptor yang didapatkan dengan membuka /dev/fuse. FUSE kernal module meneruskan request ke aplikasi fuse anda. aplikasi anda memerintahkan fuse cara menjawab request. FUSE kernal module dan FUSE library berkomunikasi lewat file deskriptor spesial yang diperoleh dengan membuka /dev/fuse. file ini dapat terbuka berkali-kali dan file deskriptor yang diperoleh diteruskan ke mount syscall, untuk menyesuaikan deskriptor dengan filesystem mount.


Installasi FUSE: 
1. Download FUSE dari http://fuse.sourceforge.net/ pada bagian Download stable release
2. Extract file tar.gz dan masuk ke direktori FUSE. (tar –xvzf fuse-2.9.4.tar.gz)
3. Lakukan installasi FUSE dengan cara : 
       a. Gunakan hak akses super user (sudo su)
       b. Ketikkan perintah ./configure
       c. Ketikkan perintah make
       d. Ketikkan perintah make install
4. FUSE siap digunakan

Ketikkan code berikut ini

#include <fuse.h>#include <stdio.h>#include <string.h>#include <unistd.h>#include <fcntl.h>#include <dirent.h>#include <errno.h>#include <sys/statfs.h>
static const char *dirpath = "/home/zavox/Documents"; static int xmp_getattr(const char *path, struct stat *stbuf){ int res; char fpath[1000]; sprintf(fpath,"%s%s",dirpath,path); res = lstat(fpath, stbuf); if(res == -1) { return -errno; } return 0;}
static int xmp_getdir(const char *path, fuse_dirh_t h, fuse_dirfil_t filler){ char fpath[1000]; if(strcmp(path,"/") == 0) { path=dirpath; sprintf(fpath,"%s",path); } else sprintf(fpath, "%s%s",dirpath,path); int res = 0; DIR *dp; struct dirent *de; dp = opendir(fpath); if(dp==NULL) { return -errno; } while((de = readdir(dp))!=NULL) { res = filler(h, de->d_name, de->d_type); if(res!=0) break; } closedir(dp); return res;}
static struct fuse_operations xmp_oper ={ .getattr = xmp_getattr, //.readlink = xmp_readlink, .getdir = xmp_getdir, //.mknod = xmp_mknod, //.mkdir = xmp_mkdir, //.symlink = xmp_symlink, //.unlink = xmp_unlink, //.rmdir = xmp_rmdir, //.rename = xmp_rename, //.link = xmp_link, //.chmod = xmp_chmod, //.chown = xmp_chown, //.truncate = xmp_truncate, //.utime = xmp_utime, //.open = xmp_open, //.read = xmp_read, //.write = xmp_write, //.release = xmp_release, //.fsync = xmp_fsync, //.readdir = hello_readdir};
int main(int argc, char *argv[]){ return fuse_main(argc, argv, &xmp_oper);}

Code diatas merupakan conto template, jadi jika ingin mencoba FUSE, hanya perlu mengganti dirpath saja, untuk menjalankan program ketik gcc -Wall [nama file].c `pkg-config fuse –cflags –libs` -o [nama file]

Kemudian ketikkan mkdir [nama folder] nama folder bebas

Kemudian ketikkan ./[nama file] /tmp/fuse

Jika berhasil, dan anda menggunakan Ubuntu, maka pada folder device akan keluar [nama folder] dibawah drive HDD yang berisi filesystem dengan direktori "Documents"