Kamis, 11 Oktober 2012

Membuat Form Login Dengan Codeigniter

 

Setelah selesai mengerjakan tugas pemrograman web dari dosen akhirnya gw smptin nulis nih tutorial tentang membuat form login di ci . Cara – cara ini adalh cara yg aq pecahin sendiri setelah kesana kemari di mbah gugle cari referensi dan sedikit pemahaman serta modifikasi tentang membuat form login dengan codeigniter , langsung aj gw bhas langkah – langkah pembuatannya seperti berikut :

Langkah #1 buat database ‘login’ dengan tabel ‘user’ syntaxnya kayk gini nih

CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;


        

Langkah #2 atur koneksi database ci di config database


$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'login';
$db['default']['dbdriver'] = 'mysql';
$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;
[ /sourcecode ]

<strong>Langkah #3 atur autoload database pada config autoload berikut source code tepatnya</strong>

[sourcecode languange="php"]

$autoload['libraries'] = array('database', 'session', 'form_validation', 'table');

Langkah #4 buat model untuk koneksi ke database login berikut namain modelnya dgan modelakun.php


<!--?php class ModelAkun extends CI_Model { function __construct() { parent::__construct(); } function cekUserPass($username, $password) { $this--->db->where('username', $username);
$this->db->where('password', $password);
$query = $this->db->get('user');
return $query->num_rows() > 0;
}

function isLogin() {
return $this->session->userdata('username');
}

}

?>

Langkah #5 buat view untuk tampilannya

  • view pertama buat view namanya login_page.php


.:: SILAB ::.
<script type="text/javascript" language="javascript" src="<?php">// <![CDATA[
">
// ]]></script>
" />
" />

<div > <!--?php echo "<br ?--></pre>
<form class="niceform" action="akun/login" method="post">";
echo "
<fieldset><table >";
$username = array(
'name' => 'username',
'size' => '33'
);
$password = array(
'name' => 'password',
'size' => '33'
);
echo "
<td >
<div><label for="username">Username:</label></div>
".form_input($username)."<label for="password">Password:</label>".form_password($password)." ".form_submit('','Login')."
".form_reset('','Clear')."
";
?></fieldset>
<!--?php echo form_close();?--> </form>
<pre>

  • view kedua buat view namanya redirect.php


Portal Labkom FMIPA UNS

 rel="stylesheet" type="text/css" />

</pre>
<div id="container">
<h1>Selamat datang</h1>
<div id="body"></div>
Page rendered in <strong>{elapsed_time}</strong> seconds</div>
<pre>

<!--?php?-->

  • View ketiga buat dengan nama Berhasil.php


Portal Labkom FMIPA UNS
 rel="stylesheet" type="text/css" />

</pre>
<div id="container">
<h1>Anda Berhasil Login</h1>
<div id="body"></div>
</div>
<pre>

Langkah #6 buat controllernya

  • buat controller dengan nama home.php


<!--?php class Home extends CI_Controller { function __construct() { parent::__construct(); $this--->load->model('ModelAkun');
}

function index() {
if ($this->session->userdata('username') == false)
redirect('login_page');

$this->load->view('Berhasil');
}

}

  • buat controller dengan nama akun.php


<!--?php class Akun extends CI_Controller { function __construct() { parent::__construct(); $this--->load->model('ModelAkun');
}

function login() {
$isi = false;
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
if ($this->form_validation->run()) {
$username = $this->input->post('username');
$password = md5($this->input->post('password'));
if ($this->ModelAkun->cekUserPass($username, $password)) {
$config = array(
'username' => $username,
'login' => true
);
$this->session->set_userdata($config);
$throw['pesan'] = 'Login sukses...';
$throw['redirect'] = 'home';
$isi = true;
} else {
$throw['pesan'] = 'Username / Password salah...
Silahkan coba lagi...';
$throw['redirect'] = 'login';
$isi = true;
}
} else {
$throw['pesan'] = validation_errors();
$throw['redirect'] = 'login';
$isi = true;
}

$this->load->view('redirect', $throw);

if (!$isi) {
redirect('login');
}
}

function logout() {
$this->session->sess_destroy();
redirect('login');
}

}

  • buat controller dengan nama login.php


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

