Python 01: Dasar-Dasar Bahasa Pemrograman Python

Memerkenalkan hal-hal dasar yang harus kalian ketahui pada bahasa pemrograman Python

Photo by Kevin Ku from Pexels

Seperti yang sudah kita pelajari sebelumnya, pemrograman merupakan proses memberikan suatu set intruksi ke komputer. Supaya komputer dapat membaca intruksi tersebut, dibutuhkan bahasa pemrograman. Secara sederhana, bahasa pemrograman merupakan bahasa yang kita gunakan untuk berkomunikasi dengan komputer (jembatan manusia dengan komputer).

Ada banyak sekali bahasa pemrograman, seperti Java, Javascript, C++, C#, Julia, Python, dll. Setiap bahasa pemrograman memiliki fungsi dan kegunaan dibidangnya masing-masing. Python merupakan salah satu bahasa pemrograman multifungsi yang sangat populer untuk saat ini. Ada banyak keuntungan ketika mempelajari bahasa pemrograman Python.

Ada beberapa hal-hal dasar yang harus kalian pahami terlebih dahulu saat mempelajari Python.

Daftar isi:
1. Algoritma dan Pemrograman
2. Pengenalan Bahasa Pemrograman Python
3. Aturan Umum Syntax Python
4. Variabel
5. Print Function
6. Input dan Output
7. Built-In Data Type
8. Konversi Tipe Data
9. Operator di Python

1. Algoritma dan Pemrograman

Algoritma merupakan sekumpulan instruksi atau langkah demi langkah yang tidak ambigu, yang diberikan beberapa set kondisi awal, dapat dilakukan dalam urutan yang ditentukan untuk mencapai tujuan tertentu, dan yang memiliki serangkaian kondisi akhir yang dapat dikenali [2]. Fungsi algoritma adalah untuk memecahakan suatu permasalahan yang terjadi. Jadi, dapat dikatakan bahwa algoritma merupakan sebuah solusi.

Program merupakan urutan intruksi yang menentukan bagaimana melakukan komputasi [5]. Sedangkan pemrograman merupakan proses mengambil suatu algoritma dan mengodekannya ke dalam notasi atau bahasa pemrograman tertentu, sehingga dapat dijalankan oleh komputer [10].

Tanpa algoritma tidak akan pernah ada program.

Ada beberapa intruksi dasar yang selalu muncul di sebuah program:

  • Input: masukan data
  • Output: menampilkan data
  • Math: operasi matematika dasar
  • Conditional execution: sebuah kondisi untuk mengatur kode yang akan dieksekusi
  • Repetition: tindakan perulangan

Sangat penting untuk belajar tentang algoritma dan pemrograman. Dengan mempelajari algoritma, kita dapat mempelajari teknik analisis yang memungkinkan kita untuk membandingkan dan membedakan solusi hanya berdasarkan karakteristiknya sendiri, bukan karakteristik program atau komputer yang digunakan untuk mengimplementasikannya [10].

Fase-fase dari sebuah algoritma [2]

Sedangkan, dengan mempelajari pemrograman, kita dapat mengimplementasikan algoritma tersebut menjadi sebuah program atau aplikasi yang dapat membantu orang lain dalam memecahkan suatu permasalahan.

Contoh algoritma

Ada berbagai macam algoritma di dunia ini, bahkan setiap hari akan selalu ada algoritma baru yang lahir. Tidak semua algoritma dapat kita gunakan untuk memecahkan permasalahan yang sama. Setiap algoritma memiliki fungsi dan performa yang berbeda-beda. Untuk mengukur performa algoritma, kita dapat menggunakan notasi Big O. Notasi Big O adalah notasi khusus yang digunakan untuk mengukur seberapa cepat suatu algoritma [3].

Kami akan mencontohkan penggunaan algoritma untuk memecahkan suatu permasalahan yang berhubungan dengan pencarian. Di sini, kami hanya akan menggunakan algoritma simple search dan binary search.

Bayangkan kita disuruh menembak sebuah angka dari jangkauan 1–100. Jika kita menggunakan algoritma simple search, maka akan membutuhkan banyak langkah (sembilan puluh sembilan langkah jika angka yang dimaksudkan 99) dan cara ini akan mengeliminasi angka demi angka dimana itu sangat tidak efektif. Binary search dimulai dengan nilai tengah, jika tebakannya salah tetapi algoritma ini sudah mengeliminasi setengah langkah dan cara ini akan diulang terus menerus dengan pencarian berdasarkan nilai tengah (setiap langkah akan selalu mengeliminasi setengah langkah yang tersisa).

