Kamis, 12 Juli 2012

Membuat File Language di CodeIgniter

Buat apa sih bikin file language di CI?
Buat apa ya? gue juga bingung. Eeemmm, misalkan gini deh, kita punya sebuah website dimana website kita default language-nya english, lalu kita ingin mengubahnya menjadi bahasa indonesia.
Nah dari pada nge-ganti tuh bahasa dari awal, mending pake cara ini biar gampang.
Disini gue mau bikin sebuah halaman untuk buku tamu yang mempunyai 2 bahasa, Indonesia dan Inggris.
Pertama buat folder tambahan dengan nama indonesia pada directory application\language (sebelumnya sudah ada folder english di dalam directory tersebut)
Lalu setelah itu buat file bukutamu_lang.php di dalam folder indonesia (application\language\indonesia).

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

$lang['title'] = 'Buku Tamu';
$lang['field1'] = 'Nama';
$lang['field2'] = 'Email';
$lang['field3'] = 'Website';
$lang['field4'] = 'Komentar';
$lang['error_field1'] = 'Kolom nama harus diisi';
$lang['error_field2'] = 'Kolom email harus diisi';
$lang['error_field4'] = 'Kolom komentar harus diisi';


Lalu buat juga guestbook_lang.php di dalam folder english

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

$lang['title'] = 'Guest Book';
$lang['field1'] = 'Name';
$lang['field2'] = 'Email';
$lang['field3'] = 'Website';
$lang['field4'] = 'Comment';
$lang['error_field1'] = 'Column name must be filled';
$lang['error_field2'] = 'Column email must be filled';
$lang['error_field4'] = 'Column comment must be filled';


Oh iya, dianjurkan untuk mempersingkat URL-nya agar lebih enak dilihat dan lebih ringkas, bisa dilihat di sini Kalau mau memakai bahasa Indonesia, maka harus di set di file config.php baris 72.
Ganti 'english' menjadi 'indonesia'
Oke lanjut untuk membuat controller-nya.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Multilanguage extends CI_Controller {

function __construct()
{
parent::__construct();
$this->load->language('bukutamu');
}

function index()
{
$this->load->view('bukutamu');
}

function proses()
{
$name = $this->input->post('name');
$email = $this->input->post('email');
$website = $this->input->post('website');
$comment = $this->input->post('comment');

if ($name == '') {
echo "<script type=\"text/javascript\">alert('".$this->lang->line('error_field1')."');
window.location = \"".base_url()."multilanguage\"</script>";
} else if ($email == '') {
echo "<script type=\"text/javascript\">alert('".$this->lang->line('error_field2')."');
window.location = \"".base_url()."multilanguage\"</script>";
} else if ($comment == '') {
echo "<script type=\"text/javascript\">alert('".$this->lang->line('error_field4')."');
window.location = \"".base_url()."multilanguage\"</script>";
} else {
echo "<script type=\"text/javascript\">alert('".$this->lang->line('success')."');
window.location = \"".base_url()."multilanguage\"</script>";
}
}

}

/* End of file multilanguage.php */
/* Location: ./application/controllers/multilanguage.php */


Simpan dengan nama multilanguage.php
Lalu buat view-nya

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Blog Willy - Multilanguage</title>
</head>
<body>
<h1><?=$this->lang->line('title');?></h1>
<form action="<?=base_url();?>multilanguage/proses" method="post">
<table border="1" cellpadding="0" cellspacing="0" width="600">
<tr>
<td width="150"><?=$this->lang->line('field1');?></td>
<td><input type="text" size="20" name="name"></td>
</tr>
<tr>
<td><?=$this->lang->line('field2');?></td>
<td><input type="text" size="20" name="email"></td>
</tr>
<tr>
<td><?=$this->lang->line('field3');?></td>
<td><input type="text" size="20" name="website"></td>
</tr>
<tr>
<td><?=$this->lang->line('field4');?></td>
<td><textarea rows="5" cols="45" name="comment"></textarea></td>
</tr>
<tr><td>&nbsp;</td><td><input type="submit" value="submit"></td><tr>
</table>
</form>
</body>
</html>


Simpan dengan nama bukutamu.php
Sekarang tinggal jalankan di browser http://localhost/CodeIgniter_2.1.0/multilanguage
Jika ingin mengganti menjadi bahasa Inggris maka edit dahulu file config.php pada baris 72, ubah yang tadinya 'indonesia' menjadi 'english'
Setelah itu ganti $this->load->language('bukutamu'); menjadi $this->load->language('guestbook');

Catatan Untuk penamaan file language harus diakhiri dengan '_lang' (tanpa tanda kutip), contoh namafile_lang.php Akan tetapi untuk me-load namafile_lang.php cukup ditulis dengan namafile (tanpa _lang.php)
Selengkapnya...

Jumat, 15 Juni 2012

Menghapus index.php di CodeIgniter

