purwadhika-logopurwadhika-logo

5 Teknik untuk Menampilkan Tabel di Python

Intania

17 May 2024

5 Teknik untuk Menampilkan Tabel di Python.jpg

Bagi pemula dalam Python, menampilkan data dengan rapi adalah kunci penting. Saya mengalami hal yang sama saat menyelesaikan tugas akhir di Purwadhika, menciptakan aplikasi mini untuk operasi dasar: create, read, update, dan delete.

Adapun mini aplikasi yang saya buat mengenai Data Nasabah PT ABC Sekuritas, dimana data collection-nya berupa beragam jenis profil nasabah mulai dari ID, NIK, Nama, Alamat, hingga Status Prioritas atau Non Prioritas.

Dikarenakan pada menu pertama harus membuat tampilan tabel, maka saya ingin tampilan tabel terlihat rapi.Awalnya, saya mengandalkan teknik manual yakni tabs (\t) dan space (ʼ ‘) untuk menyusun struktur tampilan, namun hasilnya tidaklah memuaskan. Beruntung, seorang teman memperkenalkan saya pada fungsi ljust, yang ternyata memberikan solusi lebih efisien.Dari hal tersebut, saya tertarik untuk mengeksplor lebih dalam pilihan untuk menampilkan data , khususnya tabel di Python.

Dalam artikel ini, saya akan menjelaskan beberapa teknik sederhana namun efektif untuk membantu anda menampilkan data, baik dalam tabel maupun tidak pada pemrograman Python

Menggunakan tabs (\t) dan space (ʼ ‘)

Penggunaan tab dan spasi adalah salah satu cara paling mendasar untuk memberikan indentasi pada tampilan kode Python Anda, membuatnya lebih rapi dan mudah dibaca.

Cara penggunaannya sangat sederhana. Saat menggunakan perintah print, cukup masukkan \t di posisi teks yang ingin Anda cetak. Jumlah \t dan spasi tergantung pada kebutuhan Anda. Berikut adalah contoh penggunaannya dan hasilnya:

Menggunakan tabs dan space.png

Keuntungan menggunakan teknik ini adalah kecepatan dan kemudahan implementasinya.

Namun, terdapat beberapa kelemahan yang dapat langsung terlihat ketika menggunakan teknik ini yakni terpengaruh akan jumlah karakter. Dapat dilihat bahwa karakter nama "Nur Komala Saijah" dan "Haris Purwadhana" lebih panjang dari "Intania" dan "Angel Kumala", yang menyebabkan jarak tab antara data menjadi tidak konsisten, meskipun jumlah tab dan spasi sudah sama.

Belum lagi cara ini terlalu manual, sehingga sulit untuk menyesuaikan lebar dengan tepat, dan sering memerlukan beberapa kali percobaan untuk memastikan hasil yang sesuai.

Karena alasan ini, penggunaan tab dan spasi tidak terlalu efektif untuk menampilkan data, terutama dalam bentuk tabel.

rjust() dan ljust()

Untuk mengatasi masalah inkonsistensi antara tab dan spasi, Anda dapat memanfaatkan fungsi rjust() dan ljust() dalam Python. Dimana sistem akan membuat jarak secara konsisten untuk suatu data string yang anda cetak. Syntax penulisannya sebagai berikut :

rjust() dan ljust() (1).png

Mari kita lihat langsung penggunaannya :

rjust() dan ljust() (2).png

Cara penggunaan ljust() dan rjust() :

  1. Tentukan string yang ingin anda cetak, kemudian ditutup dengan kurung untuk dijadikan objek
  2. Setelah menjadi objek, baru anda tentukan apakah
    • rjust() dimana missing space dahulu lalu objek yang diletakkan di sebelah kanan, atau
    • ljust() dimana objek diletakkan dahulu baru sisanya diisi oleh missing space. Definisi missing space adalah sisa karakter yang akan ditampilkan oleh Python, apabila karakter pada objek telah dijalankan semua. Secara default adalah spasi ‘ ‘
  3. Width pada parameter rjust/ljust() harus diisi dengan angka sesuai kebutuhan anda.
  4. Character pada parameter rjust/ljust() tidak wajib untuk diisi, karena secara default Python akan isi dengan spasi ‘ ʼ

Sekarang akan saya terapkan untuk dataNasabah yang saya miliki rjust() dan ljust() (3).png

Untuk membuat tampilan seperti ini, maka perlu menggunakan f-string agar bisa menyimpan objek yang lebih banyak.

Perlu diperhatikan, dengan menggunakan ljuts() atau rjust() data yang berupa integer akan menghasilkan error. Sehingga data yang bertipe integer harus di format terlebih dahulu menjadi string.