Dalam kebanyakan kasus pencarian, algoritma binary search memiliki performa yang lebih baik dibandingkan dengan algoritma simple search.

Perbandingan runtime dari algoritma simple search dan binary search [3]

Untuk implementasi algoritma binary search menggunakan bahasa pemrograman Python, dapat kalian lihat dibawah ini:

Visualisasi algoritma menggunakan flowchart

Beberapa algoritma mungkin akan membutuhkan banyak langkah sebelum dapat menyelesaikan suatu masalah. Mungkin akan sedikit membingungkan jika kita hanya menulis langkah demi langkah dari suatu algoritma. Visualisasi algoritma dengan flowchart adalah solusi dari permasalahan tersebut.

Flowchart atau diagram alur adalah representasi visual dari urutan langkah demi langkah dan keputusan untuk melakukan setiap proses [6]. Flowchart terdiri dari berbagai simbol yang masing masing menggambarkan hal yang berbeda. Dalam hal ini, berbagai jenis tindakan atau langkah dalam suatu proses akan direpresentasikan menggunakan bentuk atau simbol khusus. Kemudian, garis dan panah menunjukkan urutan langkah demi langkah dan hubungan di antara mereka.

Sumber: https://www.smartdraw.com/flowchart/flowchart-symbols.htm.

Dalam pembuatan sebuah flowchart, kalian harus memerhatikan setiap penggunaan dari simbol-simbol tersebut. Ketika kalian sudah memahami makna dari setiap simbol tersebut, cukup kombinasikan simbol-simbol tersebut sehingga menjadi sebuah flowchart.

Contoh flowchart sederhana (Gambar oleh penulis)

Ada beberapa website yang kami rekomendasikan untuk membantu kalian dalam membuat sebuah flowchart. Website tersebut, antara lain Visual Paradigm, Lucid Chard, Canva, Smartdraw, dll.

Kontribusi biologi di bidang algoritma

Sampai saat ini, terdapat banyak jenis algoritma. Beberapa diantara algoritma tersebut, terdapat 2 algoritma populer yang terinspirasi dari ilmu biologi, yaitu algoritma jaringan saraf buatan (neural networks) dan algoritma genetika (genetic algorithm).

Neural networks atau artificial neural networks merupakan sebuah algoritma yang digunakan sebagai dasar dari deep learning. Juga, algoritma ini merupakan solusi dari permasalahan AI yang kompleks. Neural networks terdiri dari beberapa node (neuron) yang saling terhubung satu sama lain. Struktur sederhana dari algoritma ini terdiri dari input layer, hidden layer, dan output layer. Sampai sekarang ini, algoritma neural networks banyak dimanfaatkan untuk kecerdasan buatan seperti speech recognition, machine translation, face detection, image generation, dll.

Struktur algoritma neural networks (Gambar oleh penulis)

Genetic algorithm merupakan algoritma pencarian (metaheuristik) yang terinspirasi dari proses seleksi alam dan termasuk ke dalam algoritma evolusioner. Algoritma ini bisa berkembang menjadi lebih baik (berevolusi) seiring dengan kinerja dari algoritma ini. Genetic algorithm banyak diimplentasikan untuk menyelesaikan permasalahan optimasi dan pencarian [7].

2. Pengenalan Bahasa Pemrograman Python

Python merupakan bahasa pemrograman yang diciptakan oleh Guido van Rossum pada 1991 dan sampai saat ini menjadi salah satu bahasa pemrogaman yang terpopuler [12]. Python sangat mudah untuk dipelajari dan powerfull. Hal ini karena termasuk kedalam bahasa tingkat tinggi yang memiliki struktur data efisien dan pendekatan sederhana namun efektif untuk pemrograman berorientasi objek (OOP).

Sumber: https://staging.python.org/community/logos/

Kemudian, Python juga memiliki sintaks yang elegan, dynamic typing, manajemen memori otomatis dan bahasa yang interpreted. Python dapat digunakan untuk web development (bagian server), GUI development, software development, system administration, dan ilmu data [12].

