Modul 2: Input/Output, Tipe Data, Operator, dan Variable

Pada Modul 1 anda diharapkan telah menginstall Python dan mengerti cara membuka dan menggunakan program IDLE, baik pada mode interaktif maupun pada mode Editor. Di modul ini anda akan belajar materi berikut ini:

  • Output

  • Tipe Data

  • Operator

  • Variable

  • Statement dan Expression

  • Komentar

  • Input

Output

Program Pertama

Pada Modul 1 anda telah membuat program yang berisi sebaris kode berikut:

>>> print("Wilujeng Sumping")
Wilujeng Sumping

Sekarang kita akan bahas apa makna baris kode tersebut. Kode tersebut terdiri dari beberapa komponen yaitu:

  • kata print

  • kurung buka (

  • tanda petik "

  • sebaris teks Wilujeng Sumping

  • tanda petik "

  • kurung tutup )

Setiap komponen di atas memiliki peran penting tersendiri yang jika kita hilangkan atau ganti dapat mengubah output atau malah menimbulkan error. Sebagai contoh, mari kita hapus salah satu tanda petiknya.

>>> print("Wilujeng Sumping)
  File "<ipython-input-7-b116f854f170>", line 1
    print("Wilujeng Sumping)
                            ^
SyntaxError: EOL while scanning string literal

Terlihat akan timbul error. Sebelum melanjutkan, coba anda modifikasi kode di atas sesukanya dan lihat efek yang ditimbulkan. Coba berkali-kali dengan mengganti yang berbeda.

Kata print

Sekarang mari kita bahas apa itu print pada Python. Sesuai namanya print merupakan perintah untuk menampilkan sesuatu ke media output, misalnya menampilkan sesuatu ke Python prompt yang pada akhirnya terlihat di layar monitor kita. Lebih tepatnya, print adalah sebuah built-in function (fungsi bawaan) yang disediakan oleh Python saat kita menginstallnya. Mari kita tanya Python apa itu print dengan menggunakan kode berikut.

>>> type(print)
builtin_function_or_method

Function merupakan sebuah mini program yang menerima input dan melakukan sesuatu terhadap input tersebut menjadi result (hasil) pemetaan. Mirip seperti function \(f(x)=x^2\) pada matematika yang jika diberikan input akan memberikan result (hasil) berupa kuadrad dari nilai input tersebut. Namun selain memetakan input ke output, function pada Python memiliki kemampuan yang lebih luas seperti menggambar sebuah bentuk ke layar, memainkan lagu, menulis teks ke file dan sebagainya. Di pemrograman, fungsi jenis ini biasa disebut memberikan effect (efek), bukan result (hasil).

Akan ada modul tersendiri yang akan membahas lebih lanjut tentang fungsi termasuk bagaimana membuat fungsi anda sendiri (user-defined function), namun saat ini setidaknya kita tau bahwa Function dapat memberikan 2 hal:

  • result

  • effect

Note

Function dengan kemampuan yang lebih dari memetakan input ke output tersebut dalam bahasa pemrograman lain disebut juga Procedure.

Kurung buka dan tutup ( )

Jika fungsi adalah sebuah mini program, maka untuk menjalankannya diperlukan tanda ( ) setelah nama fungsi yang ingin dijalankan (misal print). Jika tanpa tanda ( ) maka yang dilakukan bukanlah menjalankan fungsi tersebut tetapi hanya mengeluarkan identitas dari fungsi tersebut. Perhatikan perbedaan kedua kode berikut:

>>> print
<function print>
>>> print()
>>> print()
>>> print()
>>> print()

Terlihat bahwa kode print tanpa ( ) akan mengeluarkan nama fungsi tersebut, sedangkan jika dengan ( ) maka akan menjalankan perintah print namun kita tidak melihat apa-apa karena tidak ada input yang harus ditampilkan melainkan sebuah tanda pindah baris (perhatikan jarak teks ini dengan kode di atas). Untuk itu, mulai sekarang pastikan anda tidak lupa untuk menambahkan tanda ( ) setiap kali ingin menjalankan sebuah fungsi.

Petik " "

Tanda petik satu (') dan tanda petik dua (") di Python memiliki makna khusus yaitu sebagai cara untuk merepresentasikan data String. String merupakan sekuen dari karakter, termasuk huruf (a-z, A-Z), digit (0-9), dan juga simbol (misalnya: !@#%^&*()_+). Salah satu contoh string yang sudah kita lihat adalah "Wilujeng Sumping". Tanpa tanda petik, Wilujeng dan Sumping bisa dianggap sebagai nama fungsi, atau nama objek lainnya yang jelas bukan data string.

Kita juga bisa menggunakan cara sebelumnya untuk mengkonfirmasi bahwa petik akan membentuk sebuah string.

>>> type("Wilujeng Sumping")
str
>>> type('Wilujeng Sumping')
str

Terlihat bahwa type atau jenis dari objek "Wilujeng Sumping" dan 'Wilujeng Sumping'adalah str alias String.

Argumen Fungsi

Kita sudah bahas sebelumnya bahwa fungsi biasa memiliki input. Penempatan "Wilujeng Sumping" di dalam print( ) menandakan ia adalah input terhadap fungsi print. Input terhadap fungsi yang diberikan saat memanggil fungsi disebut juga sebagai argumen fungsi tersebut. Seperti fungsi \(f(x)=x^2\), saat kita mengeset x=5, maka 5 adalah argumen dari fungsi tersebut atau bisa ditulis \(f(5)\).

Bagaimana kita tau bahwa fungsi print dapat menerima input? Apa saja input yang bisa diterima oleh fungsi print? Salah satu cara mengetahuinya adalah dengan melihat dokumentasi dari fungsi tersebut. Semua fungsi bawaan Python biasanya memiliki penjelasan tentang apa yang dilakukan fungsi dan apa input dan outputnya. Caranya adalah dengan menggunakan fungsi help seperti di bawah ini.

>>> help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

Terlihat bahwa fungsi print dapat menerima value, lalu ada input lain yaitu sep dan end. Tanda ... mengartikan bahwa bisa terdapat lebih dari satu value.

  • sep merupakan string pemisah antar value jika ada lebih dari satu value, secara default adalah spasi.

  • end merupakan string yang ditambahkan di akhir, secara default adalah tanda pindah baris '\n'.

Agar lebih memahami kegunaan masing-masing input pada fungsi print, coba jalankan kode berikut dan lihat hasilnya.

>>> print("Wilujeng Sumping")
>>> print("Hello", "World!")
>>> print("Hello", "World!", sep='')
>>> print("Telkom", "University" ,sep="***",end="...")
>>> print("The Best")

Tipe Data

Program vs Data

Sebelumnya kita telah membahas tentang program, bahwa program adalah kumpulan instruksi. Namun, komponen lain yang sering dibicarakan orang terkait dengan program adalah data. Data adalah informasi yang diolah oleh program dan juga yang digunakan oleh program untuk menentukan bagaimana instruksi-instruksi harus dilakukan.

Jika dianalogikan seperti memasak, maka komponen dari resep terdiri dari 2, yaitu bahan-bahan yang digunakan dan juga instruksi langkah per langkahnya. Jika ada bahan yang diganti atau jumlahnya berbeda, maka instruksi yang dilakukan juga mungkin sedikit berbeda.

Data merupakan bagian yang sangat penting agar program menjadi dinamis, tanpa data maka program hanyalah instruksi statis yang selalu sama meski dilakukan berulang-ulang kali.

Tipe Data Dasar

Data yang tersimpan dalam komputer dan digunakan di dalam program memiliki nilai dan juga jenis atau tipe. Kedua hal tersebut akan terus diingat oleh program karena menentukan operasi apa yang dapat dilakukan pada data tersebut. Selain itu juga dibutuhkan ketika ingin menyimpan data di memory. Nilai yang terlihat sama namun memiliki tipe berbeda akan disimpan dengan bentuk yang berbeda di memory komputer. Perlu diketahui bahwa komputer menyimpan data di memory hanya dalam bentuk binary digits (bits) 0 atau 1 saja. Sehingga data sekomplek apapun akan diubah ke dalam bentuk bits tersebut. Detil tentang penyimpanan data ke dalam memory akan dipelajari di mata kuliah Organisasi dan Arsitektur Komputer.

Berikut adalah beberapa tipe data dasar yang akan sering kita gunakan dalam pemrograman:

  • String: sekuen karakter atau bisa juga dianggap sebagai teks

  • Integer: bilangan bulat (misal: 126)

  • Float: bilangan pecahan (misal: 37.5)

  • Boolean: nilai logika benar atau salah (yaitu: True dan False)

String

Anda telah melihat data berbentuk string ini pada contoh sebelumnya, yaitu "Wilujeng Sumping". Mungkin yang perlu diingat kembali bahwa String juga bisa terdiri dari angka misalnya "123". Karena diberi petik, maka angka tersebut tidak lagi memiliki makna sebuah bilangan yang bisa dijumlahkan atau dilakukan operasi aritmatik lainnya, melainkan hanya sebuah teks saja seperti halnya "Wilujeng Sumping".

>>> type("123")
str

Escape Sequence

Sebelumnya saat membicarakan fungsi print, kita melihat bahwa nilai default dari parameter end adalah pindah baris yang direpresentasikan oleh '\n'. Perhatikan bahwa tanda \ (backslash) disebut juga escape character yang menyatakan bahwa karakter setelahnya punya arti yang berbeda. Karakter yang dimulai dengan backslash ini disebut juga dengan escape sequence.

Beberapa escape sequence yang sering digunakan antara lain:

Escape sequence

Deskripsi

\[enter]

mengabaikan pindah baris sehingga kita bisa menulis multi-baris namun Python menganggapnya sebagai 1 baris

\n

pindah baris

\t

tab

\\

agar backslash tidak dianggap sebagai escape character

\'

agar ' tidak dianggap sebagai tanda pembuka atau penutup string

\"

agar " tidak dianggap sebagai tanda pembuka atau penutup string

Mari kita coba penggunaan escape sequence tersebut dalam kode.

>>> print("meskipun \
ini dua baris tapi dianggap satu baris")
meskipun ini dua baris tapi dianggap satu baris

Dengan adanya \ kemudian diikuti pindah baris, maka Python akan mengabaikan pindah baris tersebut, sehingga kode di atas dilihat oleh Python sebagai satu baris dan valid. Jika tanpa menggunakan \ maka akan menimbulkan error seperti di bawah ini. Python tidak memperbolehkan instruksi yang seharusnya satu baris ditulis menjadi beberapa baris.

>>> print("meskipun 
ini dua baris tapi dianggap satu baris")
  File "<ipython-input-9-bedcffb20373>", line 1
    print("meskipun
                    ^
SyntaxError: EOL while scanning string literal
>>> print("baris kesatu\nbaris kedua\nbaris ketiga")
baris kesatu
baris kedua
baris ketiga
>>> print("1\t2\t3")
1	2	3

Misalnya kita ingin memprint tanda backslash \ seperti contoh di bawah. Akan terjadi error karena \" akan dianggap Python sebagai sebuah escape sequence, sehingga petik untuk penutup string dianggap belum ada. Jika ditambahkan \ di depannya maka Python tau bahwa karakter \ kedua hanyalah karakter biasa.

>>> print("ini backslash \")
  File "<ipython-input-17-2e3a7501806b>", line 1
    print("ini backslash \")
                            ^
SyntaxError: EOL while scanning string literal
>>> print("ini backslash \\")
ini backslash \

Jika kita membuat string menggunakan petik satu ' namun di dalam string ternyata terdapat karakter ' juga, maka Python akan menganggapnya sebagai penutup string, bukan sebagai bagian dari string.

>>> print('It's beautiful')
  File "<ipython-input-20-0c280e2ad39c>", line 1
    print('It's beautiful')
              ^
SyntaxError: invalid syntax
>>> print('It\'s beautiful')
It's beautiful
>>> print("Dia berkata "Merdeka!!"")
  File "<ipython-input-22-674a11e7724a>", line 1
    print("Dia berkata "Merdeka!!"")
                              ^
SyntaxError: invalid syntax
>>> print("Dia berkata \"Merdeka!!\"")
Dia berkata "Merdeka!!"

Terkait petik, jika di dalam string akan terdapat petik satu, maka untuk membuat string kita bisa menggunakan petik dua, dengan begitu tidak perlu escape character, dan sebaliknya.

>>> print('Dia berkata "Merdeka!!"')
Dia berkata "Merdeka!!"

Note

Pengolahan string merupakan salah satu keunggulan dari Python, karena kemudahan yang disediakan oleh Python untuk memanipulasi string, termasuk membaca dan mengolah file teks. Kita akan lihat lebih detil tentang ini di modul 9 yang membahas khusus tentang String.

Integer

Integer adalah nama tipe data yang merupakan bilangan bulat. Integer bisa positif dan juga bisa negatif. Untuk bilangan negatif cukup menambahkan tanda minus (-) di depan angka. Jika angka bernilai ribuan atau lebih, maka tidak boleh menuliskannya menggunakan pemisah (seperti titik atau koma), misalnya 1.250 atau -1,250.

Perhatikan contoh berikut ini:

>>> type(-123)
int
>>> type(1.250.000)
  File "<ipython-input-30-60350cba84ee>", line 1
    type(1.250.000)
                 ^
SyntaxError: invalid syntax
>>> type(1,250)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-31-5d9634f540cf> in <module>
----> 1 type(1,250)

TypeError: type() takes 1 or 3 arguments

Terakhir, pastikan tidak menggunakan tanda petik karena data yang dihasilkan bukan merupakan integer melainkan string.

>>> type("2020")
str

Float

Jika integer adalah untuk menyimpan bilangan bulat, maka float adalah tipe data untuk menyimpan bilangan pecahan (bilangan berkoma), seperti 1.25 atau -0.75.

>>> type(1.75)
float

Untuk angka yang dimulai dari 0 seperti 0.25, dapat juga ditulis tanpa 0 di depan, yaitu .25. Begitu juga nol di akhir juga bisa diabaikan.

>>> .25
0.25
>>> 4.
4.0

Selain itu, cara penulisan lain dari float yaitu dengan menggunakan exponen. Misalnya kita ingin menuliskan 3x104, maka dapat juga ditulis dengan 3e4 atau 3E4. Kita juga bisa menggunakan exponen negatif seperti 34567x10-3 untuk merepresentasikan 34.567.

>>> 3E4
30000.0
>>> 34567E-3
34.567

Important

Meskipun di Indonesia penanda nilai pecahan adalah koma, namun di Python dan bahasa pemrograman lainnya wajib menggunakan titik.

Integer vs Float

Titik menjadi pembeda yang sangat penting antara Integer dan Floats. Sebagai contoh:

>>> type(4)
int
>>> type(4.0)
float

Meskipun secara nilai matematika keduanya adalah sama, namun cara penyimpanan keduanya di memory sangat berbeda. Float merupakan singkatan dari floating-point, yaitu sebuah sistem untuk merepresentasikan bilangan real di komputer. Anda akan belajar lebih detail bagaimana bilangan floating-point disimpan di komputer pada mata kuliah Sistem Digital.

Boolean

Nama Boolean berasal dari nama ilmuan George Boole (1815-1864) yang mendefinisikan tentang Aljabar Boolean yang hanya menggunakan dua buah nilai yaitu: True dan False atau biasa juga direpresentasikan dengan 1 dan 0. Penjelasan lebih jauh tentang materi boolean akan anda dapatkan di mata kuliah Logika Matematika.

Di pemrograman, nilai boolean True dan False sangat penting agar bisa menciptakan sebuah program yang dinamis, yang bisa melakukan hal-hal berbeda tergantung dengan keadaan. Sebagai contoh saat anda memasukkan password ke komputer, maka program akan bertanya “Apakah password yang anda masukkan sama dengan password yang tersimpan di komputer?”

Komputer hanya akan memiliki 2 kemungkinan jawaban yaitu:

  • Ya, itu benar

  • Tidak, itu salah

Komputer tidak bisa mengeluarkan jawaban yang tidak pasti, misalnya “Sepertinya benar”.

Berdasarkan jawaban komputer, maka program akan bisa menentukan apa yang harus dilakukan:

  • Jika benar, maka masuk ke menu utama

  • Jika salah, munculkan pesan salah dan minta memasukkan password kembali

Di Python, nilai benar direpresentasikan dengan True, dan salah direpresentasikan dengan False. Pastikan menggunakan huruf kapital di awal.

>>> type(True)
bool
>>> type(true)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-19-6f4d8242c3d0> in <module>
----> 1 type(true)

NameError: name 'true' is not defined

Note

Tidak masalah jika anda belum melihat kegunaan nilai boolean saat ini. Anda baru akan banyak menggunakan nilai boolean pada Modul 3 dan Modul 4, yaitu tentang Pengkondisian dan Perulangan.

Operator

Seperti yang sudah disampaikan sebelumnya, bahwa komputer sangat ahli dalam menghitung. Sekarang kita akan melihat penggunaan Python untuk menghitung dengan menggunakan bilangan integer maupun float yang dioperasikan melalui sejumlah operator aritmatik. Sebagai contoh, kita dengan mudah bisa menggunakan Python Prompt sebagai kalkulator seperti di bawah ini:

>>> 10 + 15
25

Tanda + pada kode di atas disebut operator sementara nilai 10 dan 15 biasa disebut sebagai operan.

Anda dapat mencoba-coba dengan kombinasi nilai dan operator lain yang anda ketahui, coba juga jika terdapat sangat banyak nilai dan operator.

Note

Perhatikan bahwa antara operan dan operator terdapat sebuah spasi. Hal ini tidaklah wajib di Python, namun sangat dianjurkan menambahkan sebuah spasi agar kode lebih mudah dibaca.

Operator Aritmatika Dasar

Ada banyak jenis operator di pemrograman, saat ini kita akan melihat dulu operator aritmatika. Berikutnya di Modul 3 anda akan belajar operator perbandingan, dan di Modul 4 tentang operator boolean/logika.

Beberapa operator tentu sudah tidak asing bagi anda, seperti:

  • tambah (+)

  • kurang (-)

  • kali (*)

  • bagi (/)

  • pangkat (**)

namun mungkin ada yang baru mendengar tentang operator berikut ini:

  • modulo (%)

  • integer division (//)

Mari kita bahas penggunaannya satu per satu di Python.

Pemangkatan

Tanda dua bintang (double asterisk) ** digunakan sebagai tanda operasi pemangkatan bilangan. Sebagai contoh 23 dapat ditulis di dalam Python sebagai 2 ** 3. Angka kiri 2 disebut sebagai basis dan angka kanan 3 sebagai pangkat.

Basis dan pangkat dapat berupa integer atau pun float, dan tipe data hasil pemangkatan tergantung tipe data operan. Coba jalankan kode di bawah ini satu per satu, dan perhatikan hasilnya untuk memahami aturan tipe data hasil.

>>> print(2 ** 4)
>>> print(2 ** 4.)
>>> print(2. ** 4)
>>> print(2. ** 4.)
16
16.0
16.0
16.0

Terlihat bahwa tipe data hasilnya:

  • integer: ketika kedua operan bertipe integer

  • float: ketika setidaknya satu operan bertipe float

Perkalian dan Pembagian

Simbol satu bintang (asterisk) * digunakan sebagai operator perkalian, sementara garis miring (slash) / sebagai operator pembagian.

Baik operan di sebelah kiri maupun di sebelah kanan dapat berupa integer maupun float. Jalankan kode di bawah ini untuk melihat aturan tipe data hasil untuk perkalian dan pembagian.

>>> print(2 * 3)
>>> print(2 * 3.)
>>> print(2. * 3)
>>> print(2. * 3.)
6
6.0
6.0
6.0
>>> print(6 / 3)
>>> print(6 / 3.)
>>> print(6. / 3)
>>> print(6. / 3.)
2.0
2.0
2.0
2.0

Terlihat bahwa untuk perkalian, aturan tipe data hasil sama seperti pada pemangkatan.

Sedangkan untuk pembagian, tipe data hasil selalu berupa float.

Integer division

Simbol dua garis miring (double slash) // adalah operator integer division.

Sifat operasi integer division adalah:

  • hasil pembagiannya selalu berupa pembulatan ke nilai integer yang lebih kecil atau sama dengan nilai realnya, artinya tidak memperhatikan bagian pecahan (jika ada)

  • tipe data hasilnya mengikuti aturan integer vs float seperti pada perkalian

Jalankan kode di bawah ini dan perhatikan hasilnya untuk memahami cara kerja operator ini.

>>> print(6 // 4)
1

Perhatikan bahwa hasil pembagian 6 // 4 adalah 1, bukan 1.5 seperti pada pembagian biasa. Hal ini didapatkan dengan membulatkan nilai hasil pembagian biasa menjadi bilangan integer dengan nilai yang sama atau lebih kecil. Hasil pembagian biasa adalah 1.5 dan integer terdekat yang nilainya sama atau lebih kecil adalah 1.

Operan negatif

Jika anda telah memahami cara kerja operator ini, dapatkah anda menebak apa output kode berikut ini?

>>> print(-6 // 4)

Jika kita kurang teliti, mungkin kita akan menjawab dengan -1, namun jika anda jalankan akan terlihat bahwa hasilnya adalah -2. Hal ini dikarenakan hasil pembagian biasa adalah -1.5 dan integer terdekat yang lebih kecil adalah -2, sedangkan -1 lebih besar dari -1.5.

Aturan Tipe Data Hasil

Kemudian, meskipun kita membulatkan ke integer, namun tipe data hasilnya tergantung tipe data operan, sehingga tidak selalu integer. Jalankan kode di bawah ini untuk mengetahui aturan tipe data hasil integer division.

>>> print(6 // 3)
>>> print(6 // 3.)
>>> print(6. // 3)
>>> print(6. // 3.)
2
2.0
2.0
2.0

Terlihat bahwa aturannya mengikuti aturan perkalian.

Kapan Integer Division digunakan?

Berikut satu contoh kasus dimana kita perlu menggunakan integer division. Anggaplah anda membuat program kasir swalayan untuk menghitung jumlah kupon yang diberikan kepada pembeli. Aturannya mudah sekali, yaitu 1 kupon untuk setiap kelipatan Rp. 100.000,-. Ketika ada pembeli yang belanja Rp. 250.000, berapa kupon yang harusnya ia dapatkan?

Ia akan mendapat 2 buah kupon, dan anda dapat menghitungnya dengan mudah menggunakan integer division:

>>> print(250000 // 100000)
2

Modulo

Simbol persen % merupakan operator modulo pada Python. Operasi modulo adalah untuk mendapatkan sisa bagi setelah proses integer division.

Sebagai contoh:

  • 5 % 2 adalah 1. Karena dari nilai 5 tersebut, 4-nya habis dibagi dengan 2, sehingga menyisakan 1.

  • 12 % 5 adalah 2. Karena dari nilai 12 tersebut, 10-nya habis dibagi dengan 5, sehingga menyisakan 2.

Jika dijabarkan melalui operasi dasar lainnya, maka operasi modulo 12 % 5 terdiri dari:

  • 12 // 5 menghasilkan 2

  • 2 * 5 menghasilkan 10

  • 12 - 10 menghasilkan 2

Sehingga hasil akhirnya adalah 12 % 5 = 2

Dengan melakukan operasi seperti di atas, apakah output dari kode berikut?

>>> print(28 % 12)

Bagaimana dengan hasil operasi berikut ini? Bisakah anda menebak hasilnya?

>>> print(12 % 4.5)

Dengan cara yang sama kita bisa jabarkan:

  • 12 // 4.5 menghasilkan 2.0

  • 2.0 * 4.5 menghasilkan 9.0

  • 12 - 9.0 menghasilkan 3.0

Maka jawabannya adalah 3.0

Operan Negatif

Bagaimana jika terdapat operan bernilai negatif? Coba tebak apa output dari kode berikut ini:

>>> print(-12 % 5)
>>> print(12 % -5)

Dengan cara yang sama kita bisa jabarkan -12 % 5 menjadi:

  • -12 // 5 menghasilkan -3

  • -3 * 5 menghasilkan -15

  • -12 - (-15) menghasilkan 3

Sedangkan 12 % -5 menjadi:

  • 12 // -5 menghasilkan -3

  • -3 * -5 menghasilkan 15

  • 12 - 15 menghasilkan -3

Operan Kiri Lebih Kecil

Bagaimana jika operan kiri lebih kecil dari operan kanan?

>>> print(2 % 5)

Tetap lakukan cara sebelumnya, yaitu 2 % 5 menjadi:

  • 2 // -5 menghasilkan 0

  • 0 * -5 menghasilkan 0

  • 2 - 0 menghasilkan 2

maka jawabannya adalah 2

Aturan Tipe Data Hasil

Untuk aturan tipe data hasil mengikuti aturan perkalian dan integer division.

>>> print(12 % 5)
>>> print(12 % 5.0)
>>> print(12.0 % 5)
>>> print(12.0 % 5.0)
2
2.0
2.0
2.0

Kapan Modulo Digunakan?

Berikut satu contoh kasus penggunaan modulo. Anda ingin menentukan apakah suatu integer adalah bilangan genap atau ganjil. Kita tau bahwa bilangan *genap adalah bilangan yang habis dibagi dengan 2, dan selainnya adalah ganjil. Maka anda dapat menggunakan modulo untuk mengetes apakah suatu bilangan ganjil atau genap.

>>> print(25 % 2)
>>> print(20 % 2)
1
0

Maka 25 adalah bilangan ganjil, karena modulonya tidak nol (tidak habis). Sedangkan 24 adalah genap, karena modulonya nol (habis dibagi tanpa sisa).

Berikut adalah contoh lain yang sedikit lebih kompleks.

Misalnya anda sedang membuat sistem pengaturan transportasi, dan anda memiliki banyak armada dengan jenis:

  1. Bus kapasitas 60 penumpang

  2. Mobil kapasitas 8 penumpang

  3. Motor kapasitas 1 penumpang

Agar efisien, maka perusahaan menerapkan aturan sederhana:

  • prioritaskan bus, lalu mobil, baru motor.

  • suatu armada baru boleh digunakan jika semua kursi penumpang terisi.

Anda diminta untuk membuat program yang jika diketahui total jumlah penumpang yang akan berangkat, maka tentukan jumlah masing-masing armada yang dibutuhkan.

Anda dapat menghitungnya dengan cara berikut: Misal diberikan jumlah penumpang 139 orang.

  • jumlah bus yang dibutuhkan adalah 139 // 60 menghasilkan 2, artinya butuh 2 buah bus

  • hitung penumpang yang tidak tertampung di bus, yaitu 139 % 60 menghasilkan 19, artinya ada 19 orang yang tidak tertampung di bus

  • jumlah mobil yang dibutuhkan adalah 19 // 8 menghasilkan 2, artinya butuh 2 buah mobil

  • hitung penumpang yang tidak tertampung di bus, 19 % 8 menghasilkan 3

  • jumlah motor yang dibutuhkan adalah 3 // 1 menghasilkan 3, artinya butuh 3 motor.

Penambahan dan Pengurangan

Operasi penjumlahan dan pengurangan di Python sama dengan di matematika, dan aturan tipe data hasil mengikuti perkalian.

>>> print(12 - 5)
>>> print(12 - 5.0)
>>> print(12.0 - 5)
>>> print(12.0 - 5.0)
7
7.0
7.0
7.0

Operator Unary dan Binary

Sejauh ini kita telah melihat operator yang membutuhkan 2 operan, yang disebut operator binary.

Seperti di matematika, simbol - (minus), selain digunakan untuk pengurangan ia digunakan juga untuk mengubah tanda suatu bilangan (dari positif ke negatif, dan sebaliknya).

Operator - (minus) hanya membutuhkan satu operan, sehingga disebut sebagai operator unary. Selain -, + juga merupakan operator unary, ia menjaga tanda sebuah bilangan di kanannya seperti apa adanya.

Perhatikan kode berikut ini untuk melihat bagaimana operator-operator ini bekerja.

>>> print(-4 - 4)
>>> print(4. - 8)
>>> print(-1.1)
>>> print(--5)
>>> print(+2)
-8
-4.0
-1.1
5
2

Operator dan prioritasnya

Operator di Python memiliki prioritas seperti halnya pada matematika, sebagai contoh prioritas operator perkalian lebih tinggi dari pada operator penjumlahan, sehingga meskipun + muncul lebih dulu (lebih kiri) dari pada *, namun operasi kali tetap didahulukan. Perhatikan contoh berikut ini:

>>> print(2 + 3 * 5)
17

Terlihat prosesnya bukanlah

  • 2 + 3 menghasilkan 5, lalu 5 * 5 menghasilkan 25

tetapi

  • 3 * 5 menghasilkan 15, lalu 2 + 15 menghasilkan 17

Sebelum kita melihat prioritas dari operator-operator yang telah kita bahas di atas, perlu kita bahas terlebih dahulu peran tanda kurung ( ).

Tanda Kurung

Meskipun operator memiliki urutan prioritas, namun urutan tersebut dapat berubah dengan menggunakan tanda kurung. Operasi yang ada di dalam tanda kurung selalu akan dihitung terlebih dahulu. Jika ada tanda kurung di dalam tanda kurung, maka yang terdalam akan diprioritaskan terlebih dahulu.

Sebagai contoh mari kita lihat pengaruh tanda kurung pada perhitungan sebelumnya.

>>> print((2 + 3) * 5)
25

Berikut ini adalah prioritas operator yang telah kita pelajari sejauh ini:

Prioritas

Operator

Jenis

1.

()

2.

**

3.

+, -

unary

4.

*, /, %, //

5.

+, -

binary

Jika operator berada di prioritas yang sama, maka yang berada di kiri akan didahulukan.

>>> print(20 // 6 % 2)
1

Terlihat hasilnya adalah 1 yang didapat dari:

  • 18 // 6 menghasilkan 3

  • 3 % 2 menghasilkan 1

Seandainya dimulai dari kanan, maka harusnya:

  • 6 % 2 menghasilkan 0

  • 20 // 0 menghasilkan error karena pembagian dengan nol

Note

Pengecualian untuk operator pemangkatan, operasinya dari sebelah kanan.

>>> print(2 ** 2 ** 3)
256

Seperti yang terlihat bahwa hasilnya adalah 256 yang didapat dari:

  • 2 ** 3 menghasilkan 8

  • 2 ** 8 menghasilkan 256

Jika dioperasikan dari kiri, maka harusnya:

  • 2 ** 2 menghasilkan 4

  • 4 ** 3 menghasilkan 64

Variable

Apa itu Variable

Kita telah melihat kegunaan operator untuk melakukan perhitungan. Namun tak jarang hasil suatu perhitungan perlu kita simpan terlebih dahulu untuk digunakan kemudian di perhitungan berikutnya. Bagaimana Python menyimpan nilai perhitungan ini?

Seperti di matematika, kita bisa menggunakan variable untuk menyimpan nilai. Misalnya kita kita ingin menghitung luas segitiga dengan alas 10 dan tinggi 30, kita bisa tulis seperti berikut ini:

luas_segitiga = (10 x 30) / 2

Selanjutnya kita ingin menghitung total luas 10 segitiga yang sama seperti sebelumnya, maka kita bisa tulis:

total_luas_segitiga = 10 x luas_segitiga

Dari contoh di atas kita menggunakan dua buah variable dengan nama luas_segitiga dan total_luas_segitiga, dan nilainya berturut-turut adalah 150 dan 1500.

Python dan bahasa pemrograman lainnya juga menyediakan variable untuk menyimpan nilai.

Setiap variable di Python harus memiliki:

  • nama

  • nilai

Membuat Variable

Di Python, variable dibentuk sebagai hasil proses assignment suatu nilai ke nama variable tersebut. Proses assignment terdiri dari:

  • menuliskan nama variable

  • diikuti tanda assignment (=)

  • diikuti nilai yang ingin diasosiasikan ke variable tersebut

Sebagai contoh:

harga = 100

maka artinya kita telah membuat variable dengan nama harga dan akan dapat digunakan setelahnya untuk mengakses nilai 100 tersebut.

>>> harga = 100
>>> print(harga)
100

Pembuatan variable di Bahasa Lain

Di bahasa pemrograman lain (e.g., C, Pascal, Java), kita perlu mendeklerasikan variable tersebut terlebih dahulu sebelum digunakan.

Python:

harga = 100

C:

int harga;
harga = 100;

Pascal:

var
    harga : integer;

harga := 100;

Java:

int harga;
harga = 100;

Aturan Nama Variable

Jumlah variable dan nama masing-masing variable yang digunakan di dalam program ditentukan oleh pembuat program. Tidak ada batasan mengenai jumlah variable yang boleh digunakan. Namun untuk nama variable, ada beberapa aturan yang harus diikuti:

  • hanya boleh terdiri dari huruf kecil (a-z), huruf besar (A-Z), digit (0-9), dan karakter underscore (_). Simbol atau karakter lainnya tidak diperkenankan, misalnya *, @, dsb.

  • harus dimulai dengan sebuah huruf (a-zA-Z) atau underscore (_)

  • case sensitive, nama dan Nama dianggap berbeda

  • tidak boleh menggunakan keyword yang telah ditentukan pada Python. Keyword adalah kata yang sudah memiliki makna sendiri dalam Python dan tidak boleh diganti, misalnya yang sudah kita lihat adalah True dan False yang merupakan nilai boolean. Berikut adalah list lengkap keyword pada Python yang tidak boleh digunakan sebagai nama variable.

['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

Berikut adalah contoh-contoh nama variable yang valid:

>>> MyVariable = 5
>>> variable = 10.5
>>> v1 = 30
>>> v_2 = 35
>>> v_1_2 = 100
>>> NamaVariableSangatPanjangSekali = "ok"
>>> _ = 100

Di bawah ini contoh-contoh nama variable yang tidak valid:

>>> 10v = 30
>>> v 1 = 20
>>> v*1 = 25
>>> True = "True"

PEP 8 – Panduan Style Kode Python

Walau developer punya keleluasaan untuk memilih nama variable, akan tetapi komunitas Python memberikan panduan style untuk kode Python. Hal ini untuk menyeragamkan dan memudahkan kerja tim. Penamaan variable merupakan salah satu yang diberikan panduan khusus dalam PEP 8, namun ada banyak hal yang ada dalam panduan tersebut agar style kode Python yang anda buat lebih mudah dibaca oleh programmer Python lainnya. Untuk lebih lengkapnya, anda bisa kunjungi https://www.python.org/dev/peps/pep-0008/.

Berdasarkan PEP 8, nama variable haruslah lowercase, dengan kata dipisahkan oleh _ (underscores) agar lebih mudah dibaca (e.g., var, total_harga, harga_setelah_diskon). Hal ini juga berlaku untuk penamaan function.

Selain itu, untuk menghindari kebingungan di saat ada banyak sekali variable di program, disarankan memilih nama variable yang merepresentasikan nilai yang akan disimpan oleh variable tersebut.

Untuk panduan lengkap style coding python, sangat disarankan agar anda membaca dan mengikuti panduan PEP 8 tersebut.

Penggunaan Variable

Variable terasosiasi ke sebuah nilai yang tersimpan di memori, sehingga kapanpun nilai tersebut dibutuhkan di program maka kita tinggal menggunakan nama variablenya saja.

>>> luas_segitiga = 10 * 30 / 2
>>> total_luas_segitiga = 10 * luas_segitiga
>>> print(luas_segitiga)
>>> print(total_luas_segitiga)
150.0
1500.0

Variable dapat digunakan berkali-kali

Anda dapat menggunakan banyak variable di program anda, dan setiap variable dapat digunakan berkali-kali selama variable tersebut terasosiasi ke sebuah nilai.

Perhatikan kode di bawah ini, variable nilai_y digunakan di kode baris ke-3 juga ke-4:

>>> nilai_x = 1
>>> nilai_y = 2
>>> jumlah = nilai_x + nilai_y
>>> y_kuadrat = nilai_y * nilai_y
>>> copy_x = nilai_x
>>> copy_xx = copy_x

>>> print(jumlah)
>>> print(y_kuadrat)
>>> print(copy_x)
>>> print(copy_xx)

Variable harus exist sebelum digunakan

Tentu saja anda tidak bisa menggunakan variable yang tidak exist.

total = 10 * harga_satuan
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-84-5a76e0469e17> in <module>
----> 1 total = 10 * harga_satuan

NameError: name 'harga_satuan' is not defined

Error tersebut menunjukkan bahwa sebuah nama, dalam hal ini nama variable, yaitu harga_satuan tidak terdefinisi atau tidak exist.

Ketika harga_satuan berada di sebelah kanan tanda =, maka Python mengharuskan ia telah memiliki nilai. Berbeda dengan total yang berada di kiri =, ia adalah variable yang sedang dibuat, sehingga tidak harus memiliki nilai sebelumnya.

Variable yang sudah exist dapat di assign kembali dengan nilai baru

Seperti halnya matematika, satu variable dapat menyimpan satu nilai di satu waktu, namun nilai yang disimpan dapat diganti. Berbeda dengan konstanta yang nilainya tidak dapat diganti sejak didefinisikan.

Perhatikan kode berikut:

>>> umur = 19
>>> print(umur)
>>> umur = 22
>>> print(umur)
19
22
>>> nilai_x = 10
>>> print(nilai_x)
>>> nilai_x = nilai_x + 1
>>> print(nilai_x)
10
11

Ketika nilai_x diassign kedua kalinya dengan nilai 11 (nilai_x + 1), maka nilai_x sudah tidak terasosiasi ke nilai 10, dan tidak akan bisa suatu saat kembali terasosiasi ke nilai sebelumnya (seperti Undo) kecuali dilakukan assignment ulang (e.g., nilai_x = 10).

Dynamic Typing

Kita telah melihat bahwa di Python kita tidak perlu melakukan mendeklarasikan variable seperti pada bahasa C, Java, dan beberapa bahasa lainnya.

Pada bahasa tersebut, saat mendeklerasikan variable, kita harus menentukan tipe data variable tersebut, misalnya int (integer), lalu variable tersebut hanya dapat menyimpan nilai bertipe integer saja.

Berbeda dengan Python, tidak ada deklerasi variable, sehingga variable bisa di-assign kembali dengan nilai yang memiliki tipe data berbeda dari sebelumnya.

>>> var_x = 10
>>> print(var_x)
>>> var_x = "Sepuluh"
>>> print(var_x)
>>> var_x = True
>>> print(var_x)
10
Sepuluh
True

Python otomatis bisa mengenali tipe data sebuah variable pada saat run-time (program sedang dieksekusi). Dalam istilah bahasa pemrograman, hal ini disebut dynamic typing, sehingga Python biasa disebut sebagai dynamically typed language. Sementara bahasa pemrograman lain yang mengharuskan deklarasi tipe variable di awal disebut dengan statically typed language.

Perhatikan kode di bawah ini untuk melihat tipe variable berbeda dari sebuah variable yang sama.

>>> var_x = 10
>>> print(type(var_x))
>>> var_x = "Sepuluh"
>>> print(type(var_x))
>>> var_x = True
>>> print(type(var_x))
<class 'int'>
<class 'str'>
<class 'bool'>

Statement, Expression

Terminologi statement dan expression sangat sering digunakan ketika membicarakan pemrograman, tak jarang kedua hal tersebut disalah artikan atau disamakan maknanya.

Statement: satu unit kode lengkap (secara syntax) yang melakukan suatu aksi.

Expression: potongan kode mana saja yang jika dievaluasi menghasilkan sebuah nilai.

Perhatikan contoh kode berikut:

var_x = 4 + 5 * (2 + 3)

Pada kode di atas terdapat 1 buah statement, yaitu assignment statement yang terdiri dari var_x = 4 + 5 * (2 + 3). Sedangkan jumlah ekspresi ada banyak, misalnya:

2 + 3 
5 * (2 + 3)
4 + 5 * (2 + 3)

masing-masing jika dievaluasi akan menghasilkan sebuah nilai.

Satu statement yang sederhana biasanya ditulis dalam satu baris, walau Python membolehkan beberapa statement ditulis dalam satu baris dipisahkan dengan ; (titik koma).

Sebagai contoh:

>>> var_x = 4 + 5 * (2 + 3); var_y = 20 / 2
>>> print(var_x, var_y)
29 10.0

Beberapa jenis statement yang disebut dengan compound statement perlu ditulis dalam beberapa baris, seperti statement if, while, dan lain-lain yang kita akan pelajari nanti.

Untuk jenis statement lengkap, bisa melihat dokumentasi python di bawah ini:

Komentar

Saat menulis program, salah satu hal yang sangat penting adalah memastikan bahwa kode yang kita buat mudah dimengerti oleh orang lain. Terkadang jika kode yang dibuat cukup komplek, setelah beberapa waktu tidak mengerjakan kode tersebut, kita sendiri pun mudah bingung atau lupa maksud bagian kode tertentu.

Salah satu cara untuk membuat kode mudah dimengerti adalah dengan menambahkan komentar. Komentar adalah bagian dari kode yang tidak akan ikut dieksekusi, sehingga apapun yang ditulis sebagai komentar tidak mengubah jalannya program.

Di python, komentar diawali oleh tanda # (pagar), dan bisa di tulis di baris terpisah atau di baris yang sama dengan kode. Apapun yang ada setelah tanda # akan dianggap sebagai komentar.

>>> # ini adalah program tentang komentar
>>> nama = "Jeki"
>>> print("Nama anda adalah ##", nama, "##") #ini baru komentar, # di dalam double quote "" bukan komentar
Nama anda adalah ## Jeki ##

Input

Sejauh ini kita telah dapat membuat program yang menghitung dan mengoutputkan nilai tertentu melalui fungsi print(). Namun jika program yang sudah ditulis tersebut dijalankan berkali-kali, hasilnya akan tetap sama. Dengan kata lain tidak ada interaksi antara pengguna dan program ketika program sudah dijalankan, yang memungkinkan program melakukan hal yang berbeda-beda.

Salah satu interaksi yang paling umum adalah pengguna mengetikkan sesuatu di keyboard sebagai inputan saat program sedang berjalan.

Perhatikan contoh kode di bawah ini. Saat dieksekusi, anda bisa mengetikkan sesuatu ke di keyboard, lalu tekan Enter untuk menyudahi inputan anda.

>>> print("Apa mata kuliah favoritmu?")
>>> mk_fav = input()
>>> print("Oh, ternyata kamu suka", mk_fav)
Apa mata kuliah favoritmu?
Pengenalan Pemrograman
Oh, ternyata kamu suka Pengenalan Pemrograman

Tentu saja anda dapat menjalankan kode tersebut kembali dan mengetikkan sesuatu yang berbeda, maka program akan mengoutputkan sesuatu yang berbeda pula.

Fungsi input()

Fungsi input() seperti pasangan atau kebalikan dari fungsi print(). print() mengirim data ke console, sementara input() menerima data dari console.

Perhatikan kode di bawah ini:

>>> print('Halo')

>>> z = input()
>>> print(z)

Fungsi input() dengan argumen

Jika dilihat dari dokumentasi, maka fungsi input() dapat memiliki sebuah argument.

input([prompt])

prompt merupakan string, yang jika diberikan sebagai argument maka akan dituliskan ke console tepat sebelum program meminta inputan dari user.

Perhatikan kode berikut ini:

>>> mk_fav = input("Apa nama MK favoritmu?")
>>> print("Oh, ternyata kamu suka", mk_fav)

Apa yang terjadi ketika input() dieksekusi

  • Fungsi akan mengubah console/Python prompt ke mode input

  • Fungsi menunggu user menginputkan sesuatu yang diakhiri dengan tombol Enter.

  • Semua data yang diinputkan disimpan sebagai string.

  • String akan dikembalikan ke program sebagai return value dari fungsi input.

Satu hal yang perlu dipertegas adalah bahwa semua data yang diinputkan akan bertipe string.

Jalankan kode berikut, dan masukkan sebuah angka:

>>> bil = input("Masukkan sebuah bilangan: ")
>>> print(type(bil))
>>> print(bil ** 2)
Masukkan sebuah bilangan: 10
<class 'str'>
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-100-2bd83b4fc555> in <module>
      1 bil = input("Masukkan sebuah bilangan: ")
      2 print(type(bil))
----> 3 print(bil ** 2)

TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'

Dari fungsi type() terlihat bahwa variable bil bertipe str (string). Sehingga tentu saja ketika dilakukan operasi aritmatika dengan sebuah integer akan menghasilkan error atau hasil yang berbeda dari yang diharapkan

Note

Beberapa operator aritmatika juga merupakan operator string, sehingga dapat digunakan untuk operan string dan integer, seperti operator * pada "satu" * 3 yang akan menghasilkan satusatusatu.

Type casting

Sudah jelas bahwa jenis inputan yang dibutuhkan sebuah program tidak selalu berupa string, contoh sederhana adalah program kalkulator untuk menambahkan dua buah bilangan seperti di bawah ini:

>>> bil1 = input("Masukkan bilangan pertama : ")
>>> bil2 = input("Masukkan bilangan kedua : ")
>>> hasil = bil1 + bil2
>>> print("Hasil penjumlahan adalah", hasil)

Terlihat bahwa kalkulator kita berubah menjadi penggabungan string. Untuk mengatasi hal ini, kita perlu mengubah tipe data 10 dan 20 dari string ke integer. Proses mengubah tipe data ini disebut type casting.

Python menyediakan beberapa fungsi sederhana untuk mengubah tipe data, misalnya int() dan float().

  • fungsi int() menerima sebuah argument (e.g., string) dan berusaha mengubahnya ke dalam integer. Pengubahan mungkin saja gagal jika nilai yang menjadi argument tidak memiliki padanan nilai integernya. Jika gagal maka seluruh program akan berhenti (ada cara untuk mengatasi hal ini, akan dijelaskan kemudian).

  • fungsi float() juga menerima sebuah argument dan melakukan hal yang mirip dengan int().

Sekarang mari kita perbaiki program kalkulator kita sebelumnya.

>>> bil1 = int(input("Masukkan bilangan pertama : "))
>>> bil2 = int(input("Masukkan bilangan kedua : "))
>>> hasil = bil1 + bil2
>>> print("Hasil penjumlahan adalah", hasil)

Memformat Angka

Saat mengoutputkan angka, kadang kita ingin agar tampilannya sesuai dengan format tertentu, misalnya 2 angka di belakang koma. Pengaturan format output ini sebenarnya adalah bagian dari memformat string, karena pada akhirnya hasil format adalah berupa string. Berikut adalah cara untuk memformat string secara umum.

"{<format>}".format(<angka>)

Ada cukup banyak jenis <format> yang disediakan Python, untuk saat ini kita hanya membahas beberapa yang sering digunakan pada angka saja.

Menentukan Presisi bilangan Float

Seberapa presisi (jumlah angka di belakang koma) tampilan bilangan float yang diinginkan bisa diatur melalui format berikut:

<format> = :.<presisi>f, di mana <presisi> menentukan jumlah angka di belakang koma, dan f menyatakan bahwa format tampilannya adalah floating-point. Jika <angka> yang ingin ditampilkan memiliki jumlah digit di belakang koma lebih banyak dari <presisi>, maka akan dilakukan pembulatan. Sebaliknya, jika lebih sedikit maka akan ditambahkan dengan angka nol.

>>> print("{:.2f}".format(-10.123456789))
>>> print("{:.5f}".format(102.123456789))
>>> print("{:.5f}".format(102.12))
-10.12
102.12346
102.12000

Mengubah dalam Persen

Selanjutnya kita bisa juga mengubah format angka yang aslinya dari skala 0-1, ke dalam bentuk persen dengan menggunakan format:

<format> = :.<presisi>%

>>> print("{:.2%}".format(0.25))
>>> print("{:.0%}".format(0.01256))
>>> print("{:.2%}".format(0.01256))
25.00%
1%
1.26%

Menambahkan Koma Pemisah Ribuan

Untuk memudahkan membaca, kita bisa menambahkan pemisah ribuan dalam angka yang besar, yaitu dengan

<format> = :,

>>> print("{:,}".format(1250000))
1,250,000

Menentukan Panjang String

Untuk memperindah tampilan, kita juga dapat mengatur panjang string yang dihasilkan melalui:

<format> = :<panjang>.<presisi>f

String yang dihasilkan memiliki panjang string <panjang>, jika angkanya lebih singkat, maka akan ditambahkan spasi di depan.

>>> print("Tanpa pengaturan panjang string")
>>> print("Angka | {:.2f} |".format(-10.123456789))
>>> print("Angka | {:.2f} |".format(1.123456789))
>>> print("Angka | {:.2f} |".format(10200.12))
>>> print()
>>> print("Dengan pengaturan panjang string")
>>> print("Angka | {:10.2f} |".format(-10.123456789))
>>> print("Angka | {:10.2f} |".format(102.123456789))
>>> print("Angka | {:10.2f} |".format(10200.12))
Tanpa pengaturan panjang string
Angka | -10.12 |
Angka | 1.12 |
Angka | 10200.12 |

Dengan pengaturan panjang string
Angka |     -10.12 |
Angka |     102.12 |
Angka |   10200.12 |

Selamat anda telah menyelesaikan Modul 2!!

Mohon berkenan memberikan Rating dan Feedback agar kami dapat meningkatkan kualitas modul ini!