Agen Terpercaya   Advertise
 
 
 
Pasang iklan, hanya lewat Contact Us.
Waspada penipuan iklan. Klik di sini untuk melihat daftar penipu.

SHARE » Pутнση Mαѕυк Sιηι «

8apps

Semprot Baru
Daftar
7 Jun 2019
Post
33
Like diterima
30
Bimabet
Sintaks Dasar Python

Statement (Pernyataan) di Python :
Semua perintah yang bisa dieksekusi oleh Python disebut statement. Misalnya, a = 1 adalah sebuah statement penugasan. Selain statement penugasan ada statement lain seperti statement if, statement for, dan lain sebagainya.

Statement Multibaris :
Di Python, akhir dari sebuah statement adalah karakter baris baru (newline). Kita dapat membuat sebuah statement terdiri dari beberapa baris dengan menggunakan tanda backslash ( \ ). Misalnya:
a = panjang1 + panjang2 + \
panjang3 + \
panjang4

Statement yang ada di dalam tanda kurung [ ], { }, dan ( ) tidak memerlukan tanda \. Contohnya:
nama_bulan = ['Januari', 'Maret', 'Juni', 'September']


Baris dan Indentasi :
Python tidak menggunakan tanda { } untuk menandai blok / grup kode. Blok kode di python menggunakan tanda indentasi (spasi). Jumlah spasi untuk setiap baris yang ada dalam satu blok kode harus sama. Contoh yang benar adalah sebagai berikut:
if nilai <= 5:
print("Nilai merah")
print("Tidak lulus")
else:
print("Nilai biru")
print("Lulus")

Bila indentasi dalam satu grup kode tidak sama, python akan menampilkan sintaks error.
if True:
print ("Jawab")
print ("Benar")

else:
print ("Jawab")
print ("Salah")

SyntaxError: unexpected indent


Tanda Kutip di Python:
Python menggunakan tanda kutip tunggal (‘), ganda (“), maupun triple (”’ atau “””) untuk menandai string, sepanjang stringnya diawali oleh tanda kutip yang sama di awal dan akhir string.

Tanda kutip tiga digunakan untuk string multibaris. Ketiga contoh berikut, semuanya adalah benar,
kata = 'kata'
kalimat = "Ini adalah kalimat"
paragraf = """Ini adalah paragraf. Paragraf
terdiri dari beberapa baris."""

Komentar di Python:
Tanda pagar ( # ) digunakan untuk menandai komentar di python. Komentar tidak akan diproses oleh interpreter Python. Komentar hanya berguna untuk programmer untuk memudahkan memahami maksud dari kode.

NB ; Python tidak memiliki fitur komentar multibaris. Kita harus mengomentari satu persatu
 
Variabel dan Tipe Data Python
Variabel adalah lokasi di memori yang digunakan untuk menyimpan nilai. Pada saat kita membuat sebuah variabel, kita ‘memesan’ tempat di dalam memori. Tempat tersebut bisa diisi dengan data atau objek, baik itu bilangan bulat (integer), pecahan (float), karakter (string), dan lain – lain.

Memberi Nilai Variabel
Di python, variabel tidak perlu dideklarasikan secara eksplisit. Deklarasi atau pembuatan variabel terjadi secara otomatis pada saat kita memberi (menugaskan) suatu nilai ke variabel. Tanda sama dengan ( = ) digunakan untuk memberikan nilai ke variabel.

Operand di sebelah kiri tanda = adalah nama variabel dan di sebelah kanan tanda = adalah nilai yang disimpan di dalam variabel. Sebagai contoh:
panjang = 100 # tipe data integer
lebar = 21.5 # tipe data float
nama = "Umar" # tipe string
print(panjang)
print(lebar)
print(nama)
Python memiliki enam tipe data standar atau paling sering digunakan, yaitu:
  • Bilangan (Number)
  • String
  • List
  • Tuple
  • Set
  • Dictionary
Tipe data bilangan yang umum ada 2 yaitu, integer dan float. Integer adalah bilangan bulat, sedangkan float adalah bilangan pecahan. Selain itu ada tipe bilangan lain, yaitu bilangan kompleks yaitu bilangan yang memiliki bagian real dan imajiner. Integer, float, dan kompleks masing-masing di Python diwakili oleh kelas int, float, dan complex.
tipe() :
x = 5
print(x, "tipenya adalah ", type(x))
x = 2.0
print(x, "tipenya adalah ", type(x))
x = 1+2j
print(x, "tipenya adalah ",type(x))

Tipe data integer di Python panjangnya bisa berapa saja. Panjangnya hanya dibatasi oleh besar memori yang tersedia. Tipe data float akurat sampai 17 angka di belakang koma. Berikut contoh panjang bilangan menggunakan mode interaktif di IDLE. Perhatikan bagaimana bilangan float terpotong panjangnya.
>>> a = 1234567899999999999999999999
>>> a
1234567899999999999999999999
>>> b = 0.123456789123456789
>>> b
0.12345678912345678
>>> c = 1+4j
>>> c
(1+4j)

String adalah satu atau serangkaian karakter yang diletakkan diantara tanda kutip, baik tanda kutip tunggal ( ‘ ) maupun ganda ( ” ). Huruf, angka, maupun karakter lainnya yang digabung menjadi teks adalah contoh string.
String adalah tipe data yang anggotanya berurut dan memiliki indeks. Indeks dimulai dari angka 0 bila dimulai dari depan dan -1 bila diindeks dari belakang. Tiap karakter bisa diakses menggunakan indeksnya dengan formatnamastring[indeks] . Pada string juga bisa dilakukan slicing atau mengakses sekelompok substring dengan format namastring[awal:akhir]. Untuk jelasnya bisa diperhatikan contoh berikut.
kalimat = "Nama saya Umar"

print(kalimat) # print string lengkap
print(kalimat[0]) # print karakter pertama
print(kalimat[-1]) # print karakter terakhir
print(kalimat[4:7]) # print dari indeks 4 - 6
print(kalimat[:4]) # print dari indeks 0 - 3

List adalah tipe data yang berisi item yang berurut. Seperti halnya tipe data string, tiap item (anggota) list memiliki indeks sesuai dengan urutannya. Indeks dimulai dari 0 dan bukan dari 1.
List bisa berisi anggota dengan tipe yang sama maupun berbeda. Untuk mendeklarasikan list, digunakan tanda kurung [ ] dan masing-masing anggotanya dipisahkan oleh tanda koma.
Untuk mengakses item dari list caranya adalah dengan memanggil nama list diikuti indeks dari item yang bersangkutan, yaitu dengan format namalist[index]
Selain itu bisa juga dilakukan pengaksesan terhadap sejumlah item dari indeks ke indeks. Hal ini disebut slicing. Contohnya sebagai berikut:
a = [5,10,15,20,25,30,35,40]

# a[2] = 15
print("a[2] = ", a[2])

# a[0:3] = [5, 10, 15]
print("a[0:3] = ", a[0:3])

# a[5:] = [30, 35, 40]
print("a[5:] = ", a[5:])

Tuple adalah jenis data lain yang mirip dengan list. Perbedaannya dengan list adalah anggotanya tidak bisa diubah (immutable). List bersifat mutable, sedangkan tuple bersifat immutable. Sekali tuple dibuat, maka isinya tidak bisa dimodifikasi lagi.
Tuple dideklarasikan dengan menggunakan tanda kurung ( ). dan anggotanya dipisahkan oleh tanda koma. Tuple berguna untuk data yang dimaksudkan tidak diubah isinya. Misalnya tuple komposisi warna untuk putih adalah (255,255,255).
Seperti halnya list, kita bisa mengakses anggota tuple dengan menggunakan indeksnya.
white = (255,255, 255)
red = (255,0,0)
print(white)
print(red[0])
print(red[1])

# akan menghasilkan error
# tuple bersifat immutable
red[0] = 128

Set adalah salah satu tipe data di Python yang tidak berurut (unordered). Set memiliki anggota yang unik (tidak ada duplikasi). Jadi misalnya kalau kita meletakkan dua anggota yang sama di dalam set, maka otomatis set akan menghilangkan yang salah satunya.
Set bisa digunakan untuk melakukan operasi himpunan matematika seperti gabungan, irisan, selisih, dan komplemen.
Set dibuat dengan meletakkan anggota – anggotanya di dalam tanda kurung kurawal { }, dipisahkan menggunakan tanda koma. Kita juga bisa membuat set dari list dengan memasukkan list ke dalam fungsi set()
Set bisa berisi data campuran, baik integer, float, string, dan lain sebagainya. Akan tetapi set tidak bisa berisi list, set, dan dictionary.
# set integer
my_set = {1,2,3}
print(my_set)

# set dengan menggunakan fungsi set()
my_set = set([1,2,3])
print(my_set)

# set data campuran
my_set = {1, 2.0, "Python", (3,4,5)}
print(my_set)

# bila kita mengisi duplikasi, set akan menghilangkan salah satu
# output: {1,2,3}

Dictionary adalah tipe data yang tiap anggotanya terdiri dari pasangan kunci-nilai (key-value). Mirip dengan kamus dimana ada kata ada arti. Dictionary umumnya dipakai untuk data yang besar dan untuk mengakses anggota data secara acak. Anggota dictionary tidak memiliki indeks.
Dictionary dideklarasikan dengan menggunakan tanda kurung kurawal { }, dimana anggotanya memiliki bentuk kunci:nilai atau key:value dan tiap anggota dipisah tanda koma. Kunci dan nilainya bisa memiliki tipe sembarang.
Untuk mengakses nilai dari anggota dictionary, kita menggunakan key-nya.
d = {1:'satu', 2:'dua', 'tiga':3}
print(tipe(d))
print("d[1] = ", d[1])
print("d['tiga'] = ", d['tiga'])
# Error
print("d[3] = ", d[3])

Beberapa Catatan …
  • Tipe data sering disebut objek. Pada dasarnya semua hal di python adalah objek.
  • Ada tipe data lain yang umumnya dimiliki oleh bahasa Python, yaitu tipe None. Tipe None adalah sebuah tipe data spesial yang menunjukkan bahwa nilai/data suatu variabel itu belum/tidak ada (bukan nol, tapi tidak ada). Pada bahasa pemrograman lain seperti C, atau PHP, tipe data ini disebut null.
  • Tipe data string, tuple, dan list masuk ke dalam tipe data yang disebut tipe data berurut / ordered atau sekuensial / sequence. Tipe data dictionary disebut data tidak berurut / unordered.
 
OPERATOR
Python memiliki sejumlah operator, yaitu:
  • Operator Aritmatika
  • Operator Perbandingan
  • Operator Penugasan
  • Operator Logika
  • Operator Bitwise
  • Operator Identitas
  • Operator Keanggotaan
Operator aritmatika adalah operator yang digunakan untuk melakukan operasi matematika, seperti penjumlahan, pengurangan, perkalian, pembagian, dan sebagainya. Tabel berikut menunjukkan jenis operator aritmatika.
OperatorNama dan FungsiContoh
+Penjumlahan, menjumlahkan 2 buah operandx + y
Pengurangan, mengurangkan 2 buah operandx – y
*Perkalian, mengalikan 2 buah operandx * y
/Pembagian, membagi 2 buah operandx / y
**Pemangkatan, memangkatkan bilanganx **y
//Pembagian bulat, menghasilkan hasil bagi tanpa komax // y
%Modulus, menghasilkan sisa pembagian 2 bilanganx % y

Operator perbandingan adalah operator yang digunakan untuk membandingkan 2 buah nilai. Hasil perbandingannya adalah True atau False tergantung kondisi.

OperatorNama dan FungsiContoh
>Lebih besar dari – Hasilnya True jika nilai sebelah kiri lebih besar dari nilai sebelah kananx > y
<Lebih kecil dari – Hasilnya True jika nilai sebelah kiri lebih kecil dari nilai sebelah kananx < y
==Sama dengan – Hasilnya True jika nilai sebelah kiri sama dengan nilai sebelah kananx == y
!=Tidak sama dengan – Hasilnya True jika nilai sebelah kiri tidak sama dengan nilai sebelah kananx != y
>=Lebih besar atau sama dengan – Hasilnya True jika nilai sebelah kiri lebih besar atau sama dengan nilai sebelah kananx >= y
<=Lebih kecil atau sama dengan – Hasilnya True jika nilai sebelah kiri lebih kecil atau sama dengan nilai sebelah kananx <= y

Operator penugasan adalah operator yang digunakan untuk memberi nilai ke variabel.
a = 7 adalah contoh operator penugasan yang memberi nilai 7 di kanan ke variabel a yang ada di kiri.

OperatorPenjelasanContoh
=Menugaskan nilai yang ada di kanan ke operand yang ada di sebelah kiric = a + b menugaskan a + b ke c
+=Menambahkan operand yang di kanan dengan operand yang ada di kiri dan hasilnya di tugaskan ke operand yang di kiric += a sama dengan c = c + a
-=Mengurangi operand yang di kanan dengan operand yang ada di kiri dan hasilnya di tugaskan ke operand yang di kiric -= a sama dengan c = c + a
*=Mengalikan operand yang di kanan dengan operand yang ada di kiri dan hasilnya di tugaskan ke operand yang di kiric *= a sama dengan c = c * a
/=Membagi operand yang di kanan dengan operand yang ada di kiri dan hasilnya di tugaskan ke operand yang di kiric /= a sama dengan c = c * a
**=Memangkatkan operand yang di kanan dengan operand yang ada di kiri dan hasilnya ditugaskan ke operand yang di kiric **= a sama dengan c = c ** a
//=Melakukan pembagian bulat operand di kanan terhadap operand di kiri dan hasilnya disimpan di operand yang di kiric //= a sama dengan c = c // a
%=Melakukan operasi sisa bagi operand di kanan dengan operand di kiri dan hasilnya di simpan di operand yang di kiric %= a sama dengan c = c % a

Operator logika adalah operator yang digunakan untuk melakukan operasi logika.

OperatorPenjelasanContoh
andHasilnya adalah True jika kedua operandnya bernilai benarx and y
orHasilnya adalah True jika salah satu atau kedua operandnya bernilai benarx or y
notHasilnya adalah True jika operandnya bernilai salah (kebalikan nilai)not x

Operator bitwise adalah operator yang melakukan operasi bit terhadap operand. Operator ini beroperasi bit per bit sesuai dengan namanya. Sebagai misal, angka 2 dalam bit ditulis 10 dalam notasi biner dan angka 7 ditulis 111
Pada tabel di bawah ini, misalkan x = 10 ( 0000 1010) dalam biner dan y = 4 (0000 0100) dalam biner.

OperatorNamaContoh
&Bitwise ANDx& y = 0 (0000 0000)
|Bitwise ORx | y = 14 (0000 1110)
~Bitwise NOT~x = -11 (1111 0101)
^Bitwise XORx ^ y = 14 (0000 1110)
>>Bitwise right shiftx>> 2 = 2 (0000 0010)
<<Bitwise left shiftx<< 2 = 40 (0010 1000)

Operator identitas adalah operator yang memeriksa apakah dua buah nilai ( atau variabel ) berada pada lokasi memori yang sama.

OperatorPenjelasanContoh
isTrue jika kedua operand identik (menunjuk ke objek yang sama)x is True
is notTrue jika kedua operand tidak identik (tidak merujuk ke objek yang sama)x is not True

Operator keanggotaan adalah operator yang digunakan untuk memeriksa apakah suatu nilai atau variabel merupakan anggota atau ditemukan di dalam suatu data (string, list, tuple, set, dan dictionary).
OperatorPenjelasanContoh
inTrue jika nilai/variabel ditemukan di dalam data5 in x
not inTrue jika nilai/variabel tidak ada di dalam data5 not in x
 
PERCABANGAN
Di Python ada 3 jenis pernyataan yang digunakan untuk percabangan, yaitu sebagai berikut:
NoPernyataanDeskripsi
1ifPernyataan if terdiri dari ekspresi boolean diikuti oleh satu baris atau lebih pernyataan.
2if…elseBila pernyataan if benar, maka blok pernyataan if dieksekusi. Bila salah, maka blok pernyataan else yang dieksekusi.
3if…elif…elseDisebut juga if bercabang. Bila ada kemungkinan beberapa kondisi bisa benar maka digunakan pernyataan if…elif atau if…elif…else

Pernyataan if menguji satu buah kondisi. Bila hasilnya benar maka pernyataan di dalam blok if tersebut dieksekusi. Bila salah, maka pernyataan tidak dieksekusi. Sintaksnya adalah seperti berikut:
if tes kondisi:
blok pernyataan if
# Bila bilangan positif, tampilkan pesan

angka = 5
if angka > 0:
print(angka, "adalah bilangan positif.")

angka = -1
# yang berikut akan bernilai False sehingga tidak dieksekusi
if angka > 0:
print(angka, "adalah bilangan positif.")
Pada contoh di atas, awalnya angka berisi 5. Pada saat if yang pertama dieksekusi maka kondisinya adalah apakah 5 > 0? Karena hasilnya benar/True, maka statement di grup if ini dieksekusi dan menampilkan pesan 5 adalah bilangan positif.
Selanjutnya angka sudah diubah jadi -1. Untuk if yang kedua, hasil pengujian kondisinya menjadi apakah -1 > 0? Hasilnya salah/False. Oleh karena itu, pernyataan di dalam grupnya tidak dijalankan.



Pernyataan if…else menguji 2 kondisi. Kondisi pertama kalau benar, dan kondisi kedua kalau salah. Sintaksnya adalah seperti berikut:
if tes kondisi:
blok pernyataan if
else:
blok pernyataan else
# Program menguji apakah sebuah bilangan positif atau negatif
# dan menampilkan pesan ke monitor

bilangan = 5

# coba juga mengubah bilangan menjadi bilangan = -1
# dan perhatikan hasilnya

if bilangan >= 0:
print("Positif atau Nol")
else:
print("Bilangan negatif")
Pada contoh di atas, bilangan kita beri nilai 5. Kemudian pada pengujian if, kondisinya adalah apakah bilangan >= 0? Hasilnya adalah benar, maka hasil yang ditampilkan adalah Positif atau Nol. Seandainya kita ganti bilangan jadi -1, maka hasil pengujian if nya akan salah/False dan blok else yang akan dijalankan, yaitu menampilkan pesan Bilangan negatif.



Pernyataan if…elif…else digunakan untuk menguji lebih dari 2 kondisi. Bila kondisi pada if benar, maka pernyataan di dalamnya yang dieksekusi. Bila salah, maka masuk ke pengujian kondisi elif. Terakhir bila tidak ada if atau elif yang benar, maka yang dijalankan adalah yang di blok else. Sintaksnya adalah seperti berikut:
if tes kondisi:
blok pernyataan if
elif tes kondisi:
blok pernyataan elif
else:
blok pernyataan else
# Di sini kita menguji apakah sebuah bilangan
# adalah bilangan positif, nol, atau negatif
# dan menampilkan hasilnya ke layar

bilangan = 5.5

# Coba juga mengganti bilangan jadi
# bilangan = 0
# bilangan = -5.5

if bilangan > 0:
print("Bilangan positif")
elif bilangan == 0:
print("Nol")
else:
print("Bilangan negatif")

Pada contoh di atas, bilangan kita beri nilai 5.5. Pada pengujian if, kondisinya adalah apakah bilangan > 0? Hasilnya benar, maka yang ditampilkan adalah pesan Bilangan positif.
Bila nilai bilangan kita ganti menjadi 0, maka yang akan bernilai benar adalah pernyataan elif. Bila kita mengganti bilangan jadi minus, maka kondisi if dan elif salah, dan yang dijalankan adalah blok else.



CATATAN :
Python mengasumsikan bahwa nilai selain nol dan selain tipe None sebagai nilai True, dan yang nilai nol dan None sebagai False.
 
Perulangan
Secara umum, Python mengeksekusi program baris perbaris. Mulai dari baris satu, dua, dan seterusnya. Ada kalanya, kita perlu mengeksekusi satu baris atau satu blok kode program beberapa kali. Hal ini disebut dengan perulangan atau biasa disebut looping atau iterasi.

Di python, perulangan bisa dilakukan dengan dua cara atau metode, yaitu:
  1. Menggunakan for
  2. Menggunakan while
Perulangan Dengan Menggunakan For

Perulangan dengan menggunakan for memiliki sintaks seperti berikut:
for var in sequence:
body of for

var adalah variabel yang digunakan untuk penampung sementara nilai dari sequence pada saat terjadi perulangan. Sequence adalah tipe data berurut seperti string, list, dan tuple.
Perulangan terjadi sampai looping mencapai elemen atau anggota terakhir dari sequence. Bila loop sudah sampai ke elemen terakhir dari sequence, maka program akan keluar dari looping.
# Program untuk menemukan jumlah bilangan dalam satu list

# List number
numbers = [7, 5, 9, 8, 4, 2, 6, 4, 1]

# variablel untuk menyimpan jumlah

sum = 0

# iterasi
for each in numbers:
sum = sum + each

Fungsi range() dapat digunakan untuk menghasilkan deret bilangan. range(10) akan menghasilkan bilangan dari 0 sampai dengan 9 (10 bilangan).
Kita juga bisa menentukan batas bawah, batas atas, dan interval dengan format range(batas bawah, batas atas, interval).Bila interval dikosongkan, maka nilai default 1 yang akan digunakan.
Fungsi range tidak menyimpan semua nilai dalam memori secara langsung. Ia hanya akan mengingat batas bawah, batas atas, dan interval dan membangkitkan hasilnya satu persatu hanya bila dipanggil. Untuk membuat fungsi ini langsung menampilkan semua item, kita bisa menggunakan fungsi list(). Untuk jelasnya perhatikan contoh berikut:
# Output: range(0,10)
print(range(10))

# Output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(range(10))

# Output: [2, 3, 4, 5, 6, 7]
print(list(range(2,8))

# Output: [2, 5, 8, 11, 14, 17]
print(list(range(2, 20, 3))
bisa menggunakan fungsi range() dalam perulangan menggunakan for untuk iterasi bilangan berurut. Hal ini dengan cara mengkombinasikan fungsi range() dengan fungsi len() . Fungsi len() berfungsi untuk mendapatkan panjang atau jumlah elemen suatu data sekuensial atau berurut.
# Program untuk iterasi list menggunakan pengindeksan

mapel = ['matematika', 'fisika', 'kimia']

# iterasi list menggunakan indeks
for i in range(len(mapel)):
print("Saya suka", mapel)


Perulangan menggunakan while akan menjalankan blok pernyataan terus menerus selama kondisi bernilai benar.
Adapun sintaks dari perulangan menggunakan while adalah:
while expression:
statement (s)
Di sini, statement (s) bisa terdiri dari satu baris atau satu blok pernyataan. Expression merupakan ekspresi atau kondisi apa saja, dan untuk nilai selain nol dianggap True. Iterasi akan terus berlanjut selama kondisi benar. Bila kondisi salah, maka program akan keluar dari while dan lanjut ke baris pernyataan di luar while.

Perhatikan bahwa bila kondisi yang diuji bernilai salah, maka loop tidak akan pernah dieksekusi.
count = 0
while (count < 5):
print('The count is:', count)
count = count + 1
print('Good bye!')
pernyataan print('The count is:', count), dijalankan terus selama count masih lebih kecil dari 5. Count ditambah 1 setiap kali iterasi. Pada saat nilai count mencapai 5, maka kondisi menjadi False dan program keluar dari looping while dan melanjutkan baris selanjutnya yaitu print("Good bye").

Infinite Loop
Sebuah kondisi dimana loop selalu benar dan tidak pernah salah disebut loop tidak terbatas (infinite loop). Terkadang hal ini menjadi masalah. Tapi sering juga infinite loop berguna, misalnya untuk program client/server dimana server perlu menjaga komunikasi tetap hidup dan tidak terputus.
Pada contoh program while di atas, bila kita lupa menuliskan kode count = count + 1, maka akan jadi infinite loop. Hasilnya akan jadi seperti berikut:
The count is: 0
The count is: 0
The count is: 0
The count is: 0
The count is: 0
Traceback (most recent call last):
File "<pyshell#4>", line 2, in <module>
print('The count is:', count)
File "C:\Python34\lib\idlelib\PyShell.py", line 1344, in write
return self.shell.write(s, self.tags)
KeyboardInterrupt

Kendali Looping
Looping umumnya akan berhenti bila kondisi sudah bernilai salah. Akan tetapi, seringkali kita perlu keluar dari looping di tengah jalan tergantung keperluan. Hal ini bisa kita lakukan dengan menggunakan kata kunci break dan continue.
Statement break memaksa program keluar dari blok looping di tengah jalan. Sedangkan statement continue menyebabkan program langsung melanjut ke step / interval berikutnya dan mengabaikan (skip) baris kode di bawahnya (yang satu blok). Jelasnya perhatikan contoh berikut:
# contoh penggunaan statement break
for letter in "Programming":
if letter == "g":
break
print("Huruf sekarang:", letter)
print("Good bye")

while else
Python mendukung penggunaan else sebagai pasangan dari while. Blok pernyataan else hanya akan dieksekusi bila kondisi while bernilai salah.
count = 0
while (count < 5):
print(count, "kurang dari 5")
count = count + 1
else:
print(count, "tidak kurang dari 5")
 
Bilangan (Number)

Bilangan (number) adalah salah satu tipe data dasar di Python. Python mendukung bilangan bulat (integer), bilangan pecahan (float), dan bilangan kompleks (complex). Masing – masing diwakili oleh kelas int, float, dan complex.
Integer adalah bilangan bulat, yaitu bilangan yang tidak mempunyai koma. Contohnya 1, 2, 100, -30, -5, 99999, dan lain sebagainya. Panjang integer di python tidak dibatasi jumlah digitnya. Selama memori masih cukup, maka sepanjang itulah jumlah digit yang akan ditampilkan.
Float adalah bilangan pecahan atau bilangan berkoma. Contohnya adalah 5.5, 3.9, 72.8, -1.5, -0.7878999, dan lain sebagainya. Panjang angka di belakang koma untuk float ini adalah 15 digit.
Bilangan kompleks (complex) adalah bilangan yang terdiri dari dua bagian, yaitu bagian yang real dan bagian yang imajiner. Contohnya adalah 3 + 2j, 9 – 5j, dan lain sebagainya.

Konversi Jenis Bilangan
Kita bisa mengubah jenis bilangan dari int ke float, atau sebaliknya. Mengubah bilangan integer ke float bisa menggunakan fungsi int(num) dimana num adalah bilangan float.
>>> int(2.5)
2
>>> int(3.8)
3
>>> float(5)
5.0
Pada saat kita mengubah float ke integer, bilangan dibulatkan ke bawah. Sebaliknya saat kita mengubah integer ke float, maka bilangan bulat akan menjadi bilangan berkoma.

Python Decimal
Ada kalanya perhitungan menggunakan float di Python membuat kita terkejut. Kita tahu bahwa 1.1 ditambah 2.2 hasilnya adalah 3.3. Tapi pada saat kita lakukan dengan Python, maka hasilnya berbeda.
>>> (1.1 + 2.2 ) == 3.3
False
>>> 1.1 + 2.2
3.3000000000000003

Mengapa terjadi demikian?

Hal ini terjadi karena bilangan dalam komputer disimpan dalam bentuk digit 0 atau 1. Bila padanan digitnya tidak sesuai, maka bilangan float seperti 0.1 dalam bilangan biner akan menjadi pecahan yang sangat panjang yaitu 0.000110011001100110011… dan komputer kita hanya akan menyimpan panjang yang terbatas. Hal inilah yang menyebabkan terjadinya masalah seperti pada contoh di atas.
Untuk menangani hal seperti itu, kita bisa menggunakan modul bawaan Python yaitu modul decimal. Float hanya memiliki presisi sampai 15 digit di belakang koma, sementara dengan modul decimal kita bisa mengatur presisi jumlah digit di belakang koma.
import decimal

#output: 0.1
print(0.1)

#output: Decimal('0.1000000000000000055511151231257827021181583404541015625')
print(decimal.Decimal(0.1))
Kapan Saatnya Menggunakan Decimal Dibanding Float?
Kita lebih baik menggunakan Decimal dalam kasus:
  • Saat kita ingin membuat aplikasi keuangan yang membutuhkan presisi desimal yang pasti
  • Saat kita ingin mengontrol tingkat presisi yang diperlukan
  • Saat kita ingin menerapkan perkiraan berapa digit decimal yang signifikan
  • Saat kita ingin melakukan operasi perhitungan sama persis dengan yang kita lakukan di sekolah



Bilangan Pecahan
Python menyediakan modul fractions untuk mengoperasikan bilangan pecahan. Pecahan adalah bilangan yang memiliki pembilang dan penyebut, misalnya 3/2. Perhatikan contoh berikut:
import fractions

#output: 3/2
print(fractions.Fraction(1.5))

#output: 1/3
print(fractions.Fraction(1,3))

Operasi dasar seperti penjumlahan atau pembagian pecahan juga bisa dilakukan dengan modul fractions ini
from fractions import Fraction as F

# Output: 2/3
print(F(1,3) + F(1,3))

# Output: 6/5
print(1 / F(5,6))

# Output True
print(F(-3,10) < 0)



Matematika Dengan Python
Python menyediakan modul math melakukan hal yang berbau matematis seperti trigonometri, logaritma, probabilitas, statistik, dan lain – lain.
import math

# Output: 3.141592653589793
print(math.pi)

# Output: -1.0
print(math.cos(math.pi))

# Output: 148.4131591025766
print(math.exp(5))

# Output: 2.0
print(math.log10(100))
 
String
String adalah tipe data yang paling sering digunakan di Python. Kita bisa membuat string dengan meletakkan karakter di dalam tanda kutip. Tanda kutipnya bisa kutip tunggal maupun kutip ganda. Contohnya adalah sebagai berikut:
var1 = 'Hello Python'
var2 = 'Programming with Python'

Untuk mengakses nilai atau substring dari string, kita menggunakan indeks dalam tanda [ ].
var1 = 'Hello Python!'
var2 = "I love Python"
print("var1[0]", var1[0])
print("var2[2:6]:",var2[2:6])

Mengupdate String
String adalah tipe data immutable, artinya tidak bisa diubah. Untuk mengupdate string, kita perlu memberikan nilai variabel string lama ke string yang baru. Nilai yang baru adalah nilai string lama yang sudah diupdate.
var1 = 'Hello Python!'
var2 = var1[:6]
print("String Update: - ", var1[:6] + 'World')

Menggabung String
Kita bisa menggabungkan dua atau lebih string menjadi satu dengan menggunakan operator +. Selain itu kita juga bisa melipatgandakan string menggunakan operator *.
str1 = 'Hello'
str2 = 'Python'

# menggunakan +
print('str1 + str2 =', str1 + str2)

# menggunakan *
print('str1 * 3 =', str1 * 3)

Menguji Keanggotaan Karakter Dalam String
Kita bisa menguji apakah sebuah substring ada terdapat di dalam suatu string atau tidak. Caranya adalah dengan menggunakan kata kunci in
>>> 'a' in 'Programming'
True
>>> 'at' not in 'battle'
False

Karakter Escape
Kalau kita hendak mencetak string: He said, "What's there?" kita tidak bisa menggunakan tanda kutip tunggal maupun ganda. Bila kita melakukannya, akan muncul pesan error SyntaxError karena teks berisi kutip tunggal dan ganda.
>>> print("He said, "What's there?"")
...
SyntaxError: invalid syntax
>>> print('He said, "What's there?"')
...
SyntaxError: invalid syntax

Untuk hal seperti ini kita bisa menggunakan tanda kutip tiga atau menggunakan karakter escape.
Karakter escape dimulai dengan tanda backslash \. Interpreter akan menerjemahkannya dengan cara berbeda dengan string biasa. Solusi untuk error di atas adalah sebagai berikut:
# menggunakan kutip tiga
print('''He said, "What's there?"''')

# menggunakan karakter escape untuk tanda kutip tunggal
print('He said, "What\'s there?"')

# menggunakan karakter escape untuk tanda kutip ganda
print("He said, \"What's there?\"")

Berikut adalah daftar karakter escape yang didukung oleh Python.

Karakter EscapeDeskripsi
\newlineBackslash dan newline diabaikan
\\Backslash
\’Kutip tunggal
\”Kutip ganda
\aASCII bel
\bASCII backscape
\fASCII formfeed
\nASCII linefeed
\rASCII carriage return
\tASCII tab horizontal
\vASCII tab horizontal
\oookarakter dengan nilai oktal oo
\xHHkarakter dengan nilai heksadesimal HH


Berikut ini adalah beberapa contohnya:
>>> print("C:\\Python34\\Lib")
C:\Python34\Lib

>>> print("Ini adalah baris pertama\nDan ini baris dua")
Ini adalah baris pertama
Dan ini baris dua

>>> print("Ini adalah \x48\x45\x58")
Ini adalah HEX

Raw String Untuk Mengabaikan Karakter Escape\
Kadang kala kita perlu untuk mengabaikan karakter escape yang ada dalam string. Kita bisa melakukannya dengan meletakkan huruf r atau R sebelum tanda kutip string.
>>> print("This is \x61 \ngood example")
This is a
good example
>>> print(r"This is \x61 \ngood example")
This is \x61 \ngood example

Mengatur Format String
Ada dua cara melakukan format pada string. Pertama dengan menggunakan fungsi format(), dan kedua dengan menggunakan cara lama (menggunakan %).

Metode format()
Memformat string dengan fungsi format() dibuat dengan menggunakan tanda {} sebagai placeholder atau posisi substring yang akan digantikan. Kita biasa menggunakan argumen posisi atau kata kunci untuk menunjukkan urutan dari substring.
# menggunakan posisi default
default_order = "{}, {} dan {}".format("Budi", "Galih","Ratna")
print('\n--- Urutan default ---')
print(default_order)

# menggunakan argument posisi
positional_order = "{1}, {0} dan {2}".format("Budi", "Galih","Ratna")
print('\n--- Urutan berdasarkan posisi ---')
print(positional_order)

# menggunakan argumen kata kunci
keyword_order = "{r}, {b} dan {g}".format("Budi", "Galih","Ratna")
print('\n--- Urutan berdasarkan kata kunci ---')
print(keyword_order)
Metode format() dapat memiliki spesifikasi format opsional. Misalnya, kita bisa menggunakan tanda < untuk rata kiri, > untuk rata kanan, ^ untuk rata tengah, dan sebagainya.
>>> # format integer
>>> "{0} bila diubah jadi biner menjadi {0:b}".format(12)
'12 bila diubah jadi biner menjadi 1100'

>>> # format float
>>> "Format eksponensial: {0:e}".format(1566.345)
'Format eksponensial: 1566345e+03'

>>> # pembulatan
>>> "Sepertiga sama dengan: {0:.3f}".format(1/3)
'Sepertiga sama dengan: 0.333'

>>> # Meratakan string
>>> "|{:<10}|{:^10}|{:>10}|".format('beras', 'gula', 'garam')
'|beras | gula | garam|'

Format Cara Lama Dengan %
Kita bisa menggunakan operator % untuk melakukan format string.
>>> nama = 'Budi'
>>> print('Nama saya %s' %s)
Nama saya Budi
>>> x = 12.3456789
>>> print('Nilai x = %3.2f' %x)
Nilai x = 12.35
>>> print('Nilai x = %3.4f' %x)
Nilai x = 12.3456

Metode / Fungsi Bawaan String
String memiliki banyak fungsi bawaan. format() yang kita bahas di atas hanya salah satu darinya. Fungsi atau metode lainnya yang sering dipakai adalah join(), lower(), upper(), split(), startswith(), endswith(), replace() dan lain sebagainya.
>>> "PythonIndo".lower()
'pythonindo'
>>> "Pythonindo".upper()
'PYTHONINDO'
>>> "I love programming in Python".split()
['I', 'love', 'programming', 'in', 'Python']
>>> "I love Python".startswith("I")
True
>>> "Saya belajar Python".endswith("on")
True
>>> ' - '.join(['I', 'love', 'you'])
I - love - you
 
List
Python menyediakan sejumlah tipe data yang dikenal dengan tipe data berurut (sequence). List adalah salah satu di antaranya.
Membuat List
List adalah tipe data yang berisi satu atau beberapa nilai di dalamnya. Nilai – nilai ini sering juga disebut item, elemen, atau anggota list. List dibuat dengan menempatkan semua item di dalam tanda kurung [ ], dipisahkan oleh tanda koma. Anggota list bisa berisi satu tipe data, atau campuran.
# list kosong
my_list = []

# list berisi integer
my_list = [1,2,3,4,5]

# list berisi tipe campuran
my_list = [1, 3.5, "Hello"]

List juga bisa berisi list lain. Ini disebut list bersarang
# list bersarang
my_list = ["hello", [2,4,6], ['a','b']]

Mengakses Anggota List
Kita bisa mengakses anggota list dengan menggunakan indeksnya dengan format namalist[indeks]. Indeks list dimulai dari 0. List yang memiliki 5 anggota akan memiliki indeks mulai dari 0 s/d 4.
Mencoba mengakses anggota list di luar itu akan menyebabkan error IndexError.
#output: python
my_list[2]

# list dalam list
your_list = ["hello", [1,2,3], "python"]

# output 1
print(your_list[1][0])

# output 3
print(your_list[1][2])

# IndexError
my_list[6]

List Dengan Indeks Negatif
Python mendukung indeks negatif, yaitu urutan dimulai dari anggota terakhir. Indeks anggota paling belakang adalah -1, kemudian -2, dan seterusnya.
my_list = ['p','y','t','h','o','n']

# output: n
my_list[-1]

# output: h
my_list[-3]

Memotong (Slicing) List
Kita bisa mengakses anggota list dari range tertentu dengan menggunakan operator slicing titik dua ( : ).
Slicing akan lebih mudah bila kita memahami indeks dengan baik.
my_list = ['p','y','t','h','o','n','i','n','d','o']

# anggota list dari 3 s/d 5 (dari h s/d n)
print(my_list[3:6])

# anggota list dari 4 s/d yang terakhir
print(my_list[4:])

# anggota list dari 0 s/d 4
print(my_list[:5])

# indeks dari belakang dari -1 s/d -4
print(my_list[-1:-5])

Mengubah Anggota List
List adalah tipe data yang bersifat mutable, artinya anggotanya bisa diubah. Ini berbeda dengan string dan tuple yang bersifat immutable.
# misal ada nilai yang salah
ganjil = [1,3,4,7,9]

# ubah item ke 3 (indeks ke 2)
ganjil[2] = 5 print(ganjil)

# mengubah sekali banyak
ganjil[2:5] = [11,13,15]
print(ganjil)

Metode List
List memiliki banyak metode untuk operasi seperti menambahkan anggota, menghapus, menyisipkan, menyortir, dan lain sebagainya. Mereka bisa diakses menggunakan format list.metode().
Menambahkan Anggota List
Fungsi append() berguna untuk menambahkan anggota ke dalam list. Selain itu, ada metode extend() untuk menambahkan anggota list ke dalam list.
>>> ganjil = [1,3,5,7]

>>> ganjil.append(9)
>>> print(ganjil)
[1,3,5,7,9]

>>> ganjil.extend([11,13,15])
>>> print(ganjil)
[1,3,5,7,9,11,13,15]
Kita juga bisa menggunakan operator + untuk menggabungkan dua list, dan operator * untuk melipatgandakan list.
>>> genap = [2, 4, 6]
>>> print(genap + [8, 10, 12])
[2, 4, 6, 8, 10, 12]

>>> print(['p','y'] * 2)
['p','y','p','y]

Menyisipkan Anggota List
Fungsi insert() berfungsi untuk menyisipkan anggota list pada indeks tertentu.
>>> ganjil = [5,7,11,13,15]

>>> # kita akan menyisipkan 9 setelah angka 7
>>> ganjil.insert(2,9)
>>> print(ganjil)
[5,7,9,11,13,15]

Menghapus Anggota List
Kita bisa menggunakan metode remove(), pop(), atau kata kunci del untuk menghapus anggota list. Selain itu kita bisa menggunakan clear() untuk mengosongkan list.
Fungsi pop() selain menghapus anggota list, juga mengembalikan nilai indeks anggota tersebut. Hal ini berguna bila kita ingin memanfaatkan indeks dari anggota yang terhapus untuk digunakan kemudian.
my_list = ['p', 'y', 't', 'h', 'o', 'n', 'i', 'n', 'd', 'o']
my_list.remove('p')

# output ['y', 't', 'h', 'o', 'n', 'i', 'n', 'd', 'o']
print(my_list)

my_list.remove('n')
# remove hanya menghapus elemen pertama yang dijumpai
# output: ['p', 'y', 't', 'h', 'o', 'i', 'n', 'd', 'o']

# Output 'y'
print(my_list.pop(1))

del my_list[2]
print(my_list)

my_list.clear()
# Output []
print(my_list)

Mengurutkan Anggota List
Pada saat kita perlu mengurutkan atau menyortir anggota list, kita bisa menggunakan metode sort(). Untuk membalik dengan urutan sebaliknya bisa dengan menggunakan argumen reverse=True.
>>> alfabet = ['a','b','d','f','e','c','h','g','j','i']
>>> alfabet.sort()
>>> print(alfabet)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

>>> alfabet.sort(reverse=True)
>>> print(alfabet)
['j', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a']

Membalik Urutan List
Selain mengurutkan, kita juga bisa membalikkan urutan list dengan menggunakan metode reverse().
>>> alfabet = ['a','c','d','e','b']
>>> alfabet.reverse()
>>> print(alfabet)
['b','e','d','c','b','a']

TAMBAHAN :
List Comprehension
List comprehension adalah cara mudah untuk mendefinisikan dan membuat list di Python.
List comprehension terdiri dari sebuah ekspresi diikuti oleh pernyataan for yang diletakkan di dalam tanda kurung [ ].Dengan menggunakan list comprehension kita bisa membuat list secara otomatis dalam satu baris perintah saja. Ini sangat berguna jika anggota list yang hendak kita buat cukup banyak.
# cara membuat list manual
lists = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
# menggunakan list comprehension
# outputnya sama dengan hasil manual
list2 = [x for x in range(1,16)]
print(list2)

# anggota dikalikan dua
list3 = [x*2 for x in range(1,16)]
print(list3)

Kode list comprehension untuk yang di atas sama dengan berikut:
list3 = []
for x in range(1,16):
list2.append(x*2)

bisa menggunakan pernyataan if untuk menyeleksi anggota list lama untuk menjadi anggota list yang baru. Anda bisa mencoba contoh berikut:
# membuat list dengan anggota 1 - 100
lists = [x for x in range(1, 101)]
print(lists)

# membuat list baru dari lists
# beranggotakan bilangan genap saja
list_genap = [x for x in lists if x%2==0]
print(list_genap)
 
Tuple
Tuple mirip dengan list. Bedanya, tuple bersifat immutable, sehingga anggotanya tidak bisa diubah. Kalau mirip, mengapa harus menggunakan tuple?

Kita menggunakan tuple tergantung kebutuhan. Untuk beberapa hal, tuple memiliki kelebihan sebagai berikut:
  • Karena tuple adalah immutable, maka iterasi pada tuple lebih cepat dibandingkan list.
  • Tuple bisa berisi anggota yang immutable yang dapat digunakan sebagai key untuk dictionary. List tidak bisa dipakai untuk itu.
  • Kalau kita memerlukan data yang memang tidak untuk diubah, maka menggunakan tuple bisa menjamin bahwa data tersebut akan write-protected.
Membuat Tuple
Tuple dibuat dengan meletakkan semua anggota di dalam tanda kurung ( ), masing-masing dipisahkan oleh tanda koma. Menggunakan tanda kurung sebenarnya hanya opsional, tapi kita sebaiknya tetap menggunakannya untuk kemudahan pembacaan kode.
Tuple dapat berisi tipe data yang sama maupun campuran.
# membuat tuple kosong
# Output: ( )
my_tuple = ()
print(my_tuple)

# tuple dengan 1 elemen
# Output: (1,)
my_tuple = (1,)
print (my_tuple)

# tuple berisi integer
# output = (1, 2, 3)
my_tuple = (1, 2, 3)
print(my_tuple)

# tuple bersarang
# Output: ("hello", [1, 2, 3], (4, 5, 6))
my_tuple = ("hello", [1, 2, 3], (4, 5, 6))
print(my_tuple)

# Tuple bisa tidak menggunakan tanda ()
# Output (1, 2, 3)
my_tuple = 1, 2, 3

# memasukkan anggota tuple ke variabel yang bersesuaian
# a akan berisi 1, b berisi 2, dan c berisi 3
# output 1 2 3
a, b, c = my_tuple
print(a, b, c)

Mengakses Anggota Tuple
Seperti halnya list, kita bisa mengakses anggota tuple lewat indeksnya menggunakan format namatuple[indeks]. Indeks dimulai dari 0 untuk anggota pertama. Selain itu, indeks negatif juga bisa dipakai mulai dari -1 untuk anggota terakhir tuple.
my_tuple = ('p','y','t','h','o','n')
# Output: 'p'
print(my_tuple[0])

# Output: 'y'
print(my_tuple[1])

# Output: 'n'
print(my_tuple[-1])

# Output: 'o'
print(my_tuple[-2])

# IndexError
print(my_tuple[6])

Sama seperti list, kita bisa mengakses satu range anggota tuple dengan menggunakan operator titik dua ( : ).
my_tuple = ('p','r','o','g','r','a','m','m','i','n','g')
# akses dari indeks 0 s/d 2

# output: ('p','r','o')
print(my_tuple[:3])

# Akses dari indeks 2 s/d 5
# output: ('r','o','g','r')
print(my_tuple[2:6])

# Akses dari indeks 3 sampai akhir
# output: ('r','o','g','r','a','m','m','i','n','g')
print(my_tuple[3:])

Mengubah Anggota Tuple
Setelah tuple dibuat, maka anggota tuple tidak bisa lagi diubah atau dihapus. Akan tetapi, bila anggota tuple-nya adalah tuple bersarang dengan anggota seperti list, maka item pada list tersebut dapat diubah. Jelasnya ada pada contoh berikut:
my_tuple = (2, 3, 4, [5, 6])
# kita tidak bisa mengubah anggota tuple
# bila kita hilangkan tanda komentar # pada baris ke 6
# akan muncul error: # TypeError: 'tuple' object does not support item assignment

# my_tuple[1] = 8

# tapi list di dalam tuple bisa diubah
# output: (2, 3, 4, [7, 6])
my_tuple[3][0] = 7
print(my_tuple)

# tuple bisa diganti secara keseluruhan dengan penugasan kembali
# output: ('p','y','t','h','o','n')
my_tuple = ('p','y','t','h','o','n')
print(my_tuple)

# anggota tuple juga tidak bisa dihapus menggunakan del
# perintah berikut akan menghasilkan error TypeError
# kalau Anda menghilangkan tanda komentar #

#del my_tuple[0]

# kita bisa menghapus tuple keseluruhan

del my_tuple

Menguji Keanggotaan Tuple
Seperti halnya string dan list, kita bisa menguji apakah sebuah objek adalah anggota dari tuple atau tidak, yaitu dengan menggunakan operator in atau not in untuk kebalikannya.
my_tuple = (1, 2, 3, 'a', 'b', 'c')

# menggunakan in
# output: True
print('3' in my_tuple)

# output: False
print('e' in my_tuple)

# menggunakan not in
# output True
print('k' not in my_tuple)

Iterasi Pada Tuple
Kita bisa menggunakan for untuk melakukan iterasi pada tiap anggota dalam tuple.
# output:
# Hi Galih
# Hi Ratna
nama = ('Galih', 'Ratna')
for name in nama:
print('Hi', name)

Metode dan Fungsi Bawaan Tuple
Tuple hanya memiliki dua buah metode yaitu count() dan index().
  • Metode count(x) berfungsi mengembalikan jumlah item yang sesuai dengan x pada tuple
  • Metode index(x) berfungsi mengembalikan indeks dari item pertama yang sama dengan x.
my_tuple = ('p','y','t','o','n','i','n','d','o')
# count
# output: 2
print(my_tuple.count('n'))

# index
# Output 4
print(my_tuple.index('n'))
Walaupun hanya memiliki dua metode, banyak fungsi bawaan python yang berfungsi untuk melakukan operasi pada tuple. Berikut adalah daftarnya:

FungsiDeskripsi
all()Mengembalikan True jika semua anggota tuple adalah benar ( tidak ada yang kosong )
any()Mengembalikan True jika salah satu atau semua bernilai benar. Jika tuple kosong, maka akan mengambalikan False.
enumerate()Mengembalikan objek enumerasi. Objek enumerasi adalah objek yang terdiri dari pasangan indeks dan nilai.
len()Mengembalikan panjang (jumlah anggota) tuple
max()Mengembalikan anggota terbesar di tuple
min()Mengembalikan anggota terkecil di tuple
sorted()Mengambil anggota tuple dan mengembalikan list baru yang sudah diurutkan
sum()Mengembalikan jumlah dari semua anggota tuple
tuple()Mengubah sequence (list, string, set, dictionary) menjadi tuple
 
Set
Set adalah salah satu tipe data di Python yang tidak berurut (unordered). Set memiliki anggota yang unik (tidak ada duplikasi). Jadi misalnya kalau kita meletakkan dua anggota yang sama di dalam set, maka otomatis set akan menghilangkan yang salah satunya.
Set bisa digunakan untuk melakukan operasi himpunan matematika seperti gabungan, irisan, selisih, dan lain – lain.

Membuat Set
Set dibuat dengan meletakkan anggota – anggotanya di dalam tanda kurung kurawal { }, dipisahkan menggunakan tanda koma. Kita juga bisa membuat set dari list dengan memasukkan list ke dalam fungsi set()
Set bisa berisi data campuran, baik integer, float, string, dan lain sebagainya. Akan tetapi set tidak bisa berisi list, set, dan dictionary.
# set integer
my_set = {1,2,3}
print(my_set)

# set dengan menggunakan fungsi set()
my_set = set([1,2,3])
print(my_set)

# set data campuran
my_set = {1, 2.0, "Python", (3,4,5)}
print(my_set)

# bila kita mengisi duplikasi, set akan menghilangkan salah satu
# output: {1,2,3}
my_set = {1,2,2,3,3,3}
print(my_set)

# set tidak bisa berisi anggota list
# contoh berikut akan muncul error TypeError
my_set = {1,2,[3,4,5]}

Untuk membuat set kosong, kita tidak bisa menggunakan { }, karena itu akan dianggap sebagai dictionary. Kita harus menggunakan fungsi set() tanpa argumen untuk membuat set kosong.
>>> # membuat variabel a dengan {}
>>> a = {}
>>> print(type(a))
<class 'dict'>

>>> # harus menggunakan fungsi set()
>>> a = set()
>>> print(type(a))
<class 'set'>

Mengubah Anggota Set
Set bersifat mutable. Tapi, karena set adalah tipe data tidak berurut (unordered), maka kita tidak bisa menggunakan indeks. Set tidak mendukung indeks ataupun slicing.
Untuk menambah satu anggota ke dalam set, kita bisa menggunakan fungsi add(), dan untuk menambahkan beberapa anggota sekaligus kita bisa menggunakan fungsi update(). List, tuple, maupun string bisa digunakan sebagai masukan dari fungsi update().
# membuat set baru
my_set = {1,2,3}
print(my_set)

# bila kita hilangkan tanda # dari baris 9 akan muncul error TypeError
#my_set[0]

# menambah satu anggota
# output: {1,2,3,4}
my_set.add(4)
print(my_set)

# menambah beberapa anggota
# set akan menghilangkan duplikasi
# output: {1,2,3,4,5,6}
my_set.update([3,4,5,6])
print(my_set)

Menghapus Anggota Set
Kita bisa menghapus anggota set dengan menggunakan fungsi discard() dan remove(). Perbedaannya, fungsi discard() tidak akan memunculkan error bila anggota yang ingin dihapus ternyata tidak ada di dalam set, sedangkan remove() sebaliknya.
# membuat set baru
my_set = {1, 2, 3, 4, 5}
print(my_set)

# menghapus 4 dengan discard
# output: {1, 2, 3, 5}
my_set.discard(4)
print(my_set)

# menghapus 5 dengan remove
# output : {1, 2, 3}
my_set.remove(5)
print(my_set)

# anggota yang mau dihapus tidak ada dalam set
# discard tidak akan memunculkan error
# output: {1, 2, 3}
my_set.discard(6)

Selain discard() dan remove(), kita bisa menghapus anggota set dengan menggunakan fungsi pop(). Dengan menggunakan fungsi pop(), kita menghapus salah satu anggota secara acak (random).
Untuk mengosongkan atau menghapus seluruh anggota set, kita bisa menggunakan fungsi clear().
# membuat set baru
# output: set berisi anggota yang unik
my_set = set("HelloPython")
print(my_set)

# pop anggota
# output: anggota acak
print(my_set.pop())

# pop anggota lainnya
# output: anggota acak
print(my_set.pop())

# mengosongkan set
# output: set()
my_set.clear()
print(my_set)

Operasi Set di Python
Set dapat digunakan untuk melakukan operasi himpunan matematika seperti gabungan, irisan, selisih, dan komplemen.
Mari kita ambil dua contoh set berikut:
>>> A = {1, 2, 3, 4, 5}
>>> B = {4, 5, 6, 7, 8}

Operasi Gabungan (Union)
Gabungan (union) dari A dan B adalah himpunan atau set anggota yang ada di A dan B.
Gabungan dapat dibuat dengan menggunakan operator palang (|). Selain itu juga bisa dilakukan dengan menggunakan fungsi union().
# Membuat set A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# Gabungan menggunakan operator |
# output: {1, 2, 3, 4, 5, 6, 7, 8}
print(A | B)

# Menggunakan fungsi union()
# output: {1, 2, 3, 4, 5, 6, 7, 8}
A.union(B)

# output: {1, 2, 3, 4, 5, 6, 7, 8}
B.union(A)

Operasi Irisan (Intersection)
Irisan (intersection) dari A dan B adalah himpunan atau set anggota yang sama di A dan B.
Irisan dilakukan dengan menggunakan operator jangkar (&). Irisan juga bisa dilakukan dengan menggunakan fungsi intersection().
# Membuat set A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# Irisan menggunakan operator &
# output: {4,5}
print(A & B)
# Menggunakan fungsi intersection()
# output: {4,5}
A.intersection(B)

# output: {4,5}
B.intersection(A)

Operasi Selisih (Difference)
Selisih (intersection) dari A dan B adalah himpunan atau set anggota yang hanya ada di A dan tidak ada di B. Begitu juga sebaliknya, ada di B tapi tidak ada di A.
Selisih dilakukan dengan menggunakan operator kurang (-). Bisa juga dengan menggunakan fungsi difference().
# membuat A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# Menggunakan operator - pada A
# Output: {1, 2, 3}
print(A - B)

# Output: {1, 2, 3}
A.difference(B)

# Menggunakan operator - pada B
# Output: {8, 6, 7}
print(B - A)

# Output: {8, 6, 7}
B.difference(A)

Operasi Komplemen (Symmetric Difference)
Operasi komplemen (symmetric difference) dari A dan B adalah himpunan atau set anggota yang ada di A dan di B, tapi tidak di keduanya.
Komplemen dilakukan dengan menggunakan operator ^. Bisa juga dengan menggunakan fungsi symmetric_difference().
# membuat A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# Menggunakan operator ^ pada A
# Output: {1, 2, 3, 6, 7, 8}
print(A ^ B)

# Output: {1, 2, 3, 6, 7, 8}
A.symmetric_difference(B)

# Menggunakan operator ^ pada B
# Output: {1, 2, 3, 6, 7, 8}
print(B ^ A)

# Output: {1, 2, 3, 6, 7, 8}
B.symmetric_difference(A)

Metode (Fungsi) Set
Set memiliki banyak metode atau fungsi. Beberapa di antaranya adalah yang sudah kita gunakan di atas. Tabel berikut berisi daftar metode atau fungsi set yang disediakan oleh python.

MetodeDeskripsi
add()Menambahkan satu anggota ke set
clear()Menghapus semua anggota set
copy()Mengembalikan shallow copy dari set
difference()Mengembalikan set baru berisi selisih dua atau lebih set
difference_update()Menghapus semua anggota set lain yang ada di set ini
discard()Menghapus satu anggota dari set
intersection()Mengembalikan set baru berisi irisan antara dua atau lebih set
intersection_update()Mengupdate set dengan irisan set bersangkutan dan set lainnya
isdisjoint()Mengembalikan True jika dua set tidak memiliki irisan
issubset()Mengembalikan True jika set lain berisi set ini
issuperset()Mengembalikan True jika set ini berisi set lain
pop()Menghapus dan mengembalikan anggota acak dari sebuah set
remove()Menghapus satu anggota dari set
symmetric_difference()Mengembalikan set baru berisi komplemen dari dua set
symmetric_difference_update()Mengupdate set dengan komplemen dari set ini dan set lainnya
union()Mengembalikan set baru berisi gabungan dua atau lebih set
update()Mengupdate set dengan gabungan set ini dan set lainnya
 
Dictionary
Dictionary adalah tipe data yang anggotanya terdiri dari pasangan kunci:nilai (key:value). Dictionary bersifat tidak berurut (unordered) sehingga anggotanya tidak memiliki indeks.

Membuat Dictionary
Dictionary dibuat dengan menempatkan anggotanya di dalam tanda kurung kurawal { }, dipisahkan oleh tanda koma.
Anggota dictionary terdiri dari pasangan kunci:nilai. Kunci harus bersifat unik, tidak boleh ada dua kunci yang sama dalam dictionary.
# Membuat dictionary kosong
my_dict = {}

# dictionary dengan kunci integer
my_dict = {1: 'sepatu', 2: 'tas'}

# dictionary dengan kunci campuran
my_dict = {'warna': 'merah', 1: [2,3,5]}

# membuat dictionary menggunakan fungsi dict()
my_dict = dict([(1:'sepatu'), (2:'bola')])

Mengakses Anggota Dictionary
Dictionary tidak menggunakan indeks. Anggota dictionary diakses dengan menggunakan kuncinya. Selain itu, bisa juga diakses dengan menggunakan fungsi get().
Dengan menggunakan fungsi get(), bila kunci tidak ada di dalam dictionary, maka akan dikembalikan None. Bila tidak menggunakan fungsi get(), maka akan terjadi error KeyError bila kunci yang hendak diakses tidak ada di dalam dictionary.
my_dict = {'nama':'Budi', 'usia':27}

# output: Budi
print(my_dict['nama'])

# output 27
print(my_dict.get('usia'))
# Mengakses kunci yang tidak tersedia menyebabkan KeyError
my_dict['alamat']

Mengubah Anggota Dictionary
Dictionary bersifat mutable. Kita bisa menambahkan atau mengubah nilai dari anggotanya menggunakan operator penugasan. Bila kunci sudah ada, maka nilainya yang akan diupdate. Bila kunci belum ada, maka akan ditambahkan sebagai kunci baru.
my_dict = {'nama':'Gani', 'usia':35}

# mengupdate nilai
my_dict['usia'] = 36
# Output: {'nama': 'Gani', 'usia':36}
print(my_dict)

# menambah anggota
my_dict['alamat'] = 'Medan'
# output: {'alamat': 'Medan', 'nama':'Gani', 'usia':36}
print(my_dict)

Menghapus Anggota Dictionary
Kita bisa menghapus anggota tertentu pada dictionary dengan menggunakan fungsi pop(). Fungsi ini menghapus anggota dengan mengembalikan kunci dari anggota tersebut.
Fungsi lain, popitem() digunakan untuk menghapus anggota acak dari dictionary. Untuk menghapus semua anggota dictionary, bisa menggunakan fungsi clear().
Selain itu kita juga bisa menggunakan kata kunci del untuk menghapus anggota tertentu atau menghapus dictionary itu sendiri.
# membuat dictionary baru
pangkat = {1:1, 2:4, 3:9, 4:16, 5:25}

# menghapus anggota tertentu
# output: 9
print(pangkat.pop(3))

# menghapus anggota secara acak
# output: (1,1)
print(pangkat.popitem())

# yang tersisa adalah {2:4, 4:16, 5:25}
print(pangkat)

# delete 5
del pangkat[5]

# output: {2:4, 4:16}
print(pangkat)

# menghapus semua anggota
pangkat.clear()

# menghapus dictionary pangkat
del pangkat

# Error karena pangkat sudah dihapus
print(pangkat)

Metode (Fungsi) Dictionary
Dictionary memiliki beberapa metode/fungsi untuk melakukan berbagai operasi. Beberapa di antaranya sudah digunakan di atas. Selengkapnya bisa dilihat pada tabel berikut:

MetodeDeskripsi
clear()Menghapus semua anggota dictionary
copy()Mengembalikan shallow copy dari dictionary
fromkeys(seq[, v])Mengembalikan dictionary baru dengan kunci-kuncinya dari seq, dan nilainya sama dengan v (defaultnya None)
get(key[,d])Mengembalikan nilai dari key. Bila key tidak tersedia, kembalikan d (defaultnya None)
items()Mengembalikan view baru (berisi semua pasangan key,value dari dictionary
keys()Mengembalikan view baru (berisi semua kunci pada dictionary)
pop(key[,d])Menghapus anggota yang memiliki kunci key dan mengembalikan nilai d jika kunci tidak ada dalam dictionary. Bila d tidak dibuat, dan key tidak ditemukan, akan menghasilkan KeyError
popitem()Menghapus anggota secara acak. Menghasilkan KeyError jika dictionary kosong
setdefault(key[,d])Bila key ada dalam dictionary, kembalikan nilainya. Bila tidak, sisipkan key dengan nilai d dan kembalikan d (defaulnya None)
update([other])Mengupdate dictionary dengan menambahkan anggota dari dictionary lain other, timpa (overwrite) bila ada kunci yang sama
values()Mengembalikan view baru (berisi semua value pada dictionary)
 
Fungsi
Fungsi adalah grup/blok program untuk melakukan tugas tertentu yang berulang. Fungsi membuat kode program menjadi reusable, artinya hanya di definisikan sekali saja, dan kemudian bisa digunakan berulang kali dari tempat lain di dalam program.

Fungsi memecah keseluruhan program menjadi bagian – bagian yang lebih kecil . Dengan semakin besarnya program, maka fungsi akan membuatnya menjadi lebih mudah diorganisir dan dimanage.
Sejauh ini, kita sudah menggunakan beberapa fungsi, misalnya fungsi print(), type(), dan sebagainya. Fungsi tersebut adalah fungsi bawaan dari Python. Kita bisa membuat fungsi kita sendiri sesuai kebutuhan.
Mendefinisikan Fungsi
Berikut adalah sintaks yang digunakan untuk membuat fungsi:
def function_name(parameters):
"""function_docstring"""
statement(s)
return [expression]

Penjelasannya dari sintaks fungsi di atas:
  1. Kata kunci def diikuti oleh function_name (nama fungsi), tanda kurung dan tanda titik dua :)) menandai header (kepala) fungsi.
  2. Parameter / argumen adalah input dari luar yang akan diproses di dalam tubuh fungsi.
  3. "function_docstring" bersifat opsional, yaitu sebagai string yang digunakan untuk dokumentasi atau penjelasan fungsi. “function_doctring” diletakkan paling atas setelah baris def.
  4. Setelah itu diletakkan baris – baris pernyataan (statements). Jangan lupa indentasi untuk menandai blok fungsi.
  5. return bersifat opsional. Gunanya adalah untuk mengembalikan suatu nilai expression dari fungsi.
Berikut adalah contoh fungsi untuk menyapa seseorang.
def sapa(nama):
"""Fungsi ini untuk menyapa seseorang sesuai nama yang dimasukkan sebagai parameter"""
print("Hi, " + nama + ". Apa kabar?")

# pemanggilan fungsi
# output: Hi, Umar. Apa kabar?
sapa('Umar')

Memanggil Fungsi
Bila fungsi sudah didefinisikan, maka ia sudah bisa dipanggil dari tempat lain di dalam program. Untuk memanggil fungsi caranya adalah dengan mengetikkan nama fungsi berikut paramaternya.
Untuk fungsi di atas, kita bisa melakukannya seperti contoh berikut:
>>> sapa('Galih')
Hi, Galih. Apa kabar?

>>> sapa('Ratna')
Hi, Ratna. Apa kabar?

Docstring
Docstring adalah singkatan dari documentation string. Ini berfungsi sebagai dokumentasi atau keterangan singkat tentang fungsi yang kita buat. Meskipun bersifat opsional, menuliskan docstring adalah kebiasaan yang baik.
Untuk contoh di atas kita menuliskan docstring. Cara mengaksesnya adalah dengan menggunakan format namafungsi.__doc__
>>> print(sapa.__doc__)
"""Fungsi ini untuk menyapa seseorang sesuai nama yang dimasukkan sebagai parameter"""

Pernyataan return
Pernyataan return digunakan untuk keluar dari fungsi dan kembali ke baris selanjutnya dimana fungsi dipanggil.
Adapun sintaks dari return adalah:
 
Modul
Modul adalah sebuah file yang berisi kode pemrograman python. Sebuah file yang berisi kode python, misalnya: example.py, disebut modul dan nama modulnya adalah example.

Modul digunakan untuk memecah sebuah program besar menjadi file – file yang lebih kecil agar lebih mudah dimanage dan diorganisir. Modul membuat kode bersifat reusable, artinya satu modul bisa dipakai berulang dimana saja diperlukan.
Modul tidak lain adalah program python biasa. Berikut ini kita mencoba membuat sebuah modul. Kita akan menyimpannya sebagai example.py
# Contoh modul python

def jumlah(a, b):
"""Fungsi ini menambahkan dua bilangan
dan mengembalikan hasilnya"""
result = a + b
return result

Mengimpor Modul
Kita bisa mengimpor modul python ke dalam program yang kita buat. Dengan mengimpor modul, maka definisi, variabel, fungsi dan yang lainnya yang ada di dalam modul itu bisa kita pergunakan.
Kita mengimpor modul dengan menggunakan kata kunci import. Misalnya, kita akan mengimpor modul example yang sudah kita buat di atas, maka kita bisa mengetikkan perintah berikut di IDLE maupun di command prompt.


Python memiliki banyak modul bawaan, misalnya modul math, os, sys dan lain sebagainya. Modul – modul tersebut berada di dalam direktori Lib ditempat Python terinstall.

Python juga memiliki ribuan modul siap pakai yang tersedia luas di internet, salah satunya di pypi.python.org.

Cara Lain Mengimpor Modul

Ada beberapa sintaks yang bisa digunakan untuk mengimpor modul, yaitu sebagai berikut:

  • Cara import standard, formatnya import module_name
  • Cara import dengan rename (alias), formatnya import module_name as alias
  • Cara mengimport sebagian, formatnya from...import something
  • Cara mengimport semua isi modul, formatnya import *
Impor Module Dengan import

Kita bisa mengimpor modul menggunakan pernyataan import dan mengakses isinya dengan menggunakan operator titik. Berikut adalah contohnya:
# contoh statement menggunakan import
# import modul standar math
import math
print("Nilai pi adalah:", math.pi)

Impor Dengan Module Rename
Kita bisa mengimpor modul dengan menamainya. Hal ini biasanya kita lakukan untuk menyingkat nama modul yang panjang. Contohnya adalah sebagai berikut:

Import Sebagian Menggunakan from ... import ...
Format from…import digunakan untuk mengimpor sebagaian isi modul dan bukan keseluruhan isi modul.

Import Semua Isi Modul Dengan import *
Bila kita menggunakan format import *, maka semua isi modul akan dimuat. Bedanya dengan format import standar adalah di sini kita dapat menggunakan semua isi modul tanpa menggunakan operator titik.
Catatan: Menggunakan import * bukan cara yang baik. Hal ini bisa menciptakan duplikasi nama pengenal dalam program dan bisa memicu bug (error).
 
Input dan Output
Python menyediakan banyak fungsi built-in yang bisa kita pergunakan. Salah satunya adalah yang berkenaan dengan fungsi i/o atau input output.

Fungsi bawaan untuk melakukan operasi output adalah print(), dan fungsi untuk melakukan operasi input adalah fungsi input(). Kita akan membahas fungsi print() terlebih dahulu.
Operasi Output Menggunakan Fungsi print()
Seperti yang sudah sering kita praktekkan, kita menggunakan fungsi print() untuk menampilkan data ke perangkat keluaran standar (layar).
# output: Kalimat ini dicetak ke layar
print("Kalimat ini dicetak ke layar")

a = 15
# output: Nilai a = 15
print("Nilai a =", a)

Selain mencetak ke layar, kita juga bisa menggunakan fungsi print() untuk mencetak data ke file.
Sintaks lengkap dari fungsi print() adalah seperti berikut:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

Pada sintaks tersebut, objects adalah nilai yang hendak dicetak. Fungsi print() akan mengubah semua objek menjadi string terlebih dahulu sebelum dicetak.
sep adalah pemisah(separator) yang berfungsi sebagai tanda pemisah antar objek yang dicetak. Defaultnya adalah tanda spasi.
end adalah karakter yang dicetak di akhir baris. Defaultnya adalah tanda newline (baris baru).
file adalah nama file kemana objek akan dicetak. Defaultnya adalah ke sys.stdout (layar).
flush adalah opsi apakah keluarannya diflush atau tidak.
print(1, 3, 5, 7)
# output: 1 3 5 7

print(1,2,3,4, sep='*')
# output: 1*2*3*4

print(1,2,3,4, sep='#', end='&')
# output: 1#2#3#4&

Operasi Input Menggunakan Fungsi input()
Agar program kita lebih interaktif, kita bisa meminta input atau masukan dari user. Python memiliki fungsi input() untuk melakukan hal tersebut. Sintaksnya adalah seperti berikut:
input([prompt])
prompt bersifat opsional berfungsi sebagai string yang kita ingin tampilkan di layar. Agar inputannya tidak langsung hilang, maka harus disimpan ke dalam variabel. Perhatikan contoh berikut:
>>> name = input('Masukkan nama: ')
Masukkan nama: Budi
>>> print(name)
Budi
Bila kita menginput bilangan, misalnya integer lewat fungsi input(), maka hasil inputan tersebut adalah string dan bukan integer. Kita harus mengubahnya terlebih dahulu menjadi tipe integer menggunakan fungsi int().
>>> panjang = input('Masukkan nilai panjang: ')
Masukkan nilai panjang: 10
>>> lebar = input('Masukkan nilai lebar: ')
Masukkan nilai lebar: 5
>>> luas = int(panjang) * int(lebar)
>>> print("Luas =", luas)
Luas = 50
 
Operasi File
File adalah data yang ada pada komputer, baik teks, gambar, angka, suara, video, dan lain sebagainya. File disimpan secara permanen di dalam media penyimpanan seperti hardisk dan yang lainnya.

Karena memori (RAM) komputer bersifat volatile yang kehilangan datanya saat komputer dimatikan, maka kita memerlukan file untuk dibuka lagi nantinya.
Operasi yang kita lakukan terhadap file, di antaranya adalah:
  1. Membuka file
  2. Membaca atau menulis file
  3. Menutup file
bisa menyebutkan mode file saat membukanya, apakah pakai mode baca 'r', tulis 'w', atau tambah 'a'. Kita juga bisa membuka file dalam mode biner 'b'. Defaultnya adalah mode baca. Dalam mode ini, kita bisa memperoleh semua teks atau string yang ada di dalam file. Mode biner kita gunakan saat berhubungan dengan file gambar atau file exe.

ModeDeskripsi
‘r’Membuka file untuk dibaca. (default)
‘w’Membuka file untuk ditulis. Membuat file baru jika file belum tersedia atau menimpa isi file jika file sudah ada
‘x’Membuka file untuk pembuatan eksklusif. Jika file sudah ada, maka operasi akan gagal
‘a’Membuka file dan menambahkan karakter di ujung file lama (tanpa menghapus isinya). Membuat file baru bila file belum tersedia
‘t’Membuka dalam mode teks. (default)
‘b’Membuka file dalam mode biner
‘+’Membuka file untuk diupdate (membaca dan menulis)
Contohnya adalah seperti berikut:
>>> f = open("test.txt") # sama dengan mode 'r' atau 'rt'
>>> f = open("test.txt", 'w') # mode tulis
>>> f = open("img.jpg", 'r+b') # membaca dan menulis dalam mode biner

Membaca File di Python
Untuk membaca file di python, kita harus membuka file dalam mode baca. Ada beberapa metode atau fungsi yang tersedia untuk pembacaan file, yaitu:
Metode read(n) berfungsi untuk membaca sebanyak n karakter. Metode ini akan membaca file dan mengembalikan akhir dari file yang dibaca tadi. Untuk jelasnya, perhatikan contoh berikut:
>>> f = open("C:\\test.txt")
>>> f.read(4) # membaca 4 data (karakter) pertama
'This'

>>> f.read(4) # membaca 4 yang berikutnya lagi
' is '

>>> f.read() # membaca file sisanya sampai akhir file
'the first line\nThis is the second line\nThis is the third line\n'

>>> r.read() # sudah tidak ada karakter untuk dibaca

Seperti terlihat pada contoh, metode read() mengembalikan newline (baris baru) sebagai ‘\n’. Pada saat file sudah mencapai akhir, maka jika dibaca lagi, hasilnya adalah karakter kosong.
Kita dapat mengubah letak kursor file (posisi) menggunakan metode seek(). Sedangkan posisi sekarang (dalam ukuran byte) dapat diperoleh dengan menggunakan metode tell().
>>> f.tell() # mendapatkan posisi kursor sekarang
56

>>> f.seek(0) # memindahkan kursor ke 0 (awal file)

>>> print(f.read()) # membaca seluruh isi file
This is the first line
This is the second line
This is the third line
Fungsi read() membaca file secara keseluruhan dan menjadikannya sebagai satu string saja. Bila kita ingin membaca file baris perbaris, kita bisa menggunakan perulangan. Akhir perbaris ditandai oleh karakter ‘\n’.
>>> for line in f:
print(line, end = '')

This is the first line
This is the second line
This is the third line
Dibanding menggunakan perulangan, sebaiknya kita menggunakan fungsi readline() untuk membaca file satu persatu baris, seperti berikut:
>>> f.readline()
'This is the first line\n'

>>> f.readline()
'This is the second line\n'

>>> f.readline()
'This is the third line\n'
Terakhir, ada fungsi readlines() yang berguna untuk mengembalikan list yang berisi baris – baris file dari awal sampai akhir.
>>> f.readlines()
['This is the first line\n', 'This is the second line\n', 'This is the third line\n']

Menulis File
Untuk menulis ke dalam file, kita menggunakan mode 'w' pada saat membuka filenya. Atau bisa juga menggunakan mode 'a' untuk menambah isi file dari akhir file awal, tanpa menghapus atau menimpa isinya terlebih dahulu.
Kita harus berhati – hati dalam menggunakan mode 'w' karena bisa menimpa file jika filenya sudah ada. Semua data di file yang tertimpa akan terhapus dan diganti dengan isi baru.
Kita bisa menulis file dengan menggunakan metode write(). Metode ini mengambalikan jumlah karakter yang dituliskan ke dalam file.
with open("C:\\test.txt", 'w') as f:
f.write("The new first line\n")
f.write("The new second line\n")
f.write("The new third line\n")

Metode Operasi File
Ada banyak metode yang disediakan python untuk melakukan operasi file. Beberapa darinya sudah dicoba di atas. Tabel berikut menunjukkan semua operasi file di python.
MetodeDeskripsi
close()Menutup file
detach()Memisahkan buffer biner dari TextIOBase dan mengembalikannya.
fileno()Mengembalikan integer (file descriptor) file
flush()Mengosongkan buffer aliran file (filestream)
isatty()Mengembalikan True jika stream file interaktif
read(n)Membaca n karakter dari file. Bila tidak ada argumen maka dibaca seluruh isi file.
readable()Mengembalikan True bila file bisa dibaca
readline()Membaca dan mengembalikan satu baris file.
readlines()Membaca dan mengembalikan semua baris sebagai satu list.
seek(offset)Mengubah posisi kursor file ke offset byte.
seekable()Mengembalikan True jika stream file mendukung akses random
tell()Mengembalikan posisi kursor sekarang
truncate(size)Mengubah ukuran stream file menjadi size byte.
writable()Mengembalikan True jika stream file bisa ditulis.
write(s)Menuliskan string s ke file dan mengembalikan jumlah karakter yang dituliskan
writelines(lines)Menuliskan list lines ke dalam file
 
Penanganan Eksepsi
Pada saat menulis dan menjalankan program, kita sering dihadapkan pada munculnya kesalahan atau error. Seringkali error menyebabkan program berhenti sendiri.

Error dapat terjadi akibat kesalahan struktur (sintaks) program. Hal ini disebut syntax error. Contohnya adalah seperti berikut:
>>> if x < 5
File "<stdin>", line 1
if x < 5
^
SyntaxError: invalid syntax

Kita bisa melihat bahwa penyebabnya adalah lupa titik dua pada pernyataan if.
Error juga dapat terjadi pada saat runtime (saat program berjalan). Error seperti ini disebut eksepsi. Misalnya, bila kita membuka file yang tidak ada, maka akan muncul pesan kesalahan FileNotFoundError. Bila kita membagi bilangan dengan nol akan muncul ZeroDivisionError, dan lain sebagainya.
Pada saat terjadi eksepsi, Python akan menampilkan traceback dan detail dimana kesalahan terjadi.
>>> 1/0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero

Daftar Eksepsi Built-in Python

Tabel berikut menunjukkan semua eksepsi yang dimiliki Python

EksepsiPenyebab Error
AssertionErrorMuncul pada saat pernyataan assert gagal
AttributeErrorMuncul pada saat penugasan terhadap attribute atau referensi gagal
EOFErrorMuncul saat fungsi input() mendapatkan kondisi akhir file (end-of-file)
FloatingPointErrorMuncul saat operasi terhadap bilangan float gagal
GeneratorExitMuncul saat metode close() generator dipanggil
ImportErrorMuncul saat modul yang hendak diimpor tidak ditemukan
IndexErrorMuncul saat indeks dari sequence berada di luar range
KeyErrorMuncul saat suatu key tidak ditemukan di dalam dictionary
KeyboardInterruptMuncul saat user menekan tombol interupsi (Ctrl + C)
MemoryErrorMuncul saat operasi kehabisan memori
NameErrorMuncul saat variabel tidak ditemukan
NotImplementedErrorMuncul oleh metode abstrak
OSErrorMuncul saat sistem operasi bersangkutan mengalami error
OverflowErrorMuncul saat hasil operasi perhitungan terlalu besar untuk direpresentasikan
ReferenceErrorMuncul saat weak reference digunakan untuk mengakses referensi sampah program
RuntimeErrorMuncul saat error yang terjadi di luar semua kategori eksepsi lain
StopIterationMuncul oleh fungsi next() untuk menunjukkan bahwa tidak ada lagi item yang tersisa pada iterator
SyntaxErrorMuncul oleh parser saat terjadi kesalahan sintaks
IndentationErrorMuncul saat ada indentasi yang salah
TabErrorMuncul saat indentasi memiliki jumlah spasi atau tab yang tidak konsisten
SystemErrorMuncul saat interpreter mendeteksi kesalahan internal
SystemExitMuncul oleh fungsi sys.exit()
TypeErrorMuncul saat melakukan operasi pada tipe data yang tidak sesuai
UnboundLocalErrorMuncul saat referensi dibuat untuk variabel lokal dari fungsi, tapi tidak ada nilainya.
UnicodeErrorMuncul saat terjadi kesalahan berkenaan dengan encoding dan decoding unicode
UnicodeEncodeErrorMuncul saat terjadi kesalahan pada proses encoding
UnicodeDecodeErrorMuncul saat terjadi kesalahan pada proses decoding
UnicodeTranslateErrorMuncul saat terjadi kesalahan berkenaan dengan penerjemahan unicode
ValueErrorMuncul saat fungsi menerima argumen yang tipe datanya salah
ZeroDivisionErrorMuncul saat terjadi operasi pembagian bilangan dengan nol

Menangani Eksepsi Dengan Try, Except, dan Finally
Terjadinya eksepsi pada program dapat menyebabkan program terhenti. Untuk mencegah hal tersebut, kita harus mengantisipasi hal tersebut.
Python menyediakan metode penanganan eksepsi dengan menggunakan pernyataan try dan except.
Di dalam blok try kita meletakkan baris program yang kemungkinan akan terjadi error. Bila terjadi error, maka penanganannya diserahkan kepada blok except. Berikut adalah contoh penanganan eksepsi pada operasi pembagian bilangan.
# import modul sys untuk memperoleh jenis eksepsi
import sys

lists = ['a', 0, 4]
for each in lists:
try:
print("Masukan:", each)
r = 1/int(each)
break
except:
print("Upps!", sys.exc_info()[0], " terjadi.")
print("Masukan berikutnya.")
print()
print("Kebalikan dari ", each, " =", r)

Keluaran program di atas adalah seperti berikut ini:
Masukan: a
Upps! <class 'ValueError'> terjadi
Masukan berikutnya.

Masukan: 0
Upps! <class 'ZeroDivisionError'> terjadi
Masukan berikutnya.

Masukan: 4
Kebalikan dari 4 = 0.25

Pada program di atas kita mencari kebalikan dari bilangan, misalnya 4, maka kebalikannya adalah 1/4 = 0.25.
Pembagian dengan huruf ‘a’, dan juga dengan 0 tidak bisa dilakukan, sehingga muncul error. Bila tidak dilakukan penanganan eksepsi, maka program akan langsung terhenti pada saat terjadi error.

Menangani Eksepsi Tertentu
Pada contoh di atas kita hanya menangani error secara umum. Tidak dikelompokkan, apakah dia adalah TypeError, ValueError, SyntaxError, dan lain sebagainya.
Sebuah pernyataan try, bisa memiliki sejumlah pernyataan except untuk menangani jenis – jenis eksepsi secara lebih spesifik. Kita juga bisa mendefinisikan beberapa error sekaligus menggunakan tuple. Contohnya adalah seperti berikut:
try:
# lakukan sesuatu
pass

except ValueError:
# tangani eksepsi ValueError
pass

except (TypeError, ZeroDivisionError):
# menangani multi eksepsi
# TypeError dan ZeroDivisionError
pass

except:
# menangani eksepsi lainnya
pass

Pernyataan pass adalah pernyataan yang tidak melakukan apa-apa. Istilahnya adalah statemen kosong. pass sering digunakan untuk mengisi blok fungsi atau kelas yang masih kosong.

Memunculkan Eksepsi

Eksepsi muncul bila terjadi error pada saat runtime atau saat program berjalan. Akan tetapi, kita juga bisa memunculkan eksepsi dengan sengaja untuk maksud tertentu dengan menggunakan kata kunci raise. Contohnya adalah seperti berikut:
>>> raise KeyboardInterrupt
Treceback (most recent call last):
...
KeyboardInterrupt

>>> try:
a = int(input("Masukkan sebuah bilangan positif: "))
if a <= 0:
raise ValueError("Itu bukan bilangan positif!")
except ValueError as ve:
print(ve)

Masukkan sebuah bilangan positif: -3
Itu bukan bilangan positif!

try…finally
Pernyataan try bisa memiliki pasangan pernyataan finally. Pernyataan di dalam blok finally akan tetap dieksekusi bagaimanapun kasusnya.
finally biasa digunakan untuk melepaskan koneksi dengan resource eksternal. Seperti misalnya saat kita sedang mengedit suatu file di internet dan tiba – tiba internet terputus. Atau saat kita login ke pusat data dan koneksi terputus.
Pada kasus tersebut, kita harus membersihkan resource yang digunakan, terlepas ia sukses atau tidak. Aksi tersebut (menutup file, atau memutus koneksi ke jaringan) dilakukan dengan menggunakan pernyataan finally untuk menjamin suatu perintah tetap dieksekusi.
Berikut adalah contoh try…finally untuk mengoperasikan file.
try:
f = open("C:\\test.txt")
# melakukan operasi terhadap file
finally:
f.close()

finally menjamin bahwa file akan tetap di tutup walaupun ada error pada saat operasi terhadap file.
 
Tengkyu suhu,,, sangat benrmanfaat, kalo boleh di kasih sample juga dong seperti program bikin kalkulator ato kasir gitu,,,
 
Bimabet
Tengkyu suhu,,, sangat benrmanfaat, kalo boleh di kasih sample juga dong seperti program bikin kalkulator ato kasir gitu,,,

Ini adalah contoh kalkulator sederhana:

Python:
# Membuat program kalkulator sederhana

# Fungsi ini menambahkan dua angka
def menambahkan(x, y):
    return x + y


# Fungsi ini mengurangi dua angka
def mengurangi(x, y):
    return x - y


# Fungsi ini mengalikan dua angka
def mengalikan(x, y):
    return x * y


# Fungsi ini membagi dua bilangan
def membagi(x, y):
    return x / y


print("Pilih operasi.")
print("1.Menambahkan")
print("2.Mengurangi")
print("3.Mengalikan")
print("4.Membagi")

while True:
    # mengambil masukan dari pengguna
    pilihan = input("Masukkan pilihan(1/2/3/4): ")

    # periksa apakah pilihan adalah salah satu dari empat opsi
    if pilihan in ('1', '2', '3', '4'):
        nomor1 = float(input("Masukkan nomor pertama: "))
        nomor2 = float(input("Masukkan nomor kedua: "))

        if pilihan == '1':
            print(nomor1, "+", nomor2, "=", menambahkan(nomor1, nomor2))

        elif pilihan == '2':
            print(nomor1, "-", nomor2, "=", mengurangi(nomor1, nomor2))

        elif pilihan == '3':
            print(nomor1, "*", nomor2, "=", mengalikan(nomor1, nomor2))

        elif pilihan == '4':
            print(nomor1, "/", nomor2, "=", membagi(nomor1, nomor2))

        # periksa apakah pengguna menginginkan perhitungan lain
        # putuskan loop while jika jawabannya tidak
        next_calculation = input("Mari kita lakukan perhitungan selanjutnya? (Ya/tidak): ")
        if next_calculation == "tidak":
            break

    else:
        print("Masukan Tidak Valid")


Sekarang Anda dapat menambahkan lebih banyak fungsi penghitungan, misalnya x pangkat n (x^n):

Python:
def pangkat(x,n):
    return x^n

Akar ke-n:

Python:
def akarn(x,n):
    return x^(1/n)
 
Jav Toys
Gaple Online Indonesia
Pasang iklan hanya lewat CONTACT US
Back
Top
We are now part of LS Media Ltd