Ada beberapa alasan kenapa kalian harus menggunakan Python:

  • Sintaks yang ringkas, sederhana, dan mirip seperti bahasa inggris
  • Memiliki komunitas yang besar dan aktif
  • Didukung oleh banyak library yang powerfull
  • Dapat dijalankan pada platform yang berbeda (Windows, Mac, Linux, dll).
  • Mendukung beberapa paradigma pemrograman, seperti berorientasi objek, imperatif, pemrograman fungsional, dan gaya prosedural

Akan tetapi, Python juga memiliki beberapa kekurangan:

  • Kecepatan runtime yang lambat jika dibandingkan bahasa pemrograman lain seperti C, C++, dan Java
  • Jika sudah belajar Python, akan sulit jika ingin berpindah ke bahasa pemrograman lain
  • Memiliki konsumsi memori yang lebih banyak
  • Tidak terlalu bagus untuk mobile apps (belum ada library yang mendukung)
  • Akses database yang kurang bagus

3. Aturan Umum Syntax Python

Sama seperti bahasa manusia, bahasa pemrograman juga memiliki aturan-aturan yang harus dipatuhi supaya mudah dipahami. Untuk bahasa pemrograman, kalian wajib mengikuti aturan-aturan yang berlaku pada bahasa pemrograman tersebut. Setiap bahasa pemrograman memiliki aturan-aturan penulisannya tersendiri.

Aturan bahasa pemrograman Python berbeda dengan Java maupun C++. Python dirancang agar mudah dibaca dan memiliki kemiripan dengan bahasa Inggris. Python juga memiliki aturan penulisan sytaxnya yang di atur berdasarkan PEP8. Ada beberapa aturan umum Python berikut ini harus kalian pahami.

Menggunakan baris baru untuk menyelesaikan perintah

Berbeda dengan kebanyakan bahasa pemrograman lain yang menggunakan titik koma untuk menyelesaikan sebuah perintah, Python menggunakan baris baru untuk menyelesaikan sebuah perintah. Akan tetapi, kita masih tetap bisa menggunakan titik koma untuk menyelesaikan sebuah perintah pada Python.

Komentar di Python

Terkadang kita akan membutuhkan memo yang digunakan untuk menjelaskan sebuah kode yang kita tulis. Komentar merupakan jawaban dari permasalahan tersebut. Komentar digunakan untuk menjelaskan sebuah kode dan juga digunakan supaya kode lebih mudah dibaca oleh kita maupun orang lain.

Komentar pada Python (Gambar oleh penulis)

Mungkin beberapa bahasa pemrograman lain menggunakan tanda // untuk mengawali sebuah komentar, tetapi di Python menggunakan # untuk mengawali sebuah komentar. Perlu saya tekankan disini bahwa komentar tidak harus berupa teks yang menjelaskan kode, bisa juga digunakan untuk mencegah Python dari mengeksekusi kode [11].

Indentasi di Python

Indentasi mengacu pada spasi awal pada baris kode. Mungkin beberapa bahasa pemrograman lain menggunakan indentasi supaya kode lebih mudah dibaca. Akan tetapi, di Python indentasi sangat penting. Melewatkan sebuah indentasi saja dapat menghasilkan error.

Contoh penggunaan indentasi di Python (Gambar oleh penulis)

Indentasi di Python menggunakan spasi dan tidak ada batasan untuk penggunaannya tetapi setidaknya satu. Python bergantung pada indentasi, dimana hal itu digunakan untuk menunjukan sebuah scope atau blok kode [11].

Docstring di Python

Penjelasan singkat untuk kode tertentu kita mungkin masih dapat menggunakan komentar, tetapi untuk suatu penjelasan yang lebih luas atau dokumentasi kode tidak akan cukup jika hanya menggunakan komentar. Docstring merupakan jawaban dari permasalahan tersebut [11].

Docstrings dapat berupa satu baris, atau multi baris. Docstrings juga merupakan komentar. Python menggunakan tanda kutip tiga di awal dan akhir untuk membuat sebuah docstring.

Docstring pada Python (Gambar oleh penulis)

4. Variabel

Variabel merupakan wadah yang bersifat sepert memori yang digunakan untuk menyimpan sebuah nilai. Variabel juga merupakan sebuah entitas yang membantu kita menyimpan informasi dan mengambilnya kembali. Tidak seperti C++ atau Java, Python tidak memiliki perintah untuk mendeklarasikan sebuah variable.

