15 Dasar simple bahasa pemrograman Python

98 / 100

Dasar-dasar bahasa pemrograman Python meliputi banyak hal, sama seperti bahasa pemrograman lain, yaitu adanya syntax tertentu untuk mendeklarasikan variable, tipe data, operator dan lainnya. Perbedaan yang fundamental adalah hanya pada penulisannya saja. Oleh karena itu kali ini kita akan menelurisi satu persatu, terutama untuk bahasa pemrograman Python.

Pendahuluan bahasa pemrograman python

catatan: tutorial ini menggunakan Jupyter notebook. Jika Anda ingin menggunakan IDE yang sama, Anda harus menginstallnya terlebih dahulu (install menggunakan Anaconda akan lebih mudah).

Selain itu Anda dapat mendownload file interaktif jupyter notebook untuk tutorial ini pada bab kesimpulan secara gratis.

Jika Anda tipe pembelajar visual dan auditory, maka Anda dapat langsung menonton ini:

[Bahasa Pemrograman Python] Mencoba program pertama

Jika Anda lebih menyukai menonton langsung pada platform youtube. Maka Anda dapat klik disini untuk playlist detail dan dapat subscribe untuk mendapatkan notifikasi update terbaru konten tutorial pada channel Auftechnique.

bahasa pemrograman python
Python

Indentasi

Perbedaan bahasa pemrograman Python dibandingkan bahasa yang lain seperti Java, JavaScript dan C++ adalah indentasi. Mengapa demikian? Jawabnya sederhana, yaitu agar mudah di baca, dapat dibandingkan jika kita membaca Java, kebanyakan programmer pemula akan mengalami kesulitan untuk memahami koding yang di tulis oleh bahasa tersebut jika disandingkan dengan bahasa pemrograman Python.

Indentasi pada bahasa pemrograman Python adalah hal yang wajib. jika kita tidak mematuhi aturan tersebut, maka akan memberikan pesan error seperti di bawah ini:

IndentationError: unexpected indent

Pada bahasa pemrograman Python, notifikasi pesan Error pun sangat mudah di baca. Bagi anda yang pada mulanya menggunakan bahasa lain, lalu beralih menggunakan Python. Mungkin awalnya Anda akan merasa risih, namun pada akhirnya Anda akan menyadari bahwa indentasi ini sangat menyenangkan mata programmer, terlebih jika kode program tersebut di tulis oleh orang lain. Hal tersebut akan mempermudah jika kita bekerja di dalam tim yang besar, sehingga akan cepat memahami intensi dari kode program tersebut.

Variable

Sesuai dengan namanya, variable adalah sesuatu yang dapat berubah. Variabel ini digunakan untuk merujuk menuju lokasi memori oleh program komputer.

Pada sebagian besar bahasa lain, Anda perlu menetapkan tipe data terhadap suatu variabel. Namun, hal itu tidak perlu dilakukan pada bahasa pemrograman python. Sebagai contoh, jika Anda menulis program dengan menggunakan bahasa C, maka sintaks yang harus anda tulis adalah int num = 39; Dengan Python Anda hanya cukup menuliskan num = 39.

Untuk memeriksanya, Anda dapat membuka Jupyter notebook atau Python Shell, lalu lakukan langkah demi langkah perintah di bawah ini:

Integer

Integer adalah angka numerik yang dapat berupa nilai positif, negatif, atau nol tanpa memiliki angka desimal

num = 39
print(num)
39
type(num)
<class 'int'>

Seperti yang telah kita lihat di atas, kita telah mendeklarasikan variabel num dan menetapkan angka 39 sebagai nilai variabel tersebut. Metode type yang sudah built-in pada bahasa pemrograman python dapat digunakan untuk memeriksa jenis suatu variabel. 

Ketika kita memeriksa jenis variable num dengan menggunakan metode type, maka kita akan melihat output   <class 'int'>

Float

Float adalah angka numerik sama seperti integer , namun ada sedikit perbedaan, yaitu adanya angka desimal

num = 39.0
print(num)
39.0
type(num)
<class 'float'>

Dapat di lihat pada contoh tersebut bahwa kita telah menggunakan angka desimal pada num. Lalu, ketika kita memeriksanya pada bahasa pemrograman Python akan menunjukkan bahwa tipe data tersebut adalah float.

String

String adalah kumpulan beberapa karakter atau integer. String tersebut direpresentasikan dengan menggunakan tanda quotes (double ataupun single).

test = "Hallo semua"
print(test )
Hallo semua
type(test )
<class 'str'>

Pada contoh di atas kita telah menetapkan string pada variable test. Jenis variable test ini adalah seperti yang terlihat pada output Python, yaitu string.

Boolean

Boolean adalah operator biner yang hanya memiliki dua nilai output yaitu True atau False.

anda_robot = False
print(anda_robot)
False
type(anda_robot)
<class 'bool'>

Di sini kita telah menetapkan nilai False kepada variable anda_robot. Jenis variabel ini adalah boolean. Kita hanya dapat menetapkan True atau False. Perlu di ingat bahwa T dan F harus berupa huruf kapital atau kita akan mendapatkan pesan error code ini:

anda_robot = false
print(anda_robot)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-147-4473960a0737> in <module>
----> 1 anda_robot = false
      2 print(anda_robot)

NameError: name 'false' is not defined

NoneType

NoneType digunakan ketika variable tidak memiliki nilai, seperti pada contoh di bawah ini:

num = None
print(num)
None
type(num)
<class 'NoneType'>

Operator

Operator adalah simbol aritmatika pada bahasa pemrograman Python atau bahasa lainnya, untuk melihat seluruh operator yang tersedia pada Python Anda dapat melihat table di bawah ini.

Bahasa pemrograman Python tabel operator
Tabel Python operator

Mari kita membahas satu per satu operator pada bahasa pemrograman python

Operator aritmatika

Operator yang akan kita bahas adalah penambahan, pengurangan, perkalian, eksponensial, modulus, dan pembagian. Mari kita lihat operasi aritmatika sederhana pada bahasa pemrograman Python.

Pertama-tama kita akan mendeklarasikan dua variabel a dan b.

a = 6 
b = 2

Untuk lebih jelasnya, dapat kita lihat pada contoh di bawah ini:

a + b # Penambahan
8
a - b # Pengurangan
4
a * b # Perkalian
12
a / b # Pembagian
3.0
a ** b # Eksponensial
36

Contoh untuk menguji operator aritmatika lainnya:

a = 7
b = 3
a % b # Modulus (sisa pembagian)
1
a // b # Floor division (di bulatkan ke bawah)
2

Operator pembanding

Contoh operator pembanding adalah sama dengan, lebih besar dari, serta kurang dari.

a = 5 
b = 2 
a > b # Lebih besar
True
a < b # kurang dari
False
a == b # sama dengan 
False
a >= 5 # lebih besar atau sama dengan
True
b <= 1 # lebih kecil atau sama dengan
False

Operator logika

Operator ini "tidak termasuk", "dan", "dan atau"

a = 10
b = 2
a == 2 and b == 10 # dan
False
a == 10 or b == 10 # atau
True
not(a == 10) # tidak
False
not(a == 2)
True

Conditional Statement

Conditional statement digunakan untuk memeriksa suatu kondisi yang ditentukan sebelumnya apakah nilai nya True atau False.

Sering kali ketika kita sedang mengembangkan suatu aplikasi, ada hal di mana kita perlu memeriksa suatu kondisi tertentu lalu melakukan perintah yang berbeda tergantung pada hasil sebelumnya. Dalam skenario seperti itu conditional statement akan sangat berguna. if, elif dan else adalah pernyataan kondisional yang digunakan dalam bahasa pemrograman Python.

Dengan conditional statement, kita dapat membandingkan suatu variable dan memeriksanya apakah variable tersebut memiliki nilai atau merupakan suatu boolean, dan selanjutnya memeriksa apakah True atau False. Oleh karena itu, mari kita praktekan penggunaannya.

Kondisi pertama. Kita memiliki suatu integer dan tiga kondisi. Yang pertama adalah kondisi if untuk mengecek apakah nomor tersebut sama dengan 10. Yang kedua adalah kondisi elif. Disini kita akan memeriksa apakah nomor tersebut kurang dari 10. Yang terakhir adalah kondisi else. Kondisi ini akan tereksekusi jika kedua kondisi sebelumnya tidak memenuhi syarat.

angka = 5
if angka == 10:
    print("angka adalah 10")
elif angka < 10:
    print("angka adalah kurang dari 10")
else:
    print("angka adalah lebih dari 10")

Output:

angka adalah kurang dari 10

Catatan: Tidak wajib untuk menggunakan dua kondisi sama-dengan di dalam kondisi if. Anda dapat melakukannya dengan elif.

Kondisi kedua. Pada kasus ini kita akan memiliki variabel boolean dan dua kondisi. Pada contoh sebelumnya ketika kita membahas mengenai boolean apakah benar atau salah? Saat ini kita akan menggunakannya kembali pada conditional statement.

Jika anda_robot, lalu print "Ya, saya robot", selain itu print "bukan, saya manusia".

anda_robot = False
if anda_robot:
    print ("Ya, saya robot")
else:
    print ("bukan, saya manusia")

Output:

bukan, saya manusia

Kondisi ketiga. Pada contoh ini kita akan membuat kondisi berkebalikan dari kondisi kedua dengan operator not.

anda_robot = False
if not anda_robot:
    print ("Ya, saya robot")
else:
    print ("bukan, saya manusia")

Output

Ya, saya robot

Kondisi ke empat. Disini kita akan mendeklarasikan data sebagai None, lalu memeriksanya jika data tersebut ada atau tidak.

data = None
if data:
    print ("data bukan none")
else:
    print ("data adalah none")

Kondisi kelima. Anda pun dapat menggunakan if dalam satu baris pada bahasa pemrograman Python. Syntax nya akan terlihat seperti pada:

a = 10
b = 5
if a > b: print("a lebih besar dari b")

Output:

a lebih besar dari b

Kondisi ke enam. Anda pun dapat menggunakan if else dalam satu baris, seperti pada contoh di bawah ini:

num = 5
print("Angka adalah lima ") if num == 5 else print("Angka bukan lima")

Output:

Nomor adalah lima 

Kondisi ketujuh. Anda pun dapat menggunakan nested if-else statement, yaitu:

num = 25
if num > 10:
    print("Angka lebih besar dari 10")
    if num > 20:
        print("Angka lebih besar dari 20")
    if num > 30:
        print("Angka lebih besar dari 30")
else:
    print("Angka lebih kecil dari 10")
Nomer lebih besar dari 10
Nomer lebih besar dari 20

Kondisi kedelapan. Anda dapat pula mengunakan operator and pada conditional statement. Operator ini menyatakan jika kondisi 1 dan 2 keduanya adalah benar.

num = 10
if num > 5 and num < 15:
     print(num)
else:
     print("Angka bisa lebih kecil dari 5 atau lebih besar dari 15")

Output:

10

Karena 10 adalah angka di antara 5 dan 15.

Kondisi kesembilan. Anda pun dapat menggunakan operator or dalam pernyataan bersyarat. Hal ini untuk menyatakan bahwa jika salah satu kondisi 1 atau kondisi 2 benar, sehingga program akan di eksekusi.

num = 10
if num > 5 or num < 7:
     print(num)

Output:

10

Apakah Anda bingung karena output num adalah 10, padahal pada statement kedua adalah kurang dari 7? Hal ini disebabkan oleh kondisi or. Sehingga, jika salah satu kondisi terpenuhi, maka program akan tetap berjalan.

For loops

Metode lain yang berguna dalam bahasa pemrograman Python adalah iterator. Hal ini sangat membantu jika Anda ingin melakukan sesuatu beberapa kali.

print("Hai")
print("Hai")
print("Hai")

Dapat dibayangkan jika kita ingin menulis kata "Hai" sebanyak seribu kali, tentu kode program kita akan sangat sulit untuk di baca, selain itu, kemungkinan terjadinya kesalahan sangat lah besar. Oleh karena itu, kita dapat menggunakan suatu cara yang disebut loop atau iterator. Ada dua cara untuk menjalankan perintah tersebut, yaitu dengan for atau while loop.

Pada contoh kali ini, kita akan menggunakan metode range. Metode ini yang menentukan rentang loop seberapa banyak perintah harus di ulang. Secara default, titik awalnya adalah 0.

for i in range(3):
   print("Hai")

Output:

Hai
Hai
Hai

Contoh lainnya jika kita ingin membuat rentang yang berbeda, maka kita dapat menggunakan range(1,3).

for i in range(1,3):
   print("Hai")

Output

Hai
Hai

"Hai" hanya tercetak dua kali karena kita telah menentukan rentang dari angka 1 hingga 3. Sederhananya kita dapat mengurangi angka sebelah kanan dengan sebelah kiri.

Kita pun dapat menambahkan perintah lain setelah loop selesai, seperti pada contoh di bawah ini:

for i in range(3):
  print("Hai")
else:
  print("Selesai")

Output

Hai
Hai
Hai
Selesai

Dapat kita lihat bahwa loop telah melakukan iterasi sebanyak 3 kali ( 3 - 0 ). Setelah iterasi selesai, tahap selanjutnya adalah mengeksekusi statement else.

Selain itu kita pun dapat melakukan nesting for loop di dalam for loop yang lain.

for i in range(3):
     for j in range(2):
        print("loop di dalam")
     print("loop di luar")

Output:

loop di dalam
loop di dalam
loop di luar
loop di dalam
loop di dalam
loop di luar
loop di dalam
loop di dalam
loop di luar

Dapat kita lihat bersama bahwa statement "loop di dalam" tereksekusi dua kali. Setelah itu "loop di luar" di eksekusi satu kali. Lalu, "loop di dalam" di eksekusi lagi sebanyak dua kali.

Jika Anda masih bingung, semoga pernyataan ini dapat membantu:

  • Python interpreter melihat ada perintah for loop pada bagian awal. Selanjutnya membaca ke bagian bawah dan menemukan keberadaan for loop yang lain.
  • Sehingga, Python akan mengesekusi "loop di dalam" sebanyak dua kali. Setelah selesai yang pertama, interpreter masih harus melakukannya dua kali lagi dari sisa "loop di luar" yang harus dilakukan.
  • Selanjutnya Interpreter melakukan tugas mulai lagi dari awal dan melihat for "loop di dalam" dan di ulangi terus hingga "loop di luar" selesai.

Kita pun dapat memilih untuk melewati for loop pada kondisi tertentu. Maksudnya adalah setiap kali proses looping dijalankan, hingga intrepreter melihat statement pass, sehingga membuatnya tidak mengesekusi baris tersebut dan akan melanjutkan pada baris setelahnya (jika ada).

for i in range(3):
   pass

Anda tidak akan melihat output di sini, karena setelah pass tidak ada lagi baris kode program.

While loops

Dalam bahasa pemrograman Python, terdapat metode loop atau iterator yang lain, yaitu while loop. Kita pun dapat memberikan hasil yang sama seperti yang telah kita lakukan pada for loop dengan menggunakan while loop, seperti contoh di bawah ini:

i = 0
while i < 3:
  print("Angka", i)
  i += 1

Output

Angka 0
Angka 1
Angka 2

Perlu diperhatikan bahwa, setiap kali kita menggunakan perintah while loop. Kita harus menambahkan statement increment atau statement yang dapat menghentikan loop pada titik tertentu. Jika kita tidak menggunakannya, maka proses loop akan berjalan selama nya.

Cara lain untuk menghentikan loop adalah dengan menambahkan statement break di dalam while loop. Perintah ini akan menghentikan loop seperti pada contoh di bawah ini.

i = 0
while i < 3:
    if i == 3:
           break
    print("Angka", i)
    i += 1

Output

Angka 0
Angka 1
Angka 2

Di sini kita menghentikan while loop ketika intrepreter membaca nilai dari i , yaitu 4 (lebih dari 3).

Contoh lainnya adalah dengan menambahkan statement else di dalam while loop. Statement ini akan di eksekusi setelah while loop selesai.

i = 0
while i < 3:
    print("Angka", i)
    i += 1
else:
    print("Angka lebih besar dari 2")

Output:

Angka 0
Angka 1
Angka 2
Angka lebih besar dari 2

Selanjutnya adalah statement continue. Statement ini dapat digunakan untuk melewati proses eksekusi yang sedang berjalan dan melanjutkan pada baris setelahnya.

i = 0
while i < 5:
  i += 1
  if i == 2:
       continue
  print("Angka", i)

Output:

Angka 1
Angka 3
Angka 4
Angka 5

User input

Bayangkanlah kita membuat suatu aplikasi seperti command-line. Dimana aplikasi ini harus dapat mengambil input dari pengguna dan melakukan sesuai apa yang di perintah. Untuk melakukan hal tersebut, kita dapat menggunakan metode input yang sudah terintegrasikan pada bahasa pemrograman Python.

Memasukkan input

Syntax agar user dapat melakukan input adalah:

variable = input(".....")

Contoh:

name = input("Masukan nama Anda: ")

Output:

Input nama

Ketika kita menggunakan metode input, lalu mengesekusinya, kita akan di minta untuk memasukkan text pada textbox, lalu tekan Enter. Setelah itu kita dapat memeriksa kembali apakah variable nama yang kita masukkan sudah sesuai atau belum.

Print nama

Berdasarkan hasil di atas, maka variable yang kita masukkan adalah benar. Jika Anda mengeceknya, Zacky ini adalah type data string.

type(name)
<class 'str'>

Mari kita coba satu contoh lagi, dimana kita akan meng-assign nilai integer sebagai input.

bahasa pemrograman python
input case
Tanggal

Apakah Anda sedikit bingung karena integer dikenali oleh bahasa pemrograman python sebagai string. Ini bukan kesalahan pada Python, melainkan memang seharusnya memberikan output seperti itu jiga menggunakan metode input. Untuk menangani kasus seperti ini, maka kita akan mengkonversi string kepada integer dengan metode typecasting.

Typecasting

Kita telah melihat bahwa, metode input akan menghasilkan output berupa string, termasuk integer. Sekarang, jika kita ingin mengubah output tersebut kepada integer, hal yang harus kita lakukan adalah:

string ke integer

Disini kita telah mendeklarasikan User input dan mengkonversikannya ke dalam bentuk integer menggunakan metode input pada bahasa pemrograman python . Inilah yang disebut dengan nama typecasting.

Sederhananya, kita dapat melakukan konversi dengan bantuan typecasting untuk semua jenis variable:

  • integer ke string: str()
  • string ke integer: int()
  • integer ke float: float()

catatan: Konversi dari integer ke string pun dapat dilakukan.

Dictionary

Bagian ini pada artikel bahasa pemrograman python, kita akan membahas Dictionary. Kita dapat membayangkannya untuk menyimpan user detail, seperti halnya kamus yang dapat menyimpan berbagai macam kata-kata. Python pun dapat melakukan hal serupa dengan cara seperti di bawah ini:

nama = "Zacky"
profesi = "Developer"

Untuk melihat hasilnya, kita dapat menggunakan perintah print.

print(nama)
Zacky

Sebagai seorang programmer, cara tersebut tidaklah elegan. Untuk membuatnya lebih baik, mari kita menyimpan data tersebut di dalam key-value dictionary.

Dictionary adalah kumpulan variable yang tidak berurutan dan dapat di ubah(dapat di perbaharui).

Format dictionary pada bahasa pemrograman python adalah sebagai berikut:

data = {
	"key" : "value"
}

Untuk memahaminya lebih jauh, maka kita dapat melihat contoh pada penggunaannya.

info_detail = {
 "nama": "Zacky",
 "profesi": "Developer",
 "hobi": "Ngoprek open source software dan hardware"
  }

Mengakses nilai pada dictionary

Untuk dapat mengakses nilai di dalam dictionary ada dua cara yang dapat kita lakukan. Kita akan melihat kedua cara tersebut, sehingga dapat menentukan mana yang lebih baik.

Untuk mengakses nilai pada key nama dari info_detail di dalam dictionary pada bahasa pemrograman python adalah seperti pada gambar di bawah ini:

Kita dapat melihat bahwa cara pertama lebih mudah untuk dipahami. Namun, masalah akan timbul ketika kita hendak mengakses data yang tidak ada di dalam dictionary, seperti pada contoh di bawah ini:

