Sesi 2: Praktikum Algoritma Pemrograman

Offline di Departemen Matematika
Published

November 9, 2024

Kembali ke MIPA Open House

Kalian bisa men-download modul ini dalam format .ipynb dengan memencet tombol berikut:

print("Hello world!")
print("Selamat pagi")
print("Selamat siang")
print("Selamat sore")

Untuk membuat catatan atau comment, gunakan #

# ini comment (catatan)

Operasi Dasar

  • Tambah: +

  • Kurang: -

  • Kali: *

  • Bagi: /

  • Modulo (hasil bagi): %

  • Pangkat: **

# tambah
print(1 + 2)
# kurang
print(2-1)
# kali
print(1*2)
# bagi
print(2/1)
# modulo
print(4 % 3)
print(5 % 3)
print(6 % 3)
# pangkat
print(4**3)

\[\frac{3^2 - 5}{2} + 1 = \text{ ?}\]

(3**2 - 5)/2 + 1
3.0

Variabel, Input, String

a = 2
b = 3
a = b
print(a)
print(b)
nama = input("Masukkan nama: ")
print(nama)
kalimat = "Nama saya " + nama
print(kalimat)
print("Nama saya " + nama)
nama = input("Masukkan nama: ")
print("Nama saya " + nama)

Buatlah kode yang menerima input nama lalu menghasilkan pesan:

Selamat siang (nama)

print("Selamat siang " + nama)

Tipe Data

nama = input("Masukkan nama: ")
print(nama)
Masukkan nama: Sam
Sam
print(type(nama))
<class 'str'>
x_masuk = input("Masukkan angka: ")
print(x_masuk)
Masukkan angka: 25
25
print(type(x_masuk))
<class 'str'>
x_angka = int(x_masuk)
print(x_angka)
25
print(type(x_angka))
<class 'int'>
y = int(input("Masukkan angka: "))
print(y)
Masukkan angka: 30
30
print(type(y))
<class 'int'>

Pernyataan Bersyarat/Kondisional: if, elif (else if), else

x = int(input("Masukkan angka: "))
if (x % 2 == 0):
  print("Genap")
else:
  print("Ganjil")
Masukkan angka: 5
Ganjil

Pernyataan Berulang: for, while

Problem: hitung

\[1 + 2 + 3 + \dots + 100 = \text{ ?}\]

hasil = 0
for i in range(1, 100+1):
  hasil = hasil + i
print(hasil)
5050

Problem: …

n = 0
hasil = 1
while (hasil < 1000):
  hasil = hasil * 2
  n = n + 1
print(n)
print(hasil)
10
1024
print(2**10)
1024

List

buah = ["apel", "jeruk", "pisang"]
print(buah[0])
apel
print(buah[1])
jeruk
print(buah[2])
pisang
print(len(buah))
3
for x in buah:
  print("Saya suka " + x)
Saya suka apel
Saya suka jeruk
Saya suka anggur
print(buah)
['apel', 'jeruk', 'pisang']
buah[2] = "anggur"
print(buah)
['apel', 'jeruk', 'anggur']

Fungsi

Buatlah fungsi jumlahkan yang menerima input n lalu menghitung

\[1 + 2 + 3 + \dots + n = \text{ ?}\]

def jumlahkan(n):
  hasil = 0
  for i in range(1, n+1):
    hasil = hasil + i
  return hasil
print(jumlahkan(3))
6
print(jumlahkan(100))
5050

Fungsi Rekursif

Barisan Fibonacci: 0, 1, 1, 2, 3, 5, 8, …

\[F_0 = 0, \quad F_1 = 1\]

\[F_n = F_{n-1} + F_{n-2}\]

def fib(n):
  if (n == 0):
    return 0
  elif (n == 1):
    return 1
  else:
    return fib(n-1) + fib(n-2)

\[F_{10} = \text{ ?}\]

fib(10)
55

Faktorial:

\[0! = 1\]

\[n! = n * (n-1)!\]

Contoh:

\[\begin{align*} 5! &= 5 * 4! \\ &= 5 * 4 * 3! \\ &= 5 * 4 * 3 * 2! \\ &= 5 * 4 * 3 * 2 * 1! \\ &= 5 * 4 * 3 * 2 * 1 * 0! \\ &= 5 * 4 * 3 * 2 * 1 * 1 \\ &= 120 \end{align*}\]

def fact(n):
  if (n == 0):
    return 1
  else:
    return n * fact(n-1)

\[10! = \text{ ?}\]

fact(10)