name = "Lewandowski"
age = 19

Variabel dibuat saat pertama kali menetapkan nilai pada variabel tersebut. Pada kode tersebut, kita membuat sebuah variabel dengan nama age dan kemudian kita menetapkan 19 ke variable tersebut.

Terdapat beberapa aturan yang umum digunakan untuk menuliskan nama variabel di Python, antara lain:

Contoh penulisan nama variabel (Gambar oleh penulis)
  • Nama variabel harus diawali dengan huruf atau underscore (_)
  • Nama variabel tidak bisa diawali dengan angka
  • Nama variabel harus singkat, jelas, dan tidak boleh terlalu panjang
  • Nama variabel peka terhadap huruf kecil dan huruf besar (case-sensitive)
  • Tidak bisa menggunakan keyword di Python untuk nama variabel (False, True, int, dll.)

Selain aturan, juga terdapat gaya penulisan variabel yang umum digunakan, antara lain:

  • Camel case → setiap kata dimulai dengan huruf besar kecuali kata pertama
  • Pascal case → setiap kata dimulai dengan huruf besar
  • Snake case → setiap kata dipisahkan dengan karakter underscore
Gaya penulisan nama variabel (Gambar oleh penulis)

Di Python, gaya penulisan snake case paling banyak digunakan. Jadi, ketika kalian menggunakan Python maka sangat dianjurkan untuk menggunakan gaya snake case dalam menulis variabel.

5. Print Function

Untuk mencetak atau menampilkan sebuah keluaran pada layar komputer anda, maka diperlukan sebuah fungsi yaitu print(). Fungsi print() dapat mencetak sebuah pesan atau nilai ke layar komputer [5]. Untuk melakukan hal tersebut, kalian cukup menuliskan sebuah pesan atau nilai didalam kurung setelah kata print.

Penggunaan fungsi print (Gambar oleh penulis)

6. Input and Output

Hal yang penting dalam sebuah program adalah adanya input dan output. Input merupakan proses memasukan sebuah data, sedangkan output merupakan proses mengeluarkan sebuah data.

Ilustrasi proses input dan ouput (Gambar oleh penulis)

Input dapat berasal dari pengguna secara langsung yang memasukan sebuah data lewat keyboard atau sebuah file dari sumber exsternal. Output dapat berupa data yang ditampilkan ke layar komputer melalui GUI (Graphical User Interface).

Untuk mengimplementasikan input dari pengguna dapat menggunakan fungsi input(). Sedangkan untuk mengimplementasikan output dapat menggunakan fungsi print(). Berikut merupakan program sederhana yang mengimplementasikan proses input dan output.

Ilustrasi alur program input dan output sederhana (Gambar oleh penulis)

Pada program sederhana tersebut, input di implementasikan saat memasukan nama dan juga umur. Sedangkan, output program tersebut diimplementasikan pada kode print(f”nama: {nama} umur: {umur}”).

# implementasi untuk input
nama = input("masukan nama: ")
umur = input("masukan umur: ")
# implementasi untuk menghasilkan output
print(f”nama: {nama} umur: {umur}”)

7. Built-In Data Type (int, float, str, bool)

Python memiliki beberapa tipe data bawaan. Berikut ini beberapa tipe data yang setidaknya wajib kalian ketahui saat masih memulai belajar Python.

Integer (bilangan bulat)

Integer atau int merupakan bilangan bulat dapat berupa positif atau negatif, tanpa pecahan, dan dengan panjang tak terbatas.

#integer
a = 35656222554887711
b = -35656222554887711
c = 0
d = 100_000_000
#bukan integer
e = 099
f = 100, 000, 000

Perlu diketahui, bilangan integer di Python direpresentasikan oleh kelas int.

Integer representasi oleh kelas int (Gambar oleh penulis)

Float (bilangan desimal)

Bilangan apapun yang memiliki titik desimal atau pecahan disebut float. Float dapat berupa bilangan positif atau negatif yang mengandung satu atau lebih titik desimal (pecahan). Pemisah angka pada tipe ini menggunakan tanda (.).

#float
a = 20.5
b = 7.0
c = 10.35656222554887711

Bilangan float juga dapat berupa angka ilmiah yang disimbolkan dengan huruf “e”.

#float
a = 15e8
b = 3E89
c = -75.7e100

