02 Print Function dan Strings

AUT: BanditHijo | PUB: 2018/03/28 | UPD: 2018/10/29

banner

Print() Function

Seperti yang sudah saya mention sedikit di post sebelumnya, print() function ini digunakan utnuk menampilkan output ke dalam console. Console disini tergantung dari sistem operasi yang kita gunakan. Dalam sistem operasi Windows dikenal dengan sebutan Command Prompt (CMD.exe) sedangkan dalam sistem operasi GNU/Linux dikenal dengan sebutan Terminal.

Saat kita belajar tentang suatu bahasa pemrograman, biasanya kita diajarkan untuk menampilkan output dari program sederhana yang kita buat pada console. Maka dari itu dalam proses belajar Python ini kita akan banyak menggunakan fungsi print().

print() function juga dapat kita gunakan sebagai “debugging tool” sederhana, yang dapat membantu kita mengetahui apakah program yang kita buat telah sesuai dengan hasil yang kita harapkan atau tidak.

Debugging” adalah istilah khusus dalam topik pemrograman yang merujuk pada kegiatan mencari, menghapus, dan memperbaiki error dan kesalahan yang ada pada program.

Untuk menggunakan fungsi print(), kita akan gunakan pada pembahasan kali ini bersama dengan tipe data Strings.

Strings

String adalah salah satu dari jenis tipe data yang berarti text atau tulisan. Beberapa jenis tipe data yang lain seperti: Integer, Boolean, Float, Double, Constant, dll. akan kita pelajari pada materi variable.

Sebuah tipe data string, memiliki ciri-ciri sebuah kata atau kalimat yang di awali dan di akhiri dengan dengan tanda petik. Baik itu petik satu '...' maupun petik dua "...".

Penerapan

Sekarang kita akan menampilkan sebuah Strings dengan nilai “Saya adalah Python Developer.” ke dalam console dengan bantuan fungsi print().

Contoh string dengan satu petik.

print('Saya adalah Python Developer.')
Saya adalah Python Developer.

Contoh string dengan dua petik

print("Saya adalah Python Developer.")
Saya adalah Python Developer.

Kedua bentuk string di atas tidak menghasilkan output yang berbeda. Kamu dapat menggunakan ' atau ".

Hal yang harus diperhatikan adalah tanda petik tersebut harus digunakan secara berpasangan. Maksudnya adalah, apabila kamu mengawali sebuah string dengan ' maka kamu harus menutup string tersebut dengan tanda ' juga. Begitu juga untuk tanda ".

Bagaimana cara menampilkan tanda petik di dalam sebuah string ?

print("Ibu berkata, 'Budi adalah seorang Python Developer'")
print('Ibu berkata, "Budi adalah seorang Python Developer"')

print("Sekarang adalah hari Jum'at")
print('Sekarang adalah hari Jum"at')
Ibu berkata, 'Budi adalah seorang Python Developer'
Ibu berkata, "Budi adalah seorang Python Developer"

Sekarang adalah hari Jum'at
Sekarang adalah hari Jum"at

Escape Character

Escape character adalah karakter yang di awali dengan tanda \ (baca: backslash), dimana untuk masing-masing escape character memiliki makna sendiri-sendiri.

Misalnya kita ingin menulis sebuah kalimat yang di dalamnya terdapat kata yang menggunakan tanda apostrof ('), seperti: Jum’at, AlQur’an, dll.

print('Sekarang adalah hari Jum'at')
  File "<stdin>", line 1
    print('Sekarang adalah hari Jum'at')
                                     ^
SyntaxError: invalid syntax

Terjadi kesalahan berupa invalid syntax dengan pointer menunjuk pada huruf t.

Kita dapat memperbaiki kesalah ini dengan mengganti satu petik ' yang mengapit kalimat tersebut dengan dua petik ".

print("Sekarang adalah hari Jum'at")
Sekarang adalah hari Jum'at

Namun, ini bukan penyelesaian dengan menggunakan escape character, karena bahasan kita adalah escape character maka kita akan menggunakan cara yang sesuai dengan topik ini. Seperti ini cara memperbikinya.

print('Sekarang adalah hari Jum\'at')
Sekarang adalah hari Jum'at

Yaitu dengan menambahkan tanda \ tepat sebelum tanda ', sehingga menjadi seperti ini \'.

Dapat diartikan bahwa tanda \ akan membuat tanda ' yang seharusnya merupakan sintaks untuk membuka dan menutup sebuah string, menjadi terabaikan dan hanya akan ditampilkan berupa '.

Contoh lain,

print("Ibu berkata, "Budi adalah seorang Python Developer"")
  File "<stdin>", line 1
    print("Ibu berkata, "Budi adalah seorang Python Developer"")
                            ^
SyntaxError: invalid syntax

Cara memperbaiki dengan menggunakan escape character.

print("Ibu berkata, \"Budi adalah seorang Python Developer\"")
Ibu berkata, "Budi adalah seorang Python Developer"


Tabel Escape Character

Karakter Kegunaan
\newline Ignored
\\ Backslash (\)
\’ Single quote (‘)
\” Double quote (“)
\a ASCII Bell (BEL)
\b ASCII Backspace (BS)
\f ASCII Formfeed (FF)
\n ASCII Linefeed (LF)
\r ASCII Carriage Return (CR)
\t ASCII Horizontal Tab (TAB)
\v ASCII Vertical Tab (VT)
\ooo ASCII character with octal value ooo
\xhh… ASCII character with hex value hh…

Concatenation

Ketika ketia berbicara tentang string dan print function, akan sangat bermanfaat apabila kita juga mengetahui tentang concatenation. Concatenation apabila diartikan secara bahasa adalah rangkaian.


Concatenation pada String

Kamu dapat menggunakan tanda , atau tanda + untuk merangkai dua buah string atau lebih, menjadi satu buah string yang utuh. Apabila kamu mengunakan ,, kamu akan mendapatkan satu buah spasi di antara keduanya.

print('Nama :','Devika')
Nama : Devika

Sebaliknya, apabila menggunakan tanda +, string tersebut akan dirangkai tanpa disertakan spasi di antara keduanya.

print('Nama :'+'Devika')
Nama :Devika


Concatenation pada Integer atau Float

Jika kamu menggunakan + untuk merangkai/menggabungkan integer & integer, float & float atau integer & float, maka yang terjadi adalah operasi aritmatika berupa penjumlahan.

print(10+4)        # int + int
print(5.2+4.1)     # float + float
print(14+2.5)      # int + float
14                 # int
9.3                # float
16.5               # float


Concatenation Tingkat Lanjut

Kamu dapat merangkai string dengan integer maupun float menggunakan ,.

print('Jumlah item yang dibeli : ',10)
Jumlah item yang dibeli : 10


Kamu tidak dapat merangkai string dengan integer atau float menggunakan +.

print('Jumlah item yang dibeli : '+10)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: must be str, not int

Terjadi kesalahan (error) yang mengatakan TypeError: must be str not int. Karena nilai paling depan berupa string, sehingga apabila menggunakan + untuk merangkai dengan nilai kedua yang berupa integer, akan mengalami kegagalan. Dalam Matematika, operasi penjumlahan, integer dapat dijumlahkan dengan integer atau float, namun tidak dapat dijumlahkan dengan string.


Kamu juga dapat menggunakan concatenation untuk dapat dirangkaikan dengan variabel.

nama = 'Devika'

print('Nama :',nama)
print('Nama : '+nama)
Nama : Devika
Nama : Devika


jmlh_kucing = 5

print(jmlh_kucing+10)
print(jmlh_kucing,10)
15
5 10

Masih banyak lagi contoh kasus yang tidak dapat saya tuliskan di sini. Pokoknya kalo mau merangkai sesuatu, gunakan concatenation.

catatan: merangkai tidak sama dengan menggabungkan


Untuk melakukan print() pada banyak baris, kita dapat melakukannya dengan sangat mudah. Kita cukup mengapitnya dengan tanda petik tiga '''...''' atau """...""". Hal ini sama seperti saat kita memberikan komentar pada banyak baris. Aturan mengenai cara pemberian komentar pada baris kode, akan kita bahas pada materi selanjutnya.

Berikut ini adalah cara menampilkan print() pada banyak baris.

print('''baris ke-1
baris ke-2
baris ke-3

baris ke-5
baris ke-6
baris ke-7''')
baris ke-1
baris ke-2
baris ke-3

baris ke-5
baris ke-6
baris ke-7

Atau,

print('''
|-------------------------------------|
|         --- PYTHON MOTEL ----       |
|-------------------------------------|
|  TIPE KAMAR  | KAMAR |    HARGA     |
|-------------------------------------|
| (1) VIP      |   1   | Rp 1.000.000 |
| (2) Menengah |   1   | Rp   700.000 |
| (3) Ekonomi  |   1   | Rp   500.000 |
|-------------------------------------|
''')

|-------------------------------------|
|         --- PYTHON MOTEL ----       |
|-------------------------------------|
|  TIPE KAMAR  | KAMAR |    HARGA     |
|-------------------------------------|
| (1) VIP      |   1   | Rp 1.000.000 |
| (2) Menengah |   1   | Rp   700.000 |
| (3) Ekonomi  |   1   | Rp   500.000 |
|-------------------------------------|

Saya lebih sering menggunakan tanda petik ' daripada ". Kapan menggunakan petik satu dan kapan harus petik dua, tergantung dari konten pada string. Apakah mengandung karakter petik (apostrof) seperti: Jum’at, AlQur’an, dsb. Seperti yang sudah dicontohkan pada pembahasan di awal.


Strings: f-strings

Python mendukung banyak cara untuk melakukan formatted strings. Formatted strings di sini artinya, “membentuk strings”. Jadi kita dapat membentuk output strings sesuai dengan yang kita inginkan. Metode-metode tersebut antara lain seperti menggunakan %-formatting, str.format, dan string.Template.


Penggunaan print() dengan %-format

kata1 = 'Python'
kata2 = 'Keren'

print('%s memang %s !' %(kata1, kata2))
Python memang Keren !


Penggunaan print() dengan str.format

kata1 = 'Python'
kata2 = 'Keren'

print('{0} memang {1} !'.format(kata1, kata2))
Python memang Keren !


Penggunaan string.Template

from string import Template

kalimat = Template('$siapa memang $kenapa !')
kalimat.substitute(siapa = 'Python', kenapa = 'Keren')
Python memang Keren !


Setiap metode memiliki kelebihan masing-masing. Tetapi, juga memiliki kelemahan yang membuat metode-metode tersebut rumit untuk digunakan dalam prakteknya.

Kemudian pada Python 3, pada PEP 498 (Python Enhancement Proposals), mengusulkan mekanisme performatan string yang baru, yang bernama: Literal String Interpolation. Yang nantinya, format string ini akan disebut sebagai f-string, penamaan ini diambil dari karakter awalan yang digunakan untuk mengaktifkan format string ini, atau dapat juga disebut sebagai formatted strings. f-strings menyediakan cara untuk menanamkan ekspresi di dalam string dengan menggunakan sintaks yang minimal.


Penggunaan f-strings pada single line print()

namaDepan = 'Devika'
namaBelakang = 'Marina '

print(f'Nama lengkap, {namaDepan} {namaBelakang}')
Nama lengkap, Devika Marina

Kalo kita bongkar kodenya, untuk f-strings pada single line print sendiri penulisannya sama seperti string biasa, namun dengan penambahan huruf f sebelum tanda petik pada string, baik petik satu ' atau petik dua ". Kemudian, variable dapat kita sisipkan ke dalam string, dengan mengapit variable tersebut menggunakan tanda kurung kurawal {namaVariable}.

f'Nama lengkap, {namaDepan} {namaBelakang}'

f"Nama lengkap, {namaDepan} {namaBelakang}"


Penggunaan f-strings pada multi line print()

namaDepan = 'Devika'
namaBelakang = 'Marina'
bahasa = 'Python'
textEditor = 'Vim'
sistemOperasi = 'GNU/Linux'

print(f'''
Hi, perkenalkan nama saya adalah {namaDepan} {namaBelakang}.
Saya adalah seorang WEB Developer yang menggunakan bahasa pemrograman {bahasa} untuk menyelesaikan proyek-proyek yang saya kerjakan.
Tentu saja, sebagai seorang programmer tidak lepas dari aplikasi yang selalu menemani saya setiap saat, yaitu text editor.
Saya menggunakan text editor yang tidak umum digunakan oleh kebanyakan developer wanita, yaitu {textEditor}.
Yang berjalan di atas sistem operasi {sistemOperasi}.
Alasan saya memilih {textEditor} adalah karena efisiensi.
Menurut saya, mempelajari {textEditor} adalah sebuah investasi yang berharga.

Hormat saya,
{namaDepan} {namaBelakang}
''')

Hi, perkenalkan nama saya adalah Devika Marina.
Saya adalah seorang WEB Developer yang menggunakan bahasa pemrograman Python untuk menyelesaikan proyek-proyek yang saya kerjakan.
Tentu saja, sebagai seorang programmer tidak lepas dari aplikasi yang selalu menemani saya setiap saat, yaitu text editor.
Saya menggunakan text editor yang tidak umum digunakan oleh kebanyakan developer wanita, yaitu Vim.
Yang berjalan di atas sistem operasi GNU/Linux.
Alasan saya memilih Vim adalah karena efisiensi.
Menurut saya, mempelajari Vim adalah sebuah investasi yang berharga.

Hormat saya,
Devika Marina

Bagaimana, sangat mudah sekali bukan penggunaan f-strings ini?

Sintaksnya minimal, tidak sulit untuk diketik, tidak sulit untuk dibaca. Dengan kemudahan sintaks seperti ini tentu saja memudahkan kita dalam berekspresi dengan kode program.

Saya rasa, untuk saat ini, pembahasan mengenai strings cukup seperti ini dulu. Mari kita lanjutkan ke topik yang lain yaa.


Referensi

  1. https://docs.python.org/3.4/library/string.html
    Diakses tanggal: 2018/03/28

  2. https://www.python.org/dev/peps/pep-0498
    Diakses tanggal: 2018/03/28

Lisensi

logo_cc-by-nc-sa