Sesi Sharing PPKBI - Pemrograman Python

Tadi malam, saya memmberikan pengenalan pemrograman Python kepada kaum Bapak Gereja Kristen Berbahasa Indonesia (GKBI) Kuala Lumpur. Demo coding menggunakan Jupyter Notebook. Notebook kemudian saya Save As sebagai file markdown sehingga mudah untuk dikonversi menjadi blog.

Mem-print output

print('Selamat pagi!')
Selamat pagi!

Menanyakan Input

nama = input('Siapa nama Anda? ')
print('Nama Anda {0}'.format(nama))
Siapa nama Anda? Ando Silaen
Nama Anda Ando Silaen

Variabel

nama = 'Mico Siahaan' # string
jumlah_anak = 2    # bilangan bulat
bunga_bank = 0.05  # bilangan float
nama_anak = ['Mathias Siahaan', 'Malakhias Siahaan'] # list
array = (1 , 5, 6, 8, 10)  # tuple
daftar_kata = {'tabo': 'enak', 'mangan': 'makan', 'biang': 'anjing'} # dictionary

print(nama)
print(jumlah_anak)
print(bunga_bank)
print(nama_anak)
print(array)
print(daftar_kata)
Mico Siahaan
2
0.05
['Mathias Siahaan', 'Malakhias Siahaan']
(1, 5, 6, 8, 10)
{'tabo': 'enak', 'mangan': 'makan', 'biang': 'anjing'}

Angka/Numbers

harga = 1000
diskon = 0.1 #diskon 10%
dibayar = harga * (1-diskon) # dibayar = harga - (1-diskon)

print(f'Jumlah yang perlu dibayar {dibayar}')
Jumlah yang perlu dibayar 900.0
pokok = 1000
bunga_pertahun = 0.04
dibayar = pokok * (1 + bunga_pertahun) ** 3

print(f'Jumlah dibayar setelah 3 tahun {dibayar}')
Jumlah dibayar setelah 3 tahun 1124.864
print(100 / 6)
print(100 % 6)
print(100 + 6)
print(100 - 6)
16.666666666666668
4
106
94

Strings

nama = 'Mico '
marga = 'Siahaan '
nama_lengkap = nama + marga
print(nama_lengkap)
print(nama * 3)
Mico Siahaan 
Mico Mico Mico

List

list_anak = ['Mathias', 'Malakhias']
list_keponakan = ['Jojo', 'Ivana']
list_anak_anak = list_anak + list_keponakan
print(list_anak_anak)
list_anak_anak[2] = 'Jonathan'
print(list_anak_anak)
['Mathias', 'Malakhias', 'Jojo', 'Ivana']
['Mathias', 'Malakhias', 'Jonathan', 'Ivana']
anak_sulung = list_anak[0]
print(anak_sulung)
anak_kandung = list_anak_anak[0:2]
print(anak_kandung)
Mathias
['Mathias', 'Malakhias']

Tuples

tuple_anak = ('Mathias', 'Malakhias')
tuple_keponakan = ('Jojo', 'Ivana')
tuple_anak_anak = tuple_anak + tuple_keponakan
print(tuple_anak_anak)
tuple_anak_anak[2] = 'Jonathan'
print(tuple_anak_anak)
('Mathias', 'Malakhias', 'Jojo', 'Ivana')



---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-13-d216d0a934f0> in <module>
      3 tuple_anak_anak = tuple_anak + tuple_keponakan
      4 print(tuple_anak_anak)
----> 5 tuple_anak_anak[2] = 'Jonathan'
      6 print(tuple_anak_anak)


TypeError: 'tuple' object does not support item assignment

Dictionary

dict_batak = {'mangan': 'makan', 'tabo': 'enak', 'jabu': 'rumah'}
print(dict_batak['jabu'])

print(dict_batak.keys())
print(dict_batak.values())

dict_batak['tabo'] = 'lezat'
dict_batak
rumah
dict_keys(['mangan', 'tabo', 'jabu'])
dict_values(['makan', 'enak', 'rumah'])





{'mangan': 'makan', 'tabo': 'lezat', 'jabu': 'rumah'}

Set

list_buah = ['apel', 'jeruk', 'semangka', 'jeruk']
set_buah = {'apel', 'jeruk', 'semangka', 'jeruk'}

print(list_buah)
print(set_buah)
['apel', 'jeruk', 'semangka', 'jeruk']
{'jeruk', 'semangka', 'apel'}
buah_favorit = set_buah[1]
print(buah_favorit)
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-25-3bfdf3d116bf> in <module>
----> 1 buah_favorit = set_buah[1]
      2 print(buah_favorit)


TypeError: 'set' object does not support indexing

For

list_angka = [1, 2, 3, 4, 5, 6]
for angka in list_angka:
    print(angka, end=' ')
1 2 3 4 5 6
tuple_anak_anak = ('Mathias', 'Malakhias', 'Jonathan', 'Ivana')
for anak in tuple_anak_anak:
    print('Nama anak: {0}'.format(anak))
Nama anak: Mathias
Nama anak: Malakhias
Nama anak: Jonathan
Nama anak: Ivana
list_angka = [1, 2, 3, 4, 5, 6]

list_kuadrat = [kucing ** 2 for kucing in list_angka]

print(list_kuadrat)
[1, 4, 9, 16, 25, 36]

While

angka_awal = 0
angka_akhir = 10
angka = angka_awal
while angka <= angka_akhir:
    print('Angka: {0}'.format(angka))
    angka = angka + 1
Angka: 0
Angka: 1
Angka: 2
Angka: 3
Angka: 4
Angka: 5
Angka: 6
Angka: 7
Angka: 8
Angka: 9
Angka: 10

Function

def print_nama(nama):
    print('Selamat pagi {0}'.format(nama))
    print('Sudah makankah?')

def luas_kotak(sisi):
    print(sisi*4)


nama = input('Nama: ')
print_nama(nama)

sisi = int(input('Sisi: '))
print(luas_kotak(sisi))
Nama: Ando Silaen
Selamat pagi Ando Silaen
Sudah makankah?
Sisi: 2
8
None
from math import pi

def luas_lingkaran(radius):
    """
    Fungsi untuk menghitung luas lingkaran

    Parameter:
    ----------
    radius    : radius/jari-jari dari lingkaran
    """
    return (pi * radius ** 2)

radius = input('Radius lingkaran (cm): ')
luas = luas_lingkaran(int(radius))
print('Luas lingkaran (cm2): {0}'.format(luas))
Radius lingkaran (cm): 5
Luas lingkaran (cm2): 78.53981633974483
help(luas_lingkaran)
#help(print)
#help(string)

import math

print(math.factorial(20))
Help on function luas_lingkaran in module __main__:

luas_lingkaran(radius)
    Fungsi untuk menghitung luas lingkaran

    Parameter:
    ----------
    radius    : radius/jari-jari dari lingkaran

2432902008176640000

Class

class Anak:
    """
    Class untuk definisi Anak

    Attributes:
    -----------
    nama     : nama anak

    Methods:
    ------
    print_nama    : return nama anak
    """

    def __init__(self, nama, nama_belakang):
        #inisiasi nama
        self._nama = nama
        self._belakang = nama_belakang

    def print_nama(self):
        # Method: nama 
        # return nama
        return self._nama + ' ' + self._belakang

mathias = Anak('Mathias', 'Siahaan')
print(mathias.print_nama())

help(Anak)
Mathias Siahaan
Help on class Anak in module __main__:

class Anak(builtins.object)
 |  Anak(nama, nama_belakang)
 |  
 |  Class untuk definisi Anak
 |  
 |  Attributes:
 |  -----------
 |  nama     : nama anak
 |  
 |  Methods:
 |  ------
 |  print_nama    : return nama anak
 |  
 |  Methods defined here:
 |  
 |  __init__(self, nama, nama_belakang)
 |      Initialize self.  See help(type(self)) for accurate signature.
 |  
 |  print_nama(self)
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)

String Methods

nama = 'mico siahaan'
print(nama.capitalize())
print(nama.title())
print(nama.upper())

list_char = nama.split()
print(list_char)
Mico siahaan
Mico Siahaan
MICO SIAHAAN
['mico', 'siahaan']

Nice to read [https://docs.python.org/3/library/stdtypes.html#string-methods]

Errors/Exceptions

list_anak = ['Mathias', 'Malakhias']
list_anak[1] = 'Jojo'
list_anak
['Mathias', 'Jojo']
int_utang = int(input('Utang pokok: '))
float_bunga = 0.03
float_bayar = int_utang * (1 + float_bunga) ** 2
print("Dibayar: {0}".format(float_bayar))
Utang pokok: 1000
Dibayar: 1060.8999999999999
class Anak:
    def __init__(self, nama):
        self._nama = nama
    def nama(self):
        return self._nama

mathias = Anak('Mathias Siahaan')
mathias.nama()
'Mathias Siahaan'
list_angka = range(200)
for angka in list_angka:
    plus_one = angka + 1
    print(plus_one)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
angka = 10
if angka > 5:
    print('Lebih dari 5')
else:
    print('Kurang dari 5')
Lebih dari 5

Happy Pythoning!

links

social