Inilah yang menjadi kelemahan dari penggunaan ljust() dan rjust() yakni masih harus menggunakan format() atau f-string() untuk menyimpan beragam objek sekaligus, dan tidak mampu menampilkan data integer sehingga harus dicasting ke tipe data string terlebih dahulu.

format()

Metode format() digunakan untuk memformat nilai yang ditentukan dan memasukkannya ke dalam placeholder (tempat penampung) dalam sebuah

string. Placeholder ini ditentukan dengan menggunakan tanda kurung kurawal: {}.

Adapun cara penulisannya adalah : format() (1).png

Di dalam string tersebut akan diletakkan placeholder {} yang jumlahnya harus sama dengan values karena setiap values tersebut akan dimasukkan secara berurutan.

Ternyata format() ini pun dapat digunakan untuk mengatur jarak antar value maupun string dengan beraneka format, mau menjarak ke kanan atau ke kiri seperti ljust() & rjust(), bahkan ada yang ke tengah pula.

Syntax penulisan untuk memberikan jarak : format() (2).png

  • Jalankan perintah print, kemudian diawal dengan tanda kutip kemudian kurung kurawal agar Python mengetahui kalau anda hendak menggunakan format() dalam string yang hendak dicetak
  • {:<width} dimana parameter width disini wajib diisi oleh angka sesuai keinginan untuk memberikan jarak kepada value selanjutnya, dimana konsep ini mirip dengan ljust() dan rjust()
  • value1,value2,value3 adalah value yang akan ditampilkan oleh system Berikut contoh penggunaan :

format() (3).png

Dapat dilihat penggunaan {:>50} yang artinya saya menghendaki string ini memiliki total 50 karakter termasuk karakter yang ada pada objek x. Pada kasus diatas variabel x memiliki panjang sebanyak 29 karakter, sehingga sisanya

Python menambahkan 21 spasi ‘ ‘ untuk mengisi missing space. Sekarang kita coba pada data yang saya miliki, dimana saya ingin menampilkan ID Nasabah, Nama, dan Dana Nasabah.

format() (4).png

Dapat dilihat dengan menggunakan format(), tampilannya tetap rapi dan anda tidak perlu mengetik setiap jarak kolom satu per satu yang dilakukan di rjust/ljust().

fstring

Metode yang ini mirip dengan format() namun bedanya penulisan f di bagian depan string, dan objek langsung dimasukkan ke dalam placeholder dalam string.

fstring.png

Tabulate

Tabulate adalah modul Python yang digunakan untuk membuat tabel dari data dalam bentuk list, tuple, dictionary, atau objek Pandas DataFrame. Modul ini menyediakan cara yang mudah dan fleksibel untuk membuat tampilan tabel yang terstruktur dan rapi dari data yang kompleks. Adapun syntax untuk penggunaan tabulate adalah :

Tabulate (1).png

  • Parameter Values adalah kumpulan data yang digunakan untuk mengisi baris tabel. Biasanya tersimpan dalam bentuk list, tuple, disctionary.
  • Parameter Headers adalah data yang menjadi nama kolom
  • Parameter tablefmt adalah pilihan gaya yang dapat dipilih.

Sebelum menggunakan pastikan anda mengimpor tabulate terlebih dahulu. Tabulate (2).png

Dalam kesempatan kali ini saya akan memberikan contoh penggunaan untuk beragam aplikasi :

TABULATE DENGAN BERAGAM TIPE KOLEKSI DATA

Tabulate dengan data disimpan dalam list

Tabulate dengan data disimpan dalam list.png

Jika anda menggunakan data dalam beberapa list, maka pastikan untuk menggabungkan antar list untuk mempermudah tabulate dalam membaca data anda. Pada contoh ini, saya menggunakan teknik zip.

Tabulate dengan data yang disimpan di dalam tuple

Tabulate dengan data yang disimpan di dalam tuple.png

Tabulate dalam bentuk dictionary

Tabulate dalam bentuk dictionary.png

Jika anda ingat contoh sebelumnya (poin 1) , teknik penulisan data dictionary mirip dengan teknik penulisan data dalam list, tetapi mengapa data dalam list perlu di - zip sedangkan dictionary tidak perlu di - zip? Jawabannya karena dictionary memiliki keys yang membantu Python untuk mendefinisikan setiap values untuk dimasukkan ke masing - masing kolom pada headers yang sesuai. Karenanya penulisan headers adalah data. keys()