Bilangan float di Python direpresentasikan oleh kelas float.

Float representasi oleh kelas float (Gambar oleh penulis)

String (karakter)

Informasi berupa teks, nama, kata, frasa, paragraf atau apapun itu yang penting masih berupa karakter disebut string. String direpresentasikan dengan tanda petik satu, petik dua, maupun petik tiga.

#string
name = 'brawijaya'
age = "twenty"
status = """died"""
year = "2002"

Apapun yang dihapit dengan tanda petik merupakan string. Di Python, string atau karakter direpresentasikan oleh kelas str.

String representasi oleh kelas str (Gambar oleh penulis)

Kalian dapat membaca artikel berikut ini jika ingin mengetahui lebih lanjut tentang string.

Boolean (benar atau salah)

Boolean merupakan tipe data yang hanya memiliki dua nilai, yaitu benar (True) atau salah (False).

#boolean
a = True
b = False

boolean di Python direpresentasikan oleh kelas bool.

Boolean representasi oleh kelas bool (Gambar oleh penulis)

8. Konversi Tipe Data

Setiap tipe data yang sudah dijelaskan di atas, dapat dikonversi atau diubah ke tipe data yang lain. Misalnya integer dapat kita ubah ke tipe float, string, atau bahkan boolean. Akan tetapi, setiap tipe data yang diubah ke tipe data yang lain masing-masing memiliki perilaku yang berbeda-beda. Mari kita pahami hal tesebut.

Konversi tipe data ke integer

Untuk mengubah tipe data ke bentuk integer dapat menggunakan fungsi int(). Di dalam kurung tersebut kalian tuliskan tipe data yang akan diubah ke tipe integer.

Sebelum diubah ke tipe data integer (Gambar oleh penulis)

Untuk mengubah tipe data tersebut dengan menggunakan fungsi int().

Setelah diubah ke tipe data integer (Gambar oleh penulis)

Perlu diperhatikan disini, tidak semua string dapat diubah menjadi tipe data integer. String yang berisi karakter tidak bisa diubah menjadi integer, jika tetap dilakukan akan mengembalikan error.

Error ketika mengubah string karakter menjadi integer (Gambar oleh penulis)

Konversi tipe data ke float

Untuk mengubah tipe data ke bentuk float dapat menggunakan fungsi float(). Sama seperti integer, di dalam kurung tersebut kalian tuliskan tipe data yang akan diubah ke tipe float.

Sebelum diubah ke tipe data float (Gambar oleh penulis).

Untuk mengubah tipe data tersebut dengan menggunakan fungsi float().

Setelah diubah ke tipe data float (Gambar oleh penulis)

Sama seperti integer, tidak semua string dapat diubah menjadi tipe float. String yang berisi karakter tidak bisa diubah menjadi float, jika tetap dilakukan akan mengembalikan error.

Error ketika mengubah string karakter menjadi float (Gambar oleh penulis)

konversi tipe data ke string

Untuk mengubah tipe data ke bentuk string dapat menggunakan fungsi str(). Sama seperti yang lain, di dalam kurung tersebut kalian tuliskan tipe data yang akan diubah ke tipe string.

Sebelum diubah ke tipe data string (Gambar oleh penulis)

Untuk mengubah tipe data tersebut dengan menggunakan fungsi str().

Setelah diubah ke tipe data string (Gambar oleh penulis)

Berbeda dengan float dan integer, semua jenis tipe data diatas bisa diubah menjadi string tanpa mengembalikan error.

Konversi tipe data ke boolean

Untuk mengubah tipe data ke bentuk string dapat menggunakan fungsi bool(). Sama seperti yang lain, di dalam kurung tersebut kalian tuliskan tipe data yang akan diubah ke tipe bool.

Sebelum diubah ke tipe data boolean (Gambar oleh penulis)

Untuk mengubah tipe data tersebut dengan menggunakan fungsi bool().

Setelah diubah ke tipe data boolean (Gambar oleh penulis)

Hampir semua nilai dievaluasi ke True jika setidaknya memiliki nilai. Semua string adalah True, kecuali string kosong. Semua angka adalah True, kecuali 0. List, tuple, dictionary, set adalah True, kecuali ada yang kosong [8].

9. Operator di Python

