0% menganggap dokumen ini bermanfaat (0 suara)
14 tayangan42 halaman

Algoritma Pemrograman dengan Python

Dokumen ini membahas tentang algoritma pemrograman menggunakan bahasa Python. Dokumen ini menjelaskan pengenalan algoritma, pengenalan bahasa Python beserta unsur-unsurnya seperti tipe data, operator, percabangan, perulangan, dan fungsi.

Diunggah oleh

itzflxyg
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
14 tayangan42 halaman

Algoritma Pemrograman dengan Python

Dokumen ini membahas tentang algoritma pemrograman menggunakan bahasa Python. Dokumen ini menjelaskan pengenalan algoritma, pengenalan bahasa Python beserta unsur-unsurnya seperti tipe data, operator, percabangan, perulangan, dan fungsi.

Diunggah oleh

itzflxyg
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

ALGORITMA PEMROGRAMAN

By Using Phyton Language


DAFTAR ISI

DAFTAR GAMBAR ....................................................................................................................................... 2


1. Pengenalan Algoritma.......................................................................................................................... 4
2. Pengenalan bahasa Python ................................................................................................................ 6
2.1 Pengenalan Tipe data & variabel pada Python ....................................................................... 7
2.2 Pengenalan Operator Dasar pada Python ................................................................................ 9
2.3 Percabangan (If) pada Python ................................................................................................... 12
2.4 Struktur data Dictionary ................................................................................................................ 18
2.5 Perulangan/Repetition ( Looping ) pada Python .................................................................... 20
2.6 Percabangan dan Perulangan pada Python .......................................................................... 22
2.7 Fungsi & Prosedur pada Python .................................................................................................. 27
3. Algoritma Pengurutan ......................................................................................................................... 34
3.1 Bubble Sort ...................................................................................................................................... 34
4. Algoritma Pencarian ........................................................................................................................... 34
4.1 Algoritma Pencarian Beruntun(Sequential Search) ................................................................ 35
4.2 Algoritma Pencarian Bagi Dua ( Binary Search ) ..................................................................... 35
4. Brute Force ............................................................................................................................................ 37

DAFTAR GAMBAR

Gambar 1 Masalah dan Solusi ................................................................................................................ 4


Gambar 2 Cara penyelesaian masalah ............................................................................................... 4
Gambar 3 Gelas A dan Gelas B ............................................................................................................. 5
Gambar 4 Solusi dari Gelas A dan Gelas B ........................................................................................... 5
Gambar 5 Beberapa cara penyelesaian masalah Gelas A dan Gelas B ..................................... 5
Gambar 6 Tampilan awal pada Python 3.3.3 Shell ............................................................................. 6
Gambar 7 Tampilan awal editor Python 3.3.3 ..................................................................................... 6
Gambar 8 Cara mendeklarasi variable dalam Python ( Hanya menaruh data berbeda
dengan input data ).................................................................................................................................. 8
Gambar 9 Deklarasi variable pada saat melakukan input data .................................................... 8
Gambar 10 Pembuktian Case-sensitive pada Python ....................................................................... 8
Gambar 11 Contoh program percabangan pada Python ............................................................ 14
Gambar 12 Contoh Code dari Nested Branching ............................................................................ 14
Gambar 13 Contoh Penggunaan Dictionary .................................................................................... 19
Gambar 14 Struktur for untuk List ........................................................................................................... 20
Gambar 15 Struktur for untuk melakukan Start,Stop,Step ................................................................ 20
Gambar 16 Struktur dari Perulangan ( While ) .................................................................................... 21
Gambar 17 Pengulangan perintah jamak dengan menggunakan While dan For ................... 21
Gambar 18 Bubble Sort .......................................................................................................................... 34
Gambar 19 Sequential Search .............................................................................................................. 35
Gambar 20 Binary Search ...................................................................................................................... 36
1. PENGENALAN ALGORITMA

Algoritma merupakan langkah-langkah dalam menyelesaikan suatu masalah dimana


algoritma ini akan berhenti ketika masalah sudah [Link] algrotima kita dapat
mengibaratkannya seperti ini :

MASALAH SOLUSI
Gambar 1 Masalah dan Solusi

Pada gambar diatas kita dapat melihat masalah yang kita hadapi dan kita mengetahui solusi
yang ingin kita dapat, sehingga kita membutuhkan proses untuk menyelesaikan masalah
tersebut.

Algoritma

Masalah Solusi

Gambar 2 Cara penyelesaian masalah

Pada gambar diatas, dapat kita lihat proses menyelesaikan suatu masalah itu disebut dengan
algoritma. Sehingga kita dapat simpulkan bahwa algoritma itu merupakan langkah-langkah
atau proses yang terurut dalam menyelesaikan suatu masalah.

Contoh kasus yang lain sebagai berikut :

Kita memiliki masalah dimana kita memiliki 3 gelas dimana gelas A itu adalah sirup dan gelas
B itu adalah air.
Gelas A Gelas B

Gambar 3 Gelas A dan Gelas B

Dan solusi yang kita inginkan adalah seperti ini :

Gelas A Gelas B

Gambar 4 Solusi dari Gelas A dan Gelas B

Dalam proses mencapai solusi diatas kita dapat memikirkan berbagai cara untuk
menyelesaikan masalah diatas dimana cara-caranya adalah :

A B C Algoritma A :
1. Pindahkan isi A ke B
2. Pindahkan isi B ke A
3. Pindahkan isi C ke B
Algoritma B:
1. Pindahkan isi B ke C
2. Pindahkan isi A ke B
3. Pindahkan isi C ke A

Algoritma C:
1. Pindahkan isi B ke C
2. Pindahkan isi A ke C
3. Pindahkan isi C ke B
Gambar 5 Beberapa cara penyelesaian masalah Gelas A dan Gelas B
Algoritma D :
1. Pindahkan isi A ke C
2. Pindahkan isi B ke A
3. Pindahkan isi C ke B
2. PENGENALAN BAHASA PYTHON

Bahasa Phyton merupakan salah satu alat bahasa pemrograman yang digunakan untuk
membuat algoritma. Berikut merupakan tampilan awal dari Python 3.3.3.

Gambar 6 Tampilan awal pada Python 3.3.3 Shell

Gambar 7 Tampilan awal editor Python 3.3.3

Bahasa Python merupakan Open Source General-Purpose [Link] ini juga