Sebelum sholat jum'at, gue mau posting dulu nih biar dapet pahala #amin
Di postingan-postingan gue tentang codeigniter kan url-nya masih panjang-panjang tuh, nah sekarang mau gue pendekin.
Cara mendekinnya kita isi base_url nya (alamat website/home), terus kita hapus index.php setelah itu buat file .htaccess
Langkah pertama
Buka file config.php (CodeIgniter_2.1.0\application\config\config.php)
Isi base_url nya di baris 17 ==> $config['base_url'] = 'http://localhost/CodeIgniter_2.1.0/'; //CodeIgniter_2.1.0 namanya bisa dirubah sesuai yang kalian inginkan, tetapi harus dirubah juga nama foldernya

Langkah kedua
Masih di file yang sama, hapus index.php pada baris 29 lalu simpan

Langkah ketiga
Buka file autoload.php (CodeIgniter_2.1.0\application\config\autoload.php)
Pada baris 67, isi array yang kosong dengan 'url' (ketik juga tanda petik tunggalnya) lalu simpan

Langkah keempat
Buka notepad lalu ketikan coding ini

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$1 [L]


Simpan pada directory root (htdocs\CodeIgniter_2.1.0) dengan nama .htaccess

Keterangan

  • RewriteEngine on = mengaktifkan RewriteEngine
  • RewriteCond %{REQUEST_FILENAME} !-f = apakah file (-f) yang diminta pada url tidak (!) eksis
  • RewriteCond %{REQUEST_FILENAME} !-d = apakah direktori (-d) yang diminta pada url tidak (!) eksis
  • RewriteRule .* index.php/$1 [L] = Bila kedua kondisi di atas (RewriteCond) terpenuhi maka terapkan aturan ini. Kita minta tolong sama apache agar menyisipkan kata index.php sebelum URI terakhir
Selengkapnya...

Senin, 11 Juni 2012

Menggunakan Form Validation Di CodeIgniter

Apa sih form validation itu?
Dari namanya aja udah jelas, Form = Formulir, Validation = validasi, yaitu berguna untuk mem-validasi suatu formulir sebelum dikirimkan ke sisi server.
Jadi sebelum dikirim ke server formulir akan dicek terlebih dahulu, apakah sudah sesuai aturan yang telah ditetapkan atau tidak.
Oke langsung aja prakteknya.
Pertama buat file view-nya dengan nama form.php

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bog Willy - Form Validation</title>
<style>
.warning {
color: red; font-size: 11px;
}
</style>
</head>
<body>
<h1>Form Validation pada CodeIgniter</h1>
<form action="http://localhost/CodeIgniter_2.1.0/index.php/form_validasi" method="post">
<table border="1" cellpadding="0" cellspacing="0" width="600">
<tr>
<td width="150">Username</td>
<td><input type="text" size="20" name="username" value="<?=set_value('username');?>"></td>
<td width="300"><span class="warning"><?=form_error('username');?></span></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" size="20" name="password" value="<?=set_value('password');?>"></td>
<td><span class="warning"><?=form_error('password');?></span></td>
</tr>
<tr>
<td>Confirm Password</td>
<td><input type="password" size="20" name="confpass" value="<?=set_value('confpass');?>"></td>
<td><span class="warning"><?=form_error('confpass');?></span></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" size="20" name="email" value="<?=set_value('email');?>"></td>
<td><span class="warning"><?=form_error('email');?></span></td>
</tr>
<tr><td>&nbsp;</td><td><input type="submit" value="submit"></td><td>&nbsp;</td><tr>
</table>
</form>
<br />
<?php
if ($query != NULL) {
echo $query;
}
?>
</body>
</html>


Lalu buat file controller-nya dengan nama form_validasi.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Form_validasi extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->library('form_validation');
}

function index()
{
$data['query'] = NULL;
$validation = $this->form_validation;
$validation->set_rules('username','Username','required|min_length[5]|max_length[12]|xss_clean');
$validation->set_rules('password','Password','required|min_length[5]|xss_clean');
$validation->set_rules('confpass','Confirm Password','required|matches[password]|xss_clean');
$validation->set_rules('email','Email','required|valid_email|xss_clean');
if ($validation->run() == TRUE) {
$data['query'] = "Username = ".$validation->set_value('username')."<br>Password = ".$validation->set_value('password')."<br>Email = ".$validation->set_value('email');
header("location: http://localhost/CodeIgniter_2.1.0/index.php/form_validasi");
}
$this->load->view('form', $data);
}

}

/* End of file form_validasi.php */
/* Location: ./application/controllers/form_validasi.php */


Selesai, sekarang tinggal dijalanin di browser http://localhost/CodeIgniter_2.1.0/form_validasi