Operator merupakan simbol khusus yang digunakan untuk melakukan operasi pada sebuah variabel atau nilai. Operator juga dapat didefinisikan sebagai fungsi khusus yang mengambil satu atau lebih nilai dan mengembalikan hasil yang sesuai. Simbol khusus atau kata-kata tertentu biasanya mewakili operator. Python memiliki banyak operator, seperti operator aritmatika, relasional, bitwise, logika, asigment, membership, dan identitas.

Operator Aritmatika

Operator aritmatika dalam Python meliputi penambahan, pengurangan, perkalian, pembagian, eksponensial, modulus, dan pembagian bilangan bulat. Operasi aritmatika hanya dapat diterapkan pada tipe data numerik, jika tidak, akan mengembalikan hasil yang salah atau error. Kita dapat melakukan operasi aritmatika dengan menggunakan operator matematika, lebih jelasnya dapat dilihat pada tabel berikut.

Operator aritmatika [8].

Operasi penjumlahan, pengurangan, dan perkalian bekerja seperti yang diharapkan:

>>> 10 + 10
20
>>> 7 - 5
2
>>> 5 * 5
25

Berbeda dengan bahasa pemrograman Java atau C, dalam bahasa pemrograman python, untuk melakukan operasi aritmatika kedua tipe data tidak harus sama. Jika Kalian melakukan operasi aritmatika pada tipe data integer dengan float, itu akan mengembalikan tipe data float [1].

>>> 10 - 9.5
0.5
>>> 10 + 5.0
15.0