mendukung pemrograman yang bersifat Functional ( Fungsional ) , Procedural dan Object
Oriented Programming (OOP).
2.1 PENGENALAN TIPE DATA & VARI ABEL PADA PYTHON

Setiap bahasa pemrograman memiliki berbagai macam tipe [Link] dalam bahasa
pemrograman python terdapat berbagai tipe data dasar yang perlu kita ketahui antara lain
:
 Bilangan Bulat : Integer
 Bilangan Riil : Float
 Logika : Boolean
 Karakter : Char
 Kumpulan Karakter : String
IDLE 1 IDLE 4

# Contoh bilangan bulat (Integer) # Contoh kumpulan karakter (string)


>>> a = 10 >>> a = “Saya adalah seorang siswa”
>>> a >>> a
>>> type(a) >>> type(a)

IDLE 2 IDLE 5

# Contoh bilangan riil (Float) # Contoh List ( Array )


>>> a= 2.5 >>> a = 10
>>> a >>> b = 2.5
>>> type(a) >>> c = “Saya adalah string”
>>> d = True
IDLE 3 >>> e = not d
>>> f = [a,b,c,d,e]
# Contoh logika ( Boolean ) >>> f
>>> a = True >>> f[0]
>>> a >>> f[3]
>>> not a >>> not f[4]
>>> type(a) >>> type(f)
Gambar 8 Cara mendeklarasi variable dalam Python ( Hanya menaruh data berbeda dengan input data )

Gambar 9 Deklarasi variable pada saat melakukan input data

Dalam bahasa pemrograman , kita memerlukan variable untuk menyelesaikan sebuah


masalah. Variable memiliki peran yang sama yaitu :
 Menampung nilai yang ingin dimasukan ( input ) maupun yang ingin dicetak (
Output ).
 Menampung data yang nilainya akan diubah atau dipakai kembali.
Dalam Bahasa pemrograman Python , penamaan variable bersifat case-sensitive ( Huruf kecil
atau huruf besar harus diperhatikan ) karena dalam bahasa pemrograman Python variable
yang bernama “Saya” dan “saya” itu tidak sama dan tidak ada hubungannya.

Gambar 10 Pembuktian Case-sensitive pada Python

Pada gambar diatas , dapat dijelaskan bahwa Variable “Saya” dan “saya” bukan
merupakan variable yang sama .
Pada Python ada beberapa kata terlarang yang tidak boleh dipakai sebagai variable
diantaranya :

 False  Class  Finally  Is  Return


 None  Continue  For  Lambda  Try
 True  Def  From  Nonlocal  With
 And  Del  Global  Not  Yield
 As  Elif  If  Or
 Assert  Else  Import  Pass
 Break  Except  In  Raise

2.2 PENGENALAN OPERATOR DASAR PADA PYTHON

Dalam setiap bahasa pemrograman memiliki Operator yang digunakan untuk


menghubungkan dua variable , dua konstanta ataupun variable dengan konstanta.
Penggunaan Operator akan menghasilkan nilai baru dengan tipe data yang sama atau
berbeda dengan sebelumnya.
Berikut merupakan Operator-Operator yang terdapat didalam Python :

Operator Dasar Aritmatika


Operasi Simbol Python
Penambahan + +
Pengurangan - -
Perkalian X *
Pembagian : / dan //
Perpangkatan ^ **
Hasil sisa bagi ( Modulus ) % %

Latihan Operator

IDLE 1 >>> var4 = var4 – var1


>>> var3 = var3 – var1
#Contoh Operator Penambahan ke-1 >>> var2 = var2 – var1
>>> var1 = 1234 >>> var2
>>> var2 = 5678
>>> var3 = var1 + var2 IDLE 4
>> var3
#Contoh Operator Pengurangan ke-2
IDLE 2 >>> var6 = (var1 + var2 + var3 + var4) – var5
>>> var6
#Contoh Operator Penambahan ke-2
>>> var4 = var3 IDLE 5
>>> var5 = var4 + var3 + var2 + var1
>>> var5 #Contoh Operator Perkalian ke-1
>>> a1 = 12345
IDLE 3 >>> a2 = 56789
>>> a3 = a1 * a2
#Contoh Operator Pengurangan ke-1 >>> a3
>>> var5 = var5 – var1
IDLE 6 IDLE 10

#Contoh Operator Perkalian ke-2 #Contoh Operator Perpangkatan ke-2


>>> a3 = a3 * 0.1 >>> konstanta = 3.17
>>> a4 = a4 * a3 >>> p3 = p2 ** konstanta
>>> a4 >>> p3

IDLE 7

#Contoh Operator Pembagian ke-1


>>> a5 = a3 / 2 IDLE 11
>>> a6 = a4 // 10
>>> a6 #Contoh Operator Modulus ke-1
>>> m1 = 2
IDLE 8 >>> m2 = 10
>>> m3 = 25
#Contoh Operator Pembagian ke-2 >>> m3 = (m3 * m2) % m1
>>> a1 = 2 >>> m3
>>> a7 = (a4 * a5 * a6) / a1
>>> a7 IDLE 12

IDLE 9 #Contoh Operator Modulus ke-2


>>> p1 = 3000
#Contoh Operator Perpangkatan ke-1 >>> p2 = (((((5 ** 10) ** 20) ** 30) ** 40) ** 50) %
>>> p1 = 1000 p1
>>> p2 = p1 ** a1 >>> p1
>>> p2

Latihan 1 Hitunglah dengan menggunakan python langkah-langkah berikut:


1. Isi a dengan 300
2. Isi b dengan 700
3. Kalikan a dengan b dan taruh di dalam c
4. Isi d dengan 1200
5. Tambahkan isi a dengan 60 dan kemudian kalikan hasil tersebut dengan
10 dan simpan kembali ke a
6. Bagikan a dengan d dan isi ke dalam e
7. Tambahkan b dengan c dan isi ke dalam c
8. Tambahkan a dengan e kemudian kurangkan dengan c dan simpan ke
b
Berapakah hasil akhir variabel a, b, c, d, dan e?

Latihan 2 Ada lima variabel yaitu a = 1, b = 2, c = 3, d = 4, dan e = 5.


Tukarkan variabel tersebut sehingga hasilnya a = 5, b = 3, c = 4, d = 1, e
= 2.
Latihan 3 Lakukan langkah - langkah berikut ini pada IDLE :
1. GelasA = 130,85181
2. GelasB = 194,12141
3. print(GelasA)
4. print(GelasB)
5. print(GelasA,GelasB)
6. print(“%.2f” % GelasA,GelasB)
7. print(“%.2f” % GelasA,”%.3f” % GelasB)

Latihan 4: Cetak Mania


Anda adalah mahasiswa baru Teknik Informatika. Anda berniat membuat
blog yang mewakili Nama Anda dan tahun lahir Anda.
Catatan : Tanda `\` adalah karakter spesial. Gunakan `\\` untuk mencetak
sebuah karakter `\`

Masukan
4 buah String Tanpa Spasi yang mewakili Nama, Tanggal, Bulan dan Tahun
Lahir

Keluaran
Alamat Blog Yang terdapat Nama dan Keterangan Lahir Anda

Test Case
Masukan
Budi
15
12
1990

Keluaran
http:\\[Link]\Budi1512.1990

Latihan 5: Konversi Suhu


Budi tinggal di Amerika yang menggunakan satuan Farenheit untuk men-
gukur suhu udara. Bantulah Budi untuk mengkonversi suhu menjadi satuan
Celcius, Kelvin dan Reaumur.

Masukan
Sebuah bilangan X yang merupakan bilangan bulat atau pecahan

Keluaran
Keluaran berupa tiga bilangan pecahan yang secara berurut dengan a Cel-
cius, b Kelvin, dan c Reaumur satu dibelakang koma

Test Case
Masukan
212

Keluaran
100.0 C
373.0 K
80.0 R
Dalam setiap bahasa pemrograman , Operator memiliki kekuatan atau prioritas yang dapat
diibaratkan seperti proses perhitungan matematika . Berikut merupakan tingkatan prioritas
Operator antara lain :

Operator Precedence
No Type Symbol
1 Member access [Link]
2 Function/Method Calls container expr(....)
subscripts/slices expr[....]
3 Exponentiation **
4 Unary Operators +expr, -expr, ~expr
5 Multiplication, division *, /, // , %
6 Addition , Substraction +,-
7 Bitwise shifting << , >>
8 Bitwise-and &
9 Bitwise-xor ^
10 Bitwise-or |
11 Comparisons, is , is not , == , != , < , <= , > ,>=
Containment in , not in
12 Logical-not Not expr
13 Logical-and And
14 Logical-or Or
15 Conditional Val1 if cond else val2
16 Assignment = , += , -= , *= , etc.

2.3 PERCAB ANGAN (IF) PADA PYTHON

Percabangan merupakan suatu pilihan atau opsi dengan kondisi tertentu dimana jika kondisi
itu terpenuhi maka opsi atau pilihan tersebut dijalankan , dan jika tidak maka sebaliknya.
Percabangan dibutuhkan ketika terdapat beberapa kemungkinan keputusan yang mungkin
dalam alur program. Setiap kemungkinan tersebut bergantung terhadap nilai variable
ataupun bedasarkan hasil evaluasi kondisi logika ( kondisi logika merupakan perbandingan
dua atau lebih variabel dengan menggunakan operator logika ).

Operator Dasar Logika


Operasi Simbol Python
DAN && AND
ATAU || OR
BUKAN ! NOT
Operator Dasar Perbandingan
Operasi Simbol Python
Sama Dengan = ==
Tidak Sama Dengan ≠ !=
Lebih Besar >,≥ >,>=
Lebih Kecil <,≤ <,<=

Untuk menggabungkan beberapa kondisi logika , kita memerlukan gerbang logika . Contoh-
contoh gerbang logika antara lain : AND,NOT,OR,NOR,NAND dan XOR. Dalam setiap
percabangan memiliki hasil berupa dua nilai yaitu Benar ( TRUE ) atau Salah ( False ).

Berikut merupakan contoh dari kondisi logika :


Kondisi Hasil
7>3 Benar ( True )
8<8 Salah ( False )
( 5 > 9 ) AND (4 < 5 ) Salah ( False )
( 10 < 2 ) OR ( 8<= 8 ) Benar ( True )
NOT ( 3 < 7 ) Salah
Didalam percabangan biasanya menggunakan pernyataan jika (if). Struktur pernyataan if
dalam bentuk pseudocode dapat dilihat sebagai berikut.

if kondisi-1 then // Jika true maka akan dijalankan jika tidak maka ke kondisi-2
< statements 1>
else if kondisi-2 then // opsional
< statement 2 >
else // opsional
< statement 3 >
endif

Berikut merupakan struktur percabangan pada Python :


if <kondisi – 1 > : #Pengujian kondisi
<Statement-1> #Jika True maka akan dijalankan
else if <kondisi-2> : # Opsional
<Statement-2>
else : # Opsional
<Statement-3>
Coba ketikkan code dibawah ini :

Gambar 11 Contoh program percabangan pada Python

Didalam percabangan ( Branching ) , bisa terdapat percabangan bersarang ( Nested


Branching ) yang merupakan sebuah percabangan yang memiliki percabangan didalamnya
dan percabangan yang didalamnya juga bisa memiliki percabangan lainnya di dalam.

Berikut merupakan contoh nested branching dalam pseudo code :

If kondisi 1 then
If kondisi 1a then
<statements>
Else
<statements>
Endif
Else if kondisi 2 then
<statements 2>
Else
<statements 3>
Endif

Coba ketikkan code code dibawah ini :

Gambar 12 Contoh Code dari Nested Branching

Latihan 6: Dimana Posisi Ku ?


Tentukanlah nilai sebenarnya dari sebuah titik yang diberikan nilai x dan
y nya jika diberitahukan letak kuadran cartesian-nya !
Misalkan : Titik ( 3,4)
Kuadran I : 3,4
Kuadran II: -3,4
Kuadran III : -3,-4
Kuadran IV : 3,-4

Masukan
2 buah input bilangan bulat positif
1 buah input string yang berisi : I, II, III, IV

Keluaran
Koordinat titik dengan format (x,y)

Test Case
Masukan
3
4
III

Keluaran
(-3,-4)

Latihan 7: Pythagoras
Apakah aku segitiga siku-siku atau bukan ? Dapatkah kamu menebaknya
?
Segitiga siku siku memiliki ciri - ciri : a2 + b2 = c2
Masukan
3 buah bilangan bulat POSITIF (Tanpa negatif) berupa tiga sisi segitiga
Tidak ada input yang salah !
Keluaran
Keluaran berupa keterangan dengan format :
(sisiA) (sisiB) (sisiC) (hasil)
(sisi a) : sisi pembentuk sudut siku - siku
(sisi b) : sisi pembentuk sudut siku - siku
(sisi c) : sisi miring bilangan bulat positif
(hasil) : keterangan berupa “segitiga siku-siku” atau “bukan segitiga siku-
Siku”
sisi a, sisi b, dan sisi c adalah bilangan bulat positif. sisi a dan sisi b harus
berurutan

Test Case 1
Masukan
3
4
5

Keluaran
3 4 5 segitiga siku-siku

Test Case 2
Masukan
4
5
3

Keluaran
3 4 5 segitiga siku-siku
Test Case 3
Masukan
5
4
3

Keluaran
3 4 5 segitiga siku-siku

Test Case 4
Masukan
141
3
141

Keluaran
3 141 141 bukan segitiga siku-siku

Latihan 8: Twenty-Nine My Age


Vicky mengerti bahasa Indonesia tetapi hanya bisa dapat menjawab dalam
bahasa Inggris. Dapatkah kamu membuat algoritma yang mirip dengan
dirinya, dimana jika diberikan hari dalam bahasa indonesia dan jumlah hari
yang akan ditambahkan dia akan menjawab dengan hari dalam bahasa ing-
gris serta jarak hari

Masukan
1 buah string berupa hari dalam minggu (bahasa Indonesia)
1 buah bilangan bulat POSITIF (Tanpa negatif) berupa jumlah hari
kedepan
Tidak ada input yang salah !

Keluaran
Keluaran berupa keterangan dengan format :
(hari awal) (banyak hari) (hari akhir)
- (hari awal) dalam bahasa Indonesia
- (banyak hari) yang akan ditambahkan : bilangan bulat positif
- (hari akhir) dalam bahasa Inggris

Test Case 1
Masukan
senin
14

Keluaran
senin 14 monday

Test Case 2
Masukan
kamis
141

Keluaran
Kamis 141 Friday
Test Case 3
Masukan
rabu
18

Keluaran
rabu 18 sunday

Test Case 4
Masukan
jumat
70

Keluaran
jumat 70 Friday

Latihan 9 : Petualangan Semut


Seekor semut menempuh perjalanan sejauh x cm. Buat algoritma & pro-
gram untuk mengkonversi jarak x cm dalam km-m-cm.

Masukan
Sebuah bilangan X yang merupakan bilangan bulat

Keluaran
Keluaran berupa tiga bilangan pecahan yang secara berurut dengan format
a km, b m, c cm
Test Case
Masukan
506141

Keluaran
5 km, 61 m, 41 cm

Latihan 10: Batu Gunting Kertas


Amir dan Budi bermaksud memperebutkan siapa duluan yang akan meng-
gunakan PC untuk bermain DOTA 2. Untuk menentukan siapa duluan,
mereka memutuskan melakukan suit “Batu Gunting Kertas” sebanyak 10
babak. Jika diketahui skor sementara dari 7 babak dan tersisa 3 babak
pertandingan. Dapatkah kamu menentukan siapa pemenangnya dari hasil 3
babak tersebut ?

Masukan
Skor Amir : bilangan bulat positif
Skor Budi : bilangan bulat positif
Suit Babak ke 8 Amir : String
Suit Babak ke 8 Budi : String
Suit Babak ke 9 Amir : String
Suit Babak ke 9 Budi : String
Suit Babak ke 10 Amir : String
Suit Babak ke 10 Budi: String
Masukkan suit dapat berupa batu, gunting dan kertas (semua dalam lower
case)
Tidak ada input yang salah !

Keluaran
Keluaran berupa keterangan dengan format :
(Pemenang Babak 8) (Pemenang Babak 9) (Pemenang Babak 10) (Skor
Akhir Amir) (Skor Akhir Budi) (Informasi Pemenang)
(Pemenang Babak 8/9/10) di wakili oleh A, B atau O
A menandakan Amir Menang
B menandakan Budi Menang
O menandakan Seri
(Skor Akhir Amir / Budi) dalam bentuk bilangan bulat positif.
(Informasi Pemenang) bedasarkan skor akhir, ada 3 jenis informasi peme-
nang :
A menang.
B menang.
Seri.

Test Case
Masukan
3
2
batu
gunting
gunting
batu
batu
batu

Keluaran
A B O 4 3 A menang.
NB : batu menang melawan gunting, gunting menang melawan kertas, kertas
menang melawan batu.

2.4 STRUKTUR DATA DI CTIONARY

Dictionary merupakan list yang sangat berguna dimana list tersebut diproses melalui via key
( inisialisasi ).
Contoh penggunaan Dictionary antara lain :

Gambar 13 Contoh Penggunaan Dictionary


2.5 PERULANGAN/REPETITION ( LOOPING ) PADA PYTHON

Repetition/Perulangan merupakan salah satu kegiatan yang digunakan untuk mendapatkan


hasil/solusi dalam suatu permasalahan. Perulangan dibagi menjadi dua yaitu :
1. For
2. While

Didalam struktur perulangan , terdapat 2 kondisi yaitu : eksplisit dan implisit sedangkan di
badan perulangan terdapat pernyataan atau sequence (runtunan) yang akan diulangan
selama kondisi perulangan dipenuhi. Perulangan dapat diikuti oleh dua bagian yaitu :

1. Inisialisasi, pernyataan yang dipersiapkan sebelum perulangan dimulai


2. Terminasi, pernyataan yang dilakukan setelah perulangan selesai.

Inisialisasi dan Terminaasi bersifat opsional, namun pada statement While, Inisiaalisasi bersifat
wajib.

For digunakan ketika kita ingin membuat jumlah perulangan yang [Link] itu, for dapat
menentukan kondisi awal dan kondisi berhenti,For menyediakan fitur step dimana step itu
merupakan lompatan yang terjadi pada [Link] merupakan beberapa cara
melakukan perulangan/looping pada python antara lain :

Gambar 14 Struktur for untuk List

Gambar 15 Struktur for untuk melakukan Start,Stop,Step

While digunakan ketika kita ingin membuat jumlah perulangan statement yang implisit
dimana badan perulangan akan terus dilaksanakan selama kondisi belum terpenuhi.
Contoh dari penggunaan While adalah pada saat kita ingin menginput password.
Gambar 16 Struktur dari Perulangan ( While )

Didalam implementasi perulangan , perulangan tidak hanya dipakai untuk mengulangan


satu pernyataan saja, melainkan bisa lebih dari satu pernyataan .

Gambar 17 Pengulangan perintah jamak dengan menggunakan While dan For

Perulangan sering digunakan terhadap tipe data jamak, misalnya : array( kumpulan data
tunggal didalam satu variabel ) , list string dan tipe data jamak lainnya.

Latihan 11: Permasalahan Bilangan Kelipatan


Hasilkan serangkaian n bilangan yang merupakan kelipatan dari angka m
yang dimasukkan.

Masukan
Satu baris masukkan yang terdiri dari n dan m. n merupakan panjang
rangkaian yang akan dihasilkan sedangkan m adalah kelipatan bilangan yang
diinginkan. n dan m adalah bilangan bulat

Keluaran
Satu set rangkaian bilangan bulat dengan panjang rangkaian n dan meru-
pakan kelipatan dari m. Semua rangkaian bermula dari angka m.

Test Case 1
Masukan
65

Keluaran
5 10 15 20 25 30

Test Case 2
Masukan
34

Keluaran
4 8 12

Test Case 3
Masukan
10 2

Keluaran
2 4 6 8 10 12 14 16 18 20

Latihan 12: Jumlah dan Rata I


Tentukan Jumlah dan Rata dari masukkan
Masukan
(banyak angka) 1 buah bilangan bulat yang menentukan berapa banyak
angka
Kumpulan bilangan bulat acak sebanyak (banyak angka)

Keluaran
Format : (Jumlah) (Rata)
(Jumlah) dalam bilangan bulat
(Rata) dalam bilangan pecahan 3 dibelakang koma

Test Case
Masukan
5
100
100
100
100
100
Keluaran
500 100.000

Latihan 13: Jumlah dan Rata II


Tentukan Jumlah dan Rata dari masukkan

Masukan
Kumpulan bilangan bulat acak

Keluaran
Format : (Jumlah) (Rata)
(Jumlah) dalam bilangan bulat
(Rata) dalam bilangan pecahan 3 dibelakang koma

Test Case
Masukan
100 100 100 100 100
Keluaran
500 100.000

2.6 PERCAB ANGAN DAN PERU LANGAN PADA PYTHON

Pada perulangan terdapat break & continue , break digunakan untuk menghentikan
perulangan. Perulangan berhenti apabila menemukan keyword [Link] merupakan
contoh penggunaan break antara lain :

For i in range ( 1,6 ):


If i == 4 :
Break
Print(i)
#Maka yang dicetak adalah 1,2,3
#Pada saat i mencapai nilai 4 , perulangan langsung berhenti sebelum sempat mencetak
Sedangkan, continue digunakan untuk melanjutkan perulangan tanpa mengeksekusi baris
dibawahnya. Apabila menemukan keyword continue , maka perulangan akan berhenti
tetapi lanjut ke eksekusi berikutnya .

For i in range (1,6):


If i == 4 :
Break
Print(i)
#Maka yang dicetak adalah 1,2,3,5
#Pada saat i mencapai nilai 4 , perulangan langsung berhenti sebelum sempat mencetak
Latihan 14: Palindrom
Palindrom adalah kata yang dibaca dari depan atau belakang dengan cara
yang sama. Dalam bahasa Inggris, kata \a\ dan \I\ adalah palindrom
yang paling sederhana.\Racecar\ dan \Hannah\ adalah yang paling ilus-
trative. Dalam bahasa Indonesia misalnya \ada\ dan \kayak\. Dapatkah
kamu menentukan sebuah kata palindrom atau tidak ?

Masukan
Sebuah string terdiri dari satu kata dengan case yang bervariasi.

Keluaran
palindrom atau bukan palindrom

Test Case 1
Masukan
Budidaya

Keluaran
bukan palindrom

Test Case 2
Masukan
Rotavator

Keluaran
palindrom

Catatan :
1. Proses Reverse harus menggunakan perulangan ! Tidak boleh menggu-
nakan shortcut array !
2. NB : Walau melibatkan percabangan, percabangan yang dilibatkan di
luar perulangan.

Latihan 15: Berapakah Banyak Diriku ?


Dapatkah kamu menentukan ada berapa banyak angka 0 sampai 9 dari ma-
sukkan ?

Masukan
(banyak angka) 1 buah bilangan bulat positif yang menentukan berapa
banyak angka.
Kumpulan bilangan acak dari 0 sampai 9 sebanyak (banyak angka)

Keluaran
(banyak angka 0)
(banyak angka 1)
(banyak angka 2)
...
(banyak angka 9)
secara berurutan dan dalam bilangan bulat positif

Test Case
Masukan
382045691733122

Keluaran
1
2
3
3
1
1
1
1
1
1

Latihan 15: Awal-Tengah-Akhir


Diberikan sebuah kata yang terdiri dari alfabet, dapatkah kamu menen-
tukan huruf awal, tengah dan terakhir ?

Masukan
Sebuah kata bertipe data string dengan panjang kata pasti ganjil

Keluaran
(huruf awal) (huruf tengah) (huruf terakhir)

Test Case 1
Masukan
algoritma

Keluaran
ara

Test Case 2
Masukan
machine

Keluaran
mhe

Latihan 16: Jam-Menit-Detik


Diberikan dua informasi waktu dalam sekian jam, sekian menit dan sekian
detik. Hitung selisih dari kedua waktu dalam format yang paling baik terse-
but !

Masukan
Dua buah string dengan format \jam menit detik\. Masukkan dapat men-
gandung kombinasi jam, menit, detik yang tidak dalam format paling tepat

Keluaran
Sebuah string dengan format \jam menit detik\ dengan format yang
yang paling tepat dan sederhana

Test Case 1
Masukan
200
100

Keluaran
100
Test Case 2
Masukan
100
200

Keluaran
100

Test Case 3
Masukan
0 0 3600
1 120 0

Keluaran
200

Latihan 17 : PolaloP

Diberikan ukuran dari pola cetaklah pola yang akan ditunjukkan pada kelu-
aran berikut !

Masukan
Sebuah bilangan bulat positif yang menyatakan ukuran

Keluaran
Pola seperti yang ditunjukkan pada keluaran

Test Case 1
Masukan
1

Keluaran

Test Case 2
Masukan
2

Keluaran

Test Case 3
Masukan
3

Keluaran
Test Case 4
Masukan
4

Keluaran

Test Case 5
Masukan
5

Keluaran

2.7 FUNGSI & PROSEDUR PADA PYTHON

Pada dasarnya , kita mengenal fungsi melalui pelajaran Matematika seperti misalnya :
g(x)=x4/4-x3/3-3x2 , dimana g(x) merupakan sebuah fungsi dengan x adalah parameternya.
Untuk memanggil fungsi tersebut , kita menggantikan parameter x menjadi nilai yang
diinginkan, misalnya g(5) sehingga : g(5) = 54/4-53/3-3*52 , g(5) = 39.58333 .

Kita bisa menggantikan apapun nilai parameter x dan akan mendapatkan nilai g(x) yang
berbeda-beda.

Didalam Algoritma , fungsi atau function merupakan bagian dari algoritma yang
dikhususkan untuk mengekseskusi perintah tertentu. Fungsi ditujukan untuk menggantikan
perintah tertentu . Fungsi ditujukan untuk menggantikan perintah yang berulang di suatu
program atau yang sering dipanggil. Dengan fungsi algoritma menjadi lebih terstruktur ,
dinamis , dan mudah diperbaiki.

Tujuan dari penggunaan fungsi antara lain :


 Code Re-usability
o Kode yang sama dipakai dua kali
o Kode yang sama dipakai pada file berbeda
 Debugging/Pencarian Kesalahan lebih mudah
 Sub Program membuat kode lebih mudah dibaca & dimengerti (Jika dipisah-pisah
dengan baik)

Fungsi bersifat mandiri dimana fungsi memiliki nama , variable dan kumpulan perintah sendiri
. Fungsi dapat menerima nilai dari pemanggil fungsi dan dapat mengembalikan nilai ke
pemanggil tersebut dan keduanya tersebut tidak bersifat wajib . Struktur fungsi adalah
sebagai berikut :

Function nama_fungsi(variable1,variable2)
Statements
return value
End Function

Berikut merupakan format penulisan fungsi dalam bahasa Python adalah sebagai berikut :

Def nama_fungsi (variable1,variable2):


Statements
return value

Untuk dapat menggunakan fungsi , diperlukan pemanggil fungsi. Pemanggil fungsi harus
menggunakan nama yang sama dengan fungsi yang dipanggil dan jumlah parameternya
juga harus sama. Parameter pemanggil fungsi dapat berupa variabel ataupun
[Link] dapat berisi sebuah nilai dimana nilai tesebut berasal dari nilai
yang dikembalikan oleh fungsi tersebut.

Contoh penulisan pemanggilan fungsi :

Nama_Fungsi(Variabel1,Konstanta1)

Prosedur merupakan fungsi yang tidak mengembalikan nilai . Pada bahasa pemrograman
lain biasanya diserta dengan void namaFungsi() atau sub NamaFungsi. Pada fungsi &
prosedur terdapat paramater , dimana parameter tersebut adalah masukkan yang akan
diterima oleh sebuah fungsi / prosedur . Parameter ini digunakan jika sebuah fungsi
membutuhkan nilai dari variabel lain untuk memproses algoritma yang ingin dijalankan.

Pada setiap bahasa pemrograman , terdapat variabel global dan variabel lokal , dimana
variabel global tesebut merupakan variabel yang bersifat global ( luas ) dalam artian variabel
tersebut dapat dipanggil , digunakan atau dimanipulasi pada baris program maupun selama
masih dalam satu berkas . Sedangkan, variabel lokal merupakan variabel yang hanya bisa
dipanggil , di-gunakan atau dimanipulasi pada fungsi / prosedur variabel tersebut
dideklarasikan .Berikut merupakan contoh dari variabel global dan variabel lokal :
Vari = 0 #Variabel Global
def cetak1():
global vari
vari2 = 4 #Variabel Lokal
print vari # Isi vari dicetak
print vari2 #Isi vari2 dicetak
def cetak2():
global vari
print vari #Isi vari dicetak
print vari2 #Terjadi kesalahan karena vari2 tidak dikenal
cetak1()
cetak2()
Latihan 18: Berapa Kata ?

Diberikan sebuah kalimat dapatkah Anda menentukan ada berapa kata


dalam kalimat tersebut ?

Masukan
Tipe data String yang berupa kalimat

Keluaran
Tipe data integer yang mewakili berapa kata dalam kalimat tersebut

Test Case
Masukan
Ibu Budi Pergi Ke Pasar

Keluaran
5
Anda diminta untuk membuat sebuah fungsi untuk penyelesaian masalah
ini dengan ketentuan :
 hitungKata(String) : integer

Latihan 19: JamPasir


Diberikan ukuran dari pola cetaklah pola yang akan ditunjukkan pada kelu-
aran berikut !

Masukan
Sebuah bilangan bulat positif yang menyatakan ukuran

Keluaran
Pola seperti yang ditunjukkan pada keluaran

Test Case 1
Masukan
1

Keluaran

Test Case 2
Masukan
2

Keluaran

Test Case 3
Masukan
3
Keluaran

Test Case 4
Masukan
4

Keluaran

Test Case 5
Masukan
5

Keluaran

Anda diminta untuk membuat sebuah fungsi untuk penyelesaian masalah


ini dengan ketentuan :
 proc jamPasir(integer) : None
 func jamPasir(integer) : String
Latihan 20: Mama Minta Pulsa

Pernahkah Anda mengirim sms dari era sebelum smartphone ? Untuk mem-
buat sebuah huruf di layar handphone, Anda harus menekan sekumpulan
angka berulang - ulang sampai terbentuk sebuah kata. Pada permasalahan
ini, Anda diminta untuk menerjemahkan penekanan tombol menjadi kata
yang akan terbentuk. Simbol dan huruf besar ada huruf diabaikan, dan
angka 0 menyatakan spasi. Semua ouput adalah dalam huruf kecil

Masukan
Tipe Data String berupa penekanan tombol

Keluaran
Tipe Data String berupa isi pesan

Test Case 1
Masukan
6 2 6 2 0 6 444 66 8 2 0 7 88 555 7777 2

Keluaran
mama minta pulsa

Test Case 2
Masukan
6 2 6 2 0 555 2 4 444 0 3 444 0 55 2 66 8 666 777 0 7 666 555 444 7777 444

Keluaran
mama lagi di kantor polisi

Test Case 3
Masukan
5 2 66 4 2 66 0 8 33 555 33 7 666 66 0 6 2 6 2 0 3 88 555 88

Keluaran
jangan telepon mama dulu

Latihan 21: Sisip !

Diberikan kumpulan bilangan dan seperangkat instruksi dapatkah Anda


menghasilkan posisi terakhir dari instruksi tersebut ?
Kumpulan bilangan akan terdiri dari bilangan bulat, sedangkan perintah
akan terdiri dari “awal”,”akhir” dan “samping”.
“Awal” menyatakan akan ada penempatan data baru di awal.
“Akhir” menyatakan akan ada penempatan data baru di akhir.
“Samping” menyatakan ada penempatan data baru di samping dari angka
yang ditentukan. Setiap angka yang akan disisipkan ke dalam kumpulan
bilangan harus unik.

Masukan
String berisi : Kumpulan bilangan yang dipisahkan spasi
String berisi : “perintah” “angka yang akan disisipkan” (“disamping elemen
Ke”)

Keluaran
Cetakan array paling akhir setelah penyisipan

Test Case 1
Masukan
1 2 10 4 5 6 7
awal 8

Keluaran
8, 1, 2, 10, 4, 5, 6, 7

Test Case 2
Masukan
8 1 2 10 4 5 6 7
akhir 8

Keluaran
8, 1, 2, 10, 4, 5, 6, 7

Test Case 3
Masukan
8 1 2 10 4 5 6 7
akhir 9

Keluaran
8, 1, 2, 10, 4, 5, 6, 7, 9

Test Case 4
Masukan
8 1 2 10 4 5 6 7 9
samping 15 2

Keluaran
8, 1, 2, 15, 10, 4, 5, 6, 7, 9

Test Case 5
Masukan
8 1 2 15 10 4 5 6 7 9
samping 15 10

Keluaran
8, 1, 2, 15, 10, 4, 5, 6, 7, 9
Test Case 6
Masukan
8 1 2 15 10 4 5 6 7 9
samping 16 100

Keluaran
8, 1, 2, 15, 10, 4, 5, 6, 7, 9

Test Case 7
Masukan
8 1 2 15 10 4 5 6 7 9
samping 20 7

Keluaran
8, 1, 2, 15, 10, 4, 5, 6, 7, 20, 9

3. ALGORITMA PENGURUTAN

Pengurutan ( Sorting ) merupakan proses yang digunakan untuk mengurutkan data. Pada
sorting terdapat beberapa algoritma untuk mengurutkan data diantaranya adalah : Bubble
sort, Insertion Sort, Quick Sort , Radix Sort dan Merge Sort. Perbedaan diantara semua sorting
tersebut adalah Kecepatan dalam penyelesaian pengurutan data.

3.1 BUBBLE SORT

Bubble sort merupakan teknik pengurutan yang paling sederhana dimana setiap data yang
ingin diurutkan akan terus dibanding dengan data yang selanjutnya hingga semua data telah
di proses. Bubble sort ini memiliki kasus terburuk dimana bubble sort ini akan sangat lama
apabila memproses data yang cukup besar.

Dibawah ini merupakan code sederhana dari penggunaan Bubble Sort :

Gambar 18 Bubble Sort

4. ALGORITMA PENCARIAN

Pencarian ( Searching ) merupakan proses yang fundamental dalam pengolahan data .


Berbagai proses dalam struktur data (misalnya : Array ), sering kali membutuhkan pencarian
sebelum melakukan proses selanjutnya misalnya proses penghapusan ataupun penyisipkan
elemen pada struktur data.

Dalam masalah pencarian , masukkan utama yang diberikan umumnya adalah sebuah
struktur data (Misalanya : Array,Tree,Linked List dan lainnya) dengan elemen terbatas dan
elemen yang akan dicari. Normalnya , carilah elemen X dalam Struktu Data L .

Hasil atau keluaran dari persoalan pencarian dapat bermacam-macam bergantung pada
spesifiasi rinci dari persoalan tersebut,misalnya :

 Pencarian hanya untuk memeriksa keberadaan X. Keluaran yang diinginkan


merupakan pesan bahwa ditemukan atau tidak.
 Hasil pencarian mengembalikan indeks elemen dari struktur data [Link] X ditemukan ,
maka indeks elemen tempat X berada akan dimasukkan pada sebuah variabel
indeks,yang selanjutnya akan dikembalikan atau diproses lebih lanjut. Biasanya , jika
elemen X tidak ditemukan umumnya ditangani dengan memberikan variabel indeks
dengan nilai -1 .
 Hasil pencarian adalah sebuah nilai boolean yang menyatakan status hasil pencarian.
Jika X ditemukan maka dikembalikan True sedangkan jika salah dikembalikan False.

Terdapat dua algoritma pencarian yang paling umum yaitu :

1. Algoritma Pencarian Beruntun(Sequential Search)


2. Algoritma Pencarian Bagi Dua (Binary Search)

4.1 ALGORITM A PENCARI AN BERUNTUN(SEQUENTIAL SE ARCH)

Algoritma Pencarian Beruntun ( Sequential Search) merupakan algoritma pencarian yang


paling sederhana. Pada dasarnya , algoritma penarian beruntun adalah proses
membandingkan setiap elemen struktur data satu persatu secara beruntun milai dari elemen
pertama , sampai elemen yang dicari ditemukan , atau sampai elemen sudah diperiksa
secara keseluhuran.

Gambar 19 Sequential Search

4.2 ALGORITM A PENCARI AN B AGI DUA ( BINARY SE ARCH )

Binary Search merupakan metode pencarian elemen di suatu rangkaian tertentu dengan
menggunakan strategi divide and [Link] case binary search adalah O(log n) dimana
jumlah komparasi terbanyak yang dilakukan adalah sebanyak [log n]+1 untuk n input. Binary
search hanya bisa dilakukan pada data yang sudah terurut .

Gambar 20 Binary Search


4. BRUTE FORCE

Brute force merupakan pendekatan yang straightforward untuk memecahkan masalah.


Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung , dan jelas
( obvious way ).Berikut merupakan contoh contoh penerapan algoritma brute force antara
lain :

1. Mencari elemen terbesar/terkecil


Persoalan : Diberikan sebuah senarai yang beranggotakan n buah bilangan bulat
(a1,a2,a3,....,an) Carilah elemen terbesar/terkecil didalam senarai tersebut

Algoritma brute force pada persoalan ini adalah cara membandingkan setiap elemen
dalam senarai tersebut untuk menemukan elemen terbesar/terkecil.

2. Pencarian Beruntun (Sequential Search)


Persoalan : Diberikan senarai yang berisi n buah bilangan bulat a1,a2,a3,a4,...,a n)
Carilah nilai x didalam senara tersebut. Jika x ditemukan,maka keluarannya adalah
indeks elemen senarai, jika x tidak ditemukan , maka keluarannya adalah 0

Algoritma brute force yang diterapkan pada persoalan ini adalah setiap elemen
senarai dibandingkan terhadap x. Pencarian selesai jika x telah ditemukan atau
elemen senarai sudah habis diperiksa.

Karakteristik algorimta brute force umumnya tidak “cerdas” dan tidak mangkus, karena ia
membutuhkan jumlah komputasi yang besar dalam penyelesaiannya . Algoritma brute force
biasanya lebih cocok dipakai pada masalah yang berukuran kecil.

Kelebihan Kelemahan
Metode brute force dapat digunakan untuk Metode brute force jarang menghasilkan
memecahkan hampir sebagian besar algoritma yang efisien.
masalah

Metode brute force sederhana dan mudah Beberapa algoritma brute force lambat
dimengerti sehingga tidak dapat diterima

Metode brute force menghasilkan Tidak sekontruktif/sekreatif teknik


algoritma yang layak untuk beberapa pemecahan masalah lainnya.
masalah penting seperti pencarian ,
pengurutan , pencocokan string , perkalian
matriks.
Metode brute force menghasilkan
algoritma baku untuk tugas-tugas
komputasi seperti penjumlahan/perkalian n
buah bilangan , menentukan elemen
minimum atau maksimum didalam tabel (
list )
Latihan 22: Permasalahan Pengurutan Alphabet
Diberikan sebuah kalimat yang terdiri dari huruf, urutkan semua alphabet
secara menaik.

Masukan
Satu baris kalimat dimana terdapat huruf A-Z, dan a-z.

Keluaran
Urutkan kalimat tersebut sehingga setiap huruf tersortir sesuai dengan po-
sisinya di alphabet. Huruf kapital dulan baru huruf non kapital

Test Case 1
Masukan
Selamat Datang Di Rumahku

Keluaran
DDRSaaaaaeghiklmmnttuu

Test Case 2
Masukan
Hari ini hari yang cerah

Keluaran
Haaaaceghhiiiinnrrry

Test Case 3
Masukan
Halo halo halo

Keluaran
Haaahhlllooo

Latihan 23: Kalkulator Sederhana


Hasilkan sebuah program untuk dapat melakukan perhitungan operasi ar-
itmetika yang mencakup penjumlahan, pengurangan, perkalian dan pemba-
gian.

Masukan
Masukan terdiri dari tiga baris. Baris pertama merupakan operand (bilan-
gan yang dioperasikan) pertama. Baris kedua merupakan operand kedua.
Baris ketiga merupakan operator aritmetika dari kedua operand tersebut
dimana :
1. operator '+' untuk penjumlahan.
2. operator '-' untuk pengurangan.
3. operator '*' untuk perkalian.
4. operator '/' untuk pembagian.

Keluaran
Hasil dari operasi aritmetika tersebut.

Test Case 1
Masukan
6
4
-
Keluaran
2

Test Case 2
Masukan
95
8
/

Keluaran
11.875
Latihan 23: Kalkulator Sederhana Multi Operasi
Kembangkan program sebelumnya sehingga dapat melakukan perhitungan
operasi aritmetika lebih dari satu kali.
Masukan
Baris pertama merupakan jumlah operasi aritmetika. Baris kedua meru-
pakan operand (bilangan yang dioperasikan) pertama. Baris ketiga meru-
pakan operand kedua. Baris keempat merupakan operator aritmetika untuk
kedua operand tersebut.
Untuk tiap dua baris berikutnya, baris pertama merupakan operand baru
dan baris kedua merupakan operator aritmetika untuk melakukan operasi
aritmetika terhadap operand baru dan hasil dari operasi sebelumnya. Kelu-
aran
Hasil terakhir dari seluruh operasi aritmetika tersebut.

Test Case 1
Masukan
2
6
4
-
3
+

Keluaran
5
Deskripsi : 6-4+3=5 (Jumlah operasi 2).

Test Case 2
Masukan
3
8
2
/
5
+
7
*

Keluaran
63
Latihan 24: Penjumlahan Bilangan Tribonacci
Bilangan Tribonacci merupakan deretan bilangan dimana bilangan tersebut
merupakan hasil dari penjumlahan tiga bilangan pada urutan deret sebelum-
nya. Angka pertama,kedua pada deret bilangan Fibonacci adalah angka 1.
Contoh deret adalah 1, 1, 1, 3, 5, 9, ... Tampilkan penjumlahan semua bi-
langan dalam rangkaian bilangan tribonacci n. Masukan
Sebuah bilangan bulat n yang merupakan jumlah bilangan dalam rangkaian
bilangan tribonacci.
Keluaran
Jumlah dari semua bilangan yang terdapat di dalam rangkaian bilangan tri-
bonacci.

Test Case 1
Masukan
5

Keluaran
11
Penjelasan: 1+1+1+3+5 = 11

Test Case 2
Masukan
10

Keluaran
230

Test Case 3
Masukan
25

Keluaran
2145013

Latihan 25: Pencetakan Alphabet


Pembalikan String dilakukan dengan menukar posisi karakter pertama den-
gan karakter terakhir, karakter kedua dengan karakter kedua terakhir dan
seterusnya.

Masukan
Sebuah String yang akan dibalik.

Keluaran
Sebuah String yang telah dibalik.

Test Case 1
Masukan
Mikroskil

Keluaran
liksorkiM

Test Case 2
Masukan
permasalahan 123
Keluaran
321 nahalasamrep

Test Case 3
Masukan
abc

Keluaran
cba

Anda mungkin juga menyukai