Dasar-Dasar Python (Basic 3)
Setelah
mempelajari sintaks dasar bahasa Python
kita tidak boleh melupakan salah satu komponen penting dalam sebuah program, yaitu input dan
output. Input dan output ini tidak hanya dari
keyboard dan layar saja. Tetapi meliputi semua proses transfer data secara umum. Proses input
bisa berupa proses baca dari file yang terdapat dalam media penyimpan magnetik,
yang kemudian bisa disimpan lagi pada media penyimpan tersebut.
Membaca Masukan
Python
menyediakan dua fungsi bawaan untuk mengambil masukan, yaitu raw_input() dan input().
Sintaks kedua fungsi ini adalah,
Sintaks kedua fungsi ini adalah,
raw_input([prompt])
input([prompt])
prompt akan dicetak ketika fungsi
dijalankan.
Setiap masukan yang diterima oleh
fungsi raw_input() dari
standard input dianggap sebagai string. Untuk
membuktikan hal ini jalankan interpreter Python
dan ketikkan baris berikut,
>>> raw_input("Nama Anda:")
Nama Anda:Salman AS
'Salman AS'
>>>_
Coba lagi dengan memberikan masukan
berupa bilangan,
>>> raw_input("Bilangan Anda:")
Bilangan Anda:12
'12'
>>>_
Tampak di
sini masukan benar-benar dianggap sebagai string. Perhatikan tanda petik yang mengapit keluaran interpreter. Karena input
yang diberikan pada fungsi ini dianggap sebagai string maka tidak bisa kita
operasikan dengan operator aritmetika.
>>> x=raw_input("Bilangan I:")
Bilangan I:12
>>> y=raw_input("Bilangan II:")
Bilangan II:3
>>> print x+y
123
>>> print x*y
Traceback (innermost last): File "<stdin>", line 1, in ?
TypeError: can't multiply sequence with non-int
>>> print x/y
Traceback (innermost last): File "<stdin>", line 1, in ?
TypeError: bad operand type(s) for /
>>>_
Berbeda dengan raw_input(), fungsi input()
akan mengembalikan bilangan sehingga bisa kita olah dengan operator aritmetika.
Coba perhatikan,
>>> x = input("Bilangan I:")
Bilangan I:12
>>> y = input("Bilangan II:")
Bilangan II:3
>>> print x+y
15
>>> print x*y
36
>>> print x/y
4
>>>_
Selain fungsi
bawaan, distribusi Python standar juga
menyediakan library untuk keperluan tertentu. Misalnya,
meminta masukan password yang seharusnya masukan dari keyboard tidak boleh
dicetak ke layar. Untuk keperluan ini sudah disediakan modul dengan nama getpass.
>>> import getpass
>>> getpass.getpass("Password:")
Password:
'satuduatiga'
>>>_
Baris pertama
berfungsi untuk membaca modul yang bernama getpass.
Kemudian baris kedua memanggil fungsi getpass()
yang terletak dalam modul getpass. Kebetulan di sini nama fungsi sama dengan nama modul di
mana fungsi berada. Mungkin Anda akan
bertanya-tanya, apa sih modul itu? Modul adalah file skrip Python
yang berisi fungsi-fungsi yang sering kita pakai. Sebelum bisa kita gunakan
file ini harus kita “impor” terlebih dahulu supaya skrip kita mengenali
fungsi-fungsi yang terdapat dalam modul tersebut. Nama modul diambil dari nama file skrip modul tanpa akhiran .py. Fungsi lain yang terdapat dalam
modul getpass adalah getuser().
Hasil dari fungsi ini adalah string yang diambil dari
variabel lingkungan.
>>> getpass.getuser()
'salmanas'
>>>_.
Mencetak Ke Layar
Membahas
bagaimana cara kita meminta masukan data tidak bisa
terlepas bagaimana kita akan menampilkan data. Tanpa kita
sadari kita sudah memakai perintah ini pada awal-awal pembahasan kita.
Tapi pada bagian ini akan kita bahas agak lebih ditel. Perintah print
akan melayani semua permintaan pencetakan ke layar. Baik yang sederhana maupun yang terformat. Dengan bantuan
beberapa modul penanganan string, perintah print lebih baik
lagi penampilannya. Mari kita mulai mengekplorasi perintah
ini. Perintah print
yang telah Anda gunakan belum menggambarkan
kemampuan sesungguhnya. Kita dapat memakai perintah ini untuk
menampilkan rangkaian string yang teratur rapi sesuai dengan kebutuhan kita.
Perhatikan contoh yang diberikan di bawah ini.
def kali(x, y):
return x*y
for x in range(1,11):
for y in range(1,11):
print "%3d " % kali(x,y),
print
Jika skrip ini dijalankan di layar akan dicetak tampilan berikut,
$ python kali.py
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
Tanpa adanya string format "%3d"
maka tampilan di layar akan tampak berantakan.Terdapat beberapa
string format yang bisa dipakai. Contoh string format ditunjukkan pada Tabel
1. Modul yang mendukung format pencetakan adalah modul string. Modul ini
berisi fungsi-fungsi yang ada hubungannya dengan manipulasi string. Fungsi yang paling umum dipakai
adalah fungsi center(),
rjust(), dan ljust(). Mari kita coba
bagaimana fungsi-fungsi ini beraksi. Cara paling mudah
adalah melalui mode interaktif interpreter Python.
>>> string.center("0", 10)
' 0 '
>>> string.ljust("0", 10)
'0 '
>>> string.rjust("0", 10)
' 0'
>>>_
Fungsi lain
masih banyak dan bisa dibaca daftarnya dalam dokumentasi Python.
Membaca Dari File
Akhirnya
sampailah kita pada pembahasan operasi baca tulis ke file. Kita akan melakukan beberapa percobaan. Sebelumnya kita siapkan
dahulu file teks normal dengan isi yang ditunjukkan di bawah ini. beri nama dumpfile.txt.
ini baris pertama ke-2 dan ketiga
Aktifkan Python
kemudian coba buka file,
>>> file = open("dumpfile.txt")
>>>_
Fungsi open mempunyai sintaks
umum,
open(filename[, mode[, buffering]])
berguna
untuk membuka file sesuai dengan operasi yang ingin kita lakukan. Secara
default mode adalah file dibuka untuk dibaca saja, yaitu
mode diisi dengan "r".
Mode yang lain yang bisa kita berikan adalah "w" dan
"a". Berturut-turut berfungsi
untuk menulis dan menambahkan. Untuk sementara
parameter buffering kita tinggalkan lebih dahulu. Anda dapat mendalami
lebih lanjut di lain waktu.
Setelah proses pembukaan file tidak
ada kesalahan kita dapat membaca dari file tersebut. Untuk membaca keseluruhan
file bisa digunakan fungsi read()
dalam objek file yang telah kita buka. Seperti berikut,
>>> semua = file.read()
>>> semua
'ini baris pertama\012ke-2\012dan ketiga\012'
>>>_
Sedangkan untuk membaca beberapa
karakter dari file bisa kita berikan argumen pada fungsi read() sebanyak
karakter yang akan kita baca. Seperti ini,
>>> sepuluh = file.read(10)
>>> sepuluh
'ini baris '
>>>_
Setelah proses pembacaan file
penunjuk internal file akan bergeser sampai posisi
terakhir proses baca dijalankan. Informasi ini bisa kita dapatkan dengan
menggunakan fungsi tell().
>>> file.tell()
10
>>>_
Ini berarti
penunjuk internal file sudah sampai pada karakter kesebelas, karena posisi
dihitung mulai 0. Jika kita jalankan perintah untuk membaca lagi maka
pembacaan akan dimulai dari posisi ini. Untuk mengembalikan penunjuk
internal file ke posisi awal lagi bisa dilakukan dengan fungsi seek().
>>> file.seek(0)
>>> file.tell()
0
>>>_
Misalkan kita
ingin meletakkan penunjuk ke posisi tertentu, katakanlah karakter kelima.
Perintah yang harus kita berikan adalah,
>>> file.seek(4)
>>> file.tell()
4
>>> file.read(5)
'baris'
>>>_
Beberapa informasi yang penting
sehubungan dengan manipulasi file bisa kita dapatkan, seperti contoh berikut
ini,
>>> file.name #mencetak nama file
'dumpfile.txt'
>>> file.mode #file dibuka dengan mode ini
'r'
>>> file.closed #cek apakah file telah ditutup
0
>>> file.fileno() #mencetak file deskriptor yang dipakai
3
>>>_
Pembacaan data dari file tidak
hanya bisa dilakukan per karakter tetapi bisa juga dibaca per baris dengan
fungsi readline().
>>> file.seek(0)
>>> satu = file.readline()
>>> print satu
ini baris pertama
>>>_
Kita juga bisa membaca file
semuanya sekaligus dan menyimpannya dalam sebuah list.
>>> semua = file.readlines()
>>> semua
['ini baris pertama\012', 'ke-2\012', 'dan ketiga\012']
>>>_
Menyimpan Ke File
Baik, sejauh ini kita sudah melakukan eksperimen-eksperimen membaca
file. Tentu saja kita juga ingin bisa menyimpan data yang telah selesai
kita olah ke dalam file. Pseudo algoritmanya kira-kira begini,
- buka file untuk proses tulis,
- siapkan data yang akan disimpan,
- simpan data,
- tutup file.
Sebagai contoh,
kita akan menyalin satu baris text dari file yang
telah kita buat ke file yang lain. Implementasinya paling tidak seperti ini,
>>> asal = open("dumpfile.txt")
>>> tujuan = open("hasil.txt", "w")
>>> satu = asal.readline()
>>> tujuan.write(satu)
>>> asal.close()
>>> tujuan.close()
>>>_
Sekarang Anda
bisa melihat apakah file hasil.txt berisi baris pertama dari file dumpfile.txt.
Jika kita ingin menyimpan string
berbentuk list, kita bisa menggunakan fungsi writeline().
Sebagai contoh kita akan menyalin isi file dumpfile.txt
ke file salinan.txt.
>>> asal = open("dumpfile.txt")
>>> tujuan = open("salinan.txt", "w")
>>> isi = asal.readlines()
>>> tujuan.writelines(isi)
>>> asal.close()
>>> tujuan.close()
>>>_
Sebagai penutup diberikan
contoh skrip untuk memberi nomor baris kode sumber.
Ketik kode di bawah ini dan beri nama no-brs.py.
#!/usr/bin/python
import sys
file = open(sys.argv[1], "r")
n = 0
for i in file.readlines():
n = n + 1
s = "00%s" % n
print "%s| %s" % (s[-3:],i[:-1])
Anda bisa menjalankan dari prompt
sistem operasi dengan perintah,
$ python no-brs.py namafile.asal
Sekarang kira-kira Anda
bisa atau tidak menyimpan hasil perkalian 10x10 yang ditunjukkan sebelumnya ke
file? Tidak terlalu sulit bukan? Silakan mencoba. Saya tunggu tanggapan para pembaca.
0 comments:
Posting Komentar
PEDOMAN KOMENTAR
Ayo berpartisipasi membangun budaya berkomentar yang baik. Pantang bagi kita memberikan komentar bermuatan menghina atau spam.
Kolom komentar tersedia untuk diskusi, berbagi ide dan pengetahuan. Hargai pembaca lain dengan berbahasa yang baik dalam berekspresi. Setialah pada topik. Jangan menyerang atau menebar kebencian terhadap suku, agama, ras, atau golongan tertentu.
Bangun sharing ilmu dengan berkomentar disini :