Python Introduction - Indonesia - Part 1
NOTE
tutorial ini masih akan diupdate, karena belum lengkap ๐
Pre-requisites
-
Install python di komputer. Klik link berikut untuk tutorialnya Install python di Windows
-
Install text/code editor. Saya sarankan pakai VSCode untuk yang paling lazim/populer
-
Start coding!
Data Types
Di dalam bahasa pemrograman, ada banyak data types. Yang di awal perlu kita kenali ada beberapa.
Type | Name |
---|---|
Text Type: | str |
Numeric Types: | int, float |
Boolean Types: | bool |
Data Structures
Kemudian ada juga konsep data structure, yang bisa kita umpamakan sebagai sebuah object yang berisikan data-data dari tabel di atas
Type | Name |
---|---|
Sequence: | list, tuple |
Mapping/Hashmap: | dictionary |
Set Types: | set |
Loops
Loops, adalah sebuah mekanisme eksekusi program yang dilakukan berulang-ulang. Biasanya kita pakai untuk melakukan iterasi terhadap urutan data, atau kita ingin mengeksekusi sebuah program berkali-kali hingga kita mencapai kondisi tertentu.
For Loops
Syntax:
1
2
for <variable-name> in <data-to-iterate>:
do_something()
example:
1
2
for x in [1,2,3,4]:
print(x)
output:
1
2
3
4
1
2
3
4
example:
1
2
for x in range(5):
print(x)
output:
1
2
3
4
5
0
1
2
3
4
perhatikan, iterasi tidak dimulai dari 1
ketika menggunakan range()
.
ini dikarenakan dalam bahasa pemrograman, angka atau index dimulai dari angka 0
sehingga jika kita tidak menyatakan index pertama untuk diiterasi, makan python by-default akan mulai dari 0
jika kita ingin mulai dari 1, kita bisa tuliskan seperti berikut
1
2
for x in range(1,5):
print(x)
output:
1
2
3
4
1
2
3
4
selain itu, angka 5
juga tidak muncul, karena memang by-default, behaviour fungsi range()
adalah demikian. Seringkali disebut for <n> non-inclusive
While Loops
Syntax:
1
2
while <condition>:
do_something()
example:
1
2
3
4
i = 0
while i < 5:
print(i)
i += 1
output:
1
2
3
4
5
0
1
2
3
4
Variables, Functions, and Classes
Di dalam bahasa python, sebagaimana programming language lainnya, ada beberapa konsep untuk me-_define_ data dan perintah-perintah yang bisa kita gunakan di dalam code kita berkali-kali.
Pertama ada Variables
Jika mengingat pelajar matematika, seringkali kita bisa menyimpan sebuah angka kepada sebuah variabel, contoh:
1
2
3
4
5
6
a = 1
b = 2
c = a+b
--> c = 1 + 2
--> c = 3
Konsep tersebut juga diterapkan dalam programming language python.
Untuk contoh yang paling sederhana, kita bisa menggunakan built-in function di python, print()
example:
1
2
3
4
5
a = 1
b = 2
c = a+b
print(a, b, c)
output:
1
1 2 3
Kedua, Functions
Balik lagi, sama seperti konsep matematik, di programming language ada konsep function. Function adalah sebuah code/algoritma yang kita define, dimana kita memasukkan sebuah input, dan akan mengembalikan sebuah output.
Contoh, kalau dalam matematik, kita bisa menulis
1
2
3
f(x) = mx + c
# x adalah input
# hasil akhir adalah (m*x) + c
example:
1
2
3
4
5
m = 10
c = 3
x = 6
f(6) = 10*6 + 3
--> 63
Jika kita implementasi dalam python, syntax seperti ini
1
2
3
4
def function-name(<input-arguments>):
# do something here
...
return <output>
example:
1
2
3
4
5
6
7
8
def sum_num(a, b):
c = a + b
return c
n1 = sum_num(1, 2)
n2 = sum_num(5, 4)
print(n1)
print(n2)
output:
1
2
3
9
Terakhir, Classes
Untuk konsep yang ini, paling mudah untuk kita mengumpamakan jika kita ingin memodelkan sebuah object ke dalam sebuah program/code.
Mengapa hal ini penting? Karena sebenarnya yang kita lakukan dalam menulis code, adalah mencoba untuk mirror dunia nyata ke dalam bentuk code/program/digital. Bagaimana caranya kita bisa merepresentasikan sebuah keranjang belanja yang ingin di-_checkout_ oleh seorang customer di aplikasi e-commerce. Atau bagaimana kita bisa mendengarkan music yang dimainkan live oleh sebuah band di negara yang berbeda, secara langsung lewat internet.
Dalam python, ada konsep tersebut, yaitu Classes.
Syntax:
1
2
3
4
5
6
7
8
9
10
11
class Name_of_Class:
# write the methods & properties of this class here
# it can contain functions (methods) & variables (properties)
def __init__(self, <input-arguments>):
self.<property-name> = <initial-value-of-property>
def method_name(self, <input-arguments>):
# do something here
...
return <output>
Contoh, misalkan kita ingin punya sebuah objek kucing, dimana kucing bisa menngeong, dan rata-rata bisa lompat sebanyak 5 kali sebelum kucing menjadi lelah. Namun ternyata kita juga punya objek anjing, yang memiliki kemampuan menggonggong, dan rata-rata bisa lompat sebanyak 1 kali sebelum menjadi lelah.
example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class Kucing:
def __init__(self, jumps=5):
self.jumps = jumps
def meow(self):
print("meow")
def jump(self):
if self.jumps == 0:
print("cat cannot jump anymore!")
return
print("cat jumps!")
self.jumps -= 1
class Anjing:
def __init__(self, jumps=1):
self.jumps = jumps
def gonggong(self):
print("guk guk!")
def jump(self):
if self.jumps == 0:
print("dog cannot jump anymore!")
return
print("dog jumps!")
self.jumps -= 1
kucing = Kucing()
anjing = Anjing()
kucing.jump()
kucing.meow()
anjing.jump()
anjing.gonggong()
print(kucing.jumps)
print(anjing.jumps)
anjing.jump()
output:
1
2
3
4
5
6
7
cat jumps!
meow
dog jumps!
guk guk!
4
0
dog cannot jump anymore!
Changelog
2023-11-29
- fix some codeblocks not rendering properly
2023-11-28
- added
while loops
- added
variables, functions, and classes
2023-11-22
- init first version of tutorial