Lompat ke konten Lompat ke sidebar Lompat ke footer

Direktori dalam Python

Direktori merupakan bagian penting dalam pengelolaan berkas menggunakan Python. Melalui direktori, program dapat mengetahui lokasi berkas, membuat folder baru, mengganti nama folder, menghapus folder, serta melihat daftar berkas yang tersimpan dalam suatu lokasi.

Sebelum mempelajari materi tentang Direktori dalam Python, terlebih dahulu pelajari materi tentang: Modul dalam Python, Paket dalam Python, dan Fungsi Utama main dalam Python.

Kemampuan mengelola direktori sangat berguna ketika membuat program yang berhubungan dengan berkas, seperti aplikasi pengolah dokumen, pengelola gambar, sistem pencadangan data, aplikasi administrasi, dan berbagai program lainnya.

Python menyediakan beberapa modul yang dapat digunakan untuk bekerja dengan direktori. Salah satu modul yang paling sering digunakan adalah modul `os`. Selain itu, terdapat modul `pathlib` yang menyediakan cara yang lebih terstruktur untuk mengelola jalur berkas dan direktori.

Pengertian Direktori

Direktori adalah tempat yang digunakan untuk menyimpan dan mengelompokkan berkas serta direktori lainnya.

Dalam penggunaan sehari-hari, direktori sering disebut sebagai folder. Sebagai contoh, sebuah komputer dapat memiliki struktur seperti berikut:
Dokumen/
├── tugas.py
├── data.txt
└── laporan/
  ├── laporan1.txt
  └── laporan2.txt


Pada struktur tersebut, `Dokumen` merupakan direktori utama. Di dalamnya terdapat beberapa berkas dan direktori lain bernama `laporan`. Python dapat digunakan untuk membaca dan mengubah struktur tersebut melalui program.

Modul os

Modul `os` menyediakan berbagai fungsi untuk berinteraksi dengan sistem operasi. Modul ini dapat digunakan untuk bekerja dengan direktori, berkas, jalur, dan informasi sistem.

Sebelum menggunakan modul `os`, modul perlu diimpor.
import os

Setelah itu, berbagai fungsi yang tersedia dalam modul tersebut dapat digunakan.

Contohnya:
import os
print(os.getcwd())


Fungsi `os.getcwd()` digunakan untuk mendapatkan lokasi direktori kerja saat ini.

Mengetahui Direktori Kerja Saat Ini

Direktori kerja saat ini merupakan lokasi yang sedang digunakan oleh program Python ketika menjalankan operasi terhadap berkas atau direktori.

Untuk mengetahuinya, gunakan `os.getcwd()`.
import os
lokasi = os.getcwd()
print(lokasi)


Hasil yang ditampilkan bergantung pada lokasi program dijalankan.

Contoh hasil:
C:\Users\Belajar\Dokumen

Pada sistem operasi lain, bentuk jalurnya dapat berbeda. 

Mengetahui direktori kerja sangat penting karena beberapa operasi terhadap berkas menggunakan lokasi tersebut sebagai acuan.

Mengubah Direktori Kerja

Python juga dapat mengubah direktori kerja menggunakan fungsi `os.chdir()`.

Contoh:
import os
os.chdir("C:\\Users\\Belajar\\Dokumen")
print(os.getcwd())


Setelah `os.chdir()` dijalankan, direktori kerja program berpindah ke lokasi yang ditentukan. Pada sistem yang mendukung jalur dengan garis miring, bentuk berikut juga dapat digunakan:
import os
os.chdir("/home/belajar/dokumen")


Penggunaan jalur bergantung pada sistem operasi yang digunakan.

Membuat Direktori Baru

Python dapat membuat direktori baru menggunakan fungsi `os.mkdir()`.

Contoh:
import os
os.mkdir("data")


Program tersebut membuat direktori bernama `data` di dalam direktori kerja saat ini. Setelah program dijalankan, struktur direktori dapat menjadi:
Dokumen/
├── data/
├── tugas.py
└── laporan.txt


Jika direktori dengan nama tersebut sudah tersedia, Python dapat menghasilkan kesalahan.

Membuat Beberapa Tingkat Direktori

Terkadang diperlukan beberapa direktori sekaligus.

Contohnya:
proyek/
└── data/
  └── hasil/


Untuk membuat struktur seperti tersebut, fungsi `os.makedirs()` dapat digunakan.
import os
os.makedirs("proyek/data/hasil")