Keterangan:

  • required = wajib diisi
  • min_length[5] = minimal panjang karakter 5
  • max_length[12] = maximal panjang karakter 12
  • xss_clean = untuk mem-filter xss
  • matches[password] = untuk mencocokan value password dengan conform password
  • valid_email = untuk mem-validasi penulisan format email
Selengkapnya...

Selasa, 05 Juni 2012

Menambah dan menampilkan data pada CodeIgniter

Udah terlalu lama banget gue ga ngeposting lagi, jadi kangen mau sharing ilmu lagi.
Oke kali ini seperti biasa, gue mau berbagi ilmu sederhana atau bisa dibilang sangat sederhana.
Soalnya dari judulnya aja cuma nambahin & nampilin data, jadi udah pada bisalah pastinya :)
Eiitt.. tapi kali ini gue mau buatnya di CodeIgniter :D
Buat yang belum tau CodeIgniter itu apa, silahkan cari tau di mbah dukun google, tapi gue yakin kalian udah pasti tau lah :))
Pertama kita set dulu file database.php supaya database & tabel yang udah kita buat bisa terkoneksi.
Kalau di php biasa kan begini: Buat konek ke mysql = mysql_connect("localhost","root","");
Pilih tabel yang akan dikoneksikan = mysql_select_db("nama_database");
Akan tetapi kalau di CodeIgniter pengaturannya ada di CodeIgniter_2.1.0\application\config\database.php
Lebih jelasnya liat di sini
Setelah itu jangan lupa untuk di-load file database.php nya, soalnya klo ga di-load ga akan jalan aplikasi yang berhubungan dengan database.
Cara nge-load-nya buka file autoload.php yang ada di CodeIgniter_2.1.0\application\config Pada line 55 ketikan 'database' di dalam array, lalu save.
Setelah itu bikin database-nya

CREATE TABLE IF NOT EXISTS `datapegawai` (
`nip` int(4) NOT NULL AUTO_INCREMENT,
`nama` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`kelamin` varchar(10) NOT NULL,
PRIMARY KEY (`nip`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


Kalau udah, buat suatu model di dalam direktori CodeIgniter_2.1.0\application\models

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class M_karyawan extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    function get_data_karyawan()
    {
        $query = $this->db->get('datapegawai'); //ini artinya "SELECT * FROM datapegawai"
        return $query->result_array();
    }

}

/* End of file m_karyawan.php */
/* Location: ./application/models/m_karyawan.php */


Simpan dengan nama m_karyawan.php
Abis itu bikin view atau tampilannya di CodeIgniter_2.1.0\application\views

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Belajar</title>
</head>
<body>
<h1>Blog Willy</h1>
<form action="http://localhost/CodeIgniter_2.1.0/index.php/karyawan/insertkaryawan" method="post">
<table border="0" cellpadding="0" cellspacing="0" width="400">
<tr>
<td>Nama Karyawan</td>
<td><input type="text" size="20" name="nama"></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" size="20" name="email"></td>
</tr>
<tr>
<td>Jenis Kelamin</td>
<td>
<select name="kelamin">
<option value="Laki-laki">Laki-laki</option>
<option value="Perempuan">Perempuan</option>
</select>
</td>
</tr>
<tr><td>&nbsp;</td><td><input type="submit" value="submit"></td><tr>
</table>
</form>
<br />
<br />
<table border="1" cellpadding="0" cellspacing="0" width="500">
<th>NIK</th>
<th>Nama Karyawan</th>
<th>Email</th>
<th>Jenis Kelamin</th>
<?php
foreach ($karyawan as $row) {
?>
<tr>
<td><?=$row['nip'];?></td>
<td><?=$row['nama'];?></td>
<td><?=$row['email'];?></td>
<td><?=$row['kelamin'];?></td>
</tr>
<?php
}
?>
</table>
</body>
</html>


Simpan dengan nama list_karyawan.php

Namanya juga MVC (Model, View, Controller) abis dibikin model & view maka harus dibikin juga controller-nya

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Karyawan extends CI_Controller {

function __construct()
{
parent::__construct();
$this->load->model('m_karyawan');
}

function index()
{
$this->listkaryawan();
}

function listkaryawan()
{
$data['karyawan'] = $this->m_karyawan->get_data_karyawan(); //panggil fungsi get_data_karyawan() yg ada di model m_karyawan
$this->load->view('list_karyawan', $data);
}

function insertkaryawan()
{
if ($this->input->post('nama') == '') {
echo "<script type=\"text/javascript\">alert('Nama harus diisi.');
 window.location = \"http://localhost/CodeIgniter_2.1.0/index.php/karyawan\"</script>";
}
else if ($this->input->post('email') == '') {
echo "<script type=\"text/javascript\">alert('Email harus diisi.');
 window.location = \"http://localhost/CodeIgniter_2.1.0/index.php/karyawan\"</script>";
}
else {
$data_karyawan = array(
'nama' => $this->input->post('nama'),
'email' => $this->input->post('email'),
'kelamin' => $this->input->post('kelamin')
);
$insert = $this->db->insert('datapegawai', $data_karyawan);

if ($insert) {
header("location: http://localhost/CodeIgniter_2.1.0/index.php/karyawan");
}
}
}

}

/* End of file karyawan.php */
/* Location: ./application/controllers/karyawan.php */


Simpan dengan nama karyawan.php lalu simpan di CodeIgniter_2.1.0\application\controllers

Selesai deh, klo mau jalanin tinggal ketikan alamat ini di browser http://localhost/CodeIgniter_2.1.0/index.php/karyawan

Keterangan:

  • Model klo menurut gue adalah sesuatu yang berhubungan dengan query.
  • View klo menurut gue adalah sebuah hasil proses dari controller yang datanya ditampilan di view.
  • Controller klo menurut gue adalah sebuah class yang didalamnya terdapat banyak fungsi yang dimasing-masing fungsi terdapat proses.
  • Untuk semua file yang dibuat di Controller dan Model, nama filenya harus sama dengan nama class (nama class-nya diawali dengan huruf besar)
Selengkapnya...

Kamis, 15 Desember 2011

Trend Software Engineering

TREN TERBARU SOFTWARE ENGINEERING

Perangkat lunak komputer (Software) adalah satu dari hanya beberapa teknologi kunci yang akan berpengaruh penting pada hampir setiap aspek masyarakat modern selama tahun 1990-an. Software merupakan suatu mekanisme untuk mengotomatisasi bisnis, industri, dan pemerintahan. Software sangat penting bagi hampir setiap aspek bisnis. Tetapi, dalam banyak hal, software juga merupakan suatu teknologi yang tersembunyi karena tanpa kita sadari dalam setiap kegiatan kita sering menggunakan software misalnya dalam bebelanja di supermarket, menabung di bank, melakukan hubungan telepon dan lainnya.

Karakteristik Software antara lain :
Software bersifat kompleks yaitu didalam pembuatan suatu software harus didukung oleh banyak hal antara lain sistem kerja, hardware, dan lainnya. Software bersifat tidak sama meskipun pada kasus yang sama software yang telah dibuat belum tentu cocok di tempat lain. Misalnya pembuatan software supermarket, belum tentu satu supermarket dengan supermarket yang lain sistemnya sama. Software bersifat tidak dapat digunakan diluar dari tujuan yang telah ditetapkan. Software seperti pabrik yang menghasilkan nilai-nilai tertentu dan sangat membantu segala kegiatan manusia. Software dibangun dan dikembangkan, tidak dibuat dalam bentuk yang klasik. Sebagian besar perangkat lunak dibuat secara custom-built, serta tidak dapat dirakit dari komponen yang sudah ada. Software bersifat pervasif, dan banyak orang di dalam posisi tanggung jawab, kurang atau tidak memahami apa sebenarnya software itu, bagaimana dia dibangun, atau apa yang dimaksudkannya dengan bagian yang dikontrol. Karena sifat pervasif pada software tersebut maka software harus ditangani dengan hati-hati.

Perkembangan Software
Software Engineering adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal requirement capturing (analisa kebutuhan pengguna), specification (menentukan spesifikasi dari kebutuhan pengguna), design, coding, testing sampai pemeliharaan sistem setelah digunakan.

Software mengalami perkembangan yang pesat dan usang setelah periode tertentu, Software memerlukan review secara berkala untuk mengetahui perubahan yang dinamis terhadap kebutuhan pasar. Sejak pertama kali software diperkenalkan sekitar tahun 60-an telah mengalami perkembangan yang cukup pesat, dan total berbeda disemua spesifikasi seperti struktur program, arsitektur dan Line Of Code (LoC) kini lebih pendek, mudah dan tampilan grafis yang menarik sehingga lebih efisien dibandingkan dengan versi lamanya.

Secara terminologi software engginering pertama kali di gunakan pada sebuah international conference tentang software pada tahun 1968. Pada conference ini dibahas tentang krisis software. Krisis software merupakan akibat dari lahirnya komputer generasi ke 3 yang canggih. Dari hasil conference itu software yang dihasilkan menjadi beberapa kali lebih besar dan kompleks. Seiring dengan itu pendekatan informasi tidak cukup efektif dalam pengembangan software. Dengan perkembangan hardware dan software yang begitu pesat sehingga mengakibatkan biaya perangkat lunak naik lebih cepat dibandingkan dengan software.

Tren software enginering saat ini mengarah pada biaya yang murah, platform bersifat multiuser, dapat digunakan oleh umum, pengembangannya bersifat open source dan cara aksesnya adalah online. Perubahan-perubahan yang akan mempengaruhi software selama dekade selanjutnya akan dipengaruhi oleh beberapa hal yang simultan yaitu :

  1.  Manusia yang melakukan pekerjaan tersebut
  2. Proses yang mereka aplikasikan
  3. Sifat Informasi
  4. Teknologi komputer yang mendasar
Semua kegiatan yang telah dilakukan baik pengukuran, disiplin, dan fokus pada kualitas akan menghasilkan perangkat lunak yang bisa dipelihara, perangkat lunak yang lebih baik. Hal tersebut tidak pernah menjanjikan bahwa software yang kita hasilkan tersebut adalah software yang paling manjur, karena selagi kita berjalan menuju abad yang baru, maka perangkat lunak dan sistem teknik tetap menjadi tantangan bagi setiap profesional perangkat lunak dan setiap perusahaan yang membangun sistem berbasis komputer. Perusahaan harus berusaha lebih keras dalam menguasai teknologi hanya untuk bertahan hidup karena perubahan teknologi informasi menjadi begitu cepat dan tidak pernah bisa mengampuni, dan akibat dari ketinggalan tersebut tidak dapat dikembalikan lagi.

Karakteristik Software
Agar lebih memahami tentang software engineering maka perlu juga kita meneliti tentang karakteristik perangkat lunak yang membuat perangkat lunak berbeda dari hal-hal yang dibangun oleh manusia. Perangkat lunak memiliki ciri-ciri yang berbeda dari perangkat keras karena perangkat lunak lebih merupakan elemen logika. Adapun karakteristiknya antara lain:
  1. Perangkat Lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk yang klasik
  2. Perangkat lunak tidak pernah usang
  3. Sebagian besar perangkat lunak dibuat secara custom-built, serta tidak dapat dirakit dari komponen yang sudah ada
Dibawah ini menunjukkan bahwa area ilmu pengetahuan software engineering meliputi :

A. SOFTWARE REQUIREMENTS
Knowledge area ini berisi mengenai hal apa saja yang dipelajari pada software requirements. Pada Software requirements materi pokok yang dipelajari meliputi software Requirements Fundamentals, Requirements Process, Requirements Elicitation, Requirements Analysis, Requirements Specifications, Requirements Validation, Requirements considerations.

B. SOFTWARE DESIGN
Knowledge area ini berisi mengenai hal apa saja yang dipelajari pada software Design. Pada Software Design materi pokok yang dipelajari meliputi software Design Fundamentals, Key Issues in Software Design, Software Stucture and Architecture, software Design Quality Analysis and Evaluations, software Design Notation and software Design Strategic and methods.

C. SOFTWARE CONSTRUCTION
Knowledge area ini berisi mengenai hal apa saja yang dipelajari pada Software Construction. Pada Software Construction materi pokok yang dipelajari meliputi software Construction Fundamentals, Managing Construction dan Practical Considerations.

D. SOFTWARE TESTING
Knowledge area ini berisi mengenai hal apa saja yang dipelajari pada Software Testing. Pada Software Testing materi pokok yang dipelajari meliputi software Testing Fundamentals, Test Levels, Test Techniques, Test Related Measures dan test Process.

E. SOFTWARE MAINTENANCE
Knowledge area ini berisi mengenai hal apa saja yang dipelajari pada Software maintenance. Pada Software Testing materi pokok yang dipelajari meliputi software Maintenance Fundamentals, Key Issues in Software Maintenane, Maintenance Process dan Techniques for Maintenance.

F. SOFTWARE CONFIGURATIONS MANAGEMENT
Knowledge area ini berisi mengenai hal apa saja yang dipelajari pada Software Configurations Management. Pada Software Configurations Management materi pokok yang dipelajari meliputi Management Of The SCM Process, Software Configuration Identification, Software Configuration Control, Software Configuration Status Accounting, Software Configuration Auditing, Software Release Management and Delivery.

G. SOFTWARE ENGINEERING MANAGEMENT
Knowledge area ini berisi mengenai hal apa saja yang dipelajari pada Software Engineering Management. Pada Software Engineering Management materi pokok yang dipelajari meliputi Initiation dan Scope Definition, Software Project Planning, Software Project Enactment, Reviem and Evaluation, Closure dan SW Engineering Measurment.

H. SOFTWARE ENGINEERING PROCESS
Knowledge area ini berisi mengenai hal apa saja yang dipelajari pada Software Engineering Process. Pada Software Engineering Process materi pokok yang dipelajari meliputi Process Implementation and Change, Process Definition, Process Assessment, dan Process and Product Measurement.

I. SOFTWARE ENGINEERING TOOLS AND METHOD
Knowledge area ini berisi mengenai hal apa saja yang dipelajari pada Software Engineering Tools and Method. Pada Software Engineering Tools and Method materi pokok yang dipelajari meliputi Software Engineering Tools dan Software Engineering methods.

J. SOFTWARE QUALITY
Knowledge area ini berisi mengenai hal apa saja yang dipelajari pada Software Quality. Pada Software Quality materi pokok yang dipelajari meliputi Software Quality Fundamentals, Software Quality Processes dan Practical Considerations.

K. RELATED DICIPLINES OF SOFTWARE ENGINEERING
Knowledge area ini berisi mengenai hal apa saja yang dipelajari pada Related Diciplines of Software Engineering. Pada Related Diciplines of Software Engineering materi pokok yang dipelajari meliputi Komputer Engineering, Komputer Science, Management, Mathematics, Project management, Quality Management, Software Ergonomics, dan System Engineering.

Sumber: http://andikafardana.multiply.com/journal/item/10?&show_interstitial=1&u=%2Fjournal%2Fitem
Selengkapnya...

Senin, 27 Juni 2011

Kegunaan mysql_real_escape_string & stripslashes

mysql_real_escape_string berguna pada saat kita menginput sebuah data, dimana data tersebut mengandung karakter khusus seperti tanda "'" (kutip satu).
Jika tidak menggunakan fungsi tersebut maka data yang kita input tidak akan masuk ke dalam database.
Karena di dalam SQL, SQL tidak menerima karakter khusus seperti "'" (kutip satu).
Sedangkan jika kita menggunakan fungsi mysql_real_escape_string maka data tersebut akan masuk ke dalam database.
Contoh:
$nama = "safi'i";
$nama1 = mysql_real_escape_string($nama);
echo $nama1;


//output di php
safi\'i


//output di sql
safi'i



Nah bagaimana jika kita ingin menampilkannya di php tanpa tanda backslash ("\") ?
Untungnya di dalam PHP sudah ada fungsi untuk menghapus tanda backslash atau escape.
Fungsi itu bernama stripslashes() .
Cara penggunaannya adalah sebagai berikut:

$nama2 = stripslashes($nama1);
echo $nama2;


//ouput di php
safi'i


//output di sql
safi'i

Selengkapnya...

Senin, 16 Mei 2011

Aplikasi KRS Online sederhana

Udah lama ga posting tutorial, gara-gara sibuk sama kerjaan.
Tapi akhirnya ada waktu juga buat bikin tutorial di blog gue.
Okeh langsung aja, pada tutorial kali ini gue punya aplikasi sederhana, yaitu aplikasi KRS Online.
Untuk script database-nya silahkan copas aja trus langsung di run aja di phpmyadmin nya.

-- Table structure for table `matakuliah`
CREATE TABLE `matakuliah` (
`id_matkul` int(3) NOT NULL auto_increment,
`kode_matkul` varchar(10) NOT NULL,
`nama_matkul` varchar(50) NOT NULL,
`sks` int(2) NOT NULL,
UNIQUE KEY `kode` (`kode_matkul`),
PRIMARY KEY (`id_matkul`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


-- Insert data for table `matakuliah`
INSERT INTO `matakuliah` (`kode_matkul`, `nama_matkul`, `sks`) VALUES
('TI001', 'Pengantar Algoritma 1', 2),
('TI002', 'Analisa Numerik', 3),
('TI003', 'Pengantar Bahasa C++', 3),
('TI004', 'Pengantar Ilmu Komputer', 2),
('TI005', 'Algoritma 2', 2),
('TI006', 'Pengantar Visual Basic', 2),
('TI007', 'Kalkulus', 2),
('TI008', 'Pengantar Data Base', 2),
('TI009', 'Pemograman Berorientasi Objek', 3),
('TI010', 'Pengantar Bahasa Java', 3),
('TI011', 'Struktur Database', 2),
('TI012', 'Bahasa C++ Lanjutan', 2),
('TI013', 'Visual Basic Lanjutan', 2),
('TI014', 'Pengantar Internet', 2);


-- Table structure for table `mahasiswa`
CREATE TABLE `mahasiswa` (
`npm` char(8) NOT NULL,
`nama` varchar(30) NOT NULL,
UNIQUE KEY `npm` (`npm`)
);


-- Insert data for table `mahasiswa`
INSERT INTO `mahasiswa` (`npm`, `nama`) VALUES
('30101111', 'Achmad Zacky'),
('30101112', 'Ayu Putri Damayanti'),
('30101113', 'Edi Kusnaedi'),
('30101114', 'Firmansyah'),
('30101115', 'Herdian Ananta'),
('30101116', 'Ika Setiowati'),
('30101117', 'Reza Andreawan'),
('30101118', 'Siswo Pranoto'),
('30101119', 'Taufik Ismail'),
('30101120', 'Willy Kristianto');


-- Table structure for table `krs`
CREATE TABLE `krs` (
`nomor` int(4) NOT NULL auto_increment,
`npm` varchar(15) NOT NULL,
`kodekuliah` varchar(10) NOT NULL,
`semester` varchar(15) NOT NULL,
`tahun` int(5) NOT NULL,
PRIMARY KEY (`nomor`)
);


Setelah itu buat file index.php nya

<html>
<head>
<title>KRS Online</title>
<style>
body { margin:0; padding:0; font:16px sans-serif, Verdana; }
input, button { border:1px solid #999; }
#wrapper { background:#9900cc; width:800px; height:650px; margin:0 auto; }
#form_npm { background:#999999; width:200px; margin:0 auto; }
</style>
</head>
<body>
<div id="wrapper">
<p>&nbsp;<p>
<p>&nbsp;<p>
<p>&nbsp;<p>
<p>&nbsp;<p>
<p>&nbsp;<p>
<p>&nbsp;<p>
<div id="form_npm">
<form name="form_npm" method="post" action="inputkrs.php">
<table border="0" width="200" height="100" cellpadding="0" cellspacing="1">
<tr>
<td align="center">Masukan NPM</td>
</tr>
<tr>
<td align="center"><input type="text" maxlength="8" size="10" name="npm" style="text-align:center;"/></td>
</tr>
<tr>
<td align="center"><input type="submit" value="Submit" style="cursor:pointer;"></td>
</tr>
</table>
</form>
</div>
</div>
</body>
</html>

indexkrs




Selanjutnya buat file inputkrs.php
Dimana pada halaman ini kita akan menginput mata kuliah apa saja yang diambil oleh mahasiswa.

<html>
<head>
<title>Input KRS</title>
<style>
body { margin:0; padding:0; font-family:sans-serif; }
#wrapper { background:#9900cc; width:795px; height:650px; margin:0 auto; text-align:center; padding-top:5px; }
#tabel_matkul { background:#ffffff; width:500px; margin:0 auto; }
</style>
<?php
mysql_connect("localhost","root","");
mysql_select_db("belajar");

$npm = $_POST['npm'];
$sqlmhs = mysql_query("SELECT * FROM mahasiswa WHERE npm='$npm'");

//cek npm
if(mysql_num_rows($sqlmhs)==0){
?>
<script>
alert("NPM Anda belum terdaftar di Kampus ini");
javascript:history.back(-1);
</script>
<?php
}

$mhs = mysql_fetch_array($sqlmhs);

//melakukan query ke database
$sqlmatkul = mysql_query("SELECT * FROM matakuliah");
while($k = mysql_fetch_array($sqlmatkul)){
$kode_matkul[] = $k['kode_matkul'];
$nama_matkul[] = $k['nama_matkul'];
$sks[] = $k['sks'];
}
?>
<script>
<?php
echo "var jumlah = ".count($kode_matkul).";\n";
echo "var sks = new Array();\n";
//mengambil sks matakuliah dan memasukkan ke array javascript
for($j=0; $j<count($kode_matkul); $j++){
echo "sks['".$kode_matkul[$j]."'] = ".$sks[$j].";\n";
}
?>
function hitungtotal(){
jum = 0;
for(i=0;i<jumlah;i++){
id = "mk"+i;
td1 = "k1"+i;
td2 = "k2"+i;
td3 = "k3"+i;
td4 = "k4"+i;
if(document.getElementById(id).checked){
kode_matkul = document.getElementById(id).value
jum = jum + sks[kode_matkul];
//untuk mengubah warna latar tabel apabila diceklist
document.getElementById(td1).style.backgroundColor = "lightblue";
document.getElementById(td2).style.backgroundColor = "lightblue";
document.getElementById(td3).style.backgroundColor = "lightblue";
document.getElementById(td4).style.backgroundColor = "lightblue";
}else {
document.getElementById(td1).style.backgroundColor = "white";
document.getElementById(td2).style.backgroundColor = "white";
document.getElementById(td3).style.backgroundColor = "white";
document.getElementById(td4).style.backgroundColor = "white";
}
}
//menampilkan total jumlah SKS yang diambil
document.getElementById("jsks").value = jum;
}
</script>
</head>
<body>
<div id="wrapper">
<h1>Input KRS</h1>
<span style="color:#fff; font-weight:bold;">Nama : <?=$mhs['nama'];?></span>
<div id="tabel_matkul">
<form name="inputkrs" method="post" action="outputkrs.php">
<input type="hidden" name="npm" value="<?=$mhs['npm'];?>">
<table border="1" width="500" cellpadding="1" cellspacing="1">
<tr align="center" style="background:#9966FF">
<th height="25" width="100">Kode Mata Kuliah</th>
<th>Nama Mata Kuliah</th>
<th>SKS</th>
<th>Ambil</th>
</tr>
<?php
//menampilkan matakuliah ke dalam tabel
for($i=0; $i<count($kode_matkul); $i++){
?>
<tr>
<td id="k1<?=$i;?>"><?=$kode_matkul[$i];?></td>
<td id="k2<?=$i;?>"><?=$nama_matkul[$i];?></td>
<td id="k3<?=$i;?>" align="center"><?=$sks[$i];?></td>
<td id="k4<?=$i;?>" align="center"><input type="checkbox" name="mk[]" onclick="hitungtotal()" value="<?=$kode_matkul[$i];?>" id="mk<?=$i;?>">
</tr>
<?php
}
?>
<tr>
<td colspan="3"><b>JUMLAH YANG DIAMBIL</b></td>
<td align="center"><input type="text" name="totalsks" size="3" maxlength="3" id="jsks" readonly="readonly" style="text-align:center; color:red;"></td>
</tr>
<tr><td colspan="4" align="center"><input type="submit" value="Proses" style="cursor:pointer;"></td></tr>
</table>
</form>
</div>
</div>
</body>
</html>

inputkrs



Dan yang terakhir, menampilkan mata kuliah yg diambil oleh mahasiswa.
Script untuk outputkrs.php

<html>
<head>
<title>Output KRS</title>
<style>
body { margin:0; padding:0; font-family:sans-serif; }
#wrapper { background:#9900cc; width:795px; height:650px; margin:0 auto; text-align:center; padding-top:5px; }
#tabel_krs { background:#ffffff; width:700px; margin:0 auto; text-align:left; }
</style>
<?php
mysql_connect("localhost","root","");
mysql_select_db("belajar");

/* Start = menentukan semester ganjil/genap */
$nama_bulan = array('Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember');
$bulan = date('n') - 1;
$bulan_ini = $nama_bulan[$bulan];
$data_arr = array(0 => array("semester" => 0, "month" => "Agustus September Oktober November Desember"),
1 => array("semester" => 1, "month" => "Januari Februari Maret April Mei Juni Juli")
);
for ($i=0; $i<count($data_arr); $i++) {
if ($bulan_ini == $data_arr[$i]['month']){
$bulan_ini = 'Ganjil';
}
else {
$bulan_ini = 'Genap';
}
}
$semester = $bulan_ini;
/* End = menentukan semester ganjil/genap */

/* Start = menentukan tahun ajaran sekarang */
$tahun_ini = date('Y');
$tahun_kemarin = $tahun_ini - 1;
$tahun = $tahun_kemarin."/".$tahun_ini;
/* Start = menentukan tahun ajaran sekarang */

$npm = $_POST['npm'];
$mk = $_POST['mk'];

//cek apakah mahasiswa sudah pernah isi KRS di semester sekarang atau belum
$cek = mysql_query("SELECT * FROM krs WHERE npm='$npm' AND semester='$semester' AND tahun='$tahun'");
if(mysql_num_rows($cek) > 0){
?>
<script>
alert("No NPM <?=$npm;?> sudah pernah mengisi KRS pada semester ini");
window.close();
if (window.close){
window.location = "index.php"
}
</script>
<?php
}
else {
foreach($mk as $value){
$input = mysql_query("INSERT INTO krs (npm, kode_matkul, semester, tahun) VALUES('$npm', '$value', '$semester', '$tahun')");
}
?>
<script>
alert("Data berhasil dimasuka ke database");
</script>
<?php
}
?>
</head>
<body>
<div id="wrapper">
<h2>Berikut KRS yang anda ambil :</h2>
<div id="tabel_krs">
<table border="1" width="100%" cellpadding="1" cellspacing="1">
<tr align="center" style="background:#9966FF">
<th height="25">No.</th>
<th>Kode Mata Kuliah</th>
<th>Nama Mata Kuliah</th>
<th>Semester</th>
<th>Tahun</th>
<th>SKS</th>
</tr>
<?php
$krs = mysql_query("SELECT a.kode_matkul, a.semester, a.tahun, b.nama_matkul, b.sks FROM krs a LEFT JOIN matakuliah b ON b.kode_matkul = a.kode_matkul WHERE a.npm='$npm' AND a.semester='$semester' AND a.tahun='$tahun'");
$jum = 0;
$i = 1;
while($k = mysql_fetch_array($krs)){
?>
<tr>
<td><?=$i;?></td>
<td><?=$k['kode_matkul'];?></td>
<td><?=$k['nama_matkul'];?></td>
<td align="center"><?=$k['semester'];?></td>
<td align="center"><?=$k['tahun'];?></td>
<td align="center"><?=$k['sks'];?></td>
</tr>
<?php
$jum = $jum + $k['sks'];
$i++;
}
?>
<tr><td colspan="5"><b>JUMLAH SKS</b></td><td align="center"><b><?=$jum;?></b></td></tr>
</table>
<p>
<center><input type="button" value="Cetak" onclick="window.print();" style="cursor:pointer;" /></center>
</div>
</div>
</body>
</html>

outputkrs




Sederhanakan? http://www.smileycodes.info
Aplikasi ini masih bisa dikembangkan, seperti contoh: sudah berapa semester mahasiswa ber kuliah di kampus tersebut dan masih banyak lagi deh..
Kompleks banget klo dijelasin satu per satu..
Oia jang lupa di http://www.smileycodes.info sama comment ya gan
Selengkapnya...