info_detail["umur"]
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-41-790676cbae31> in <module>
----> 1 info_detail["umur"]
KeyError: 'umur'

Dari pesan error di atas terindikasi bahwa tidak ada key yang bernama umur. Sekarang, mari kita coba skenario yang sama dengan menggunakan metode kedua.

info_detail.get("umur")

Kita tidak mendapatkan response apapun dari Python console setelah kita hit run. Mari kita mencoba debugging lebih jauh lagi untuk mengetahui mengapa hal ini dapat terjadi. Namun sebelumnya, kita akan menetapkan variable umur untuk memanggil metode get, lalu lakukan perintah print.

umur = info_detail.get("umur")
print(umur)

Output

None

Berdasarkan contoh di atas, ketika perintah get tidak menemukan nilai key ,maka akan menghasilkan variable bernilai None. Hal ini yang menyebabkan kita tidak mendapatkan pesan error. Anda mungkin bertanya-tanya, manakah metode yang lebih baik. 

Sebagian besar programmer biasanya menggunakan metode kedua karena lebih masuk akal. Namun, untuk beberapa kondisi di mana pengecekan kode program yang lebih ketat, maka kita perlu menggunakan metode pertama.

Memeriksa keberadaan key.

Kita mungkin bertanya-tanya, bagaimana cara kita ingin mengetahui apakah suatu dictionary memiliki key tertentu atau tidak. Pada bahasa pemrograman python, metode key() dapat menyelesaikan masalah ini.

if "umur" in info_detail.keys():
     print("Ya, ada di dalam key")
else:
     print("tidak ada di dalam key")

Output:

tidak ada di dalam key

Bagaimana jika kita ingin memeriksa apakah suatu dictionary itu memiliki suatu nilai atau tidak? Untuk mengetahuinya, mari kita mendeklarasikan dictionary kosong seperti di bawah ini:

info_detail = {}

Kita dapat menggunakan if-else pada dictionary secara langsung untuk melakukan pengecekan, jika memberikan hasil true maka terdapat data di dalam dictionary tersebut, sebaliknya false jika tidak memiliki data.

Pada bahasa pemrograman python, metode bool pun dapat di gunakan untuk pengecekan apakah suatu dictionary memiliki nilai atau tidak. Perlu di ingat bahwa boolean akan memberikan hasil False jika dictionary tidak memiliki nilai dan True jika memiliki nilai.

Update key yang memiliki nilai.

Pada bagian ini kita akan mencoba untuk mengubah nilai yang sudah ada di dalam dictionary. Misalkan kita sudah memiliki dictionary seperti di bawah ini:

info_detail = {
  "nama":"Zacky",
  "profesi": "Developer"
}

Misalkan kita ingin mengubah status profesi yang ada di dalam dictionary, maka syntax untuk melakukannya ialah:

info_detail["profesi"] = "tukang kayu"
print(info_detail)
{'nama': 'Zacky', 'profesi': 'tukang kayu'}

Mengubah nilai key pada dictionary adalah sama dengan cara memberikan nilai pada variabel.

Menambahkan pasangan key-value

info_detail["umur"] = "120"
print(info_detail)
{'nama': 'Zacky', 'profesi': 'tukang kayu', 'umur': '120'}

Dapat kita lihat bahwa key yang baru kita masukan ke dalam dictionary adalah umur yang memiliki value 120.

Menghapus pasangan key-value.

Untuk menghapus pasangan key-value pada bahasa pemrograman python adalah dengan metode pop.

info_detail.pop("umur")
'120'
print(info_detail)
{'nama': 'Zacky', 'profesi': 'tukang kayu'}

Dapat di lihat bahwa key-value umur telah hilang dari dictionary.

Meng-copy dictionary

Dictionary tidak dapat di copy dengan menggunakan cara konvensional. Kita tidak dapat meng-copy nilai dictA ke dictB seperti contoh di bawah ini:

dictA = dictB
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-48-62e270af49fb> in <module>
----> 1 dictA = dictB

NameError: name 'dictB' is not defined

Cara di atas akan memberikan pesan error. Cara yang tepat untuk copy value adalah dengan menggunakan metode copy.

dictB = info_detail.copy()
print(dictB)
{'nama': 'Zacky', 'profesi': 'tukang kayu'}

Lists

List adalah struktur data pada bahasa pemrograman Python yang mutable (dapat di ubah) dan memiliki element berurutan secara sekuensial. Setiap elemen di dalam list disebut dengan item. Untuk mendefinisikan suatu list pada bahasa pemrograman Python adalah dengan menggunakan tanda kurung siku [ ]. Contohnya adalah:

data =[7, 6.789, "abc", False]

List sangat membantu ketika kita bekerja dengan banyak nilai yang saling berhubungan. List memungkinkan kita untuk menyimpan data secara bersamaan dan melakukan metode yang sama untuk melakukan suatu operasi pemrograman terhadap nilai yang banyak dengan sekali perintah.

Mengakses element di dalam list

Mengakses element di dalam list adalah dengan cara memperhatikan urutannya yang di mulai dari angka nol untuk anggota list pertama.
Contoh syntax untuk akses list urutan ketiga:

data[2]
'abc'

Selain mengakses list pada posisi tertentu, anda pun dapat menggunakan rentang anggota list, contoh nya:

data[0:2]
[7, 6.789]

Angka 0 di dalam kurung siku menandakan dari mana kita memulai (dalam hal ini di mulai dari urutan pertama), sedangkan angka kedua 2 adalah posisi nilai sebelum urutan tersebut (sebelum urutan ketiga).

Menambahkan item ke dalam list

Pada bahasa pemrograman python, untuk menambahkan anggota ke dalam list adalah dengan menggunakan metode append.

data.append("tambahan")
data
[7, 6.789, 'abc', False, tambahan']

Mengubah nilai item di dalam list

Pada contoh di bawah ini, kita akan mengubah item ke-empat yaitu False, menjadi True.

data[3] = True
data
[7, 6.789, 'abc', True, 'tambahan']

Menghapus item dari dalam list

Untuk menghapus item di dalam list pada bahasa pemrograman python adalah dengan menggunakan metode remove.

data.remove("abc")
data
[7, 6.789, True, 'tambahan']

Looping pada list

Kita pun dapat memerintahkan fungsi loop di dalam list dengan cara:

for i in data:
    print(i)
7
6.789
True
tambahan

Memeriksa keberadaan list

Untuk memeriksa keberadaan anggota di dalam list adalah dengan cara di bawah ini:

if 8 in data:
    print ("ada")
else:
    print("tidak")

tidak

Kita dapat melihat bahwa angka 8 tidak termasuk di dalam list, sehingga akan kembali pada kondisi else, yaitu tidak.

Meng-copy list

Untuk meng-copy list dari satu kepada yang lainnya adalah dengan menggunakan metode copy.

List2 = data.copy()
List2
[7, 6.789, True, 'tambahan']

Memeriksa panjang list

Pada bahasa pemrograman Python, untuk memeriksa panjang list adalah dengan menggunakan metode len.

len(data)
4

Menggabungkan dua list

Untuk menggabungkan dua list, kita dapat menggunakan operator +.

list1 = [4, 8,1, "hey"]
list2 = [2, 8, "apa kabar"]
list1 + list2

[4, 8, 1, 'hey', 2, 8, 'apa kabar']

Apa yang terjadi jika kita mencoba untuk mengakses elemen yang tidak terdapat di dalam list?

list1[4]
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-83-853c8927f3be> in <module>
----> 1 list1[4]

TypeError: 'type' object is not subscriptable

Pada kode program di atas, kita hendak mencoba untuk mengakses element kelima [4]. Seperti yang telah kita ekspektasikan, bahwa kode tersebut akan memberikan pesan error, karena kita hanya memiliki empat elemen di dalam list tersebut.

Tuples

Pada bagian sebelumnya, list bekerja sangat baik untuk menyimpan koleksi data dan yang di ubah (mutable). Namun, terkadang kita ingin membuat list yang tidak dapat di ubah isinya. Tuple dapat melakukannya untuk kita, dengan kata lain tuple adalah list yang immutable (data tidak dapat di ubah).

data = ( 3, 6 , 9, "Hai")
data
(3, 6, 9, 'Hai')

Mengakses elemen tuple

Seperti hal nya untuk mengakses element pada list, tupple pun dapat di akses dengan menggunakan syntax yang sama.

data[2]
2

Mengakses rentang index pun memiliki cara yang sama dengan list:

data[1:4]
(6, 9, 'Hai')

Mengubah nilai element pada tuple

Mungkin Anda bertanya-tanya. Lho, bukannya tuple tidak dapat di ubah? Anda tidak perlu khawatir jika melakukan kesalahan input pada tuple. Ada trik yang dapat kita lakukan yaitu dengan cara mengkonversi tuple menjadi list, lalu dikonversikan kembali ke dalam bentuk tuple. Contohnya:

data = ( 3, 6, 9, 'Hai')
data2 = list(data) # Konversi data ke list
data2[3] = "hai juga" # update nilai pada list
data = tuple(data2) # konversi balik data ke tuple
data
(3, 6, 9, 'hai juga')

Catatan: Sekali tuple di buat, elemen baru tidak dapat ditambahkan.

Sets

Sets adalah salah satu tipe data yang lain pada bahasa pemrograman Python. Sets merupakan data tidak berurutan dan tidak memiliki indeks, dinyatakan seperti pada contoh berikut ini:

data = { "hai", "salam kenal", 14, 20 }
data
{14, 20, 'hai', 'salam kenal'}

Mengakses elemen di dalam sets

Oleh karena sets tidak memiliki indeks, maka, kita tidak dapat mengaksesnya secara langsung. Oleh karena itu, untuk mengakses elemen tersebut perlu menggunakan fungsi loop.

for i in data:
    print(i)
salam kenal
20
hai
14

Catatan: sekali sets di buat, nilanya tidak dapat di ubah.

Menambahkan item pada sets

Pada bahasa pemrograman python, untuk menambahkan elemen pada suatu sets adalah dengan cara menggunakan metode add.

data.add("tambah")
data
{14, 20, 'hai', 'salam kenal', 'tambah'}

Memeriksa panjang dan menghapus item pada

// Memeriksa panjang elemen
len(data)
5
// Menghapus item
data.remove("hai")
data
{14, 20, 'salam kenal', 'tambah'}

Functions

Ketika kita ingin melakukan tugas tertentu pada program yang kita kembangkan. Kita pun dapat menggunakanfunction pada kode suatu program. Terlebih lagi jika kita ingin melakukan suatu perintah berulang kali di dalam program dan tidak ingin untuk menggunakan kode yang sama berkali-kali. Dengan menggunakan function ini, hidup programmer menjadi lebih mudah.

Untuk mendeklarasikan function pada bahasa pemrograman python adalah dengan menggunakan kata kunci def, contoh nya adalah:

def hello_world():
   print("Hello world, kami dari Indonesia")

Pada contoh di atas, kita telah mendeklarasikan function hello_world, yang ketika di panggil akan mencetak tulisan "Hello world, kami dari Indonesia". Untuk memanggil function tersebut, kita harus menggunakan syntax seperti pada contoh di bawah ini:

hello_world()
//output:
Hello world, kami dari Indonesia

Perlu di ingat bahwa tanda kurung () harus disertakan untuk mengeksekusi function pada bahasa pemrograman python. Jika kita lupa menyertakannya, maka, akan terlihat seperti pada contoh bawah ini:

hello_world
//output:
<function __main__.hello_world()>

Mari kita melihat contoh sederhana kegunaan function ketika hendak melakukan operasi aritmatika penambahan. Cara konvensional untuk melakukan operasi tersebut yaitu:

a = 10 
b = 3
a + b
//output:
13

Sekarang, jika kita ingin mengganti nilai variabel a dan b untuk melakukan operasi penambahan yang sama, kita harus melakukannya lagi seperti pada cara diatas.

a = 10 
b = 3
a + b
//output:
13
a = 1
b = 9
a + b
//output:
10

Dapat dibayangkan jika hanya untuk menggunakan operasi penambahan tersebut dan dilakukan sebanyak puluhan kali, kita harus selalu menyesuaikan nilai a dan b. Cara tersebut sangatlah tidak efisien. Namun, kita tidak perlu khawatir, karena masalah tersebut dapat diselesaikan dengan menggunakan function seperti pada contoh selanjutnya.

def penambahan(a,b):
    print(a+b)

Function di atas adalah untuk operasi aritmatika penjumlahan variable a dan b. Untuk memanggil function tersebut, kita dapat menggunakan syntax di bawah ini:

penambahan(20,3)
//output
23

Dapat kita lihat bahwa dengan menggunakan function untuk mengeksekusi suatu perintah adalah sangat mudah. Sekarang, bagaimana jika kita tidak memasukkan argumen di dalam tanda kurung function penambahan tersebut?

penambahan()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-105-7668fff7f74a> in <module>
----> 1 penambahan()

TypeError: penambahan() missing 2 required positional arguments: 'a' and 'b'

Python akan memberikan pesan TypeError dan menginformasikan kepada kita untuk menggunakan dua argument. Lalu, bagaimana jika kita memasukkan argument ketiga?

penambahan(20,3, 1)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-106-23ba42c141cb> in <module>
----> 1 penambahan(20,3, 1)

TypeError: penambahan() takes 2 positional arguments but 3 were given

Seperti yang terlihat pada pesan error di atas, kita telah memanggil 3 argument, namun pada function penambahan yang telah kita tulis seharusnya hanya memiliki 2 argumen.

Lalu, bagaimana jika kita tidak mengetahui berapa banyak argument yang terdapat pada suatu function? Untuk menjawab masalah tersebut kita dapat menggunakan args dan kwargs pada bahasa pemrograman python.

Args

Kita dapat menggunakan args dan kwargs (di bahas pada bab selanjutnya) jika tidak mengetahui ada berapa banyak argumen yang terdapat pada suatu function.

Untuk meneruskan sejumlah n argument kepada suatu function, kita dapat menggunakan args. Untuk mendefinisikan args, maka kita harus menambahkan tanda * di depan argumen.

Ingat!Ketika kita menambahkan tanda * di depan, kita akan menerima argument dalam bentuk tuple.

def penambahan(*num):
    print(num)

*num pada kasus di atas adalah contoh dari args. Sekarang kita dapat memanggil kembali fungsi add dan melewati beberapa argumen sehingga tidak akan mendapatkan pesan TypeError.

Sehingga, untuk melakukan operasi penjumlahan, kita dapat secara langsung menggunakan metode yang sudah build-in pada bahasa pemrograman Python, yaitu sum.

def penambahan(*num):
    print(sum(num))

Sekarang kita dapat memanggil function penambahan dan kita akan melihat output yang benar seperti pada dua contoh di bawah ini.

penambahan(1,2,3) # memanggil fungsi
6

penambahan(1,2,3,4) # memanggil fungsi
10

Keyword Arguments

Terkadang, kita tidak mengetahui urutan dari suatu argumen yang akan diteruskan ketika function di panggil. Pada kasus seperti ini, kita dapat menggunakan keyword arguments yang dapat diteruskan tanpa harus mengingat urutannya. Namun, function tersebut akan mengetahui nilai yang benar. Lihatlah contoh di bawah ini:

Hasil pemanggilan function dan argument di atas adalah tepat. Namun, bagaimana jika kita memanggil function tersebut seperti ini:

info_detail("tukang kayu", "Zacky")
# outputnya akan seperti:
Nama: tukang kayu
Profesi:  Zacky

Hasil di atas adalah tidak benar. Yang terjadi pada kasus ini adalah variable nama mengambil kata "tukang kayu" dan variable profesi memasukkan kata "Zacky". Untuk scenario yang kita tidak ketahui urutan argumentnya, maka cara untuk memanggil keyword argument pada bahasa pemrograman python adalah:

info_detail(profesi= "tukang kayu", nama= "Zacky")
# outputnya akan seperti:
Nama: Zacky
Profesi:  tukang kayu

Default Arguments

Pada kondisi di mana kita tidak yakin apakah suatu argumen memiliki suatu nilai atau tidak ketika function di panggil. Kita dapat menggunakan metode lain, yaitu default argument seperti pada contoh di bawah ini.

def info_detail(nama, profesi = None):
    print("Nama:", nama)
    print("Profesi: ", profesi)

Di sini kita menyisipkan variable bernilai None pada argument profesi. Sehingga, jika kita tidak memanggil argument kedua, ketika memanggil function tersebut. Maka, argument kedua akan mengambil nilai None sebagai default. Sebagai contoh, mari kita panggil function info_detail.

info_detail("zacky")
# output
Nama: zacky
Profesi:  None

Jika kita memasukkan nilai pada argument kedua, maka nilai None akan berubah dan menjadi nilai argument kedua.

info_detail("zacky", "tukang kayu")
#output
Nama: zacky
Profesi:  tukang kayu

Namun, jika kita menentukan suatu nilai pada argument pertama sebagai default. Lalu, menjadikan argumen kedua sebagai non-default. Maka, Python akan memberikan pesan error seperti di bawah ini:

def info_detail(nama = None, profesi):
    print("Nama:", nama)
    print("Profesi: ", profesi)

File "<ipython-input-130-6c704f968e19>", line 1
    def info_detail(nama = None, profesi):
                   ^
SyntaxError: non-default argument follows default argument

Ingat! Urutan untuk menentukan parameter suatu argumen di dalam function adalah:

  1. Posisi parameter atau non-default, contoh (a, b, profesi)
  2. keyword parameter atau default parameter, contoh (a="abc", nama=None)

Kwargs

Untuk kondisi di mana kita tidak mengetahui ada berapa banyak keyword argumen yang akan diteruskan kepada function. Maka, kita akan menggunakan kwargs. Penggunaan kwarg adalah dengan menempatkan tanda ** di depan argumen.

Ingat! Ketika kita menempatkan tanda ** di depan argumen. Maka, kita akan menerima argument dalam bentuk dictionary.

Mari kita mencoba untuk memahaminya dengan contoh yang konkrit. Kita akan mendekalarasikan function yang dapat menerima nama sebagai argument dengan menggunakan tanda ** di depannya.

def user(**nama):
    print(nama)

Ketika kita memanggil user function, maka kita akan menerima data dalam bentuk dictionary. Mari kita lihat contoh di bawah ini:

user(nama1="messi",name2="ronaldo")
#output
{'nama1': 'messi', 'name2': 'ronaldo'}

Sekilas seperti tidak memiliki perbedaan dengan args. Namun, ini bukan lah args. Pada args, kita tidak dapat mengakses nilai tertentu berdasarkan namanya karena args berbentuk tuple. Sedangkan pada kwargs, kita mendapatkan data dalam bentuk dictionary sehingga nilainya dapat di akses.

Mari kita lihat contoh di bawah ini:

def user(**info_detail):
    print(info_detail['nama'])

Lalu, panggil function tersebut:

user(nama="Zacky",profesi="tukang kayu")
#output
Zacky

Terlihat bahwa dengan menggunakan kwargs kita dapat menampilkan nilai dari nama, yaitu Zacky.

Kesimpulan

Kita telah menelurusi dasar-dasar bahasa pemrograman Python yang cukup intensif. Semoga dapat membantu Anda dalam memahami bahasa pemrograman Python dengan mudah. Saya menyediakan notebook materi ini dalam bentuk file jupyter notebook dengan klik tombol di bawah ini:

Download file Python Dasar

Jika Anda ingin menggunakan bahasa Python pada proyek yang sebenarnya, seperti pada implementasi Internet of Things, maka Anda dapat mengikuti tutorial ini. Atau pada implementasi pada Artificial Intellegent klik di sini

Terima kasih telah membaca artikel ini, semoga bermanfaat untuk anda.

Artikel Rekomendasi:

Python Data Visualisasi dengan Seaborn
Mendeteksi Object Dengan Tensorflow
IoT D
engan Python dan Raspberry Pi
Mendeteksi Object Dengan Raspberry Pi

Referensi:

freebodecamp.org
Buku Python Crash Course

Muhammad Zacky Asy'ari
Saya seorang Engineer dan Tech Entrepreneur. Memiliki ketertarikan dalam bidang Internet of Things, data acquisition, data analytics dan visualization, machine learning, software testing, serta web design dan development.
Silahkan telusuri blog ini dengan senang hati :).

Terbaru

Copyright since @ 2020
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram