Modul Dasar Pemrograman
Modul Dasar Pemrograman
Dasar Pemprograman :
Unit ini menentukan kompetensi, pengetahuan dan sikap kerja yang diperlukan untuk
menganalisis tools yang diperlukan untuk mengembangkan perangkat lunak aplikasi sesuai
dengan kebutuhan.
Kompetensi ini berhubungan dengan sikap, pengetahuan, dan keterampilan yang Diperlukan
untuk membuat dokumentasi dari kode program yang telah ditulis secara hardcopy termasuk
identifikasi penjelasan dari dokumen tersebut.
Unit kompetensi ini berhubungan dengan sikap, pengetahuan, dan keterampilan yang
dibutuhkan dalam memeriksa kode program dari kesalahan (bug).
Mahasiswa menulis kode dengan prinsip sesuai Guidelines dan Best Practice
Menentukan kompetensi, pengetahuan dan Sikap kerja yang diperlukan dalam menerapkan
Prinsip penulisan kode yang baik agar kode tersebut dapat dirawat (maintainability).
Kompetensi ini berhubungan dengan sikap, pengetahuan, dan keterampilan yang dibutuhkan
dalam memecah permasalahan menjadi permasalahan –permasalahan yang lebih kecil dan
menyelesaikan permasalahan lebih kecil tersebut berupa fungsi, prosedur, library, atau
representasi yang lain sesuai paradigma bahasa pemrograman yang digunakan.
Uji Kompetensi
1. Individu
2. Final Project (Berkelompok)
1. Untuk Matakuliah Dasar Pemprograman Tidak Ada UTS Dan UAS, digantikan Uji
kompetensi (Individu dan Final Project)
2. Uji Kompetensi Individu dilaksanakan pada pertemuan 12. Masing-masing
mahasiswadiminta mengerjakan soal yang sudah ditentukan. Wajib membawa laptop.
1. Siapkan Laptopnya, Bisa menggunakan windows 7, 8 atau windows 10, untuk proses
instalasi nya tidak berbeda.
2. Master Pyhton / Aplikasi mentahan bisa di download melalui halaman :
http://www.phyton.org/download/
3. Master Pyhton / Aplikasi mentahan bisa di download melalui halaman :
http://www.jetbrains.com/pycharm/download/
4. Jika sudah klik linknya, berikut gambar untuk cara mengunduh aplikasi tersebut.
9. Sebelum aplikasi terbuka kita juga bisa menyesuaikan tema PyCharm sesuai yang kita
inginkan, seperti gambar berikut :
10. Kemudian pilih “Create new project” untuk memulai menggunakan aplikasi
PyCharm, seperti gambar berikut :
11. Setelah kita klik “Create new project”, kita harus atur terlebih dahulu di folder mana
project yang akan kita kerjakan disimpan, seperti pada gambar berikut :
12. Setelah ditentukan tempat penyimpanan projek nya, selanjutnya klik tombol “create”,
dan seperti inilah tampilah PyCharm
13. Untuk membuat file baru, kita bisa menggunakan beberapa cara, bisa dengan klik
menu “New” kemudian pilih “Pyhton File”, bisa juga dengan klik kanan pada project
kita, dan pilih “Pyhton File”.
Fungsi :
a. New Project untuk membuat sebuah projek baru yang belum pernah dibuat
sebelumnya.
b. New untuk membuat sebuah file baru yang belum pernah dibuat sebelumnya
c. New Scratch File untuk membuat file scratch, file scratch berfungsi penuh,
runnbale, dan debuggable yang mendukung penyorotan sintaksis, penyelsaian
kode, dan semua fitur lainnya untuk tipe yang sesuai.
d. Open membuka file atau projek yang sudah pernah dibuat sebelumnya.
e. Save as untuk menyimpan aplikasi dengan nama baru
f. Open Recent untuk membuka kembali file atau projek yang sudah pernah
dibuka
g. Close Project untuk keluar dari projek yang sedang dikerjakan
h. Rename Project untuk mengganti nama projek yang sedang dikerjakan
i. Setting untuk mengubah setelan pada pycharm sesuai keinginan
j. Other Setting berisikan menu Setting for new projects dan Run configuration
template for new projects.
k. Import Setting untuk menyimpan pengaturan pada pycharm agar bisa di
export ketika menggunakan aplikasi pycharm di komputer / laptop yang
berbeda.
l. Export Setting untuk merubah pengaturan secara instan dengan pengaturan
yang sudah di import dari komputer/laptop yang berbeda.
m. Setting Repository untuk membagikan pengaturan IDE di antara berbagai
contoh produk PyCharm (atau basis platform IntelliJ lainnya) yang di install
pada komputer yang berbeda
n. Save all untuk menyimpan keseluruhan program aplikasi yang kita buat.
o. Reload all from disk untuk memuat ulang projek atau file dalam disk pada
komputer
p. Invalidate Caches / Restart PyCharm memiliki sejumlah besar caches
sistem, oleh karena itu caches mungkin suatu hari menjadi beban yang
berlebihan, invalidate caches berfungsi untuk membersihkan caches sistem
pada PyCharm.
q. Export to HTML untuk menyimpan file aplikasi dengan merubah ekstensi
nya menjadi ekstensi HTML
r. Print untuk mencetak coding aplikasi.
s. Add to Favorite untuk menambahkan sejumlah file atau folder ke menu
favorit / yang sering digunakan, untuk memudahkan pencarian file yang sering
digunakan oleh seorang pemrogram.
t. File Encoding Encoding memiliki pengaruh pada PyCharm membaca atau
menulis File. Jika file telah dimodifikasi tetapi belum disimpan, setiap
perubahan dalam pengkodean memengaruhi penulisan file.
u. Remove BOM penggunaan BOM adalah opsional. Kehadirannya
mengganggu penggunaan UTF-8 oleh perangkat lunak yang tidak
mengharapkan byte non-ASCII pada awal file tetapi yang sebaliknya dapat
mengenali aliran teks.
v. Associate with file type untuk menghindari salah penamaan ekstensi bisa
menggunakan associate with file type.
w. Line Separators untuk mengatur pemisah garis (akhiran garis) untuk file yang
baru dibuat, dan mengubah gaya pemisah garis untuk file yang ada
x. Make File Read Only untuk membuat file yang sudah kita buat menjadi tidak
bisa di rubah / edit.
y. Power Save Mode untuk mengaktifkan mode hemat daya.
z. Exit untuk Keluar dari aplikasi.’
2. Menu Edit
Gambar 1.2 Menu Edit
a. Undo menu yang berisi perintah untuk membatalkan suatu perintah yang sudah
dilakukan sebelumnya.
b. Redo ialah kebalikan dari undo atau cara untuk mengulang perintah yang
sudah dibatalkan sebelumya.
c. Cut memotong objek / teks yang terpilih.
d. Copy menyalin objek / teks yang terpilih.
e. Copy Reference menyalin objek / teks ke beberapa modul dan jika tindakan
itu di panggil dari editor maka no baris akan disertakan.
f. Copy Path menyalin jalur penyimpanan file.
g. Paste menempelkan objek yang telah disalin.
h. Paste from History menempelkan objek yang telah disalin berdasarkan
riwayat yang telah dilakukan.
i. Paste without formatting menempelkan objek yang telah disalin tanpa
mengatur formatnya
j. Delete untuk menghapus suatu objek / teks yang ingin dihapus.
k. Find untuk mencari kata yang di inginkan
l. Column Selection Mode pemilihan kolom dapat digunakan untuk memilih
area file.
m. Select All untuk memilih semua objek / teks.
n. Extend Selection untuk secara berturut-turut memilih memperluas blok kode
yang logis sehingga dapat memilih ekspresi apapun dalam kode dengan
menempatkan tanda sisipan disuatu tempat beberapa kali.
o. Shrink Selectoin untuk secara berturut-turut memilih mempersempit blok
kode yang logis sehingga dapat memilih ekspresi apapun dalam kode dengan
menempatkan tanda sisipan disuatu tempat beberapa kali.
p. Complete Curent Statement memasukan elemen sintaks yang diperlukan
(tanda kurung, kurung kurawal, titik koma dan sebagainya).
q. Join Lines untuk menambahkan baris berikutnya setelah bergabung dengan
beberapa baris yang dipilih menjadi satu.
r. Fill Paragpraph untuk menyesuaikan jeda baris komentar secara otomatis.
s. Duplicate line untuk menduplikasi baris atau pilihan saati ini dengan cepat.
t. Sort Lines untuk mengurutkan baris atau seluruh file yang dipilih jika seleksi
kosong.
u. Reverse Line membalikan baris teks yang dipilih.
v. Indent Selection untuk memilih baris teks yang akan di indentasi.
w. Unindent line or selection untuk mengulang perintah indentasi baris atau teks.
x. Toggle Case huruf kecil pada bagian depan tiap-tiap kata.
y. Convert indent untuk mengubah indentasi.
z. Macros menyediakan cara untuk mengotomatiskan prosedur yang sering
dilakukan saat menulis kode.
3. Menu View
Gambar 1.3 Menu View
a. Tool Windows jendela-jendela sekunder ini memungkinkan melihat projek
dari berbagai perspektif dan menyediakan tugas-tugas pengembang yanh khas.
b. Appearance untuk merubah menu tampilan pada aplikasi.
c. Quick Definition untuk melihat dimana dan bagaimana simbol seperti, tag,
kelas, bidang, metode atau fungsi didefinisikan dalam projek.
d. Quick Documentation untuk membantu mendapatkan informasi dengan cepat
mengenai simbol apapun yang disertakan dengan komentar dokumentasi dalam
format yang berlaku.
e. Parameter Info menunjukan nama-nama parameter dalam panggilan metode
dan fungsi.
f. Type Info menyediakan berbagai cara untuk membantu mengamati dan
memeriksa jenis objek dalam skrip.
g. Context Info menyediakan berbagai cara untuk membantu mengamati dan
memeriksa hubungan objek dalam skrip.
h. Error Description untuk memberikan daftar solusi masalah dan solusi yang
diketahui
i. Recently Changed File untuk melacak perubahan yang telah dialakukan
terhadap suatu file
j. Recent Locations untuk melacak perubahan yang telah dialakukan terhadap
lokasi penyimpanan
k. Recent Changes untuk melacak perubahan yang telah dialakukan.
l. Compare With untuk meninjau perbedaan antara dua file, folder, sumber teks,
atau objek basis data apapun.
m. Compare with Clipboard untuk meninjau perbedaan antara dua file, folder,
sumber teks, atau objek basis data apapun, serta antara file lokal dan versi
repositori mereka.
n. Quick Switch Scheme untuk beralih di antara berbagai skema warna, dan tata
letak keyboard dengan cepat.
o. Active Editor editor PyCharm adalah bagian utama yang digunakan untuk
membuat, membaca, dan memodifikasi kode.
p. Bidi Text Base Direction memungkinkan untuk memilih arah dasar untuk
merender string dan token, seperti campuran bahasa inggris dan bahasa arab.
4. Menu Navigate
6. Menu Refactor
7. Menu Run
9. Menu VCS
Setelah selesai mengetikan naskah program yang baru pada jendela Tex Editor, maka
selanjutnya disimpan dengan cara :
Pada PyCharm 2019.3 terdapat 2 cara menyimpan file editor, diantaranya yaitu :
Save All digunakan untuk menyimpan semua file Python pada file projek yang sedang aktif.
Save As digunakan untuk menyimpan file Pyhton pada file projek yang sedang aktif dengan
nama file Python yang berbeda
Proses Run merupakan suatu proses menerjemahkan program, melakukan proses linking,
dan sekaligus menjalankan program, yaitu dengan cara :
Setelah proses menterjemahkan program, proses linking, selanjutnya tampil hasil seperti
gambar 1.16 dibawah ini:
Penjelasan membuka atau memanggil file editor yang sudah dibuat, dengan cara, Klik Menu
→ File Open
Penjelasan mencetak file program pada jendela yang sedang aktif dengan klik menu File
→ Print
Input Output
Penjelasan Program
Python adalah bahasa pemrograman yang menggunakan interpreter. Pada interpreter
program akan dieksekusi baris perbaris. Bila ada error maka program akan terhenti,
kecuali dengan menggunakan metode penanganan eksepsi. Pada program di atas, baris 1
adalah komentar program. Interpreter tidak memproses komentar. Komentar hanya untuk
penjelasan kode agar dipahami oleh manusia yang membacanya.
Pada baris 2 kita menciptakan sebuah objek bilangan yaitu 15. Kita membuat variabel
bil1 menunjuk ke objek 15. Dengan kata lain, objek 15 ditugaskan ke variabel bil1.
Penjelasan untuk baris 3 sama dengan penjelasan untuk baris ke 2.
Selanjutnya pada baris ke 4, objek yang ditunjuk oleh bil1 yaitu 15 dan yang ditunjuk
oleh bil2 yaitu 25 dijumlahkan. Hasilnya ditugaskan ke variabel jumlah.
Di baris terakhir, kita menggunakan fungsi bawaan (builtin) python, yaitu print() untuk
menampilkan variabel jumlah ke monitor. Demikian program sederhana menggunakan
python.
Pertemuan 2
Sintaks Dasar Python
Python merupakan bahasa pemrograman yang memiliki sintaks yang sederhana dan
mudah dimengerti. Python memiliki filosofi bahwa kode program harus mudah dibaca.
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, Pada 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', 'Februari', 'Maret', 'April', 'Mei',
'Juni']
5.1. 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 Jelek") print("Tidak Lulus")
else:
print("Nilai Bagus") print("Lulus")
Bila indentasi dalam satu grup kode tidak sama, python akan menampilkan sintaks
error.
Python juga memiliki fitur komentar multibaris dengan perintah triple tanda kutip ('''
'''). Kita harus mengomentari satu persatu baris seperti berikut:
Operator Logika
Operator adalah simbol tertentu yang digunakan untuk melakukan operasi aritmatika maupun
logika. Nilai yang padanya dilakukan operasi disebut operand. Misalnya adalah 2 + 3. Di sini
tanda + adalah operator penjumlahan. 2 dan 3 adalah operand.
Python memiliki sejumlah operator, yaitu:
• Operator Aritmatika
• Operator Perbandingan
• Operator Penugasan
• Operator Logika
• Operator Bitwise
• Operator Identitas
• Operator Keanggotaan
Jika karakter yang akan kita input merupakan sebuah integer maka kita juga harus
menambahkan fungsi int() seperti pada contoh berikut :
5.2. Operator Perbandingan
Operator perbandingan adalah operator yang digunakan untuk membandingkan 2
buah nilai. Hasil perbandingannya adalah True atau False tergantung kondisi.
> Lebih besar dari – Hasilnya True jika nilai sebelah a>b
kiri lebih besar dari nilai sebelah kanan
< Lebih kecil dari – Hasilnya True jika nilai sebelah a<b
kiri lebih kecil dari nilai sebelah kanan
c = a + b
Menugaskan nilai yang ada di kanan ke operand yang ada
= menugaskan a + b
di sebelah kiri
ke c
and Hasilnya adalah True jika kedua operandnya bernilai benar a and b
Hasilnya adalah True jika salah satu atau kedua operandnya bernilai
or a or b
benar
not Hasilnya adalah True jika operandnya bernilai salah (kebalikan nilai) not a
5.8. Latihan 1
• Buatlah 1 Contoh Operator Penugasan
• Buatlah 1 Contoh Operator Logika
• Buatlah 1 Contoh Operator Bitwise
• Buatlah 1 Contoh Operator Identitas
• Buatlah 1 Contoh Operator Keanggotaan
5.9. Latihan 2
• Buatlah program seperti gambar dibawah ini
Pertemuan 4
Percabangan
Percabangan adalah cara yang digunakan untuk mengambil keputusan apabila di
dalam program dihadapkan pada kondisi tertentu. Jumlah kondisinya bisa satu, dua atau
lebih. Percabangan mengevaluasi kondisi atau ekspresi yang hasilnya benar atau salah.
Kondisi atau ekspresi tersebut disebut ekspresi boolean.
Hasil dari pengecekan kondisi adalah True atau False. Bila benar (True), maka
pernyataan yang ada di dalam blok kondisi tersebut akan dieksekusi. Bila salah (False), maka
blok pernyataan lain yang dieksekusi.
Di Python ada 3 jenis pernyataan yang digunakan untuk percabangan, yaitu sebagai berikut:
Pernyataan if terdiri dari ekspresi boolean diikuti oleh satu baris atau
1 if
lebih pernyataan.
3.1. Pernyataan if
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
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.
if tes kondisi:
blok pernyataan if
else:
blok pernyataan if
else:
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.
BL Bali 350,000
Buatlah program input dan hasil output sesuai perintah diatas menggunakan Bahasa
pemrograman Python.
Masukan Keluaran
Latihan Studi Kasus : Pendaftaran Mahasiswa Baru
Buatlah program input dan hasil output sesuai perintah diatas menggunakan Bahasa
pemrograman Python.
Tugas 1
PT. DINGIN DAMAI, memberi gaji pokok kepada karyawan kontraknya sebesar Rp.
300,000 perbulan, dengan memperoleh tunjangan-tunjangan sebagai berikut :
▪ Tunjangan Jabatan
Golongan Persentase
1 5%
2 10%
3 15%
Logikanya : Jika seorang karyawan tersebut dengan golongan 3, maka mendapatkan
tunjangan sebesar 15% * Rp. 300,000
• Tunjangan Pendidikan
Tingkat Persentase
Pendidikan
SMA 2.5%
D1 5%
D3 20%
S1 30%
Jika seorang karyawan tersebut dengan Tingkat Pendidikan S1, maka mendapatkan
tunjangan pendidikan sebesar 30% * Rp. 300,000
Honor Lembur
Jumlah jam kerja normal sebanyak 8 jam, Honor lembur diberikan jika jumlah jam
kerja lebih dari 8 jam, maka kelebihan jam kerja tersebut dikalikan dengan Rp. 3500
untuk setiap kelebihan jam kerja karyawan tersebut.Tampilan yang diinginkan sebagai
berikut :
Layar Masukkan
Layar Keluaran
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.
Untuk lebih jelasnya perhatikan gambar berikut:
Pada gambar bisa dilihat bahwa perulangan juga memerlukan tes kondisi. Bila hasil tes
kondisi True, maka blok kode kembali dieksekusi. Tapi jika False, maka keluar dari
perulangan. Pada python, perulangan bisa dilakukan dengan dua cara atau metode, yaitu:
1. Menggunakan for
2. Menggunakan while
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.
5.2. Fungsi range
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))
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. Adapun diagram alir while adalah seperti
gambar berikut:
Gambar 5.2. Diagram Alir Perulangan While
Perhatikan bahwa bila kondisi yang diuji bernilai salah, maka loop tidak akan pernah
dieksekusi.
Di sini, blok 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").
KeyboardInterrupt
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:
Bila pada program di atas kita ganti kode break menjadi continue, maka hasilnya akan jadi
seperti berikut:
Perhatikan bahwa huruf g tidak pernah ditampilkan karena diabaikan karena kode continue.
5.6. While else
Python mendukung penggunaan else sebagai pasangan dari while. Blok pernyataan else
hanya akan dieksekusi bila kondisi while bernilai salah.
Latihan
Lakukan pengulangan input data sebanyak 2 kali dengan data dibawah ini :
Kode Program
ulang=2
for i in range(ulang):
print ("data Ke - " + str(i+1))
nama=input("Masukkan Nim anda : ")
uts=int(input("Masukkan Nilai UTS anda :"))
uas=int(input("Masukkan Nilai UAS : "))
print("NIm anda adalah %s nilai UTS anda %i nilai UTS anda
%i" % (nama,uts,uas))
print("-------------------------------------\n")
Output
Tugas 2
Sebuah perusahaan ayam goreng dengan nama “GEROBAK FRIED CHICKEN” yang
telah lumayan banyak pelanggannya, ingin dibantu dibuatkan program untuk membantu
kelancaran usahaannya.
“GEROBAK FRIED CHICKEN” mempunyai daftar harga ayam sebagai berikut :
Layar Keluaran
GEROBAK FIRED CHICHEN
-------------------------------------------------------------
No. Jenis Harga Bayak Jumlah
Potong Satuan Beli Harga
-------------------------------------------------------------
... ....... .... .... Rp ....
... ....... .... .... Rp ....
------------------------------------------------------------
Jumlah Bayar Rp ....
Pajak 10% Rp ....
Total Bayar Rp ....
Pertemuan 6
List juga bisa berisi list lain. Ini disebut list bersarang
# list bersarang
my_list = ["hello", [2,4,6], ['a','b']]
>>> ganjil.append(9)
>>> print(ganjil) [1,3,5,7,9]
>>> ganjil.extend([11,13,15])
>>> print(['p','y'] * 2)
['p','y','p','y]
>>> ganjil.insert(2,9)
>>> print(ganjil) [5,7,9,11,13,15]
3.9. 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.
3.10. 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']
>>> alfabet.reverse()
>>> print(alfabet) ['b','e','d','c','b','a']
3.12. 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.
3.13. 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.
3.14. 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.
Sama seperti list, kita bisa mengakses satu range anggota tuple dengan
menggunakan operator titik dua ( : ).
3.15. 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:
Fungsi Deskripsi
Mengembalikan True jika semua anggota tuple adalah benar ( tidak ada yang
all()
kosong )
Mengembalikan True jika salah satu atau semua bernilai benar. Jika tuple
any()
kosong, maka akan mengambalikan False.
sorted() Mengambil anggota tuple dan mengembalikan list baru yang sudah diurutkan
4 5 6
7 8 9
0
Tampilkan lah :
- Baris Pertama, Kolom Pertama
- Baris Pertama, Kolom Kedua
- Baris Pertama, Kolom Ketiga
- Baris Ketiga, Kolom Ketiga
- Baris Ke Empat, Kolom Pertama
Hasil :
Latihan
Buatlah input, proses dan output secara berulang dengan memanfaatkan fungsi matriks/list
seperti pada koding dibawah ini :
ulang=2
for i in range(ulang):
print ("data Ke - " + str(i+1))
list_nim.append(input("Masukkan Nim anda : "))
list_uts.append(int(input("Masukkan Nilai UTS anda :")))
list_uas.append(int(input("Masukkan Nilai UAS : ")))
#proses
for i in range(ulang):
list_total.append((list_uas[i] + list_uts[i]) / 2)
#Cetak
print("========================================================")
print("Nim Nilai Uts Nilai UAS Total")
print("========================================================")
for i in range(ulang):
print ("%s \t %i \t\t %i \t\t\t %i" % (list_nim[i],list_uts[i],list_uas[i],list_total[i]))
print("========================================================")
s
Pertemuan 7
String dan Bilangan
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:
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:
Berikut adalah daftar karakter escape yang didukung oleh Python.
\\ Backslash
\’ Kutip tunggal
\” Kutip ganda
\a ASCII bel
\b ASCII backscape
\f ASCII formfeed
\n ASCII linefeed
>>> print("C:\\Python34\\Lib")
C:\Python34\Lib
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.
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'
>>> # pembulatan
>>> "Sepertiga sama dengan: {0:.3f}".format(1/3)
'Sepertiga sama dengan: 0.333'
>>> x = 12.3456789
Nilai x = 12.35
Nilai x = 12.3456
>>> 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.
Modul ini juga membuat kita bisa melakukan perhitungan seperti di sekolah.
Operasi dasar seperti penjumlahan atau pembagian pecahan juga bisa dilakukan dengan
modul fractions ini
3.13. Matematika dengan Python
Python menyediakan modul math melakukan hal yang berbau matematis
seperti trigonometri, logaritma, probabilitas, statistik, dan lain – lain.
Pertemuan 8
UTS
Pertemuan 9
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.
return [expression]
>>> sapa('Ratna')
Hi, Ratna. Apa kabar?
3.3. 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"""
• Argumen default
Fungsi dengan argumen default menggunakan nilai default untuk argumen
yang tidak diberikan nilainya pada saat pemanggilan fungsi. Pada contoh
berikut, fungsi akan menampilkan usia default bila argumen usia tidak
diberikan:
Pada contoh di atas, pemanggilan fungsi kedua tidak menyediakan nilai untuk
parameter usia, sehingga yang digunakan adalah nilai default yaitu 17.
• Argumen dengan panjang sembarang
Terkadang kita butuh untuk memproses fungsi yang memiliki banyak
argumen. Nama – nama argumennya tidak disebutkan saat pendefinisian
fungsi, beda halnya dengan fungsi dengan argumen wajib dan argumen
default. Sintaksnya fungsi dengan argumen panjang sembarang adalah seperti
berikut:
def function_name([formal_args,] *var_args_tuple):
"""function_docstring"""
statement(s)
return [expression]
Tanda asterisk (*) ditempatkan sebelum nama variabel yang menyimpan nilai
dari semua argumen yang tidak didefinisikan. Tuple ini akan kosong bila tidak
ada argumen tambahan pada saat pemanggilan fungsi. Berikut adalah
contohnya:
3.6. Ruang Lingkup (Scope) Variabel
Di Python, tidak semua variabel bisa diakses dari semua tempat. Ini tergantung
dari tempat dimana kita mendefinisikan variabel. Ruang lingkup variabel ada dua,
yaitu:
• Global
• Local
Variabel yang didefinisikan di dalam fungsi memiliki scope lokal, sedangkan
variabel yang didefinisikan di luar fungsi memiliki scope global. Ini berarti, variabel
lokal hanya bisa diakses dari dalam fungsi di mana ia di definisikan, sedangkan
variabel global bisa diakses dari seluruh tempat dimanapun di dalam program. Berikut
adalah contohnya:
Perhatikan bagaimana variabel total di dalam dan di luar fungsi adalah dua variabel yang
berbeda.
Pertemuan 10
Penganan 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
if x < 5
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
AttributeError Muncul pada saat penugasan terhadap attribute atau referensi gagal
Muncul saat fungsi input() mendapatkan kondisi akhir file (end-
EOFError
of-file)
Muncul saat indentasi memiliki jumlah spasi atau tab yang tidak
TabError
konsisten
TypeError Muncul saat melakukan operasi pada tipe data yang tidak sesuai
Muncul saat referensi dibuat untuk variabel lokal dari fungsi, tapi
UnboundLocalError
tidak ada nilainya.
ValueError Muncul saat fungsi menerima argumen yang tipe datanya salah
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.
except ValueError:
# tangani eksepsi ValueError
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.
>>> try:
a = int(input("Masukkan sebuah bilangan positif: "))
if a <= 0:
raise ValueError("Itu bukan bilangan positif!")
except ValueError as ve:
print(ve)
class Car:
color = 'black'
transmission = 'manual'
def drive(self):
print('Drive')
def reverse(self):
print('Reverse. Please check your behind.')
Jika diperhatikan, dalam class Car terdapat 2 attribute yaitu color = 'black',
transmission = 'manual' dan method yaitu drive(), reverse(). Method dalam konsep
OOP mewakili suatu 'behaviour' dari class atau object itu sendiri. Kita akan bahas lebih detail
mengenai method.
3.3. Function/Method
Fungsi method dalam konsep OOP adalah untuk merepresentasikan suatu behaviour.
Dalam contoh di atas suatu object 'mobil' memiliki behaviour antara lain adalah bergerak dan
mundur. Suatu method bisa juga memiliki satu atau beberapa parameter, sebagai contoh:
gear_position = 'N'
Pada method change_gear() terdapat 1 parameter yaitu gear. Ketika method tersebut
dipanggil dan anda tidak memberikan value pada parameter tersebut, maka program akan
melempar error. Bagaimanapun juga parameter yang sudah didefinisikan pada suatu method
harus memiliki value meskipun value tersebut None. Cara lainnya adalah dengan
mendefinisikan default value pada parameter tersebut sejak awal method tersebut dibuat:
gear_position = 'N'
self.change_gear()
>>> 'Gear position on: N'
self.change_gear('R')
>>> 'Gear position on: R
Jika diperhatikan, terdapat keyword self pada salah satu parameter method di atas.
Keyword self mengacu pada Class Instance untuk mengakses attribute atau method dari
class itu sendiri. Dalam bahasa pemrograman Java, terdapat keyword this yang memiliki
fungsi yang mirip dengan keyword self pada Python. Pemberian keyword self pada
parameter awal suatu method menjadi wajib jika anda mendefinisikan method tersebut di
dalam block suatu class.
Suatu method juga bisa mengembalikan suatu value ketika method tersebut dipanggil.
Berikut contoh implementasinya:
def get_gear_position(self):
return self.gear_position
gear_position = self.get_gear_position()
3.4. Constructor
Pada contoh awal tentang penjelasan class, terdapat sebuah method bernama
__init__(). Method itulah yang disebut dengan constructor. Suatu constructor berbeda
dengan method lainnya, karena constructor akan otomatis dieksekusi ketika membuat object
dari class itu sendiri.
class Car:
color = 'black'
transmission = 'manual'
...
honda = Car('automatic')
>>> 'Engine is ready!'
Ketika object honda dibuat dari class Car, constructor langsung dieksekusi. Hal ini berguna
jika anda membutuhkan proses inisialisasi ketika suatu object dibuat. Suatu constructor juga
bisa memiliki satu atau beberapa parameter, sama seperti method pada umumnya namun
constructor tidak bisa mengembalikan value.
3.5. Object
Object merupakan produk hasil dari suatu class. Jika class merupakan blueprint dari
suatu rancangan bangunan, maka object adalah bangunan itu sendiri. Begitulah contoh
analogi yang bisa saya gambarkan mengenai relasi antara class dan object. Berikut contoh
implementasi dalam bentuk code program:
class Car:
color = 'black'
transmission = 'manual'
gear_position = 'N'
def drive(self):
self.gear_position = 'D'
print('Drive')
def reverse(self):
self.gear_position = 'N'
print('Reverse. Please check your behind.')
def get_gear_position(self):
return self.gear_position
car1 = Car('manual')
car1.change_gear('D-1')
car2 = Car('automatic')
gear_position = car2.get_gear_position()
print(gear_position)
>>> 'N'
Dari contoh di atas, terdapat 2 buah object car1 dan car2 yang dibuat dari class yang sama.
Masing-masing dari object tersebut berdiri sendiri, artinya jika terjadi perubahan attribute
dari object car1 tidak akan mempengaruhi object car2 meskipun dari class yang sama.
3.6. Inheritance
Salah satu keuntungan dari konsep OOP ialah reusable codes yang bisa mengoptimalkan
penggunaan code program agar lebih efisien dan meminimalisir redudansi.
• Kita dapat mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain
yang sudah ada.
• Penurunan sifat ini bisa dilakukan secara bertingkat tingkat, sehingga semakin ke
bawah kelas tersebut menjadi semakin spesifik.
• Sub kelas memungkinkan kita untuk melakukan spesifikasi detail dan perilaku
khusus dari kelas supernya.
• Dengan konsep pewarisan, seorang programmer dapat menggunakan kode yang
telah ditulisnya pada kelas super berulang kali pada kelas-kelas turunannya tanpa
harus menulis ulang semua kodekode itu.
Semua itu berkat adanya fitur inheritance yang memungkinkan suatu class (parent)
menurunkan semua attribute dan behaviour nya ke class (child) lain. Berikut contoh
penerapannya:
class Tesla(Car):
pass # use 'pass' keyword to define class only
tesla = Tesla()
tesla.drive()
>>> 'Drive'
Pada potongan code di atas, class Tesla merupakan turunan dari class Car. Jika diperhatikan
pada class Tesla tidak didefinisikan method drive() namun class tersebut bisa memanggil
method drive(). Method tersebut berasal dari class parentnya yaitu class Car, sehingga tidak
perlu lagi didefinisikan ulang pada class childnya. Dengan cara seperti ini anda bisa
melakukan reusable codes sehingga source code menjadi lebih clean.
3.7. Overriding
Ada suatu kondisi dimana suatu method yang berasal dari parent ingin anda
modifikasi atau ditambahkan beberapa fitur sesuai kebutuhan pada class child, disinilah peran
dari 'overriding method'. Dengan menggunakan fungsi super(), anda bisa memanggil instance
dari class parent di dalam suatu method untuk memanggil fungsi dari parent tersebut.
Perhatikan contoh di bawah ini:
class Tesla(Car):
def drive(self):
super().drive()
print('LOL Gas')
__factory_number = '0123456789'
def __get_factory_number(self):
return self.__factory_number
3.9. Polymorphism
polimorfisme yang memungkinkan anda untuk membuat banyak bentuk dari satu object.
Berikut contoh implementasinya:
class Car:
def fuel(self):
return 'gas'
class Honda(Car):
pass
class Tesla(Car):
def fuel(self):
return 'electricity'
def get_fuel(car):
print(car.fuel())
get_fuel(Tesla())
get_fuel(Honda())
>>> 'electricity'
>>> 'gas
• Polimorfisme merupakan kemampuan objek objek yang berbeda kelas namun terkait
dalam pewarisan untuk merespon secara berbeda terhadap suatu pesan yang sama.
• Polimorfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan
method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada
jenjang pewarisan.