public function index() {
if ($this->session->userdata('username') == true)
redirect('home');

$this->load->view('login_page');
}

}

Semua controller semua view semua model udah dibuat tinggal dijalanin dehdaripada ribet bisa didownload source codenya disini

Rabu, 10 Oktober 2012

Tutorial CodeIgniter: Hello World Part II

Controller Controller Controller. Sekali lagi saya mengawali tulisan dengan tiga kata. OK, no problemo. Tidak masalah. Yang penting, misi kita sekarang akan segera dimulai. Membuat program hello world dengan menggunakan Controller. Mengapa Controller? Koq malah nanya? Kan jelas, salah satu component dalam MVC itu Controller! Whong namanya saja Model View Controller (MVC). Kalau kemarin kita sudah membuat program hello world dengan view, hari ini kita akan mengupasnya dengan menggunakan Controller. Apakah kita akan membahasnya juga dengan menggunakan Model setelah kita membahasnya kemarin dengan menggunakan View? Sangat mungkin IYA, karena jalan menuju Roma itu banyak sekali. Dan salah satunya adalah lewat Controller.
By the way, ngomong-ngomong, Controller itu apa to? Kalo writer kan penulis, breaker itu perusak, striker itu penyerang, maka controller itu berarti pengontrol. Yup, yang menjadi pengontrol (pake R, lho) aplikasi yang kita bangun adalah Controller. Boleh dibilang, controller adalah jantung dari aplikasi. Controller menentukan view mana yang harus diload, menentukan parameter apa yang dimasukkan, variable apa yang harus dicetak dalam output program dan sebagainya. Tapi yang jelas, Controller tidak bisa membatasi kita kapan harus makan kapan harus minum kapan harus tidur. Lha wong beda dimensi koq. Dimensi Code dan Dimensi Manusia. Jadi tolong jangan dicampur aduk. OK?
Sekarang kita akan memulai dengan menggunakan source code Controller berikut:

<?php
class HelloII extends Controller{
function index(){
echo “Hello World”;
}
}
?>

Di mana file tersebut disimpan? Simpan saja di /rootdirektory/system/application/controllers/ sebagaimana yang dulu kita lakukan. Koq cuman sedikit? Kenapa tidak menggunakan constructor seperti yang sebelumnya kita lakukan? Kenapa tidak menggunakan tag-tag HTML? Koq tidak melibatkan view seperti tulisan sebelumnya? Sabar! Sekarang jangan ngeyel dulu, yang penting, akses saja dulu controller diatas menggunakan browser. Di browser saya saya akses dengan url http://localhost/CodeIgniterPure/index.php/HelloII/. Dibrowser keluar Hello World? Kalau keluar, akan saya jawab pertanyaan-pertanyaan diatas. Baik, koq cuman sedikit? Karena tidak menggunakan Constructor. Kenapa tidak menggunakan Constructor? Karena tidak butuh. Kenapa tidak butuh? karena tidak semua komponen dan library dalam CI digunakan. Lihat kan, class hanya mewarisi apa yang dimiliki class Controller saja, tidak yang lainnya. Dan yang digunakan, hanya echo, yang sudah dimiliki secara native oleh PHP. Tidak perlu komponen atau library khusus kan untuk memakai echo? Terus kenapa tidak menggunakan view? Pada dasarnya, view digunakan untuk memisahkannya antara core controller. Keuntungannya, programmer dan designer bisa bekerja secara terpisah untuk hasil yang maksimum. Designer mengurusi view, dan programmer mengurusi controller dan model. Dengan model pengembangan seperti ini, aplikasi bisa didevelop lebih cepat.
Apakah hanya itu saja? Tidak. Class-class calam CI sebenarnya memiliki fungsi yang khusus menangani output. Selain fungsi index() yang berfungsi menggenerate tampilan secara default, tersedia juga fungsi _output() yang juga memberikan output di browser. Entahlah, sebab saya juga masih belum tahu double fungsi. Apa kita bisa meload view dari fungsi ini? Tidak. View hanya bisa diload dari fungsi index saja. Mungkin ini bedanya. Fungsi lain khusus menangani bussines logic dari aplikasi, dan fungsi _output() khusus menangani output class yang diload.
Berikut contohnya:

<?php
class HelloII extends Controller{
function _output(){
echo “Hello World”;
}
}
?>
Perhatikan, dua contoh diatas diakses menggunakan nama class pada nama URL. Output diletakkan pada fungsi index() dan _output(). Apa bisa diletakkan pada fungsi lain? Tenang! Kalau banyak jalan menuju roma, banyak jalan juga menuju fungsi. Perhatikan contoh berikut, yang memberikan hasil output yang berasal dari fungsi yang berbeda:

<?php
class HelloII extends Controller{
function helloAnu(){
echo “Hello World”;
}
}
?>

Fungsi diatas bisa diakses dengan URL http://localhost/CodeIgniterPure/index.php/HelloII/helloAnu/. Lihat, parameter helloAnu yang berupa fungsi terletak setelah parameter HelloII yang berupa class.

Masih ada cara lain? Tenang, sekali lagi saya ingatkan masih banyak jalan menuju roma, jadi jalan menuju “hello world” juga masih ada hehehe. Jalan itu adalah melewatkannya pada parameter dalam URL. Berikut ini contohnya:

<?php
class HelloII extends Controller{
function helloAnu($a,$b){
echo $a.” “.$b;
}
}
?>

Akses menggunakan URL http://localhost/CodeIgniterPure/index.php/HelloII/helloAnu/hello/world/. Nah, perhatikan sekali lagi URL tersebut. Ada parameter class, diikuti fungsi, diikuti dengan dua nilai variable, hello dan world. Dalam fungsi helloAnu(), dilewatkan dengan menggunakan variable $a dan $b, sehingga menjadi helloAnu($a,$b).
Masih ada cara yang lain? MASIH! Tapi saya sudah capek menuliskannya. Simak terus tutorial selanjutnya, yang akan menuntun membuat cara lain membuat program hello world, masih menggunakan constructor. Hanya saja, kita akan menggunakan pendekatan dari sisi yang berbeda, yang berupa uraian lebih lanjut tentang controller. Mission Complete.

Tutorial CodeIgniter: Hello World Part I

Tutorial CodeIgniter: Hello World Part I

Masalah klasik, dan sering ditanyakan ketika memulai belajar bahasa pemrograman, termasuk saya:D. Ada contoh program hello world nggak? Kenapa harus hello world? Kenapa koq bukan kata yang lain? Welcome Guys, atau seperti bahasa SMS ‘hi say’, atau mungkin bahasa yang agak kejawatimuran, ‘Cuk, Yo Opo Kabare?’ Saya sendiri juga kurang tahu, sebab pertama kali belajar membuat program dengan bahasa basic (sudah lupa tahun berapa), juga diajari hello world. Begitu mulai kuliah dan diajari C++, juga memulai dengan program hello world. Ketika belajar PHP, Perl, Prado, Smarty, dan lainnya, tutorial pertama juga membuat hello world. Sepertinya hello world telah menjadi kosa kata baru untuk kurikulum Bab I urusan if then else (maksudnya urusan code alias programming). Dan mengikuti orang-orang terdahulu, saya juga akan mulai dengan hello world:D. Meskipun setelah instalasi CodeIgniter, sudah ada contoh yang lebih baik dari sekedar hello world saya ini. Dan sebagai orang yang ela-elu (maksudnya ikut-ikutan), saya juga ela-elu dengan contoh itu tadi:D. Untungnya, karena bahasa inggris saya masih setengah hati, saya akan menuliskannya dalam bahasa indonesia. Tujuannya, agar supaya bahasa inggris saya yang jelek, tidak membuat reputasi saya amburadul (mode cari selamat : ON).

Dari mana memulai?
Sudah download CodeIgniter? Jawabannya harus sudah. Sudah diletakkan di root directory? Jawabannya harus sudah. Sudah install Wamp atau Xamp atau PHPTriad atau yang lainnya kalau make windows? Jawabannya harus sudah. Dan untuk yang pake Linux, ga usah ditanya, masalahnya sudah pasti sudah tahu harus install apa. Kalo belum… ya install dulu lah:D.
Yup, let’s start the mission. Akses url yang mengarah root directory aplikasi. Di Lenovo Y310 saya (Pamer Mode: ON :D ), root directory saya akses dengan http://localhost/CodeIgniterPure/. Harus case sensitive ya? Kalo servernya make windows, enggak. Tapi kalo pake Linux, YA IYA LAH! Nah, kalo bener, muncul welcome message disitu. Kalo ga muncul, pastikan web servernya sudah jalan, pastikan juga php modulenya sudah diload dengan bener, pastikan root direktory sudah bener. Kalo masih tidak bisa juga, pastikan komputer anda sudah hidup:D.
Sekarang kita akan mulai dengan membuat program hello world. Apa yang kita butuhkan? Pertama, satu file view dengan nama helloworld.php. letakkan di /rootdirektory/system/application/views. Bisa diletakkan di directory lain ndak? Boleh, tapi nanti butuh ngonfig file config. Jadi ndak usah ngeyel, taruh aja disitu, biar ndak repot ngonfig-ngonfig. Nanti kalo dah naik level, boleh lah nanya-nanya:D. Milik saya isinya seperti ini:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
“http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″>
<title>CodeIgniter Pertama</title>
</head>

<body>
Hello World…
</body>
</html>

Lha koq tag html biasa? Ga ada tag PHPnya? Ya itu terserah. Mau dibuat pake php semua juga boleh. Ga ada yang ngelarang koq. Ini kan cuman contoh. Jadi ga usah NGEYEL! Next, buat file controllernya. Namanya hello.php. letakkan di rootdirektory/system/application/controllers. Boleh diganti tempatnya? Boleeeeeh. Boleh beda namanya? Boleeeeh. tapi nanti harus ngonfig lagi. Jadi manut aja dulu, nanti kalo saya sudah bisa, saya ajarin ngonfignya (sekarang masih nyubi nyubi nyubi:D). isinya seperti ini:

<?php

class Hello extends Controller {

function Hello()
{
parent::Controller();
}

function index()
{
$this->load->view(‘helloworld’);
}
}
?>

Nah, sudah mulai serem kan? Whong saya sendiri bingung:D. kalo ga salah, maksudnya begini. Kita membuat class namanya Hello, yang kemudian diakses lewat URL http://localhost/ rootdirektory/index.php/Hello/. Fungsi Hello(), itu kalo nggak salah namanya constructor, yakni fungsi yang dieksekusi ketika object dipanggil. Terus, parent::Controller(); saya agak2 lupa untuk apa. Tapi kayaknya, agar constructor class parrent tidak bertabrakan dengan class lokal. Makanya parent::Controller() itu harus ada. Terus, function index() itu berfungsi menggenerate halaman view. Nah isinya, $this->load->view(‘helloworld’); memasukkan parameter nama view untuk menampilkan view dari halaman bersangkutan. Jadi, karena kita membuat view tadi dengan nama helloworld.php, parameter yang dimasukkan ‘helloworld’.
The last, akses lewat browser, make URL http://localhost/rootdirektory/index.php/Hello/. Di browser muncul sesuatu? Pasti, whong salah URL aja juga keluar sesuatu:D. IF tidak keluar tulisan ‘Hello World…’ THEN periksa langkahnya sudah bener apa belum. IF keluar THEN sukses and Mission Complete. Next Mission, kita akan membuat hello world dengan cara yang berbeda dari sisi controller.

Dasar-Dasar Python

Dasar-Dasar Python
  [Belajar Python]

Dasar-Dasar Python

Memulai Python

Variabel dan Operator

Perintah Kendali

Dasar-Dasar Python

Bagian: 1—Dasar-Dasar Python

Tingkat: Dasar

Tujuan: Memperkenalkan Python dan sintaks dasarnya.

Abstrak: Cara menjalankan skrip Python, variabel dan operator, perintah kendali seleksi dan perulangan.

Prasyarat: Tidak ada.

Adalah kebiasaan yang baik jika sebelum membaca suatu tulisan kita mengetahui terlebih dahulu apa yang akan kita dapatkan dari tulisan tersebut. Pengantar ini akan memberikan petunjuk kira-kira apa yang akan Anda dapatkan setelah Anda selesai membaca sampai di akhir tulisan.

Tulisan ini dimaksudkan untuk memberikan pengetahuan awal pemrograman dengan bahasa Python. Di sini tidak akan dibahas secara ditel kemampuan-kemampuan yang dipunyai Python. Karena biasanya pembahasan ditel akan membawa kita pada uraian yang panjang lebar dan tidak langsung pada inti permasalahan. Silakan merujuk pada dokumentasi-dokumentasi tentang Python, yang bisa didapatkan dari situs resmi Python di www.python.org jika ingin mendapatkan dokumentasi lengkap. Beberapa tulisan yang membahas perbandingan Python dengan bahasa pemrograman yang lain juga banyak bertebaran di Internet, silakan mulai dari Google atau Yahoo!

Penjelasan yang mengikuti pendahuluan ini akan memberi pengetahuan pada pembaca bagaimana membuat program —yang terkadang disebut dengan skrip—dalam bahasa pemrograman Python. Pembaca akan mampu membuat program dalam bahasa Python yang sederhana setelah membaca tulisan ini secara lengkap. Mampu di sini berarti mengetahui dan bisa menggunakan sintaks-sintaks dasar yang dipakai dalam Python.

Tutorial ini dibuat sederhana dengan sebisa mungkin menghindari istilah-istilah yang sulit kecuali kalau memang tidak bisa dihindari lagi. Ini karena penulis mengharapkan pembaca yang tidak mempunyai latar belakang pemrograman pun bisa mengikuti tulisan ini.

Asumsi yang diambil oleh penulis adalah interpreter Python sudah terinstal dengan benar pada komputer Anda.

Memulai Python

Menggunakan Mode Interaktif

Anda dapat bekerja dengan Python secara interaktif dengan interpreter Python. Dalam mode interaktif kita dapat bekerja seperti saat kita bekerja dalam prompt sistem operasi. Interpreter Python bisa Anda aktifkan dengan memberi perintah pada prompt sistem operasi:

$ python 

Interpreter Python akan menampilkan

Python 1.5.2 (#1, Feb 1 2000, 16:32:16) [GCC egcs-2.91.66 19990314
+/Linux (egcs-on linux-i386
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>>

Tiga tanda lebih besar (>>>) adalah prompt utama Python. Untuk perintah yang masih berlanjut Python akan memberikan respon dengan tanda tiga titik (...).

>>> if 1:
...

Untuk keluar dari prompt Python menuju prompt sistem operasi Anda bisa menekan tombol yang menghasilkan karakter akhir file, Ctrl-Z (di DOS/Windows) atau Ctrl-D (di Unix).

Mode interaktif sangat bermanfaat untuk mencoba perintah-perintah Python sebelum membuat skrip. Dalam tulisan ini kita akan lebih banyak bekerja menggunakan skrip.

Menggunakan Skrip

Kalau Anda memakai mode interaktif saat membuat program, Anda tidak bisa menyimpannya ke dalam media penyimpanan. Untuk mengatasi ini Anda bisa membuat skrip dengan editor teks yang menghasilkan teks murni, misalnya Notepad atau vi. Aktifkan editor teks Anda dan ketikkan baris-baris perintah ini:

#! /usr/bin/python
print "Belajar Python..."
# akhir file

Beri nama skrip ini belajar.py. Skrip ini hanya akan mencetak string Belajar Python... ke layar. Untuk menjalankan skrip ini kita hanya perlu mengetikkan:

$ python belajar.py

pada prompt sistem operasi.

Baris pertama adalah khas untuk lingkungan Unix/Linux, yaitu diberikan jika skrip ini ingin dijalankan tanpa mengetikkan interpreter yang akan menerjemahkan skrip yang bersangkutan, tentu saja setelah mengubah hak akses dari skrip tersebut menjadi executable. Baris ini tidak akan berpengaruh di sistem operasi Windows. Di contoh-contoh skrip selanjutnya baris pertama akan dihapuskan untuk menghemat tempat.

Baris kedua berfungsi untuk mencetak string yang diapit tanda petik.

Baris ketiga adalah keterangan, atau komentar, yang tidak akan mempengaruhi jalannya program. Keterangan selalu diawali dengan tanda #. Jika interpreter menemukan tanda ini maka mulai tanda ini sampai akhir baris akan dianggap sebagai keterangan.

Variabel dan Operator

Membuat variabel dalam Python sangat sederhana. Anda hanya perlu mengisikan nilai pada sebuah variabel dengan tipe data yang Anda inginkan. Operator pengisian adalah tanda sama-dengan (=).

Variabel dalam Python sangat dinamis. Artinya:

  • variabel tidak perlu dideklarasikan mempunyai jenis data tertentu;
  • jenis data variabel dapat berubah saat program berjalan.

Bilangan

Python mengenal beberapa jenis bilangan yaitu bilangan bulat (integer), bilangan pecahan (floating point), dan bilangan kompleks. Bilangan kompleks bisa dituliskan dengan format (real+imajinerj) atau menggunakan fungsi complex(real, imajiner). Untuk jenis data bilangan yang lain tanpa dijelaskan sudah bisa dimengerti dari contoh berikut:

variabel_integer = 10
variabel_floating = 24.5
variabel_kompleks = 3+4j

print variabel_integer
print variabel_floating
print variabel_kompleks

Operator matematik berfungsi dengan normal di Python seperti dalam bahasa pemrograman yang lain. Ada beberapa catatan yang harus diperhatikan.

  • Operasi pengisian beberapa variabel dengan nilai yang sama dapat dilakukan sekali jalan.
  • Tanda () dipakai untuk mengelompokkan operasi yang harus dilakukan terlebih dahulu.
  • Pembagian bilangan integer dengan bilangan integer akan dibulatkan ke bawah.
  • Bilangan integer akan dikonversikan menjadi bilangan floating point dalam operasi yang melibatkan bilangan integer dan bilangan floating point.
  • Kita tidak dapat mengkonversikan bilangan kompleks ke bilangan real (floating point atau integer); hanya bilangan mutlaknya yang bisa kita dapatkan.

Contoh-contoh berikut akan memberikan gambaran pernyataan di atas.

a = b = c = d = 0
print 'a=>',a,'b=>',b,'c=>',c,'d=>',d

x = 30 - 10 / 2
print 'x=>',x

y = (30 - 10) / 2
print 'y=>',y

print '10 / 3 =',10 / 3
print '10 / 3.5 =',10 / 3.5
print '8 * 12.4 =',8 * 12.4
print 'abs(1+9j) =',abs(1+9j)

String

String dapat ditulis dengan tiga cara:

  1. diapit tanda petik tunggal;
  2. diapit tanda petik ganda;
  3. diapit tiga tanda petik tunggal atau tiga tanda petik ganda.

Cara yang dipakai harus disesuaikan dengan kebutuhan. Perhatikan contoh berikut:

print 'dibatasi tanda petik tunggal'
print "dibatasi tanda petik ganda"
print
print '"petik ganda" dalam petik tunggal'
print "'petik tunggal' dalam petik ganda"
print
print '\'petik tunggal\' dalam petik tunggal harus menggunakan karakter
+escape'
print "begitu juga \"petik ganda\" dalam petik ganda"

Dari contoh ini bisa dilihat bahwa kita tidak dapat mencetak tanda petik tunggal dalam string yang diapit dengan tanda petik tunggal juga. Begitu pula untuk tanda petik ganda. Tetapi kita dapat memakai apa yang disebut dengan karakter escape. Tanda ini memberitahukan pada interpreter bahwa karakter yang mengikutinya tidak diartikan sebagaimana lazimnya. Dalam contoh ini, tanda petik tidak diartikan sebagai batas string jika didahului dengan karakter escape.

Perhatikan juga contoh berikut:

print 'Baris kalimat ini akan nampak terlalu panjang jika \
dituliskan memanjang secara lengkap.'
print 'karakter escape diperlukan jika ingin mencetak dibaris\n baru'
print
print """String terformat dapat dicetak dengan diapit
"tiga" tanda petik tunggal maupun 'tiga' tanda petik ganda.
Dengan tanda ini string akan dicetak seperti saat ia ditulis."""

Sehubungan dengan jenis data string ini terdapat operator khusus untuk string yaitu operator penggabungan (concatenation operator), yaitu +, dan operator perulangan, yaitu *.

stringA = "String A"
stringB = "String B"
print 'stringA+stringB =',stringA+stringB
print "'-'*20 =",'-'*20

Sifat lain yang dimiliki oleh string adalah bisa diambil sebagian dari karakter pembentuknya, karena string ini adalah array, atau deretan, karakter. Kita dapat mengambil sebagian karakter dari string ini dengan notasi slice. Namun karakter-karakter yang membentuk string ini tidak dapat diubah.

stringA = "String A"
print 'stringA[4] =',stringA[4]
print 'stringA[2:6] =',stringA[2:6]

List

List disebut array dalam bahasa pemrograman yang lain. List adalah jenis data campuran yang bisa memiliki komponen penyusun yang berbeda-beda. Sebuah list dapat dibuat dengan dengan menggunakan tanda kurung siku, [ ]. Anggota list didaftar dalam kurung siku tersebut dan masing-masing dipisahkan oleh tanda koma. Sifat-sifat list bisa didaftar seperti ini:

  • Komponen penyusunnya bisa diganti.
  • Komponen penyusunya dapat dibaca dan dimanipulasi secara langsung.
  • Komponen penyusunnya bisa ditambah.
  • Komponen penyusunnya dapat diambil dengan menunjukkan indeksnya atau dengan notasi slice.
  • Komponen penyusun sebuah list dapat juga berupa list yang lain.

Untuk lebih jelasnya bisa dicoba skrip berikut:

x = [1,2, 'tiga', 'empat']
print x

x[1] = x[1] + 2
print x

x[1] = 'dua'
print x

x = x + ['tambahan', 1]
print x

print 'x[2] =',x[2]
print 'x[1:4] =',x[1:4]

y = ['Salman', 'AS']
x[0] = y
print x

Dictionary

Berbeda dengan list yang memakai indeks angka untuk merujuk pada isi variabel, dictionary memakai key untuk merujuk pada isi variabelnya. Sifat kedua jenis data ini hanya berbeda dalam beberapa hal saja.

Untuk mendeklarasikan sebuah dictionary, Python memakai tanda { }.

d = {'nama':'Salman AS', 'nilai':3}
print d
print d['nama']

Untuk mengakses anggota suatu dictionary kita memakai lambang [ ] sebagaimana halnya list.

Dictionary bisa mempunyai anggota sebuah list, atau dictionary lagi.

d = {'nama':'Salman AS', 'nilai':3}
print d

nama_detail = {'depan':'Salman','tengah':'Agus','belakang':'Supriadi'}
print nama_detail

d['nama'] = nama_detail
print d

print d['nama']['depan']

nilai_detail = [3,4,2]
d['nilai'] = nilai_detail
print d

Tuple, Antara List dan String

Terdapat satu jenis data yang khas milik Python, yaitu tuple. Jenis data ini dideklarasikan dengan tanda ( ). Anggota-anggota tuple tidak bisa diganti dan dapat berupa bilangan atau string. Tuple dapat juga berisi tuple yang lain, dictionary, maupun list.

menu_file = ('New', 'Open')
print menu_file

menu_edit = ('Save', 'Save AS')

menu = (menu_file, menu_edit, 'exit', ['help'])
print menu
print menu[3][0]

menu_lain = (menu_file, menu_edit, 'exit', {'faq':'faq.html', 'manual':'man.html'})
print menu_lain

Perintah Kendali

Seleksi

Satu-satunya perintah seleksi dalam Python adalah if. Format umum perintah ini adalah:

if kondisi:
perintah_jika_kondisi_benar
elif kondisi_lain:
perintah_jika_kondisi_lain_benar
else:
perintah_jika_tak_ada_kondisi_yang_benar

Kita dapat mencoba seleksi dengan if ini dalam modus interaktif Python. Aktifkan interpreter Python Anda dan ketikkan baris-baris perintah ini pada prompt Python.

>>> x = 4 
>>> if x<5:
... print "%d lebih kecil dari 5" % x
... elif x==5:
... print "%d sama dengan 5" % x
... else:
... print "%d lebih besar dari 5"
4 lebih kecil dari 5

Untuk menguji kondisi kita dapat menggunakan operator ==, <, <=, >, >=, dan !=.

Sesuatu yang baru dan kita bisa perhatikan pada contoh di atas adalah cara penulisan blok-blok program. Dalam Python blok-blok perintah ditandai dengan penulisan kode program yang menjorok ke dalam. Setiap perintah yang mempunyai batas kiri yang sama dianggap sebagai satu blok. Sebisa mungkin Anda harus konsisten menggunakan karakter spasi atau karakter tabulasi untuk membuat indentasi. Jangan mencampur antara spasi dan tabulasi. Kesalahan yang sering terjadi dengan indentasi ini adalah terlihat dalam penampilan editor kita sudah lurus pada batas kiri tapi ada perbedaan dalam jumlah karakter tabulasi atau spasi.

Dalam perintah pencetakan ini kita menggunakan kode pemformatan %d. Kode ini akan diganti dengan variabel yang mengikuti string, yaitu x. Antara string dan variabel dipisahkan oleh tanda %. Jika ada beberapa variabel yang akan dicetak, seluruh variabel harus dimasukkan ke dalam tanda () dan antara satu variabel dengan yang lain dipisahkan dengan tanda koma (,). Mari kita coba dengan interpreter Python.

>>> x=4
>>> y=2
>>> print "x berisi %d, dan y sama dengan %d" % x,y
Traceback (innermost last):
File "<stdin>", line 1, in ?
TypeError: not enough arguments for format string
>>> print "x berisi %d, dan y sama dengan %d" % (x,y)
x berisi 4, dan y sama dengan 4

Sekarang kita terapkan seleksi ini dalam skrip yang akan memeriksa apakah suatu bilangan adalah bilangan bulat atau bukan.

x = input("Masukkan bilangan bulat:")
if x%2:
print "%d adalah bilangan ganjil" % x
else:
print "%d adalah bilangan genap" % x

Jika dijalankan, skrip ini akan menampilkan:

$ python ganjil.py
Masukkan bilangan bulat:13
13 adalah bilangan ganjil
$ python ganjil.py
Masukkan bilangan bulat:24
24 adalah bilangan genap

Kata kunci input() berfungsi untuk meminta input berupa bilangan. Bilangan ini disimpan dalam variabel x. Ekspresi x%2 akan menghasilkan 1 jika x ganjil dan 0 jika x bilangan genap. Oleh Python, 1 akan diartikan sebagai benar dan 0 akan diartikan salah.

Perulangan

Perulangan dengan kata kunci while mempunyai format umum sebagai berikut:

while kondisi:
perintah_jika_kondisi_benar
else:
perintah_lain

Perintah-perintah antara while dan else akan selalu dijalankan jika kondisi benar. Perintah-perintah di bawah else akan dijalankan jika perulangan selesai dengan normal. Yang dimaksud dengan normal di sini adalah proses perulangan tidak berhenti karena bertemu kata kunci break.

x = 1
while x<5:
print x
x = x + 1
else:
print 'Loop sudah selesai dikerjakan!'

Jika skrip di atas ditambahkan suatu kondisi yang diikuti perintah break, maka blok perintah di bawah else tidak akan pernah dijalankan. Perhatikan perbedaannya dengan skrip berikut:

x = 1
while x<5:
if x==3:
break
print x
x = x + 1
else:
print 'Loop sudah selesai dikerjakan!'

Perintah break menyebabkan dijalankannya perintah-perintah setelah blok while dan else ini.

Perintah perulangan selain while adalah for. Format dasar perulangan for adalah:

for variabel in objek:
perintah-perintah
else:
perintah_jika_tidak_bertemu_break

Langsung saja ke contoh penggunaan pernyataan for ini.

for x in range(1,5):
print x
else:
print 'Perulangan selesai'

Fungsi builtin range() dalam skrip ini menghasilkan bilangan 1 sampai 4. Hasilnya skrip akan mencetak bilangan dari 1 sampai 4 dan string Perulangan selesai.

Keistimewaan perulangan dengan for di Python adalah dapat memroses array. Seperti contoh di bawah ini:

y = [10,20,30,40,50,60,70,80,90]
for x in y:
if x==50:
continue
if x>70:
break
print x
else:
print 'Perulangan selesai'

Hasil yang akan didapat jika skrip ini dijalankan:

10 20 30 40 60 70

Pernyataan continue akan menyebabkan proses berlanjut ke awal perulangan dan melewatkan perintah-perintah yang ada di antara continue dan akhir blok perulangan.

Demikian akhir bagian pertama. Untuk mempelajari lebih jauh lagi tunggu bagian tutorial berikutnya.