Fungsi `makedirs()` dapat membuat beberapa tingkat direktori sekaligus. Cara tersebut lebih praktis daripada membuat setiap direktori satu per satu.

Mengecek Apakah Direktori Sudah Ada

Sebelum membuat direktori, sebaiknya program memeriksa terlebih dahulu apakah direktori tersebut sudah tersedia. 

Python menyediakan `os.path.exists()`.
import os
if os.path.exists("data"):
print("Direktori sudah ada")
else:
os.mkdir("data")
print("Direktori berhasil dibuat")


Cara tersebut dapat mencegah kesalahan akibat mencoba membuat direktori yang sudah tersedia.

Mengecek Apakah Suatu Jalur Merupakan Direktori

Fungsi `os.path.isdir()` dapat digunakan untuk mengetahui apakah suatu jalur merupakan direktori.

Contoh:
import os
if os.path.isdir("data"):
print("data adalah direktori")
else:
print("data bukan direktori")


Fungsi tersebut menghasilkan nilai `True` jika jalur yang diperiksa merupakan direktori. Jika bukan direktori, hasilnya adalah `False`.

Mengecek Apakah Suatu Jalur Merupakan Berkas

Selain memeriksa direktori, Python juga dapat memeriksa apakah suatu jalur merupakan berkas.

Gunakan `os.path.isfile()`.
import os
if os.path.isfile("data.txt"):
print("data.txt adalah berkas")
else:
print("data.txt bukan berkas")


Fungsi tersebut berguna ketika program harus membedakan antara berkas dan direktori.

Melihat Isi Direktori

Untuk melihat daftar isi sebuah direktori, dapat digunakan fungsi `os.listdir()`.

Contoh:
import os
isi = os.listdir()
print(isi)


Program akan menampilkan daftar berkas dan direktori yang terdapat pada direktori kerja saat ini.

Contoh hasil:
['data.txt', 'tugas.py', 'gambar', 'laporan']

Hasil `os.listdir()` berbentuk daftar sehingga setiap elemennya dapat diproses menggunakan perulangan.

Contoh:
import os
for item in os.listdir():
print(item)


Hasilnya dapat berupa:
data.txt
tugas.py
gambar
laporan


Menampilkan Isi Direktori Tertentu

`os.listdir()` juga dapat diberikan nama direktori.
import os
isi = os.listdir("data")
for item in isi:
print(item)


Program tersebut menampilkan isi direktori `data`.

Membedakan Berkas dan Direktori

Ketika daftar isi direktori ditampilkan, program dapat memeriksa setiap elemen untuk mengetahui apakah elemen tersebut merupakan berkas atau direktori.

Contoh:
import os
for item in os.listdir():
if os.path.isfile(item):
print(item, "adalah berkas")
elif os.path.isdir(item):
print(item, "adalah direktori")


Program tersebut memeriksa setiap isi direktori satu per satu.

Hasil dapat berupa:
data.txt adalah berkas
tugas.py adalah berkas
gambar adalah direktori
laporan adalah direktori


Teknik ini berguna untuk membuat program pengelola berkas sederhana.

Menghapus Direktori

Direktori kosong dapat dihapus menggunakan `os.rmdir()`.

Contoh:
import os
os.rmdir("data")


Perintah tersebut menghapus direktori `data` jika direktori tersebut kosong. Jika direktori masih berisi berkas atau direktori lain, operasi tersebut dapat menghasilkan kesalahan.

Menghapus Direktori Beserta Isinya

Untuk menghapus direktori beserta seluruh isi di dalamnya, modul `shutil` dapat digunakan.
import shutil
shutil.rmtree("data")


Perintah tersebut menghapus direktori `data` beserta seluruh isi di dalamnya. Operasi ini harus digunakan dengan hati-hati karena berkas yang terhapus dapat sulit dipulihkan.

Mengganti Nama Direktori

Fungsi `os.rename()` dapat digunakan untuk mengganti nama direktori.

Contoh:
import os
os.rename("data", "data_baru")


Direktori `data` akan berubah menjadi `data_baru`. Fungsi yang sama juga dapat digunakan untuk mengganti nama berkas.

Mengetahui Ukuran Berkas

Walaupun pembahasan utama berkaitan dengan direktori, Python juga dapat memperoleh ukuran berkas yang terdapat di dalam direktori.