Sekarang, saya akan menggunakan data nasabah yang saya miliki dimana kasus kali ini adalah dictionary dalam dictionary. Berikut adalah implementasinya :

Tabulate dalam bentuk dictionary (2).png

Hasilnya tidak sesuai dengan keinginan yah. Ini dikarenakan Python kesulitan menentukan values yang tepat. Untuk kasus ini, yang saya lakukan adalah mendefinisikan kembali dictionary menjadi list yang lebih mudah dibaca seperti berikut :

Tabulate dalam bentuk dictionary (3).png

Pertama, saya melakukan konversi dictionary ke dalam list menggunakan teknik

list comprehension. Kemudian saya membuat variabel headers, dikarenakan dalam dictionary tidak ada data headers tersebut, dan berbeda dengan contoh sebelumnya, keys yang saya gunakan merupakan ID Nasabah dan menyimpan beragam value dengan tipe data yang beragam. Baru saya menjalankan perintah tabulate.

TEKNIK PENULISAN HEADERS

Penulisan headers dalam tabulate

Selain membuat tabulate dengan beragam bentuk koleksi data, saya juga ingin membahas teknik penulisan headers, dan yang paling sederhana adalah headers langsung dinyatakan didalam perintah tabulate. Penulisan headers dalam tabulate.png

Penulisan header dalam variabel

Jika headers cukup panjang dan anda berencana untuk menggunakannya berkali - kali, maka menyimpan headers dalam variabel merupakan langkah yang tepat.

Penulisan header dalam variabel.png

Penulisan header dalam koleksi data Anda juga bisa memasukkan headers kedalam data koleksi yang dimiliki. Dimana letakkan headers tersebut di paling pertama, kemudian ketika anda menjalankan perintah tabulate, isi headers dengan ‘firstrowʼ

Penulisan header dalam koleksi data.png

PILIHAN TAMPILAN TABEL

Pada argumen tablefmt , tabulate menyediakan beragam tampilan yang bisa anda pilih. Apabila anda tidak memasukkan argumen tablefmt, maka tabulate secara default akan menampilkan tabel dalam bentuk ‘simpleʼ. Adapun pilihannya adalah berikut :

  • "plain"
  • "simple" "github" "grid"
  • "simple_grid"
  • "rounded_grid" "heavy_grid" "mixed_grid" "double_grid" "outline"
  • "simple_outline"
  • "rounded_outline"
  • "heavy_outline" "mixed_outline" "double_outline" "fancy_outline" "pipe"
  • "orgtbl" "asciidoc" "jira" "fancy_grid" "presto"
  • "pretty" "psql"
  • "rst" "mediawiki" "moinmoin" "youtrack" "html" "unsafehtml" "latex"
  • "latex_raw" "latex_booktabs" "latex_longtable" "textile"
  • "tsv"
  • tablefmt=ʼsimpleʼ tablefmt=ʼgithubʼ
  • tablefmt=ʼgridʼ

NUMALIGN & STRALIGN

Digunakan untuk mengatur lokasi data yang memiliki tipe integer (numalign) dan tipe string (stralign). Secara default, tabulate akan mengatur kolom tipe data integer rata kiri dan tipe data string rata kanan. Sekarang anda bisa mengatur apakah mau rata kanan, rata kiri ataupun rata tengah. Berikut adalah tampilan tabel tanpa memasukkan argumen ‘numalign =ʼ dan ‘stralign =ʼ

NUMALIGN & STRALIGN.png

Dan sekarang, saya memasukkan argumen numalign = ‘centerʼ,stralign = ‘centerʼ dan membuat tampilan menjadi berikut :

NUMALIGN & STRALIGN (2).png

Dari contoh pengaplikasian, kita bisa temukan banyak kelebihan tabulate yakni :

  1. Kemudahan untuk digunakan
  2. Bisa menampilkan beragam jenis data koleksi
  3. Bisa mengatur kolom secara otomatis dan penyesuaian posisi isi data

Walau demikian tetap ada kelemahannya juga yakni :

  1. Format tabel terbatas, karena anda tidak bisa melakukan merging, custom style styling.
  2. Interaksi terbatas, hanya dapat digunakan untuk menampilkan tabel, tetapi ketika ingin melakukan sorting, filter, dan manipulasi data lainnya tidak bisa dilakukan.
  3. Tidak bisa melakukan data analisis, karena di poin kedua tersebut, anda tidak dapat melakukan analisa data .

Itulah 5 teknik yang dapat anda gunakan untuk menampilkan tabel anda di Python agar terlihat rapi dan menarik. Dari kelima teknik tersebut, manakah yang paling anda sukai?


bagikan