Selanjutnya, hal yang menarik di sini adalah operasi pembagian. Operasi pembagian (/) akan selalu mengembalikan nilai float, sedangkan operasi pembagian integer (//) akan selalu mengembalikan nilai integer [1].

>>> 50 / 20
2.5
>>> 50 // 20
2

Pembagian bilangan bulat juga dikenal sebagai pembagian lantai karena selalu mengambil nilai yang lebih rendah atau membulatkan nilai ke bawah. Python tidak menggunakan ^ untuk eksponensial tetapi menggunakan ** untuk eksponensial. Tanda ^ di Python adalah operator bitwise yang disebut XOR [5].

>>> 4 ** 2
16
>>> 4 ^ 2
6

Selain itu juga, terdapat operator modulus, yang disimbolkan oleh tanda%. Operator modulus mengembalikan sisa dari suatu pembagian.

>>> 15 % 5
0
>>> 10 % 7
3

Hasil dari 15 % 5 adalah 0 karena 0 adalah sisa ketika 15 dibagi 5. Hal ini juga berlaku untuk 10 % 7 akan menghasilkan 3 karena 3 adalah sisa.

Satu hal lagi yang perlu diperhatikan di sini adalah urutan operasi. Eksponen dieksekusi terlebih dahulu, diikuti oleh perkalian dan pembagian (termasuk // dan %), dan yang terakhir adalah penambahan dan pengurangan. Jika Anda ingin mengubah urutan eksekusi, gunakan tanda kurung (()) untuk mengelompokkannya.

>>> (25 - 10 + 5) ** 2
400

Operator Perbandingan

Operator perbandingan atau operator relasional digunakan untuk membandingkan dua buah nilai atau lebih. Setiap kali kita melakukan operasi perbandingan, itu akan mengembalikan nilai boolean (True or False). Tidak seperti operasi aritmatika, operasi perbandingan dalam Python memiliki prioritas atau urutan eksekusi yang sama [4]. Ada delapan operasi perbandingan pada Python, lebih jelasnya dapat dilihat pada tabel berikut.

Operasi perbandingan berfungsi seperti yang diharapkan, tetapi simbol Python berbeda dari simbol matematika. Jika simbol persamaan dalam matematika adalah =, tetapi dalam Python, kita menggunakan == karena = adalah operator penugasan.

>>> 10 == 10
True
>>> 7 != 10
True
>>> 20 < 15
False
>>> 20 >= 30
False

Kami juga dapat membandingkan dua tipe data yang berbeda, tetapi hanya berlaku untuk == jika tidak, itu akan mengembalikan kesalahan.

>>> 5 == 'five'
False
>>> 5 <= 'five'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '<=' not supported between instances of 'int' and 'str'

Kita juga dapat melakukan operasi perbandingan rantai.

>>> 6 > 3 > 10
False
>>> 5 > 10 > 3
False

Ada hal-hal yang perlu diperhatikan di sini jika kita melakukan operasi perbandingan berantai. Dalam contoh, 6 > 3 > 10 mengembalikan False karena 6 > 3 dievaluasi terlebih dahulu dan ketika mengembalikan True maka 6 > 10 akan dievaluasi. Jika 6 > 3 mengembalikan False, maka 6 > 10 tidak akan dievaluasi. Ketika satu perbandingan mengembalikan False, ekspresi kembali ke False dan melewatkan semua perbandingan yang tersisa.

Operator Logika

Operator logika digunakan untuk melakukan operasi logika yang menggabungkan pernyataan kondisional dan akan mengembalikan True atau False. Ada 3 operator logika dalam Python: and, or, and not.

>>> x = True
>>> y = False
>>> x and Y
False
>>> x or y
True
>>> not x
False

Operator and akan mengembalikan True jika kedua nilai adalah True, operator or akan mengembalikan True jika salah satu nilainya adalah True, dan operator not akan mengembalikan True jika nilai yang dibandingkan adalah False atau sebaliknya.

Dibandingkan dengan potongan kode yang mereka bandingkan, operator logika memiliki prioritas yang lebih rendah. Dengan kata lain, potongan dihitung terlebih dahulu, diikuti dengan perbandingan .

>>> 5 > 10 and 10 == 10
False

Contohnya: 5 > 10 ini dievaluasi terlebih dahulu, kemudian 10 == 10 akan dievaluasi dan setelah itu, hasil keduanya akan dievaluasi (False dan True). Tetapi untuk membuat kode lebih mudah dibaca dan menghindari kebingungan tentang prioritas adalah dengan menambahkan tanda kurung.

>>> (True and False) or (5 < 10)
True

Operator Bitwise

Operator bitwise adalah operasi matematika yang bekerja pada bit dan melakukan operasi bit demi bit. Cara kerja operator ini adalah dengan mengubah bilangan desimal atau bilangan bulat menjadi bilangan biner, kemudian melakukan operasi bitwise berdasarkan operator yang dipilih, dan hasilnya akan tetap berupa bilangan desimal atau bilangan bulat. Python memiliki enam jenis operator bitwise yang berbeda.

Operator | akan melakukan operasi biner “or”, yang akan mengembalikan 1 jika salah satu dari dua bit adalah 1 [9].

#0 | 1 = 1 
#1 | 0 = 1
#1 | 1 = 1
#0 | 0 = 0
>>> x = 2 #00000010
>>> y = 5 #00000101
>>> x | y
7 #00000111

Operator & akan melakukan operasi biner “and”, yang akan mengembalikan 1 jika kedua bit adalah 1 [9].

#1 & 1 = 1
#0 & 0 = 0
#0 & 1 = 0
#1 & 0 = 0
>>> x = 3 #00000011
>>> y = 6 #00000110
>>> x & y
2 #00000010

Operator ~ akan melakukan operasi biner “not”, yang akan membalik semua bit dalam nomor tersebut.

Inverse point in ~ operator (Image by author)

Ketika kita menggunakan operator ~, 0 memiliki invers -1, 1 memiliki invers -2, dan seterusnya.

>>> ~0 #00000000
-1 #-00000001
>>> ~1 #00000001
-2 #-00000010

Operator ^ akan melakukan operasi biner “xor”, yang akan mengembalikan 1 jika hanya satu dari dua bit yang bernilai 1 [9].

#0 ^ 0 = 0
#1 ^ 1 = 0
#0 ^ 1 = 1
#1 ^ 0 = 1
>>> x = 4 #00000100
>>> y = 8 #00001000
>>> x ^ y
12 #00001100

Operator << akan memindahkan nilai operan ke kiri dengan jumlah bit yang ditentukan, sedangkan operator >> akan memindahkan operan ke kanan dengan jumlah bit yang ditentukan [9].

>>> x = 4 #00000100
>>> x << 2
16
>>> y = 9 #00001001
>>> y << 2
2 #00000010

Operator Assignment

Operator assignment digunakan untuk memberikan nilai ke variabel. Sebagian besar bahasa pemrograman, termasuk Python, menggunakan = operator penugasan, tetapi itu berbeda dari matematika, yang menggunakan = sebagai persamaan. Ini karena keyboard standar tidak memiliki alternatif seperti tombol panah kiri (←), dan menggunakan = juga lebih sederhana dan tidak membingungkan. Juga, dalam program komputer, kita akan lebih sering menggunakan operator penugasan daripada menggunakan tes kesetaraan [8].

>>> count = 100
>>> count
100

Dalam contoh di atas, kami menetapkan nilai 100 ke variabel count. Namun, kita juga dapat menggabungkan operator penugasan dengan operator aritmatika, yang biasa disebut operator gabungan.

>>> x = 10
>>> x += 5 #same as x = x + 5
>>> x
15
>>> y = 3
>>> y *= x
>>> y
45

Operator Membership

Operator Membership digunakan untuk menguji apakah suatu nilai atau variabel direpresentasikan secara berurutan pada suatu objek. Dalam Python, ada dua operator keanggotaan: in dan not in [9].

>>> letters = ['a', 'i', 'u', 'e', 'o']
>>> 'u' in letters
True
>>> 'a' not in letters
False

Operator in akan mengembalikan True jika urutan dengan nilai yang ditentukan ada di objek, sedangkan operator not in akan mengembalikan True jika urutan dengan nilai yang ditentukan tidak ada di objek.

Perlu dicatat bahwa di sini kita hanya dapat menggunakan operator keanggotaan pada objek yang dapat diubah jika tidak, itu akan mengembalikan kesalahan.

>>> num = 45
>>> 5 in num
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: argument of type 'int' is not iterable

Identity operators

Operator identitas digunakan untuk membandingkan dua objek, yang dibandingkan di sini bukanlah nilainya, tetapi apakah mereka benar-benar objek yang sama dengan lokasi memori yang sama. Dalam Python, ada dua operator identitas: is dan not [9].

>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> c = a
>>> a is b
False
>>> a is c
True
>>> a is not b
True

Alasan mengapa operator is dapat mengembalikan True karena variabel a dan c berasal dari objek yang sama, sedangkan operator is mengembalikan False karena a dan b tidak berasal dari objek yang sama meskipun memiliki nilai yang sama. Operator is not akan mengembalikan True jika kedua variabel bukan objek yang sama.

Daftar Pustaka:

[1] 3. An Informal Introduction to Python — Python 3.10.5 documentation. (2022). Retrieved 8 July 2022, from https://docs.python.org/3/tutorial/introduction.html#using-python-as-a-calculator

[2] Ahmad, I. (2020). 40 Algorithms Every Programmer Should Know: Hone your problem-solving skills by learning different algorithms and their implementation in Python (1st ed.). Packt Publishing.

[3] Bhargava, Y. (2016). Grokking Algorithms: An illustrated guide for programmers and other curious people (1st ed.). Manning Publications.

[4] Built-in Types — Python 3.10.5 documentation. (2022). Retrieved 8 July 2022, from https://docs.python.org/3/library/stdtypes.html#comparisons

[5] Downey, A. B. (2015). Think Python: How to Think Like a Computer Scientist. O’Reilly Media.

[6] Flowchart Symbols. Smartdraw.com. (2022). Retrieved 24 August 2022, from https://www.smartdraw.com/flowchart/flowchart-symbols.htm.

[7] Genetic algorithm — Wikipedia. En.wikipedia.org. (2022). Retrieved 24 August 2022, from https://en.wikipedia.org/wiki/Genetic_algorithm.

[8] Lubanovic, B. (2019). Introducing Python: Modern Computing in Simple Packages. O’Reilly Media.

[9] Python Operators. (2022). Retrieved 8 July 2022, from https://www.w3schools.com/python/python_operators.asp

[10] Ranum, L., Miller, B. (2011). Problem Solving with Algorithms and Data Structures Using Python (2nd ed.). Franklin, Beedle & Associates.

[11] Van Rossum, G., Warsaw, B., & Coghlan, N. (2022). PEP 8 — Style Guide for Python Code | peps.python.org. Peps.python.org. Retrieved 10 September 2022, from https://peps.python.org/pep-0008/.

[12] Welcome to Python.org. Python.org. (2022). Retrieved 25 August 2022, from https://www.python.org/.

--

--

A place to share and learn about anything related to Data Science curated by Data Science Indonesia members for Data Science People.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Dede Kurniawan

Dede Kurniawan

62 Followers

A writer who focuses on the topics of Python, Statistics, Machine Learning, Deep Learning, and Bioinformatics.