Gunakan `os.path.getsize()`.
import os
ukuran = os.path.getsize("data.txt")
print(ukuran)


Hasil ukuran diberikan dalam satuan bita.

Jika ingin menampilkan ukuran dalam kilobita:
ukuran = os.path.getsize("data.txt")
print(ukuran / 1024, "KB")


Menggabungkan Jalur Direktori

Penulisan jalur secara langsung terkadang dapat menimbulkan masalah karena sistem operasi menggunakan aturan penulisan jalur yang berbeda. Python menyediakan `os.path.join()` untuk menggabungkan beberapa bagian jalur.

Contoh:
import os
jalur = os.path.join("data", "hasil.txt")
print(jalur)


Hasilnya akan disesuaikan dengan sistem operasi. Pada sistem tertentu dapat menghasilkan:
data\hasil.txt

Sementara sistem lain dapat menghasilkan:
data/hasil.txt

Penggunaan `os.path.join()` membuat program lebih mudah digunakan pada berbagai sistem operasi.

Mendapatkan Nama Berkas dari Jalur

Fungsi `os.path.basename()` dapat digunakan untuk mengambil bagian nama berkas dari suatu jalur.
import os
jalur = "data/laporan.txt"
nama = os.path.basename(jalur)
print(nama)


Hasil:
laporan.txt

Mendapatkan Nama Direktori dari Jalur

Fungsi `os.path.dirname()` digunakan untuk mengambil bagian direktori dari sebuah jalur.
import os
jalur = "data/laporan.txt"
direktori = os.path.dirname(jalur)
print(direktori)


Hasil:
data

Dengan fungsi tersebut, sebuah jalur dapat dipisahkan menjadi bagian direktori dan nama berkas.

Menggunakan Modul pathlib

Selain `os`, Python menyediakan modul `pathlib` untuk bekerja dengan jalur, berkas, dan direktori. Modul ini menggunakan objek `Path`.

Contoh:
from pathlib import Path
lokasi = Path.cwd()
print(lokasi)


`Path.cwd()` digunakan untuk mendapatkan direktori kerja saat ini.

Membuat Direktori dengan pathlib

Direktori dapat dibuat menggunakan metode `mkdir()`.
from pathlib import Path
folder = Path("data")
folder.mkdir()


Program tersebut membuat direktori bernama `data`. Pemeriksaan keberadaan direktori dapat dilakukan terlebih dahulu.
from pathlib import Path
folder = Path("data")
if not folder.exists():
folder.mkdir()
print("Selesai")


Membuat Direktori Bertingkat dengan pathlib

Direktori bertingkat dapat dibuat dengan `parents=True`.
from pathlib import Path
folder = Path("proyek/data/hasil")
folder.mkdir(parents=True, exist_ok=True)


`parents=True` memungkinkan Python membuat direktori induk yang belum tersedia. `exist_ok=True` mencegah kesalahan jika direktori tersebut sudah ada.

Melihat Isi Direktori dengan pathlib

Modul `pathlib` menyediakan metode `iterdir()` untuk membaca isi direktori.
from pathlib import Path
folder = Path("data")
for item in folder.iterdir():
print(item)


Setiap elemen yang ditemukan akan ditampilkan.

Memeriksa Berkas dan Direktori dengan pathlib

Objek `Path` menyediakan metode `is_file()` dan `is_dir()`.

Contoh:
from pathlib import Path
folder = Path("data")
for item in folder.iterdir():
if item.is_file():
print(item, "adalah berkas")
elif item.is_dir():
print(item, "adalah direktori")


Cara tersebut membuat pemeriksaan isi direktori menjadi lebih mudah dibaca.

Menghapus Direktori dengan pathlib

Direktori kosong dapat dihapus menggunakan `rmdir()`.
from pathlib import Path
folder = Path("data")
folder.rmdir()


Seperti `os.rmdir()`, metode ini hanya dapat digunakan jika direktori kosong.

Mengganti Nama dengan pathlib

Nama berkas atau direktori dapat diubah menggunakan `rename()`.
from pathlib import Path
folder = Path("data")
folder.rename("data_baru")


Setelah program dijalankan, nama direktori berubah dari `data` menjadi `data_baru`.

Mencari Berkas Berdasarkan Pola

