PERTEMUAN KESEBELAS
MATA KULIAH DASAR PEMROGRAMAN
PROGRAM STUDI TEKNOLOGI REKAYASA KOMPUTER JARINGAN
Oleh:
Budi Sunaryo, S.T., M.T.
Dosen Program Studi Teknologi Rekayasa Komputer Jaringan
Fakultas Teknologi Industri, Universitas Bung Hatta
www.sunaryo.id
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
081320777313
Pendahuluan
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Memahami File
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Memahami File
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Memahami File
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Memahami File
• Sering kali, kita mendengar tentang file teks dan file biner. File
teks adalah suatu file yang hanya berisi string, tidak memiliki
encoding tertentu, polos (tanpa formatting teks), dan dapat
dibuka di pengolah kata sederhana (Notepad, gedit, vim, dan lain
sebagainya) tanpa perlu penanganan khusus.
• Sementara file biner adalah file yang datanya telah mengalami
encoding sedemikian rupa, sehingga informasi di dalamnya telah
dikode menjadi kumpulan karakter yang tidak kita pahami,
kecuali dibuka dengan penanganan tertentu, cara tertentu, atau
aplikasi tertentu untuk mendekode informasi di dalamnya.
6
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Memahami File
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Memahami File
• File dapat diletakkan dalam suatu folder untuk pengarsipan file yang
terorganisir.
• Katalog dari struktur folder yang mengandung referensi ke pada suatu
file atau folder disebut direktori, yang mana sifatnya bisa beragam,
tergantung dari sistem operasi dan sistem file (filesystem) yang dianut
oleh sistem operasi tersebut.
• Rangkaian alamat suatu direktori disebut path. Hubungan antara satu
folder dengan folder di bawahnya seringkali digambarkan sebagai
parent-child relationship, yang mana parent directory membawahi
child directory.
• Direktori tertinggi yang tidak berinduk dan membawahi seluruh
direktori yang ada dikenal sebagai root directory.
8
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Fungsi open() untuk membuat, menulis, dan
membaca file
• Fungsi open() adalah fungsi yang berguna untuk membuka objek file.
Namun, tergantung dari mode yang digunakan dan ketersediaan file
dalam sistem, fungsi ini bisa juga untuk membuat file.
• Bentuk umum dari penggunaan open() adalah:
objek_file = open(nama_file, mode_akses)
• Untuk nama file pada nama_file, apabila anda tidak secara spesifik
menentukan alamat direktori lengkap secraa rinci, maka file akan
dibuat sesuai working directory dimana anda berada sekarang. Untuk
mode akses, ada beberapa mode akses yang diperkenankan.
Standarnya, ada tujuh (7) mode. Selain ketujuh mode, terdapat pula
16 kombinasinya, atau 20 kombinasi, bila kita memisahkan r+ dengan
rt+, w+ dengan wt+, x+ dengan xt+, dan a+ dengan at+ menjadi
tersendiri.
9
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Tabel Mode akses untuk open()
Menulis file. Apabila file yang dituju ada, maka akan di truncate dahulu.
Bila tidak ada filenya, maka file akan dibuat. Tanpa kombinasi yang diberikan, maka
'w' Write otomatis file teks yang akan dibuat.
Standar
Baru ada di Python 3.4. Membuat file. Tanpa kombinasi yang
diberikan, maka otomatis file teks yang akan dibuat. Bila file yang
'x' Exclusive creation dikehendaki untuk dibuat ternyata ada, maka akan muncull error.
'a' Append Menambah file pada bagian ujung akhir dari file asli.
't' Text mode Mode teks.
'b' Binary mode Mode biner.
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Tabel Mode akses untuk open()
Mode Arti Tujuan
'rt' Read text file Membaca file teks. Mode ini adalah mode default dari open().
'wt' Write text file Menulis file teks.
'xt' Exclusive creation text Membuat file teks.
file
'at' Append text file Menambah file pada bagian ujung akhir dari file teks.
'rb' Read binary file Membaca file biner.
'wb' Write binary file Menulis file biner.
'xb' Exclusive creation Membuat file biner.
binary file
Kombinasi 'ab' Append binary file Menambah file pada bagian ujung akhir dari file biner.
Membaca file untuk diupdate.
Sinonim dengan 'rt+'.
'r+' Read text file + Untuk pembukaan file, apabila file yang
dituju ada, maka file dibuka tanpa di-
truncate dahulu.
Menulis file teks untuk diupdate.
Sinonim dengan 'wt+'.
Bila filenya ada, maka akan ditimpa dengan file baru hasil update.
'w+' Write text file + Bila tidak ada, maka file akan dibuat. Untuk pembukaan file, apabila file yang dituju
ada, maka akan di-truncate dahulu. 11
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Tabel Mode akses untuk open()
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Contoh Membuat File
Tulis kode python seperti di bawah ini, lalu simpan dengan nama
buat_file.py di folder tertentu.
1. #membuat file
2. try:
3. objFile = open("daftar pohon.txt", "x")
4. except BaseException as be:
5. print("Error: ", be)
6. else:
7. print("File berhasil dibuat!")
8. finally:
9. objFile.close()
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Menulis File
Tulis kode python seperti di bawah ini, lalu simpan dengan nama tulis_file.py di folder tertentu.
1. #membuka file
2. try:
3. objFile = open("isi daftar pohon.txt", "w")
4. except BaseException as be:
5. print("Error: ", be)
6. else:
7. #menulis file
8. objFile.write("Nama pohon Nama latin\n")
9. objFile.write("Aren Arenga pinnata\n")
10. objFile.write("Bintaro Cerbera manghas\n")
11. objFile.write("Durian Durio zibethinus\n")
12. objFile.write("Flamboyan Delonix regia\n")
13. objFile.write("Kantil Magnolia x alba\n") 14
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Menulis File
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Contoh Membaca File
Kita telah menulis file, lalu kita akan membaca file dan
menampilkannya di layar. Buat file baru dengan nama baca_file.py.
1. #membaca dan menampilkannya ke layar
2. try:
3. objFile = open("isi daftar pohon.txt", "r")
4. for i in (objFile):
5. print(i)
6. except BaseException as be:
7. print('Error: ', be)
8. finally:
9. objFile.close()
16
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Contoh Membaca File
17
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Membaca file dengan file.read()
18
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Membaca file dengan file.read()
19
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Membaca file dengan file.read()
20
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Membaca file dengan file.readline()
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Membaca file dengan file.readline()
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Menulis file dengan file.write()
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Menulis isi file dengan append
24
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Menulis isi file dengan append
1. #menambah ke file
2. try: #buka file sebelum ditambah
3. objFile = open("pohon taman.txt", "r")
4. bacaAwal = objFile.read() #inisiasi file.read()
5. # Baca dan cetak seluruh file
6. print("=== Isi File Sebelum Ditambah ===")
7. print(bacaAwal)
8. except BaseException as be:
9. print('Error: ', be)
10.finally:
11. objFile.close()
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Menulis isi file dengan append
14. dataAppend = "\nKemuning Murraya paniculata"
15. objFile.write(dataAppend)
16. objFile.close()
17.except BaseException as be:
18. print('Error: ', be)
19.else: #tampilkan isi file hasil tambahan bila tidak error
20. objFile = open("pohon taman.txt", "r")
21. bacaHasilTambah = objFile.read() #inisiasi file.read()
22. # Baca dan cetak seluruh file
23. print("=== Isi File Sesudah Ditambah ===")
24. print(bacaHasilTambah)
25.finally:
26. objFile.close()
26
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Menulis isi file dengan append
27
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Menulis isi file dengan write
1. #menambah ke file
2. try: #buka file sebelum ditambah
3. objFile = open("pohon taman write.txt", "r")
4. bacaAwal = objFile.read() #inisiasi file.read()
5. # Baca dan cetak seluruh file
6. print("=== Isi File Sebelum Ditulis ===")
7. print(bacaAwal)
8. except BaseException as be:
9. print('Error: ', be)
10.finally:
11. objFile.close()
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Menulis isi file dengan write
14. dataWrite = "\nKemuning Murraya paniculata"
15. objFile.write(dataWrite)
16. objFile.close()
17.except BaseException as be:
18. print('Error: ', be)
19.else: #tampilkan isi file hasil tambahan bila tidak error
20. objFile = open("pohon taman write.txt", "r")
21. bacaHasilTambah = objFile.read() #inisiasi file.read()
22. # Baca dan cetak seluruh file
23. print("=== Isi File Sesudah Ditulis ===")
24. print(bacaHasilTambah)
25.finally:
26. objFile.close()
29
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Menulis isi file dengan append
30
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Mengoperasikan dua file dengan operasi berbeda
(satu baca, satu tulis)
31
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Mengoperasikan dua file dengan operasi berbeda
(satu baca, satu tulis)
1. #mengoperasikan 2 file
2. #satu baca, satu tulis
3. fileOri = 'pohon taman.txt'
4. fileTujuan = 'pohon taman 2.txt'
5. with open(fileOri, 'r') as O, open(fileTujuan, 'w') as T:
6. print("File original dibaca...")
7. dataOri = O.readlines()
8. print("File tujuan ditulis bacaan file original...")
9. T.writelines(dataOri)
10. print("Selesai!")
32
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Mengoperasikan dua file dengan operasi berbeda
(satu baca, satu tulis)
• Hasil filenya adalah, kedua file kini memiliki dua data yang sama. Ini bukan
pengkopian, namun file “pohon taman 2.txt” adalah hasil penulisan dari data yang
asalnya dari “pohon taman.txt”
33
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Merekam Data Masukan ke dalam File
• Merekam data masukan ke dalam file bisa dilakukan dengan mengkombinasi inputan dengan
operasi file.
• Contoh berikut adalah suatu program sederhana untuk mengukur kadar Indole-3-acetic acid
(IAA) dalam sampel jaringan tumbuhan. Anggaplah anda mendapat rekaman data seperti ini.
Ulangan Kadar IAA (µg/ml) Kadar IAA • Adapun kadar IAA (µg/ml) dikonversi menjadi
(µg/g) IAA (µg/mg) dengan rumus pengukuran IAA
1 1.5 45 sebagaimana berikut (Nashrulloh, 2018):
2 1.3 39
3 1.0 30
4 1.7 51
5 1.2 36 • Maka berapa kadar IAA dalam sampel jaringan
tumbuhan (µg/g) tersebut?
• Pemecahannya melalui Python dapat dilihat di kode
Sampel : 50 mg = 0.05 g slide selanjutnya.
Volume ekstraksi : 1.5 ml
34
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Merekam Data Masukan ke dalam File
1. #merekam data
2. import traceback as tb
3. import statistics as stat
4. print("==============================")
5. print("===PROGRAM HITUNG KADAR IAA===")
6. print("Masukkan data dalam bentuk µg/g")
7. print("==============================")
8. limitData = int(input("Masukkan jumlah sampel: "))
9. try:
10. #inisiasi semua objek
11. recData = open("recordIAA.txt","w")
12. recList = []
13. #iterasi untuk input data sejumlah sampel
14. for i in range(limitData):
15. sampleData = int(input(
16. "Data ke-" + str(i+1) + ": ")) 35
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Merekam Data Masukan ke dalam File
17. #tulis data ke file
18. recData.write(str(sampleData)+"\n")
19. #record ke list
20. recList.insert(i, sampleData)
21. #cetak pesan bila data terekam
22. print("==============================")
23. print("Data terekam di recordIAA.txt!")
24. print("==============================")
25. #tutup file
26. recData.close()
27. except BaseException as be:
28. be = tb.format_exc()
29. print("Error: ", be)
30. else:
31. #bila tidak ada error
32. #hitung kadar IAA 36
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Merekam Data Masukan ke dalam File
17. rerata = stat.mean(recList)
18. galat = stat.stdev(recList)
19. #cetak hasil
20. hasil = ("{a:.2f} ± {sb:.2f} µg/g".format(a = rerata, b = galat))
21. print("Kadar IAA pada sampel adalah:", hasil)
22. finally:
23. #cleanup
24. #bersihkan list
25. recList = []
26. #tutup file
27. recData.close()
37
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id
Merekam Data Masukan ke dalam File
• Hasil filenya adalah, kedua file kini memiliki dua data yang sama. Ini bukan
pengkopian, namun file “pohon taman 2.txt” adalah hasil penulisan dari data yang
asalnya dari “pohon taman.txt”
38
https://bunghatta.ac.id | budi.sunaryo@bunghatta.ac.id