2 Variabel, List, Lambda dan Operator 2.1 Variabel dan Tipe Data Tipe data menyatakan pola penyajian data dalam komputer: karakter, bilangan, string, record. Tipe data dibedakan menjadi dua yaitu tipe data dasar dan tipe data khusus. Tabel dibawah menampilkan beberapa tipe data dasar dan domainnya, yang dikenal dalam Python. Nama Tipe Data Ukuran (byte) Jangkauan integer 4 -2147483648 - 2147483649 long integer tak hingga tak hingga float 8 2.2e-308 - 1.7e+308 string Variabel merupakan penampung data yang isinya dapat diubah. Data yang dapat disimpan adalah data sesuai dengan tipenya. Nama variabel terdiri dari huruf, angka dan garis bawah, dapat didahului oleh huruf dan garis bawah, dengan ketentuan: 1. Tidak dapat didahului oleh angka. 2. Tidak dapat menggunakan opeator hitung dan karakter - karakter khusus seperti: + - / * % : ; . , # @ $ & 3. Nama variabel tidak dapat disela dengan spasi. 4. Tidak dapat menggunakan reserved words. 5. Huruf besar dan huruf kecil berbeda. Pemberian (assignment) nilai ke variabel Tipe data dari variabel ditentukan oleh isi yang diberikan oleh programmer. Jika programmer memberikan nilai yang masuk dalam range integer maka variabel tersebut akan bertipe integer, jika floating-point maka variabel tersebut akan bertipe float, dan seterusmya. Berikut ini merupakan contoh dari penggunaan variabel
7
Praktikum Pemrograman Komputer
1 2 3 4 5 6 7 8
a = 10.5 type(a) a = 10 type(a) a = 2**1024 type(a) a = "ini String" type(a)
Latihan. 3.1 1 2
# Program 3.1 import math
3 4 5
r = input("Jari - jari lingkaran = ") print "Luas lingkaran = ", math.pi*r*r
Latihan. 3.2 1 2
# Program 3.2 import math
3 4 5 6
r = input("Jari - jari lingkaran = ") luas = math.pi*r*r print "Luas lingkaran = ", luas
2.2 List List pada dasarnya adalah sebuah array yang bisa terdiri dari satu jenis tipe data ataupun terdiri dari beberapa tipe data. Tuple sedikit banyak merupakan sebuah list, hanya saja pada tuple isi dari tuple tersebut bersifat read-only.
2.2.1 List Satu Dimensi List adalah deretan variabel yang mempunyai tipe data tertentu dan mempunyai nilai yang sama. Pada bahasa Python, list dapat dideklarasikan dengan menggunakan perintah sebagai berikut.
8
Praktikum Pemrograman Komputer
1 2 3
list_a = [10, 10, 20, 30, 40] list_b = ["ini string", 1, 2, 3] list_c = ["string 1", 1.0, 2.0, 1E-20, 10.3456]
Akses ke dalam list dapat menggunakan beberapa cara, yaitu dengan menggunakan indeks langsung, indeks bacward, dan slice. Berikut contoh masing - masing cara tersebut. 1 2 3 4 5
a a a a a
= = = = =
list_a[0] # a = 10 list_a[0:3] # a = [10, 10, 20] list_a[::-1] # a = [40, 30, 20, 10, 10] list_a[-1] # a = 40 list_a[-3::] # a = [20, 30, 40]
2.2.2 List Multidimensi List multidimensi mempunyai dimensi yang lebih dari 1, seperti pendeklarasian suatu matriks. Semua aturan pada list multimensi sama dengan aturan yang ada pada list satu dimensi. Dimensi yang digunakan antara data pertama dan data berikutnya tidak harus sama dan dapat berubah sesuai dengan data yang digunakan. Berikut merupakan contoh perintah untuk mendeklarasikan suatu list multidimensi. 1 2 3
list_a = [ [0, 0, 0], [1, 1, 1], [3, 3, 3] ] list_b = [ "string 1", "string 2", [3, 4, 5] ] list_c = [ [0.0, 1.0, 0.0], [1, 1, 1], [3.56, 1.234, 23.45] ]
Akses ke dalam list mempunyai aturan yang sama dengan akses data pada list satu dimensi. Berkut merupaka contoh akses data untuk list multidimensi. 1 2 3 4
a a a a
= = = =
list_a[0][1] # a = 1 list_a[::-1][0] # a = [3, 3, 3] list_a[-1] # a = [3, 3, 3] list_a[-2::] # a = [ [1, 1, 1], [3, 3, 3] ]
Latihan. 3.3
9
Praktikum Pemrograman Komputer
1 2 3 4 5 6 7
# Program 3.3 N = 5 tab = [0] * N for i in range(N) tab[i] = i for i in range(N): print "i =", i, "tab[i] =", tab[i]
Latihan. 3.4 1 2 3 4 5 6 7
# Program 3.4 b = [ [0, 0, 0] ] * 5 for i in range(3): for j in range(5): b[j][i] = i*j print b[j][i], " ", print
2.3 Fungsi Lambda Fungsi lambda adalah suatu fungsi yang merepresentasikan suatu fungsi anonymous untuk perumusan tertentu. Berikut contoh perbedaan dan penggunaan antara fungsi biasa dengan fungsi lambda. 1 2
def f(x): return x**2 print f(8)
3 4 5
g = lambda x: x**2 print g(8)
Setiap yang dapat dilihat pada kode diatas, f() dan g() melakukan perintah yang sama dan dapat digunakan dengan cara yang sama. Fungsi lambda diadaptasi oleh Python dari functional programming dan keuntungan dari fungsi lambda adalah tidak perlu mendeklarasikan variabel apapun.
2.4 Operator Operator merupakan simbol atau kata yang digunakan untuk operasi dan manipulasi dalam program yang melibatkan satu (unary operator) atau dua nilai (binary operator).
10
Praktikum Pemrograman Komputer Tabel 2.1: Operator Aritmatika Operator * / %
Operasi Operator Perkalian Pembagian + Sisa Pembagian **
Operasi Pengurangan Penambahan Pangkat
Tabel 2.2: Operator Relasi Operator < <= >
Operasi lebih kecil lebih kecil atau sama dengan lebih besar
Operator >= == !=
Operasi Lebih besar atau sama dengan sama dengan tidak sama dengan
Operator Aritmatika Merupakan operator untuk operasi aritmatika seperti: Latihan. 3.5 1 2 3 4 5 6 7
# Program 3.5 i = 100 j = j * 2 k = j / 4 l = k % 3 f = lambda x: x**2 print "Nilai i: %d \nNilai j: %d" % (i,j) print "Nilai k: %d \nNilai l: %d" % (k,l)
Operator Relasi Merupakan operator untuk membandingkan dua buah nilai. Keluaran atau hasil pembandingan adalah kondisi benar atau kondisi salah. Operator Logika Merupakan operator untuk menghubungkan satu atau lebih kondisi. Kondisi bisa merupakan hasil pembandingan yang menggunakan operator relasi. Tabel 2.3: Operator Logika Operatior and or not
Operasi Logika AND Logika OR Logika NOT
11
Praktikum Pemrograman Komputer Tabel 2.4: Kebenaran operasi AND dan OR Kondisi 1 Salah Salah Benar Benar
Kondisi 2 Salah Benar Salah Benar
Hasil AND Salah Salah Salah Benar
Kondisi 1 Salah Salah Benar Benar
Kondisi 2 Salah Benar Salah Benar
Hasil OR Salah Benar Benar Benar
Latihan. 3.6 1 2 3 4 5
# Program 3.6 k = 2 * 3 l = (k == 6) m = 5 or 10 print "K =", k, "L = ", l, "M = ", m
2.5 Tugas 1. Buatlah program untuk menampilkan jumlah hari, jam, menit dan detik dari masukkan berupa lamanya waktu dalam detik. Sebagai contoh: dengan masukkan 100.000 detik akan menghasilkan luaran 1 hari 3 jam 46 menit 40 detik. Langkah - langkahnya adalah sebagai berikut: a) Jika N adalah jumlah detik (contoh: 100.000) b) Buatlah sebuah variabel A, yang berisi (60 * 60 * 24) c) Bagi nilai N dengan A, simpan di variabel HARI d) Kalikan nilai A dengan HARI, simpan di variabel B e) Kurangi nilai N dengan B, simpan di variabel C f) Bagi nilai C dengan (60 * 60), simpan di variabel JAM g) Kalikan nilai JAM dengan (60 * 60), simpan di variabel D h) Kurangi nilai C dengan D, simpan di variabel E i) Bagi nilai E dengan 60, simpan di variabel MENIT j) Modulus nilai N dengan 60, simpan di variabel DETIK 2. Buatlah program untuk mencari determinan dari matriks 3x3, simpan di variabel DET ! 3. Buatlah program untuk mencari transpose dari matriks 3x3, simpan di variabel TRANS !
12