`pathlib` juga menyediakan metode `glob()` untuk mencari berkas berdasarkan pola tertentu. Misalnya, untuk mencari seluruh berkas Python:
from pathlib import Path
folder = Path(".")
for file in folder.glob("*.py"):
print(file)


Pola `*.py` berarti mencari berkas yang memiliki akhiran `.py`. 

Contoh lain untuk mencari berkas teks:
for file in folder.glob("*.txt"):
print(file)


Cara ini berguna ketika program harus menemukan jenis berkas tertentu.

Mencari Berkas dalam Subdirektori

Metode `rglob()` dapat digunakan untuk mencari berkas sampai ke subdirektori.

Contoh:
from pathlib import Path
folder = Path(".")
for file in folder.rglob("*.py"):
print(file)


Program tersebut mencari berkas Python pada direktori utama dan subdirektori di dalamnya.

Perbedaan os dan pathlib

Modul `os` dan `pathlib` sama-sama dapat digunakan untuk mengelola direktori. Beberapa operasi yang umum dapat dibandingkan sebagai berikut:

Kebutuhan

os

pathlib

  • Direktori saat ini
  • os.getcwd()
  • Path.cwd()
  • Membuat direktori
  • os.mkdir()
  • Path.mkdir()
  • Melihat isi direktori
  • os.listdir()
  • Path.iterdir()
  • Mengecek direktori
  • os.path.isdir()
  • Path.is_dir()
  • Mengecek berkas
  • os.path.isfile()
  • Path.is_file()
  • Menggabungkan jalur
  • os.path.join()
  • Path / nama
  • Menghapus direktori kosong
  • os.rmdir()
  • Path.rmdir()
  • Mengganti nama
  • os.rename()
  • Path.rename()

Keduanya tetap berguna. Modul `os` banyak digunakan pada program Python lama maupun program yang membutuhkan fungsi sistem operasi secara luas. `pathlib` menyediakan pendekatan berbasis objek yang sering lebih mudah dibaca.

Contoh Program Menampilkan Isi Direktori

Berikut contoh program sederhana yang menampilkan semua isi direktori.
import os
for item in os.listdir():
print(item)


Program tersebut sangat sederhana, tetapi dapat menjadi dasar untuk membuat aplikasi pengelola berkas.

Contoh Program Memisahkan Berkas dan Direktori

Program berikut membedakan berkas dan direktori.
import os
for item in os.listdir():
if os.path.isfile(item):
print("[BERKAS]", item)
elif os.path.isdir(item):
print("[DIREKTORI]", item)


Contoh hasil:
[BERKAS] tugas.py
[BERKAS] data.txt
[DIREKTORI] gambar
[DIREKTORI] laporan


Contoh Program Menghitung Jumlah Berkas

Python dapat digunakan untuk menghitung jumlah berkas dalam sebuah direktori.
import os
jumlah = 0
for item in os.listdir():
if os.path.isfile(item):
jumlah += 1
print("Jumlah berkas:", jumlah)


Program tersebut hanya menghitung berkas yang berada langsung di direktori kerja.

Contoh Program Menghitung Berkas Python

Program berikut menghitung jumlah berkas dengan ekstensi `.py`.
from pathlib import Path
folder = Path(".")
jumlah = 0
for file in folder.glob("*.py"):
jumlah += 1
print("Jumlah berkas Python:", jumlah)


Program ini dapat dikembangkan menjadi alat sederhana untuk memeriksa isi sebuah folder proyek Python.

Kesalahan yang Sering Terjadi

Pengelolaan direktori dapat menghasilkan kesalahan jika kondisi tidak diperiksa terlebih dahulu.

Direktori Sudah Ada

Berikut contoh dari direktori yang sudah ada.

Contoh:
import os
os.mkdir("data")
os.mkdir("data")


Perintah kedua dapat menghasilkan kesalahan karena direktori `data` sudah tersedia.

Pencegahannya:
import os
if not os.path.exists("data"):
os.mkdir("data")


Direktori Tidak Ditemukan

Kesalahan juga dapat terjadi ketika program mencoba masuk ke direktori yang tidak tersedia.
import os
os.chdir("folder_tidak_ada")


Sebaiknya periksa keberadaan direktori terlebih dahulu.
import os
if os.path.isdir("data"):
os.chdir("data")
else:
print("Direktori tidak ditemukan")


Menghapus Direktori yang Tidak Kosong

Kode berikut dapat menghasilkan kesalahan:
import os
os.rmdir("data")


Jika `data` masih berisi berkas, direktori tersebut tidak dapat dihapus menggunakan `os.rmdir()`.

Jalur Tidak Tepat

Kesalahan penulisan jalur juga dapat menyebabkan program gagal menemukan berkas atau direktori. Penggunaan `os.path.join()` atau `pathlib` dapat membantu mengurangi masalah tersebut.

Contoh Proyek Sederhana

Pemahaman mengenai direktori dapat digunakan untuk membuat program sederhana yang menampilkan struktur folder.
from pathlib import Path
folder = Path(".")
print("Isi direktori:")
for item in folder.iterdir():
if item.is_file():
print("Berkas :", item.name)
elif item.is_dir():
print("Folder :", item.name)


Program tersebut membaca isi direktori saat ini dan menampilkan jenis setiap elemen.

Contoh hasil:
Isi direktori:
Berkas : program.py
Berkas : data.txt
Folder : gambar
Folder : laporan


Latihan

Beberapa latihan berikut dapat digunakan untuk memperkuat pemahaman mengenai direktori dalam Python.

Latihan 1

Buat program yang menampilkan direktori kerja saat ini.

Latihan 2

Buat direktori bernama `latihan`.

Latihan 3

Periksa apakah direktori `latihan` sudah tersedia.

Latihan 4

Tampilkan semua isi direktori saat ini.

Latihan 5

Buat program yang hanya menampilkan berkas dengan ekstensi `.txt`.

Latihan 6

Buat program yang menghitung jumlah direktori pada lokasi tertentu.

Latihan 7

Buat program yang membedakan berkas dan direktori.

Latihan 8

Buat program yang membuat struktur berikut:
proyek/
├── data/
├── gambar/
└── hasil/


Latihan 9

Gunakan `pathlib` untuk mencari seluruh berkas Python pada sebuah direktori.

Latihan 10

Buat program sederhana yang menampilkan nama dan jenis seluruh isi suatu folder.

Kesimpulan

Direktori merupakan bagian penting dalam pemrograman karena hampir setiap program yang bekerja dengan berkas perlu mengetahui lokasi dan struktur penyimpanan data.

Python menyediakan modul `os` dan `pathlib` untuk mengelola direktori. Beberapa operasi yang penting untuk dipahami antara lain mendapatkan direktori kerja dengan `os.getcwd()`, mengubah direktori dengan `os.chdir()`, membuat direktori menggunakan `os.mkdir()` atau `Path.mkdir()`, melihat isi direktori menggunakan `os.listdir()` atau `Path.iterdir()`, memeriksa berkas dan direktori, mengganti nama, serta menghapus direktori.

Modul `pathlib` juga menyediakan cara yang praktis untuk menggabungkan jalur dan mencari berkas berdasarkan pola menggunakan `glob()` dan `rglob()`.

Penguasaan operasi direktori akan menjadi dasar yang berguna untuk mempelajari pengelolaan berkas, pembacaan data, penyimpanan hasil program, pencadangan, pengolahan dokumen, hingga pembuatan aplikasi yang bekerja dengan banyak berkas.

Artikel ini akan dibaca oleh: Devandra Ferdinand Dharmansyah, Devy Setyaningrum, Diana Dwi Novianingrum, Difa Yuristika Bilqist, dan Dika Bayu Wirawan.

5 komentar untuk "Direktori dalam Python"

  1. Ini metode penelitian yang diperlihatkan sebagian besar masih aplikatif ya?

    BalasHapus
    Balasan
    1. Belum ada unsur kebaruannya, sebagian besar memang masih ilmu terapan saja.

      Hapus
  2. Padahal jika dilihat dari sudut pandang hukum Syariah, permasalahan dibidang ekonomi itu banyak sekali potensi yang bisa digali.

    BalasHapus
    Balasan
    1. Iya, menurut saya penelitian atau skripsi dibidang ekonomi syariah itu memang masih banyak potensi permasalahan yang dapat digali lebih dalam.

      Hapus
    2. Iya contohnya saja pada perusahaan-perusahaan yang mengkalim dirinya perusahaan berbasis syariah, ternyata sebagian masih ada yang sumber dananya dari perushaan miras, dan lain sebagainya, ini menurut saya masih bisa dilakukan penelitian secara lebih dalam baik dari sudut pandang Islam ataupun sudut pandang ekonomi syariah.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -