๐Ÿ“Š Flowchart + Koding Program

Algoritma & Pemrograman ยท KKA Kelas 10 Kurikulum Merdeka ยท Fase E Bahasa Python
1. Program Kalkulator Cerdas Full Version

Program lengkap dengan fungsi modular, validasi input, loop menu, dan dokumentasi.

# ============================================================ # PROGRAM KALKULATOR CERDAS # ============================================================ def tampilkan_menu(): print("\n" + "=" * 40) print(" KALKULATOR CERDAS v1.0") print("=" * 40) print("1. Luas Persegi Panjang") print("2. Konversi Suhu (ยฐC โ†’ ยฐF)") print("3. Jumlah Deret 1+2+...+N") print("4. Cek Bilangan Prima") print("5. Faktorial (N!)") print("6. Keluar") print("=" * 40) def luas_persegi_panjang(): print("\n--- Luas Persegi Panjang ---") try: p = float(input("Panjang: ")) l = float(input("Lebar: ")) print(f"Luas = {p} ร— {l} = {p*l:.2f}") except ValueError: print("โŒ Input harus angka!") def konversi_suhu(): print("\n--- Konversi Suhu ---") try: c = float(input("Celsius: ")) print(f"{c}ยฐC = {(c*9/5)+32:.2f}ยฐF") except ValueError: print("โŒ Input harus angka!") def jumlah_deret(): print("\n--- Jumlah Deret ---") try: n = int(input("N: ")) if n < 0: print("โŒ N positif!"); return total = sum(range(1, n+1)) print(f"Jumlah 1+...+{n} = {total}") except ValueError: print("โŒ Input harus bilangan bulat!") def cek_prima(): print("\n--- Cek Prima ---") try: n = int(input("Angka: ")) if n <= 1: print(f"{n} BUKAN prima"); return prima = all(n % i for i in range(2, int(n**0.5)+1)) print(f"โœ… {n} PRIMA" if prima else f"โŒ {n} BUKAN prima") except ValueError: print("โŒ Input harus bilangan bulat!") def faktorial(): print("\n--- Faktorial ---") try: n = int(input("N: ")) if n < 0: print("โŒ N >= 0!"); return hasil = 1 for i in range(1, n+1): hasil *= i print(f"{n}! = {hasil}") except ValueError: print("โŒ Input harus bilangan bulat!") def main(): print("="*40); print(" KALKULATOR CERDAS ๐Ÿงฎ"); print("="*40) while True: tampilkan_menu() pilihan = input("\nPilih (1-6): ") if pilihan == '1': luas_persegi_panjang() elif pilihan == '2': konversi_suhu() elif pilihan == '3': jumlah_deret() elif pilihan == '4': cek_prima() elif pilihan == '5': faktorial() elif pilihan == '6': print("\n๐Ÿ‘‹ Sampai jumpa!"); break else: print("โŒ Pilihan tidak valid!") if __name__ == "__main__": main()
2. 10 Program + Flowchart + Koding Lengkap

1 Luas Persegi Panjang

MULAI โ”‚ โ–ผ INPUT p, l โ”‚ โ–ผ Luas = p ร— l โ”‚ โ–ผ OUTPUT Luas โ”‚ โ–ผ SELESAI
def luas_persegi(p, l): return p * l p = float(input("Panjang: ")) l = float(input("Lebar: ")) print(f"Luas = {luas_persegi(p, l):.2f}")
๐Ÿ“ค Output: Panjang: 5, Lebar: 3 โ†’ Luas = 15.00

2 Genap / Ganjil

MULAI โ”‚ โ–ผ INPUT n โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ n % 2 == 0? โ”‚โ”€โ”€Yaโ”€โ”€โ–ถ GENAP โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚Tidak โ–ผ GANJIL โ”‚ โ–ผ SELESAI
def cek_genap(n): return "GENAP" if n % 2 == 0 else "GANJIL" n = int(input("Angka: ")) print(f"{n} = {cek_genap(n)}")
๐Ÿ“ค Output: Angka: 7 โ†’ 7 = GANJIL

3 Maksimum 3 Angka

MULAI โ”‚ โ–ผ INPUT a, b, c โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ a > b ? โ”‚โ”€โ”€Yaโ”€โ”€โ–ถ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ a > c ? โ”‚ โ”‚Tidak โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ–ผ โ”‚Ya โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ–ผ โ”‚ b > c ? โ”‚โ”€โ”€Yaโ”€โ”€โ–ถ max = b โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚Tidak โ–ผ max = c โ”‚ โ–ผ OUTPUT max โ”‚ โ–ผ SELESAI
def maks_3(a, b, c): return max(a, b, c) a, b, c = map(float, input("3 angka: ").split()) print(f"Maks = {maks_3(a,b,c)}")
๐Ÿ“ค Output: 12 8 15 โ†’ Maks = 15.0

4 Jumlah Deret (While)

MULAI โ”‚ โ–ผ INPUT N โ”‚ โ–ผ total = 0, i = 1 โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ i <= N ? โ”‚โ”€โ”€Tidakโ”€โ”€โ–ถ OUTPUT total โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚Ya โ–ผ โ–ผ SELESAI total = total + i โ”‚ โ–ผ i = i + 1 โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ” โ–ผ (kembali loop)
def jumlah_deret(n): total, i = 0, 1 while i <= n: total += i i += 1 return total n = int(input("N: ")) print(f"Jumlah = {jumlah_deret(n)}")
๐Ÿ“ค Output: N: 10 โ†’ Jumlah = 55

5 Faktorial (Rekursi)

MULAI โ”‚ โ–ผ INPUT N โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ N <= 1 ? โ”‚โ”€โ”€Yaโ”€โ”€โ–ถ return 1 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚Tidak โ”‚ โ–ผ โ”‚ return N ร— faktorial(N-1) โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ SELESAI
def faktorial(n): if n <= 1: return 1 return n * faktorial(n-1) n = int(input("N: ")) print(f"{n}! = {faktorial(n)}")
๐Ÿ“ค Output: N: 5 โ†’ 5! = 120

6 Cek Bilangan Prima

MULAI โ”‚ โ–ผ INPUT n โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ n <= 1 ? โ”‚โ”€โ”€Yaโ”€โ”€โ–ถ BUKAN PRIMA โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚Tidak โ”‚ โ–ผ โ”‚ prima = True, i = 2 โ”‚ โ”‚ โ”‚ โ–ผ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ i*i <= n ? โ”‚โ”€โ”€Tidakโ”€โ”€โ”€โ”€โ”€โ”โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚โ”‚ โ”‚Ya โ”‚โ”‚ โ–ผ โ”‚โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚โ”‚ โ”‚ n % i == 0 ?โ”‚โ”€โ”€Yaโ”€โ”€โ–ถ prima=False โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚โ”‚ โ”‚Tidak โ”‚โ”‚ โ–ผ โ”‚โ”‚ i = i + 1 โ”‚โ”‚ โ”‚ โ”‚โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ”‚ โ–ผ OUTPUT prima โ”‚ โ–ผ SELESAI
def is_prima(n): if n <= 1: return False for i in range(2, int(n**0.5)+1): if n % i == 0: return False return True n = int(input("Angka: ")) print(f"PRIMA" if is_prima(n) else "BUKAN PRIMA")
๐Ÿ“ค Output: Angka: 17 โ†’ PRIMA

7 Konversi Suhu

MULAI โ”‚ โ–ผ INPUT Celsius โ”‚ โ–ผ F = (C ร— 9/5) + 32 โ”‚ โ–ผ OUTPUT Fahrenheit โ”‚ โ–ผ SELESAI
def c_to_f(c): return (c * 9/5) + 32 c = float(input("Celsius: ")) print(f"{c}ยฐC = {c_to_f(c):.1f}ยฐF")
๐Ÿ“ค Output: Celsius: 25 โ†’ 25ยฐC = 77.0ยฐF

8 Membalik String

MULAI โ”‚ โ–ผ INPUT teks โ”‚ โ–ผ hasil = "", i = len-1 โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ i >= 0 ? โ”‚โ”€โ”€Tidakโ”€โ”€โ–ถ OUTPUT hasil โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚Ya โ–ผ โ–ผ SELESAI hasil = hasil + teks[i] โ”‚ โ–ผ i = i - 1 โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ” โ–ผ (kembali loop)
def balik(s): hasil = "" for i in range(len(s)-1, -1, -1): hasil += s[i] return hasil s = input("Teks: ") print(f"Terbalik: {balik(s)}") # Cara simple: s[::-1]
๐Ÿ“ค Output: Teks: INFORMATIKA โ†’ Terbalik: AKITAMROFNI

9 Rata-rata Nilai

MULAI โ”‚ โ–ผ INPUT n โ”‚ โ–ผ total = 0, i = 1 โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ i <= n ? โ”‚โ”€โ”€Tidakโ”€โ”€โ–ถ rata = total/n โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚Ya โ–ผ โ–ผ OUTPUT rata INPUT angka โ”‚ โ”‚ โ–ผ โ–ผ SELESAI total = total + angka โ”‚ โ–ผ i = i + 1 โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ” โ–ผ (kembali loop)
def rata_rata(data): return sum(data)/len(data) if data else 0 n = int(input("Jumlah data: ")) data = [float(input(f"Data ke-{i+1}: ")) for i in range(n)] print(f"Rata-rata = {rata_rata(data):.2f}")
๐Ÿ“ค Output: 80, 90, 75, 85 โ†’ Rata-rata = 82.50

10 Deret Fibonacci

MULAI โ”‚ โ–ผ INPUT n โ”‚ โ–ผ a=0, b=1, i=0 โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ i < n ? โ”‚โ”€โ”€Tidakโ”€โ”€โ–ถ OUTPUT deret โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚Ya โ–ผ โ–ผ SELESAI deret.append(a) โ”‚ โ–ผ a, b = b, a+b โ”‚ โ–ผ i = i + 1 โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ” โ–ผ (kembali loop)
def fibonacci(n): deret, a, b = [], 0, 1 for _ in range(n): deret.append(a) a, b = b, a+b return deret n = int(input("Jumlah: ")) print(f"Fibonacci: {fibonacci(n)}")
๐Ÿ“ค Output: Jumlah: 10 โ†’ [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
Ringkasan Poin Penting

1. Flowchart

Representasi visual algoritma. Simbol: Terminal, Proses, Decision, I/O.

2. Struktur Kontrol

Percabangan (If-Else) dan Perulangan (For/While) untuk alur program.

3. Fungsi

Modularitas kode dengan def. Mudah dipelihara dan digunakan ulang.

Kode disalin!