Mari Belajar Algoritma Pemrograman Menggunakan C#/JAVA/Python
Published by Risal at Smashwords
Copyright 2017 Wenny, Risal
ISBN 9781370293292
License Notes
Thank you for downloading this ebook. You are welcome to share it with your
friends. This book may be reproduced, copied and distributed for non-commercial
purposes, provided the book remains in its complete original form.Thank you for
your support.
This book is only availabe in Indonesian.
Nota Lisensi
Terimakasih telah mengunduh ebook ini. Anda diperkenankan untuk
membagikannya kepada teman-teman Anda. Buku ini boleh diproduksi ulang,
disalin, dan disebarluaskan untuk keperluan non-komersial, selama buku tetap pada
kondisi lengkap sama seperti aslinya. Terimakasih untuk dukungan Anda
Buku ini hanya tersedia dalam bahasa Indonesia.Kata Pengantar
Puji dan syukur kepada Tuhan Yang Maha Esa, sehingga penulis dapat menyelesaikan
penyusunan buku ini dengan baik.
Buku ini disusun untuk menuntun para pemula yang ingin mempelajari pemrograman.
Penulis menyajikan konsep-konsep dasar pemrograman yang dikemas dengan bahasa
yang sederhana dan disertai dengan contoh-contoh penyelesaian kasus. Penyelesaian
kasus disajikan dalam tiga bahasa pemrograman yaitu C#, JAVA, dan Python, dengan
harapan agar pembaca tidak terpaku pada satu bahasa pemrogramaan saja dan lebih
mudah ketika mempelajari bahasa pemrograman lain.
Akhir kata, Penulis ingin menyampaikan Terima kasih kepada berbagai pihak yang telah
mendukung penulis dalam pembuatan dan penyelesaian buku ini.
Bandung, Juli 2017
PenulisAlgoritma dan Program
Ketika belajar pemrograman pertama kali, ada beberapa jargon (kata asing) yang
digunakan. Beberapa jargon umum yang digunakan akan dijelaskan pada bab pertama,
sedangkan sisanya akan dijelaskan pada bab-bab yang terkait. Dua jargon pertama yang
sering muncul adalah algoritma dan program.
Apa itu algoritma? Algoritma adalah sekumpulan langkah yang disusun untuk
menyelesaikan sebuah pekerjaan. Algoritma yang baik memiliki jumlah langkah
pengerjaan yang minim.
Bagaimana dengan program? Program adalah sekumpulan perintah (instruksi) yang
dimengerti oleh komputer. Orang yang membuat program dikenal dengan nama
programmer (dibeberapa buku dikenal juga dengan nama developer). Sedangkan
kegiatan untuk membuat program untuk menyelesaikan sebuah masalah dikenal dengan
istilah pemrograman.
Jadi dapat disimpulkan bahwa algoritma bersifat universal, sedangkan program sudah
lebih spesifik pada instruksi yang dikenali oleh komputer. Algoritma biasanya dituliskan
dalam bentuk bahasa yang febih dimengerti oleh manusia atau dapat juga dituliskan
dalam notasi matematik (dikenal dengan metode formal).
Bagaimana dengan contoh dari algoritma itu sendiri? Berikut ini adalah ilustrasi/contoh
solusi (algoritma) dari masalah memasak mie instan menggunakan bahasa natural
(bahasa manusia).
1. Buka bungkus mie instan.
2. Didihkan air.
3. Masukan mie instan ke dalam air mendidih.
4, Masukan bumbu ke dalam wadah.
5. Masukan mie instan yang telah masak ke dalam wadah.
6. Aduk mie instan dengan bumbu.
Bagaimana bilamana diminta untuk menuliskan algoritma menukar isi dua buah gelas?
Berikut adalah jawabannya. Asumsi dua buah gelas diberi nama gelas A dan gelas B.
Gelas C adalah gelas bantuan untuk memindahkan isi gelas tersebut (gelas A dan gelas
8).
1. Pindahkan isi gelas A ke gelas C.
2. Pindahkan isi gelas B ke gelas A.
3. Pindahkan isi gelas C ke gelas B.Paradigma Pemrograman
Paradigma pemrograman adalah cara pandang dalam membuat sebuah program.
Bahasa pemrograman dapat mendukung satu atau lebih paradigma pemrograman. Dua
paradigma pemrograman yang populer dan sering digunakan adalah paradigma
prosedural dan paradigma berorientasi objek.
Paradigma prosedural (imperatif) adalah paradigma pemrograman yang membagi
masalah (besar) menjadi kumpulan masalah kecil (sub masalah). Tiap masalah keci
diselesaikan menggunakan sekumpulan langkah yang (biasanya) dibuat dalam sebuah
prosedur.
Berbeda dengan paradigma prosedural, paradigma berorientasi objek membagi masalah
menjadi kumpulan objek yang saling berinteraksi/berkolaborasi satu dengan yang lainnya.
Objek ini adalah instans dari kelas. Kelas adalah sebuah pola yang berisi kumpulan
atribut dan operasi. Atribut dan operasi ini yang nantinya diakses oleh objek/kelas lainnya
untuk menyelesaikan sebuah masalah,
Selain dua paradigma ini, dikenal juga beberapa paradigma pemrograman lainnya yang
cocok dalam menyelesaikan masalah dengan sudut pandang yang berbeda. Paradigma
yang dimaksud adalah antara lain deklaratif, logika, simbolik, dan berorientasi aspek.Hi, Dunia!
Seperti buku pemrograman pada umumnya, kode pertama kali dibuat adalah “Hello
World”. Buku ini akan menggunakan tiga buah bahasa pemrograman modern, yaitu C#
(dibaca C Sharp), JAVA, dan Python. Dengan menggunakan tiga bahasa pemrograman
modem ini diharapkan dapat memudahkan transisi antara ketiga bahasa pemrograman.
class Program
i
static void Main(string[] args)
(
System.Console.WriteLine ("Hi Dunia!");
// Keluaran Program
// #4 Dunia!
)
)
Bahasa pemrograman G# menggunakan method WriteLine dari kelas Console untuk
menampilkan teks ke layar konsol. Kelas Console ada pada namespace System.
Namespace kata kunci pada bahasa pemrograman C# yang bertujuan untuk
mengelompokan kumpulan kelas. Nama kelas dalam sebuah namespace harus unik
(tidak boleh sama).
public class Program {
public static void main(String!) args) (
System.out.printin ("Hi Dunia!™);
// Keluaran Program
“/ Hi Dunia!
}
)
Bahasa pemrograman JAVA menggunakan method printin yang dapat diakses melalui
variabel out di kelas System. Berbeda sedikit dengan bahasa C#, pada bahasa JAVA
System adalah sebuah kelas. JAVA juga mengenal konsep yang serupa dengan
namespace di C#, pada JAVA dikenal dengan nama package.
def main():
print ("Hi Dunia!™)
4 Keluaran Program
# Hi Dunia!
"main:
if __name__
main()
Bahasa pemrograman PYTHON menggunakan method print untuk menampilkan keluaran
program. Berbeda dengan bahasa pemrograman C# dan JAVA, pada bahasa
pemrograman PYTHON setiap akhir statement tidak diakhiri dengan ; (titik koma).Tipe Data
Tipe data (data type) atau biasa disingkat menjadi tipe (type) adalah representasi data
dalam komputer. Tipe digunakan oleh bahasa pemrograman untuk memaksakan dan
verifikasi data atau operasi. Tiap bahasa pemrograman memiliki beberapa tipe data dasar
dan tipe data spesifik. Berikut adalah beberapa jenis tipe data yang ada pada bahasa
pemrograman.
1. Bilangan logika (boolean).
2. Bilangan bulat..
3. Bilangan rill
4, Karakter.
5. String.Bilangan Logika
Tipe data bilangan logika (boolean) adalah tipe data yang digunakan untuk menyimpan
hasil dari ekspresi logika (boolean). Tipe data boolean memiliki dua kemungkinan rilai
"yaitu true atau false. Kata kunci boo! digunakan oleh bahasa pemrograman C# dan
Python untuk menggunakan tipe data ini, sedangkan bahasa pemrograman JAVA
menggunakan kata kunci boolean.
Tipe data boolean mengenal tiga buah operator, yaitu operator NOT, operator AND, dan
operator OR. Tabel berikut adalah ilustrasi hasil dari ketiga operator tersebut.
x |NOT x|
false] true
true | false
Operator NOT atau negasi mengembalikan nilai true bilamana nilai operan bernilai false
dan sebaliknya.
x [oy |x anpy|
false[false| false
false| true | false
true [false] false
true} true| true
Operator AND mengembalikan nilai true jika kedua nilai operan bernilai true.
x |v |xory
false false| false
false] true| true
true |faise| true
true | true} true
Operator OR mengembalikan nilai false jika kedua nilai operan bemnilai false. Kode
program berikut digunakan untuk mendemonstrasikan ketiga operator yang telah
dibahas. Berikut ini adalah contoh kode program C# yang mendemonstrasikan bilangan
logika dan operatornya.
using system;
class Program
(
static void Main(string{] args)
i
bool bO = true;
bool bl = 3 < 77
bool b2 = 6.2 <= 6.5,
bool b3 = "budi" != "“wati";
Console.WriteLine("bO =
Console. WriteLine("b1
Console.WriteLine("b2
+ Ov?
+ bl)
+ ba):Console.Writebine("b3 = " + b3);
// Operator AND
Console.WriteLine("b0 AND bl
+ (0 6& b1));
JJ Operator OR
Console.WriteLine ("bl OR b2 =" + (bl || b2));
// Operator NOT
Console.WriteLine ("NOT b3
"+ ane
// Keluaran Program
17 b0 = True
77 bl = True
1/2 = True
1/3 = True
7/ b0 AND bi = True
7/ bl OR b2 = True
// NOT b3 = False
Berikut ini adalah kode program serupa dengan menggunakan bahasa pemrograman
JAVA.
public class Program {
public static void main(String(] args) (
boolean bO = true;
boolean bi = 3 <7;
boolean b2 = 6.2 <= 6.5;
boolean b3 = "budi" != "watim";
System.out.print1n("b0 = " + b0);
System.out-printin ("bl = " + bl);
System.out.printIn("b2 = " + b2)7
System.out .printin("b3 =" + b3)7
// Operator AND
System.out-printin("bO AND bi = " + (b0 66 b1));
// Operator OR
System.out.printin("bl OR b2
+ (bl 11 b2));
// Operator NOT
System.out-print1n ("NOT b3 = " + (1b3));
// Keluaran Program
11 b0 = True
// bl = True
// 82 = True
// b3 = True
// BO AND bl = True
// bi OR b2 = True
// NOT b3 = False
)
1
‘Sedangkan berikut ini adalah kode program dalam bahasa pemrograman Python.
def main():
bO = True
bl=3<7b2 = 6.2 <= 6.5
b3 = “budi" != "wati*
print ("b0 =", b0)
print ("bl =", bl)
print ("b2 =", b2)
print ("b3 =", b3)
# Operator AND
print ("b0 AND bl
(b0 and b1))
# Operator OR
print ("bl OR b2 =", (bl or b2))
# Operator NOT
print ("NOT b3 =", not b3)
Keluaran Program
bO = True
bl = True
b2 = True
b3 = True
bO AND bl = True
bl OR b2 = True
NoT b3 = False
if _name_ == '_main_
main()Bilangan Bulat
Tipe data bilangan bulat (Integer) adalah tipe data yang digunakan untuk memodelkan
bilangan tidak berkoma, contoh: 0, 12, -3, dan 79. Tergantung bahasa pemrograman
yang digunakan operasi yang dapat dilakukan pada tipe integer dan variasi tipe data yang
termasuk dalam kategori integer berbeda satu dengan yang lainnya.
Bahasa pemrograman Ci membagi tipe data integer dibagi menjadi dua, empat buah tipe
data integer bertanda (sbyte, short, int, dan long) dan empat buah tipe data integer tidak
bertanda (byte, ushort, uint, dan ulong). Integer bertanda adalah integer yang memiliki
nilai negatif dan positif, sedangkan integer tidak bertanda hanya memiliki nilai positif saja.
Operator] Arti Contoh _|Hasil
+ Tambah 1245 17
- Kurang 12-5 7
7 Kali 12°5 60
7 Bagi 12/5 2
% Sisabagi __|12%5 2
e+ Tambah satu_[num=5; num++;/6
-- Kurang satu 4
le [Shift bit kiri 4
>> [Shift bit kanan|3>>1 1
Berikut adalah contoh kode program G# yang bertujuan untuk mendemonstrasikan
operator aritmatika pada tabel sebelumnya.
using System
class Program
(
static void Main(string(] args)
(
int nl = 5, n2 = 12;
int hl = nl + n2
int h2 = n2 - nt;
int h3 = nl * a2;
int h4 = n2/ nl;
int hS = n2 8 nl;
int h6 = nl << 2;
int h? = n2 >> 2;
Console.WriteLine("(0) + (1) = (2)", nl, n2, hdyz
Console.WriteLine("(0} - (1) = (2)", n2, nt, h2yz
Console.tiritebine("(0} * (1) = (2)", ml, n2, h3)F
Console.WriteLine("(0} / (1) = (2)", n2, ni, hare
Console.writeLine("(0} 3 (1) = (2)", n2, ni, 5)F
Console.WriteLine("(0} << 2 = (1)", nl, n6);
Console.WriteLine("{0} >> 2 = {1)", n2, h7);
// Post~increment
Console.WriteLine("(0}++ = {1)", al, nit+);
// Post~decrementConsole.WriteLine("(O}-- = (1)", m2, n2=-);
// Kelvaran Program
WS + 12217
WA2-$97
WS * 12 = 60
WAS =2
W12SS=2
115 << 2 = 20
1/:12>>223
1) 5+
6
Bahasa pemrograman JAVA menggunakan pendekatan sedikit berbeda dengan bahasa
pemrograman C#. Bahasa pemrograman JAVA hanya memiliki empat tipe data integer
yaitu byte, short, int, dan long. Operator aritmatika pada bahasa pemrograman JAVA
sama dengan bahasa pemrograman C#. Kode program berikut mendemonstrasikan
Penggunaan operator aritmatika menggunakan bahasa JAVA.
public class Program {
public static void main(String[} args) (
int nl = 5, n2 = 12;
int hl = nl + naz
int h2 = n2 - nl;
int h3 = nl * a2;
int hd = n2 / ni;
int nS = n2 § nl;
int h6 = nl << 2;
int AT = n2 >> 2;
System.out-printin(nt
System.out-printin(n2
system.out-printin (nl
system.out -printin(n2
System.out.printin(n2
System. out.printin (nt
System.out.printin(n2
aD:
n2)s
3);
hay;
nS)?
// Post~increment
System.out.printin(nl + "++ =" + (nl4));
// Post-decrement
System.out.printin(n2 + "== =" + (n2
Ye
// Kelvaran Program
5 +12217
W12-5=7
17:5 * 12 = 60
W215 22
UA2SS=2
W-5 << 2 = 20
WA2>>2=3
U1 544 8 6
M1 W2=-- = 1
Operator aritmatika pada bahasa pemrograman Python pada dasarnya sama dengan
bahasa pemrograman C# dan JAVA. Pada Python terdapat beberapa tambahan operatoraritmatika, berikut beberapa operator aritmatika tambahan pada Python.
Operator! Arti Contoh| Hasil
E Pangkat 23 |B
i Bagi(hasil bilangan bulat)|13//2__|6
Berikut adalah kode program serupa dalam bahasa pemrograman Python.
def main():
al= 5
2 = 12
bl = nl + n2
h2 = 2 - al
3 = al * n2
ha = n2 // nL
5 = n2 3 nl
6 = al << 2
h7 = a2 >> 2
print(nl , "ey 2, %
print (n2, "=", nl, %
print (nl, "*" , m2, ™
print(n2 , "//* , nb
print (n2 , "8", nl nS)
print (nl, "<< 2", he)
print (n2 , ">> 2", "=" | h7)
hy
+ ha)
+3)
ha)
# Post-increment
print(nl , "tel =", ende"")
nl¢=1
print (n1)
# Pre-decrement
print(n2, "-=1 =", end
na-=1
print (n2)
Keluaran Program
5+12=17
2-5
s+
12175
235
5 <<2
12 >> 2
St=1 = 6
12,
a
if name == '_main_':
maint)
Berbeda dengan operator artitmatika, operator relasional digunakan untuk
membandingkan dua buah operan (nilai). Hasil dari operator relasional bertipe boolean
(true atau false). Operator relasional pada bahasa pemrograman G#, bahasa
pemrograman JAVA, dan bahasa pemrograman Phyton sama.
|Operator| Arti |Contoh| Hasil
< Lebih kecil 12<5 [falseLebih kecil atau sama dengan false
> Lebih besar 12>5 |true
>= Lebih besar atau sama dengan] 12 >= 5|true
[Sama dengan 12 == 65 | false
Tidak sama dengan 12156 |true
Kode program G# berikut mendemonstarikan penggunaan operator relasional.
using System:
class Program
cl
static void Main(string{] args)
{
int nl = 5, n2 = 12;
Console.WriteLine("(0} < (1)? (2)"
Console.Writebine("(0} <= (1)? (2
Console.WriteLine
nl, n2, (nt < n2));
yoni, n2, (nl <= n2));
> (1)? (2), nly m2, (nl > n2))7
Console. writebine >= (2)? (2), nl, n2, (al >= n2));
Console. WriteLine (2)? (2)") nl, n2, (nt == 02)
Console.WriteLine (2)? (2)", nd, 2, (nd t= n2))7
// Kelvaran Program
d/ 8 < 12? True
1/3 <= 12? True
// 5 > 12? False
// 5 >= 12? False
1/5 == 12? False
1/5 $= 12? True
Berikut adalah kode program serupa dalam bahasa pemrograman JAVA.
public class Program {
public static void main(String{] args) [
int nl = 5, n2 = 12;
System.out.printin(nt
system.out.printin(nl
System.out.printin(nl
System.out.printin(ni
System.out.printin(al
System.out.printin(nt
4 nz en? + (nd > n2V)7
dee nz + 82" # (nd >= n2));
"end +2" # (nl Se 2d);
wang + "2" (nl f= n2));
// Keluaran Program
1-8 < 12? True
1/8 <= 12? True
1/8 > 12? False
1/8 >= 12? False
1/8 == 12? False
17 8 t= 12? True
)
,
‘Sedangkan kode program berikut adalah kode program dalam bahasa Python.
def main():num = 5
num = 12
print (num
print (num
print (numl
print (numi
print (numi
print (numt
pum, + (num), < numa)
+, num2), "2", (numl <= num2))
+ num2 , "2" , (numl > num2))
+ pum), "2", (numl >= num2))
+ pum2 , "2" , (numl == num2))
"tem j num2 , "2", (numl != num2))
Keluaran Program
5 < 12? True
5 <= 12? True
5 > 12? False
5 >= 12? False
5S m= 12? False
3 != 12? True
if __name_
maint)
"main ':Bilangan Rill
Tipe data bilangan rill (real) adalah tipe data yang digunakan untuk memodelkan bilangan
berkoma (desimal), contoh: 3.1415, -2.3, 4.0, dan -0.333333. Tipe data ini dikenal juga
dengan nama floating point. Operasi pada tipe data ril biasanya lebih terbatas daripada
operasi pada tipe data integer.
Bahasa pemrograman C# dan JAVA memiliki dua tipe data yang termasuk kategori ini.
Kedua tipe data tersebut adalah float dan double. Perbedaan antara float dan double
hanya pada tingkat keakuratan (presisi). Tipe data double memiliki presisi lebih tinggi dari
pada tipe data float.
Operator] Arti | Contoh [Hasil
+ ‘Tambah | 11.7 +0.3|12
- Kurang | 11.7 - 0.3 }11.4
i Kali 11.7* 0.3 [3.51
7 Bagi__|11.7/0.3 [30.0
% Sisa bagi] 11.7 % 11}0.7
Berikut ini adalah contoh kode program dalam bahasa pemrograman G#.
using System;
class Program
(
static void Main(string{] args)
f
double nl
double hl
double h2
double h3
double hd
double hS
3.14, n2 © 9.8;
al + n2;
2 - nl;
al * ni
m2 / ni;
n2 = ml;
n2, 1);
nl, 2);
m2, 3);
nl, ha);
nl, nS);
Console.WriteLine (
Console.WriteLine (
a
a
a
(1)
(2)
Console.WriteLine("(0}
Console.WriteLine("(0}
// Keluaran Program
3.14 + 9.8 = 12.94
6.66
30.772
3.12101910828026
0.38
Berikut ini adalah contoh kode program dalam bahasa pemrograman JAVA.
public class Program (
public static void main(String{] args) (
double nl = 3.14, n2 = 9.8;
double hl = nl + n2;
double h2 = n2 ~ nl;double h3 = nl * n2;
double hd = n2 / nl:
double hS = n2 3 nl;
System.out.printla(nl +" + "+ n2 4" bb:
System.out.println(n2 +" - "+ al +” ha)?
System.out-println(nl +" * "+ n2 +" 3)?
System.out.printin(n2 +" /"+nl +" ha)?
System.out-printin(n2 +" 3" + ni +" nS) F
// Keluaran Program
// 3.14 + 9.8 = 12.940000000000001.
1/ 9.8 ~ 3.14 = 6.66
// 3.14 * 9.8 = 30.772000000000002
77 9.8 / 3.14 = 3.121019108280255
7/ 9.8 & 3.14 = 0.38000000000000034
)
’
Berikut ini adalah contoh kode program dalam bahasa pemrograman Python.
def main():
Al = 3.14
n2 = 9.8
bl = nl + n2
h2 = n2- nt
h3 = nl * n2
ha = n2 / nt
nS = 2 ¢ al
printinl , "+", n2, ast)
print(n2 , "-", nl, + ha)
print(nl , "*" , m2, +3)
print(n2 , "/" , nl, + hay
print(n2 , "8", nl, + nS)
# Keluaran Program
# 3.14 + 9.8 = 12.940000000000002
$9.8 - 3.14 = 6.66
# 3.14 * 9.8 = 30.772000000000002
49.8 / 3.14 = 3.121019108280255
# 9.8 $ 3.14 = 0.38000000000000034
if __name_
main()
Sama seperti bilangan bulat, bilangan ril juga memiliki beberapa operator relasional yang
dapat digunakan untuk membandingkan dua buah nilai. Berikut ini adalah tabel dari
operator relasional untuk ketiga bahasa pemrograman (C#, JAVA, dan Python).
|Operator} Arti Contoh_|Hasil|
< Lebih kecil 11.7<0.3 [false
<= Lebih kecil atau sama dengan | 11.7 <= 0.3| false
> Lebih besar 11.7>0.23 |true
Lebih besar atau sama dengan] 11.7 >= 0.3] true
Tidak sama dengan 11.7 != 03 [true
Berikut ini adalah contoh program dalam bahasa C# yang menggunakan operatorrelasional.
using System;
class Program
(
sti
atic void Main(string{} args)
double nl = 3.14, n2 = 9.8;
Console.Writebine("{0} < (1)? (2)", nl, n2, (nl < n2))7
Console.WriteLine("{0} <= (1}? (2)", nl, m2, (nl <= n2));
Console.WriteLine("{0} > (1}? (2)", nl, n2, (nt > n2))7
Console.WriteLine("{0} >= (1)? (2)", nl, n2, (nd >= n2));
Console. WriteLine("{0)
“
uv
uv
uv
uv
uw
1
d
(1)? (2), at, 92, (at t= 2))7
Keluaran Program
-14-< 9.8? True
+14 <= 9.8? True
114 > 9.8? False
+14 >= 9.82 False
+14 != 9.87 True
Berikut ini adalah contoh program dalam bahasa JAVA.
pub:
pul
system.out.printla(nl
System.out.printla(nt
sy:
sy:
sy:
lic class Program (
blic static void main(String{) args) {
tml = 3.14, n2 = 9.87
ee ade ere (ad < 02h);
"4nd 4 "2" 4 (nb <= nde
> $2 +"? "+ (ni > n2))
"4nd + "2" 4 (nb >= n2))e
+2 + "2" + (nd $= n2));
stem.out.printIn(ni + "
/stem.out.printIn (al
/stem,out..printin (nl
Kelvaran Program
-14-< 9.82 True
:14 <= 9.87 True
114 > 9.82 False
114 >= 9.82 False
(14 '= 9.8? True }
Berikut ini adalah contoh program dalam bahasa Python.
det
al:
2:
Pr:
Pr:
pr
pr!
pr!
’
'
’
'
‘
main ():
93.14
29.8
intial , (nl_< n2))
intind (nl <= 12)
intial, (n> n2))
intind + (nl >= 92))
intial » + (al t= n2))
Keluaran Progam
3.14 < 9.8? True
3.14 <= 9.8? True
3.14 > 9.82 False
3.14 >© 9,82 False43.14 l= 9.87 true
if__name__ == '_main_!
main() anKarakter
Tipe data karakter adalah tipe data yang digunakan untuk memodelkan satu buah
karakter. Tergantung implementasi dari bahasa pemrograman, satu buah karakter dapat
berukuran satu byte (8 bit) atau satu word (16 bit). Bilamana karakter dimodelkan
menggunakan satu byte, biasanya menggunakan pemetaan karakter ASCII (American
Standard Code for Information Interchange). Sedangkan bilamana menggunakan satu
word, menggunakan unicode.
Berbeda dengan ASCII yang hanya berisi kumpulan karakter latin, pada unicode karakter
yang disimpan bervariasi. Karakter kanji cina, karakter hiragana/katakana jepang, karakter
hangul korea, karakter arab, dan karakter pada bahasa lainnya termasuk dalam unicode.
Jadi bilamana sebuah aplikasi dapat digunakan multi-bahasa maka dibutuhkan
pengkodean unicode.
Bahasa pemrograman G#f, JAVA, dan Python mengakomodir kedua pengkodean ini.
Ketiga bahasa ini menggunakan tanda petik tunggal untuk menuliskan sebuah konstanta
karakter. Ketiga bahasa ini juga memiliki kesamaan dalam operator relasional yang
digunakan pada tipe data karakter.
[Operator| Arti Contoh [Hasil
< Lebih kecil ‘a'<'e' [true
<= Lebih kecil atau sama dengan |'a’ <= ‘c'[true
> Lebih besar ‘a’ >'c' [false
>= Lebih besar atau sama dengan|'a’ >= ‘c'[false
‘Sama dengan ‘al false
i= Tidak sama dengan ‘a’ ec’ [true
Berikut ini adalah contoh penggunaan operator relasional menggunakan bahasa
pemrograman C#.
using System;
class Program
ri
static void Main(string{] args)
(
char cl = ‘at, c2 =
Console.WriteLine("(0} < (1)? (2)", cl, c2, (cl < ¢2))7
Console.WriteLine("(0} <= (1]? (2)", cl, ¢2, (cl <= c2))¢
Console.WriteLine("(0} > {1)? {2)", cl, ¢2, (cl > ¢2));
Console.WriteLine("(0} >= (1)? (2)", cl, 2, (cl >= c2))7
Console.WriteLine("(0} == (1}? (2)", cl, 2, (cl == ¢2))7
Console.WriteLine("(0} != (1)? (2)", cl, ¢2, (el t= c2))s
// Keluaran Program
// a c? False
// a >= c? False
// a == c? False
t= c? True‘Sedangkan berikut ini adalah contoh serupa dalam bahasa pemrograman JAVA.
public class Program (
public static void main(String{} args) (
char cl = 'a', c2 = ‘c's
System.out-printin(cl
System.out.printin(cl
System.out.printin(cl
System.out.printin(cl
System.out.printin(cl
system.out.printin (cl
// Keluaran Program
V1 a < 0? True
U1 a c? False
c? False
// a >= c? False
a != ¢? True
i
no Hed 4H"? % 4 (cl < c2))F
Mice eed EMD Me (Cl 4 e242" + (el > €2))7
"Se" eed MDM + (el >= 2);
wae" e292 + (el = €2)
" $e2 + "2" 4 (el t= e2))s
Berikut adalah contoh dalam bahasa Python.
def main():
cl = tat
2 = ‘ct
print(cl , 02
print(cl , "<=", 2
print (cl , eae
print(cl , 12,
print(cl , 1e2e
print(cl , 262 ¢
# Keluaran Program
#a c? False
¥ a >= c? False
$a == c? False
fa !=c? True
Lf __name_
main()
1 m2", (el < 62)
nom", (el <= 2)
1 (el > €2))
m2", (el >= €2))
m2", (el == ¢2))
nom, (cl t= 62))String
Tipe data string adalah tipe data yang digunakan untuk memodelkan sebuah teks
(kumpulan karakter). Berbeda dengan tipe data karakter yang menggunakan petik
tunggal, tipe data string menggunakan tanda petik ganda untuk menuliskan konstanta
teks.
Implementasi tipe data string pada bahasa pemrograman Cit, JAVA, dan Python sedikit
berbeda satu dengan yang lain. Hal ini mengakibatkan operator yang dapat digunakan
untuk tiap bahasa, berbeda satu dengan yang lainnya.
Bahasa pemrograman C# memiliki sebuah operator untuk menggabungkan string (+) dan
beberapa operator relasional untuk membandingkan satu string dengan string lainnya.
Selain itu bahasa pemrograman ini juga memiliki banyak method yang digunakan untuk
mengolah string itu sendiri. Berikut adalah contoh program yang mendemonstrasikan
penggunaan tipe data string beserta operatornya.
using System;
class Program
{
static void Main(string{] args)
(
string si
string s2 =
string s3 =
Console.WriteLine("(0)
Console.WriteLine("(0}
Console.WriteLine("(0}
a= 182, 8305
1? sl, 53, (sl #© s3));
(1)? (21", sl, 82, (sl != 82))7
// Keluaran Program
71h + ello = hello
// hello == hello? True
// bello != ello? True
,
}
Bahasa pemrograman JAVA memiliki pendekatan yang sedikit berbeda dengan bahasa
pemrograman C#. Pada bahasa pemrograman JAVA operasi penggabungan string
menggunakan operator (+), sedangkan relasional menggunakan pemanggilan method.
Berikut ini adalah contoh program dalam bahasa pemrograman JAVA (serupa dengan
bahasa pemrograman C#).
public class Program (
public static void main(String[] args) {
String sl = "hello";
String s2 = "ello";
String s3 = "h” + s2;
System.out -printin(*h"
System. out -printin(s1
System. out.printn(s1
+ezer
+t
+ 2+
= 48307
* + sl.equals(s3))
2" tsl.equals(s2));
// Keluaran Program
71h + ello = hello
// hello == hello? True
Vf hello != ello? True,
'
Pada Python operator (+) digunakan sebagai penggabungan untuk String. Selain operator
(4), terdapat dua operator lain untuk String, yaitu (?) dan in,
[Operator| Arti Contoh_| Hasil
+ Penggabungan "sa" + "ya" |"saya”
: Pengulangan 'a*3 "aaa"
in Kermunculan string dalam string|"a" in “saya" [true
Berikut ini adalah contoh program penggunaan tipe data String dalam bahasa
pemrograman Python.
def main():
sl = "hello"
52 = “ello”
83= th" + 52
print (th " , 52, "=", 83)
print(sl , "es", 83, "2", si =
print (sl , 152, "2", nots!
33)
== $2)
# Keluaran Program
#h + ello = hello
# hello == hello? True
# hello != ello? True
t_main_':
if _name_
main()Analisis Kasus
Pada penyelesaian program sering juga dihadapkan dengan keadaan dimana harus
melakukan pengecekan terhadap sebuah kondisi sebelum melakukan sesuatu.
Pengecekan kondis' ini dapat terjadi ketika melakukan validasi data yang dimasukkan
oleh pengguna, pengecekan pemenuhan syarat, pengecekan range dua buah nilai, dan
lain sebagainya. Untuk mengatasi hal tersebut, dalam Bahasa pemrograman pun
disediakan perintah untuk melakukan pengecekan terhadap kondisi yang diperlukan.
Sebelum membuat program, lakukan analisis terlebih dahulu terhadap kasus yang akan
diselesaikan. Pisahkan kondisi apa saja yang harus diperiksa dan aksi apa yang akan
dijalankan ketika setiap kondisi terpenuhi.
Contohnya, kasus yang dihadapi adalah menentukan wujud zat berdasarkan suhunya.
Pada suhu dibawah 0 derajat celcius wujud zat yang akan dihasilkan adalah padat (beku).
Pada suhu antara 0 derajat celcius hingga dibawah 100 derajat celcius wujud zat adalah
air. Sedangkan dengan suhu diatas 100 derajat celcius, maka suhu akan menguap
menjadi gas (uap).
Hasil analisis pemisahan kondisi dan aksi yang akan dilakukan:
Langkah| —_Kondisi
1. ‘Suhu < 0
2. }0 <= Suhu < 100.
3. [Suhu >= 100Masukan (Input) Pengguna
Pada bab sebelumnya telah dibahas berbagai cara untuk menampilkan data ke layar.
Pada sub bab ini akan dibahas mengenai cara menerima masukan dari pengguna.
Khusus untuk masukan tiap bahasa pemrograman memiliki cara yang sedikit berbeda
satu dengan yang lainnya.
Pada aplikasi konsol, bahasa pemrograman C# menggunakan method
Console.ReadLine( untuk menerima masukan (string) dari pengguna. Pada bahasa
pemrograman C# hampir sebagian besar metode input menghasilkan sebuah tipe data
string. Untuk mendapatkan tipe data lainnya periu melakukan proses parsing terlebih
dahulu, Proses parsing adalah sebuah proses menerjemahkan sebuah data menjadi
bentuk lainnya sehingga mudah untuk diolah. Dalam kasus ini mengubah tipe data string
menjadi tipe data numerik. Berikut ini adalah potongan kode program C# yang melakukan
proses input, sampai dengan proses parsing nilai ke bilangan bulat (int).
Console.Write("Masukan sebuah nilai:
string nilaistr = Console.ReadLine();
"a
// Parsing string ke tipe int
int nilai;
int.TryParse(nilaistr, out nilai);
Bahasa pemrograman JAVA menggunakan pendekatan yang berbeda dengan bahasa
Pemrograman C#, Pada bahasa pemrograman JAVA, untuk menerima masukan
menggunakan class Scanner. Class ini digunakan untuk melakukan parsing nilai ke tipe
data umum yang ada pada bahasa pemrograman JAVA. Method Scanner.next)
digunakan untuk mengambil nilai dengan tipe data yang diinginkan (contoh bilamana
ingin mengambil sebuah int, maka dapat menggunakan method Scanner.nextint().
Berikut ini adalah potongan kode program JAVA yang melakukan proses input sebuah
nilai bilangan bulat (int).
// Class Scanner digunakan untuk parsing masukan
Scanner scanner = new Scanner (System.in);
System.out.print ("Masukan sebuah nilai:
int nilai;
nilai = scanner.Nextint ();
Bahasa pemrograman Python memiliki pendekatan yang jauh lebih sederhana daripada
bahasa pemrograman C# dan JAVA, Menerima masukan pada bahasa pemrograman
Python menggunakan fungsi input). Sedangkan proses parsing dapat langsung
menggunakan tipe data yang bersangkutan, contoh untuk mendapatkan sebuah int maka
dapat menggunakan int(input(). Berikut ini adalah potongan kode program Python yang
melakukan proses input yang serupa dengan bahasa pemrograman Cif dan JAVA.
nilai = int (input ("Masukan sebuah nilai:Pernyataan if
Pada dasarnya konsep dari pernyataan if untuk seluruh bahasa pemrograman sama, akan
tetapi ada sedikit perbedaan pada sintaks/kode perintah pada setiap bahasa
pemrograman, Pernyataan if nantinya akan berpasangan dengan else if dan else, dimana
ketika kondisi pada if tidak terpenuhi, maka program akan mengecek kondisi pada else if
atau else. Sehingga hanya akan ada satu aksi saja yang dijalankan oleh program. Aksi
pada else akan dijalankan ketika seluruh kondisi pada if dan else if tidak ada yang
terpenuhi.
Berikut adalah tabel perbandingan pernyataan if di tiap bahasa pemrograman.
‘Umum CHIJAVA Python
if (kondisil) if (kondisi1) if (kondisi1):
then aksil ( # aksil
else if(kondisi2) | // aksit elif (kondisi2) :
then akei2 ’ # aksi2
else if(kondisi3) | else if(kondisi2) | elif (kondisi3) :
then aksi3 i W aksi3
else W/ aksi2 else
then aksid , # aksid
else if (kondisi3)
(
I aksi3
)
else
(
1 aksia
)
Analisis kasus yang biasanya memiliki tiga buah varian, analisis kasus tunggal (analisis
satu kasus), analisis kasus ganda (analisis dua kasus), dan analisis banyak kasus. Analisis
kasus tunggal: Buatlah sebuah kode program untuk mendeteksi apakah nilai yang
dimasukan adalah sebuah bilangan ganjil. Berikut ini adalah solusi dalam bahasa
pemrograman C#.
using System;
class Program
(
static void Main(string{] args)
(
Console.Write("Masukan sebuah nilai
string nilaiste = Console.ReadLine(
int nilai;
int.TryParse(nilaistr, out nilaiy;
if(nilai & 2 == 1)
i
Console.WriteLine("Nilai (0} ganjil.", nilai);
)
,
)
Berikut adalah solusi dalam bahasa pemrograman JAVA.import java.util.Scanner;
public class Program (
public static void main(String(] args) (
Scanner sc = new Scanner (System. in)?
System.out.print ("Masukan sebuah nilait
int nilai = sc.nextInt ();
if(nilai ¢ 2 == 1) (
System.out.printin(*"Nilai " + nilai + " ganjil.
,
,
}
‘Sedangkan berikut adalah solusi dalam bahasa Python.
def main():
nilai = int (input ("Masukan sebuah nilai:"))
if(nilad 8 2 == 1):
print("Nilai", nilai, “ganjil.")
4€ name == '_main_':
naia()
nilai Evaluasi Output
25 Nilai 25 ganjil.
30 | 30% 2 == 1, False | -
Analisis kasus ganda: Buatlah sebuah kode program untuk mendeteksi apakah nilai yang
dimasukan sebuah bilangan ganjil atau bilangan genap. Berikut adalah solusi dalam
bahasa pemrograman C#.
using system;
class Program
(
static void Main(string{] args)
‘
Console.Write("Masukan sebuah nilai: ");
string nilaistr = Console.ReadLine()+
int nilai;
int .TryParse(nilaistr, out nilai);
if(nilai $2 *= 1)
‘
Console.WriteLine("Nilai (0) ganjil.", nilai);
1
else
‘
Console.WriteLine("Nilai (0) genap.
)
}
)
) adlaid;Berikut adalah solusi dalam bahasa pemrograman JAVA.
import java.util.Scanner:
public class Program {
public static void main(string{] args) {
Scanner sc = new Scanner (System.in);
System.out.print ("Masukan sebuah nilai: ");
int nilai = sc.nextint ()7
if(nilai $2 == 1) {
System.out.printin("Nilai " + nilai + " ganjil.")s
)
else (
System.out-printin("Nilai " + nilai + " genap.");
)
}
,
‘Sedangkan berikut adalah solusi dalam bahasa Python.
def main():
nilai = int (input ("Masukan sebuah nila:
”
if(nilai t 2 == Ds
print("Nilai", nilai, "ganjil.")
else:
print ("Nilai", nilai, “genap.")
if name == '_main_':
main)
nil Evaluasi Output
25 Nilai 25 ganji.
30 1, False (kode blok else dijalankan) | Nilai 30 genap.
Analisis banyak kasus: Buatiah sebuah kode program untuk menampilkan wujud dari air
dari suhu (dalam celcius) yang dimasukan. Berikut ini adalah solusi dalam bahasa
pemrograman C#.
using System;
class Program
{
static void Main(string{] args)
fl
Console.Write("Masukan suhu air: ");
string suhustr = Console.ReadLine()?
double suhu;
double.TryParse(suhuStr, out suhu);
if(suhu < 0)
(
Console.WriteLine ("Wujud padat.");)
else if(suhu < 100)
t
Console.WriteLine("Wujud cair.");
}
else
i
Console.WriteLine("Wujud gas.");
,
)
}
Berikut adalah solusi serupa dalam bahasa pemrograman JAVA.
import java-util.Scanner:
public class Program {
public static void main(String[] args) {
Scanner sc = new Scanner (System. in);
System.out.print ("Masukan suhu air: ");
double suhu = sc.nextDouble();
if(suhu < 0) {
System.out.printin("Wujud padat.");
,
else if(suhu < 100) (
System.out.printin("Wujud cair.");
,
else(
System.out-printin("Wujud gas.");
)
)
)
Berikut adalah solusi dalam bahasa pemrograman Python.
def main():
suhu = float (input ("Masukan suhu air:"))
if(suu < 0):
print ("Wujud padat.")
elif(suhu < 100):
print ("Wujud cair.
else:
print ("Wujud gas.")
if _name__ == '_main_':
main()
|suhu| Evaluasi Output
-20 |suhu <0, True Wujud padat.
40 |suhu <0, False Wujud cair.
suhu < 100, True
121 |suhu <0, False Wujud gas.Jsuhu < 100, False (kode blok else
lankan)
Perlu diingat kondisi yang diperiksa oleh pernyataan if dan else if dapat lebih dari satu
kondisi. Jika terdapat lebih dari sebuah kondisi yang akan diperiksa maka dapat
menggunakan operator AND dan OR. Contoh kasus: Buatlah sebuah program yang akan
memeriksa letak titik koordinat x dan y, sehingga dapat diketahui kuadran dari titik
koordinat tersebut.
Kuadran tt Kuadran |
Kuadran il Kuadran IV
Kuadran | Kondisi
Titik pusat]X = 0, Y = 0|
t X>0,Y>0|
O X<0,Y¥>0
o X<0,Y <0
Vv X>0, <0]
Berikut adalah solusi dalam bahasa pemrograman C#.
using System
class Program
H
static void Main(string{] args!
n
Console. Write ( “”
string xStr = Console.ReadLine();
Console.Write("Y = ")
string yStr = Console.ReadLine();
int x, yFint .TryParse(xStr, out *);
int .TryParse(ystr, out y):
if (x > 0 6 y > 0)
Console.WriteLine ("Titik ((0},
else if(x <0 66 y > 0)
Console.WriteLine("Titik ((0),
else if(x <0 6& y <0)
Console.WriteLine("Titik ((01,
else if(x > 0 6& y <0)
Console.WriteLine("Titik ((0},
else
Console.WriteLine("Titik ((0},
)
,
(11) berada ai
(1}) berada ai
(11) berada di
(1)) berada di
(1)) berada ai
Berikut adalah solusi dalam bahasa JAVA.
import java.util.Scanner;
public class Program [
public static void main(String() args) {
Scanner sc = new Scanner (System. in)?
System.out.print ("%
int x = sc.nextInt ();
System.out.print("Y = *
int y = sc.nextint ();
if(x > 0 6% y > 0)
System.out-printin ("Titik (" +
else if(x <0 && y > 0)
System.out-printin ("Titik (" +
else if (x <0 &@ y < 0)
System.out-printin ("Titik ("+
else if(x > 0 && y < 0)
System.out.printin("Titik (" +
else
System.out.printin("Titik (" +
}
)
Kuadran I
eee ye
Kuadran IT.", x, y)i
Kuadran IIT.", x, y)i
Kuadran IV.", x, yi
titik pusat.", x, ye
") berada
") berada
") berada
") berada
") berada
‘Sedangkan berikut adalah solusi dalam bahasa Python.
def main(
x = int (input ("x ="))
y = int (input ("Y ="))
4E(x > 0 and y > 0):
print ("Titik (") x,
elif (x <0 and y > 0:
print (Titik (", x,
elif(x < 0 and y <0)
PEInt ("Titik (", x,
elif (x > 0 and y <0)
PEN C*Ttik (", x,
else:
PEAME (TERA (, xe "sy Ye
")
"
”
nye)
if _name_
maing
"maint:
berada di Kuadran I.",
berada di Kuadran
berada di Kuadran TIT.",
berada di Kuadran IV.",
berada di titik pusat.",
di Kuadran
di Kuadran I1.");
di Kuadran TIT.");
di Kuadran IV.");
di titik pusat.");
ep =")
sep =
sep ° "™)
sep =")
sep =")Pernyataan if Bersarang
Pemnyataan if dapat digunakan juga untuk kasus-kasus yang memerlukan pemeriksaan
kondisi secara berlapis. Pernyataan if dapat digunakan di dalam pernyataan if lainnya,
sehingga dapat melakukan pemeriksaan kondisi secara berlapis. Hal ini dikenal dengan
istilah pernyataan if bersarang, Contoh kasus: Buatlah sebuah program yang menerima
sebuah masukan nilai kemudian menampilkan apakah nilai tersebut adalah ganjil positif,
ganiil negatif, genap positif, atau genap negatif.
Berikut ini adalah solusi dalam bahasa C#.
using System;
class Program
‘
static void Main(stzing(] args)
(
Console.Write("Input sebuah nilai: ");
string nilaistr = Console-ReadLine();
int nilai;
int .TryParse(nilaistr, out nilai);
if(nilai 8 2 t= 0)
(// Ganjit
if(nilai > 0)
Console.WriteLine("Ganjil Positif.");
else
Console.WriteLine ("Ganjil Negatif.");
)
else
{ // Genap
if(nilai > 0)
Console.WriteLine ("Genap Positif.");
else
Console.WriteLine("Genap Negatif.":
}
,
)
‘Sedangkan berikut adalah solusi dalam bahasa JAVA.
import java-util-Scanner;
public class Program (
public static void main(String{] args) (
Scanner se=new Scanner (System. in);
System.out.print ("Input sebuah nilai: ");
int nilai = se.nextIat();
if(nilai $2 t= 0) { // Ganjil
if(nilai > 0)
System.out-print ("Ganjil Positif,
else
System.out.print ("Ganjil Negatit
)
else ( // Genap
if(nilai > 0)
System.out.print ("Genap Positif.else
System.out.print ("Genap Negatié
)
,
)
Berikut adalah solusi dalam Python.
def main():
nilai = int (input ("Input sebuah nilai:"))
if(nilai & 2
if(nilai > 0):
print ("Ganjil Positif.")
else:
print ("Ganjil Negatif.")
else: # Genap
if(nilai > 0):
print ("Genap Positif.")
else:
print ("Genap Negatif.")
0): # Ganjil
if _name_
main()Pengulangan
Pada pemrograman terdapat juga perintah untuk pengulangan. Perintah ini digunakan
ketika satu paket perintah akan dijalakankan berkali-kali. Pada setiap algoritma,
pengulangan memiliki sebuah kondisi yang akan menyebabkan pengulangan tersebut.
berhenti. Pengulangan terdiri dari dua bagian besar, yaitu evaluasi kondisi pengulangan
dan kumpulan aksi yang ingin diulang.
Evaluasi kondisi pengulangan digunakan untuk mengevaluasi syarat kumpulan kode
program untuk diulang. Kondisi ini dibuat dalam sebuah pernyataan boolean yang akan
menghasilkan nilai benar/salah (true/false). Selama kondisi dari pengulangan benar (true),
maka Kumpulan aksi yang ada pada pengulangan akan terus menerus dijalankan.
Sedangkan kumpulan aksi berisi satu atau lebih aksi yang ingin dijalankan berulang oleh
blok pengulangan. Kumpulan aksi ini akan terus dijalankan selama kondisi pengulangan
bernilai benar (true) atau sampai kondisi pengulangan bernilai salah (false).
Contoh bilamana Anda diminta untuk membuat sebuah program untuk menghitung rata-
rata nilai dari 40 orang siswa yang dimasukan pengguna, maka program akan melakukan
pengulangan input nilai sebanyak 40 kali, Setelah didapat data nilai dari 40 siswa, maka
program akan melakukan pengulangan penjumlahan nilai sebanyak 40 kali, lalu jumlahnya
dibagi 40 untuk mendapatkan nilai rata-ratanya.Keluaran (Output)
‘Sebelum masuk ke pembahasan lebih rinci mengenai pengulangan ada baiknya kali ini
melakukan pembahasan mengenai mencetak keluaran. Pada bab sebelumnya (bilamana
dilihat secara rinci), beberapa bahasa pemrograman memiliki setidaknya dua buah varian
fungsi atau method untuk menampilkan data ke layar konsol.
Pada bahasa C# terdapat Console. Write) dan Console.WriteLine). Perbedaannya adalah
pada Console.Write) hanya mencetak hasil ke layar console, sedangkan pada
Console.WriteLine) setelah mencetak hasil lalu dilanjutkan dengan perintah untuk pindah
ke baris baru.
using system;
class Program
(
static void Main(string{] args)
f
// Hasil Keluaran
// Hello
11 World
Console. WriteLine("HelL:
Console. WriteLine (*Worl:
// Basil Keluaran
// BelloWorla
Console.Write ("Hello");
Console. WriteLine ("World");
)
,
Pada bahasa JAVA terdapat System.out.print) dan System.out.printin) yang kegunaan
serupa dengan kedua fungsi/method milik bahasa pemrograman Cit. System.out.print()
digunakan untuk menampilkan hasil, sedangkan System.out.printin) digunakan untuk
menampilkan hasil dan pindah ke baris baru.
public class Program {
public static void main(String[] args) (
7/ Hasil Keluaran
UI Bello
11 World
System.out.println("Hello");
System.out.println ("World");
// Hasil Keluaran
W/ HelloWorld
System.out.print ("Hello");
System.out.printin ("World") ;
)
,
Berteda sedikit dengan bahasa C# dan bahasa JAVA, pada bahasa Python hanya
mengenal satu buah saja fungsi untuk mencetak ke layar Konsol yaitu print).
Fungsionalitas yang sama dapat dilakukan oleh bahasa Python dengan menambahkan
nilai pada parameter di fungsi print) itu sendiri. Parameter end, digunakan untuk
mengubah penutup dari fungsi print). Parameter end memiliki nilai default pindah baris.def main():
# Hasil Keluaran
# Hello
# World
print ("Hello")
print ("World")
# Hasil Keluaran
# Hello World
print ("Hello", end =" ")
print ("World")
if _name_ == '_main_
main()
‘Sedangkan parameter sep, digunakan untuk mengubah pemisah antara satu nilai ke nilai
lainnya. Parameter sep memilki nilai default sebuah spasi.
def main():
# Hasil Keluaran
# Hello World
print ("Hello", “World")
# Hasil Keluaran
# Hello*World
print("Hello", "World", sep = "*")
if _name_
main()Pernyataan while-do
Peryataan while-do cocok digunakan untuk melakukan pengulangan yang jumlah
pengulangan belum diketahui di awal. Contoh ketika sebuah program diminta untuk terus
menerus menerima masukan dari pengguna sampai pengguna memasukan “done”.
Program tidak pernah mengetahui berapa kali proses input harus dilakukan, karena
jumlahnya tergantung dari pengguna itu sendiri. Berikut ini adalah format umum
pemyataan while-do.
[inisialisasi]
while (kondisi) do
aksi
[peubah kondisi}
Bagian inisialisasi digunakan untuk memberikan nilai awal pada variabel yang digunakan
pada bagian evaluasi kondisi sehingga pengulangan dapat berjalan dengan baik. Bagian
kondisi digunakan untuk melakukan evaluasi nilai sebelum melakukan aksi. Aksi
dilakukan bilamana kondisi masih menghasilkan nilai true. Peubah kondisi digunakan
untuk mengubah nilai, sehingga pengulangan dimungkinkan untuk selesai (berhenti).
Tergantung kasusnya, pada bagian peubah kondisi biasanya melakukan penambahan
atau pengurangan nilai penghitung (counter). Berikut ini adalah contoh program C# yang
bertujuan untuk menampilkan teks Hello sebanyak lima kali.
using System:
class Program
‘
static void Main(string(] args)
‘
int counter =
while (counter
(
Console.Write ("Hello ");
counter++;
}
}
)
»
Berikut ini adalah kode program JAVA yang serupa dengan kode program C# di atas.
public class Program {
public static void main(String{] args) {
int counter = 1;
while (counter <= 5)
(
System.out.print ("Hello ");
counter++;
)
}
,
‘Sedangkan berikut adalah kode program Python.
def main():
counter = 1
while(counter <= 5):
print ("Hello", end = " ")counter = counter + 1
if name == '_main_':
nain()
[counter] Evaluasi Output
4 1<=5, True [Hello
2 2 <=5, True [Hello Hello
3 3 <=6, True [Hello Hello Hello
4 4 <= 5, True [Hello Hello Hello Hello
5 5 <= 5, True |Hello Hello Hello Hello Hello|
6 6 <= 5, False| berhenti)
Pada kasus kedua akan mendemonstrasikan penggunaan pemyataan while-do untuk
melakukan pengulangan yang jumlahnya belum diketahui. Pada kasus kali ini Program.
akan meminta pengguna untuk memasukan nama peserta dan program menghitung
jumlah peserta yang dimasukan pengguna. Program akan berhenti meminta masukan
nama bilamana dimasukan teks “DONE”. Berikut adalah solusi dalam bahasa C#.
using System;
class Program
{
static void Main(string(] args)
(
Console.WriteLine ("Input nama peserta");
Console.Write("Nama: “");
string nama = Console-ReadLine();
int count = 0;
while(nama != "DONE")
(
count#+:
nama = Console.Readbine ();
)
Console.WriteLine("Jumlah peserta adalah {0} orang.", count);
// #asil Kelvaran:
// Input nama peserta
17 Nama: Budi
17 Nama: Twan
1 Nama: Wati
“7 Nama: DONE
// Jumlah peserta adalah 3 orang.
Berikut solusi serupa dalam bahasa JAVA.import java.util.Scanner;
public class Program (
public static void main(String[] args) {
Scanner sc=new Scanner (System. in):
System-out.printin("Input nama peserta");
System.out.print ("Namaz ");
String nama = sc.nexthine();
int count
while (!nama-equals("DONE")) (
count++;
nama = sc.nextLine();
1
System.out.printin("Jumlah peserta adalah * + count + * orang.");
// fasil Keluaran:
7/ Input nama peserta
// Nama: Budi
7 Nama: Twan
1 Nama: Wati
11 Nama: DONE
// Jomlah peserta adalah 3 orang.
,
Berikut adalah kode program dalam bahasa Python.
def main():
print ("Input nama peserta")
count = 0
nama = input (*Nama:
)
while (nama != "DONE"):
count = count +1
nama = input ("Nama:")
print ("Jumlah peserta adalah", count, "orang.")
Hasil Keluaran:
nama peserta
: Budi
Iwan
Wati
Nama: DONE
Jumlah peserta adalah 3 orang.
if name == *_main_
main)
Pada bahasa pemrograman C# dan JAVA, selain pernyataan while-do ada juga
pemyataan do-while. Perbedaannya adalah pada pernyataan do-while evaluasi kondisi
dilakukan terakhir. Hal ini memungkinkan kode program dalam blok pengulangan
dilakukan setidaknya sekali, walaupun kondisinya bernilai false. Berikut adalah format
umum pernyataan do-while,
(inisialisasi]do
aksi
[peubah kondisi)
while (kondisi)
Berikut ini adalah contoh kode program yang menggunakan pemyataan do-while dalam
bahasa pemrograman C#.
using System;
class Program
{
static void Main(string[] args)
‘
Console.WriteLine("Pernyataan while-do");
int value = 5;
while (value <= 4)
(
Console.WriteLine (value) +
valuett;
)
Console.WriteLine("Pernyataan do-while");
value = 5;
do
{
Console.WriteLine (value);
value++;
} while (value
4;
// Wasil Keluaran:
7/ Pernyataan while-do
// Pernyataan do-while
Ws
,
}
‘Sedangkan berikut adalah kode program dalam bahasa JAVA.
public class Program {
public static void main(String[} args) (
System.out.printin("Pernyataan while-do");
int value = 5;
while(value <= 4) (
System.out-print1n (value);
valuet+;
,
System.out.println("Pernyataan do-while");
value = 5;
do {
System.out-print1n (value);
valuets;
} while(value <= 4);
W/ #asil Keluaran:
// Pernyataan while-do
7) Pernyataan do-while
Ws
}Perhatikan bahwa ketika menggunakan pernyataan while-do blok kode pengulangan
tidak dijalankan, karena kondisi bernilai false, sehingga pengulangan langsung dihentikan
tanpa menjalankan blok kode program pengulangan. Pada bagian peryataan do-while,
walaupun menggunakan nilai yang sama tetapi kode program dijalankan sekali, arena
bagian evaluasi dilakukan terakhir.Pernyataan for
Berbeda dengan pernyataan while-do, pemyataan for digunakan bilamana jumlah
pengulangan yang akan dilakukan sudah diketahui sebelum pengulangan tersebut
dimulai. Sama dengan pemyataan while-do, pada pernyataan for ada bagian evaluasi
kondisi untuk menentukan apakah pengulangan akan berlanjut atau berhenti.
Berbeda dengan pernyataan while-do yang memiliki format umum yang sama untuk
ketiga bahasa pemrograman. Pada pernyataan for, bahasa pemrograman Cif dan JAVA
memiliki format yang sama, sedangkan bahasa pemrograman Python memilki format
yang berbeda. Berikut adalah format umum pernyataan for untuk C#t dan JAVA:
for (inisialiasi;kondisi;peubah kondisi)
aksi
Inisialiasi berisi kode program untuk memasukan nilai awal ke variabel counter (contoh:
int i = 0). Kondisi berisi ekspresi boolean yang menentukan batas pengulangan. Selama
ekspresi boolean pada bagian kondisi bemilai true, maka kode program aksi akan terus
dijalankan (contoh: i < 5, selama nilai i masih lebih kecil dari 5, maka kode program aksi
akan dijalankan). Peubah kondisi berisi pernyataan yang bertujuan merubah nilai variabel
counter sehingga pengulangan dapat berhenti (kondisi tercapai, menghasilkan nilai false).
Variabel counter sebaiknya menggunakan bilangan bulat, agar jumlah pengulangan tepat.
Berikut ini adalah contoh program sederhana dalam bahasa C# yang bertujuan untuk
menampilkan teks Hello sebanyak lima kali.
using system;
class Program
cl
static void Main(string{] args)
{
for(int i= 0; i < 5; ++i)
Console.WriteLine ("Hello") ;
)
)
‘Sedangkan berikut adalah solusi dalam bahasa JAVA.
public class Program (
public static void main(String[] args) (
for(int i i <7 +i)
System.out.printin ("Hello") ;
,
,
Pada bahasa Python, format penulisan pernyataan for sedikit berbeda. Berikut adalah
format pernyataan for dalam bahasa Python.
for varCounter in range({nilai awal], (nilai akhir], {langkah])
Berbeda dengan bahasa C# dan JAVA, bahasa Python melakukan iterasi nilai dari
rentang nilai (range). Range akan membuat sebuah kumpulan nilai yang dimulai dari nilai
awai, sampai nilai akhir, dengan besar langkah tertentu. Contoh: Pernyataan range(3)
akan menghasilkan kumpulan nilai 0, 1, 2. Pernyataan range(1, 3) akan menghasilkan
kumpulan 1, 2. Sedangkan pernyataan range(1, 20, 2) akan menghasilkan kumpulan 1, 3,5, 7, 9, 11, 13, 15, 17, 19. Berikut adalah solusi dalam bahasa Python untuk menampilkan
teks Hello sebanyak lima kali.
def main():
for i in range(1, 5+1, 1):
print(*Hello", end ©" *)
if name == '_main_':
main()
Bagaimana bilamana ingin melakukan pengulangan yang nilainya dari besar ke kecil?
Berikut ini adalah contoh solusi sederhana menggunakan bahasa pemrograman C#.
using System;
class Program
i
static void Main(string{] args)
{
for(int i = 20; i > 0; i -= 2)
Console.WriteLine (i);
)
,
‘Sedangkan berikut dalam bahasa JAVA.
public class Program (
public static void main(Stringl] args) {
for(int 4 = 20; i > 0; i -= 2)
System.out.printin (i)
’
)
Terakhir bilamana menggunakan bahasa Python.
def main():
for i in range(20, 0, -2):
print (i)
if __name, ‘main ':
mainPengulangan Bersarang
Pengulangan bersarang merupakan pengulangan yang didalamnya terdapat pengulangan
lain, Cara kerja dari pengulangan bersarang ini ialah pada setiap putaran pengulangan
terluar, maka pengulangan yang ada didalam akan dimulal dari awal dan diselesaikan
hingga akhir. Perhatikan contoh yang akan menunjukan proses kerja dari pengulangan
bersarang berikut ini:
Variable i mewakili pengulangan yang terluar, sedangkan variable j mewakili pengulangan
yang berada didalam. Berikut adalah contoh kode program menggunakan bahasa C#.
using system:
class Program
ci
static void Main(string(] args)
{
for(int i= 1; i> 4; +44)
for(int j = 17 5 > 7 +43)
Console.iriteLine("i= "+i4 "5 = "4507
’
)
‘Sedangkan berikut adalah kode program menggunakan bahasa JAVA.
public class Program {
public static void main(string() args) (
for(int i i> 4; si)
for(int j = 17 4 > $7 +43)
System.out.printin("i = "+i +*
ae
)
)
Dan terakhir kode program serupa menggunakan bahasa Python.
def main():
for 1 in range(1, 3+1, 1):
for j in range(1, 4+1, 1)
print("i=", i, * 3 =
dy sep =")
if __name.
main)Fungsi
‘Sebuah organisasi terbentuk dari orang-orang yang memiliki peranan dan tugas masing-
masing dalam pencapaian sebuah tujuan. Seluruh orang yang berada dalam organisasi
tersebut bekerjasama untuk dapat mencapai keberhasilan. Sama halnya dengan
organisasi tersebut, sebuah program yang ditujukan untuk menyelesaikan permasalahan
yang banyak atau rumit akan dibentuk dalam modul-modul dimana setiap modul memiliki
eran dan tugas masing-masing. Modul tersebut akan diimplementasikan dalam program
berupa Fungsi. Sebuah Fungsi akan memiliki sebuah tugas dan dapat mengeluarkan
sebuah hasil yang diperiukan untuk menyelesalkan permasalahan. Manfaat dari
pembagian modul tersebut adalah:
1. Program menjadi lebih terstruktur.
2. Lebih mudah dalam melakukan penyelusuran kesalahan (error tracking).
3. Mengurangi penulisan kode program yang berulang.
Terkadang sebelum sebuah fungsi bekerja, fungsi tersebut membutuhkan informasi
pendukung untuk menyelesaikan tugasnya. Informasi tersebut disebut sebagai
Parameter. Jumiah parameter yang dibutuhkan sebuah fungsi tidak dibatasi. Layaknya
sebuah variable, parameter yang ada pada setiap fungsi memiliki tipe data sesuai dengan
data yang akan ditampungnya. Parameter inilah yang nantinya akan digunakan oleh
fungsi dalam menjalankan tugasnya. Pada bahasa pemrograman Python, pendefinisian
tipe data parameter tidak diperlukan. Berikut adalah sintaks umum deklarasi fungsi:
[tipe/keyword] namaFungsi(tipe paraml, tipe param2, ...)
{
aksil
aksi2
aksin
return ...
,
Pada bahasa pemrograman C# dan JAVA pendefinisian fungsi diawali dengan tipe
(contoh: int, float, dll) dari nilai yang dikembalikan (return). Sedangkan pada bahasa
Python, diawali dengan keyword def.
‘Sebuah Fungsi akan menjalankan perintah didalamnya jika terdapat pemanggilan kepada
fungsi tersebut. Pemanggilan fungsi dilakukan dengan cara menuliskan nama dari Fungsi
yang akan dipanggll, dilkuti dengan (). Pada saat pemanggilan fungsi ini, harus
diperhatikan apakah fungsi yang dipanggll tersebut memiliki parameter atau tidak. Jika
memiliki parameter, maka pada saat pemanggilan fungsi, pemanggil harus memberikan
nilai untuk masing-masing parameter yang ada. Nilai yang akan diberikan untuk fungsi
disertakan pada () setelah penyebutan nama fungsi, sintaks:
namaFungsi (nilail,nilai2,.
Jumlah nilai, tipe data, serta urutan dalam pemberian nilai harus sesuai dengan parameter
pada fungsi. Nilai yang dikirimkan oleh pemangail, akan ditampung pada setiap
parameter yang ada sesuai dengan urutan pemberian nilai.Gambar diatas menunjukan alur program dengan penggunaan fungsi. Pada saat program
dijalankan maka compiler akan menjalankan perintah pada fungsi main( terlebih dahulu.
Perintah pada fungsi main( akan dijalankan dari baris pertama sampai baris terakhir
secara terurut. Jika pada deretan perintah tersebut terdapat perintah pemanggilan fungsi,
contohnya memanggil fungsi Aa), maka fungsi main akan memanggil fungsi Aa()
tersebut untuk kemugian menjalankan perintah-perintah yang ada pada funasi Aa).
Setelah perintah pada fungsi Aa() selesai dijalankan, maka program akan kembali ke
fungsi main untuk menjalankan perintah pada baris berikuinya.
Pemanggilan fungsi bukan hanya dapat dilakukan oleh fungsi main() saja, melainkan
dapat dilakukan oleh fungsi selain main). Perhatikan proses pemanggilan antar fungsi
pada gambar dibawah ini
a ee
vercici
Fungsi main) akan selalu dijalankan pertama kali ketika program dijalankan. Pada alur
program ini, terdapat pemanggilan fungsi Aal) pada fungsi main). Maka seperti pada
penjelasan sebelumnya, fungsi main() akan melakukan pemanggilan fungsi Aa untuk
kemudian program menjalankan fungsi Aa). Pada fungsi Aa() perintah-perintah yang ada
akan dijalankan secara beruturan mulai dari baris teratas. Dillustrasikan pada gambar di
atas, bahwa pada fungsi Aa() terdapat pemanggilan kepada fungsi lain yaitu fungsi Bb0).
Dikarenakan ada pemanggilan dari fungsi Aa), maka perintah pada fungsi Bb() akan
dijalankan mulai dari baris teratas sampai selesai. Setelah sampai pada baris paling akhir,
maka program akan kembali pada fungsi Aa(). Jika pada fungsi Aa() masih terdapat
perintah pada baris berikutnya, maka perintah tersebut akan diselesaikan terlebih dahulu
sampai perintah paling akhir. Setelah perintah pada fungsi Aa() selesai dijalankan, maka
program akan kembali pada fungsi main. Program akan menjalankan perintah pada baris
berikutnya setelah baris perintah pemanggilan fungsi Aad.Setiap fungsi yang ada, dapat memberikan nilai kembalian (return) ataupun tidak. Return
merupakan sebuah nilai yang akan dikembalikan kepada yang memanggil fungsi tersebut.
Perlu diperhatikan, jika sebuah fungsi yang dipanggil memiliki return, maka pada fungsi
pemanggil harus disediakan variable penampung untuk nilai kembalian tersebut. Sebuah
Fungsi hanya memiliki sebuah nilai yang dapat di-return. Pada bahasa pemrograman
Java dan Ci, jika sebuah Fungsi tidak memberikan retum hilai maka berikan keyword
void pada pendefinisian Fungsi. Sedangkan jika sebuah Fungsi memilki nilai return maka
berikan pendefinisian tipe data yang akan dikembalikan pada pendefinisian Fungsi.
Berikut adalah contoh kode program menggunakan fungsi tanpa nilai kembalian. Sebuah
program akan meminta nama dari pengguna, kemudian program akan menampilkan
nama pengguna tersebut sebanyak yang pengguna inginkan. Buatlah program yang akan
menampilkan nama pengguna tersebut.
Solusi bahasa C#.
using system;
class Progran
‘
static void TampilNama(string pengguna, int jumlah)
‘
for(int i= 1; i <= jumlahs ++i)
Console.WriteLine (pengguna) ;
’
static void Main(string{] args)
fl
Console.Write("Masukan nama And:
string nama = Console.ReadLine();
Console.Write("Berapa kali akan ditampilkan? ");
int count = int.Parse(Console.ReadLine());
‘TampilNama (nama, count);
)
,
Solusi bahasa JAVA.
import java.util.Scanner;
public class Program [
public static void tampilNama(String pengguna, int jumlah) (
for(int i= 1; i <= jumlah; ++i)
System. out .printin (pengguna) ;
public static void main(string{] args) (
Scanner sc = new Scanner (System. in);
System.out.print ("Masukan nama And:
String nama = sc.next (i
System. out.print ("Berapa kali akan ditampilkan? “)
int count = sc.nextrnt (I;
tampilNama(nama, count);
,:
Solusi bahasa Python,
def tampiiNama(pengguna, jumlah):
for i in range(1, jumlah+l, 1}:
print (pengguna)
def main():
nama = input ("Masukan nama Anda
count = int (input ("Berapa kali ak
‘tampilNama (a
{
‘> tampung=Aal);
Fungsi main) melakukan pemanggilan terhadap fungsi Aa). Pada akhir fungsi terdapat
perintah return dengan diikuti oleh sebuah variable bernama hasil. Nilai (value) dari
variable hasil akan dikirimkan kepada fungsi main) dan diterima oleh variable tampung.
Maka variable tampung nantinya akan memiliki nilai (value) hasil dari pemanggilan fungsi
Aa).
Berikut adalah contoh kode program menggunakan fungsi dengan nilai kembalian.
Sebuah program akan menghitung luas sebuah segitiga. Program akan meminta
Pengguna untuk memasukkan informasi berupa panjang alas dan tinggi dari segitiga.Fungsi akan menghitung dan mengembalikan hasil perhitungan luas ke fungsi utama.
Solusi bahasa C#.
using System;
class Program
‘
static double Hitungluas(double alas, double tinggi)
f
double hasil = (alas * tinggi) / 2;
return hasil;
,
static void Main(string{] args)
(
Console.Write("Alas: ");
int alas = int.TryParse (Console.ReadLine());
Console.Write("Tinggi: ")+
int tinggi = int.Parse (Console.ReadLine());
double luas = HitungLuas(alas, tinggi);
Console.WriteLine("Luas: " + luas);
}
,
Solusi bahasa JAVA.
import java.util.Scanner;
public class Program {
public static double hitungLuas (double alas, double tinggi)
double hasil = (alas * tinggi) / 2;
return hasil;
)
public static void main(String{] args) (
Scanner sc = new Scanner (System. in) ;
System.out.print ("Alas: ");
int alas = sc-nextint ();
System.out.print "Tinggi: ");
Ant tinggi = se.nextint ();
double luas = hitungiuas(alas, tinggi);
System.out.printin("Luas: “ + luas)?
,
)
Solusi bahasa Python.
def hitungLuas(alas, tinggi):
hasil = (alas * tinggi) / 2
return hasil
def main():
alas = int (input ("Alas: "))
tinggi = int (input ("Tinggi: "))
luas = hitungluas(alas, tinggi)
print ("Luas:", luas)
fAf __name__ == '_main_':
main()
Setiap fungsi akan mulai bekerja jika ada sebuah pemanggilan terhadap fungsi tersebut.
Ketika melakukan perianggilan fungsi ada tiga hal yang harus diperhatikan:
[- (tipedata/keyword) namaFungsi (parameter, parameter2, .
a] ¢
aksi
——reum
(tipedata/keyword} main(..
(
namaVar=namaFungsi (valueParami, valueParam2,...)
’
1. Tipe data ketika mendefinisikan fungsi harus sama dengan tipe data nilai yang
dikembalikan. Pada bahasa Python tipe data tersebut tidak perlu didefinisikan, cukup
menggunakan keyword def.
2. Bilamana fungsi memiliki parameter, nilai untuk parameter tersebut harus diberikan
pada saat pemanggilan fungsi. Perhatikan tipe data dan urutan dari parameternya.
3. Bilamana fungsi mengembalikan nilai (return) maka, pada fungsi utama (main) harus
ada variable penampung nilai yang akan dikembalikan oleh fungsi atau dapat langsung
ditampilkan hasilnya ke layar.Fungsi Rekursif
Fungsi rekursif merupakan fungsi yang melakukan pemanggilan pada dirinya sendiri
secara terus-menerus. Fungsi iniakan berhenti melakukan rekursif pada kondisi tertentu,
Fungsi rekursif dibuat agar perintah yang dijalankan menjadi lebih sederhana dan efisien.
Sebelum membuat Fungsi rekursif, ada beberapa hal yang harus diperhatikan terlebih
dahulu:
1. Proses yang akan dijalankan berulang-ulang tetapi dengan nilai parameter yang dapat
berubah-ubah.
2. Kondisi dimana Fungsi berhenti melakukan rekursif.
Contoh kasus 1, buatlah program untuk menghitung hasil perpangkatan sebuah bilangan.
Sebuah bilangan a akan dipangkatkan dengan b.
Misal a = 2 (basis) dan b = 3 (eksponen) maka, proses dari perpangkatan secara
matematika adalah:
2 =2x2x2
‘Atau dapat dituliskan juga:
2=2x2?
Seana
2=2x20
—
Pada kasus ini, proses yang dilakukan berulang adalah proses perkalian dengan kondisi
berhenti ketika pangkat adalah bilangan nol. Proses yang akan dijalankan pada Fungsi
rekursif adalah perkalian a x 2° dimana nilai b akan selalu dikurangi 1 pada setiap
prosesnya, dan proses akan berhenti ketika b = 0, dimana Fungsi akan mengembalikan
nilai 1.
Solusi dalam bahasa C#.
using system:
class Program
‘
static int HitungPangkat(int basis, int eksponen)
(
if(eksponen
return 1;
else
return basis * HitungPangkat (basis, eksponen-1);
)
ostatic void Main(string{] args)
i
Console.Write ("Basis
int a © int.TryParse(Console.ReadLine ());
Console.Write("Eksponen: ");
int b = int.Parse(Console.ReadLine()) +
int hasil = HitungPangkat(a, b);
Console.Writebine("Hasil: "+ hasil);
)
,
Solusi dalam bahasa JAVA.
import java.util.Scanner;
public class Program (
public static int hitungPangkat (int basis, int eksponen) (
i£(eksponen == 0)
return 1;
else
return basis * hitungPangkat (basis, eksponen-1);
)
public static void main(String[} args) (
Scanner sc = new Scanner (System. in)?
System.out.print ("Basis: ");
int a = sc.nextInt ()7
System.out print ("Eksponen
int b = sc.nextint ();
int hasil = hitungPangkat (a, b);
System.out.printin("Hasil: " + hasil);
}
,
Solusi dalam bahasa Python.
def hitungPangkat (basis, eksponen)
Af(eksponen == 0):
return 1
else:
return basis * hitungPangkat (basis, eksponen-1)
def main(
a = int (input ("Basis: "))
b = int (input ("Eksponen: "))
hasil = hitungPangkat (a, b)
print ("#asil:", hasil)
if __name__
main()
Proses yang dijalankan pada kode program di atas dapat dilihat pada ilustrasi berikut.bhitungPangkat(2,3)=2 * hitungPangkat(2,2)
bitungPangkat(2,2)=2 * hitungPangkat(2,1)
hhitungPangkat(2,1) = 2 * hitungPangkat(2,0)
Lp ieungeangkan(20) =3
|
1
2
SSS
Contoh kasus 2, buatlah program untuk menghitung hasil faktorial, misal 4! sama dengan
4x3x2x/1. Atau dapat juga dituliskan:
4l=4x3!
31=3x2!
heoen
1l=1x0!
O!=1
Pada kasus ini, proses yang dilakukan berulang adalah proses perkalian dengan kondisi
berhenti ketika bilangan yang dihitung faktorialnya adalah bilangan 0. Proses yang akan
ijalankan pada Fungsi rekursif adalah perkalian a x (a-1)! dimana nilai a akan selalu
dikurangi 1 pada setiap prosesnya, dan proses akan berhenti ketika a=0, dimana Fungsi
akan mengembalikan nilai 1.
Solusi dalam bahasa C#.
using system;
class Program
‘
static int HitungFaktoriallint nilai)
(
if(nilai == 0)
return 1;
else
return nilai * HitungFaktorial(nilai - 117}
static void Main(string{] args)
i
Console.Write("Bilangan: ");
int n = int.TryParse(Console.ReadLine());
double f = HitungFaktorial (n);
Console.WriteLine("Faktorial: " + £)7
,
i
Solusi dalam bahasa JAVA.
import java.util.Scanner;
public class Program {
public static int hitungFaktorial(int nilai) {
if(nilai == 0)
return 1;
else
return nilai * hitungFaktorial (nilai - 1);
)
public static void main(String[} args) (
Scanner sc = new Scanner (System. in);
System.out.print ("Bilangan: *
int n = sc.nextint ();
int € = hitungFaktorial(n);
System. out printin("Faktorial
)
)
Solusi dalam bahasa Python.
def hitungFaktorial (nilai):
if(nilai == 0):
return 1
else:
return nilai * hitungFaktorial(nilai - 1)
def main(
fn = int (input ("Bilangan: "))
f = hitungFaktorial (n)
print ("Faktorial:", £)
if __nane.
*_main_':
main()
Proses yang dijalankan pada kode program di atas dapat dilihat pada ilustrasi berikut.itungFaktoril(4)x4*hitungFaktoil (3)
‘cungFakcoria(2)=3* htungFaktoral (2)
bitungFaktoriat(2}=2 * htungFaktorial (2)
‘itungfaktoriat (1) = 1 * hitungFaktorta (0)
itungFoktoriatLarik Satu Dimensi
Larik (array) merupakan sebuah variable yang dapat menampung banyak data yang
sekelompok dengan tipe data yang sama. Data pada larik tersimpan dalam ruangan-
ruangan yang dapat diakses melalui indeks. Indeks sebuah larik merupakan bilangan
bulat terurut yang dimulai dari indeks 0 (nol). Kegunaan dari penggunaan larik ini yaitu :
1. Mempermudah dalam penamaan variable untuk data-data yang memiliki kegunaan
yang sama.
2. Mempermudah dalam pemesanan memori,
3. Mempermudah dalam pengaksesan data di memori dengan bantuan pengulangan.
Mendefinisikan larik kosong pada bahasa C#f dan JAVA, menggunakan sintaks:
tipe[] namaVar = new tipe(ukuran];
Contoh:
Ant [] nilaisiswa = new int[10];
Sintaks pada bahasa Python:
namaVar = [default] *
Contoh:
nilaisiswa = (None]*10
Nilai default adalah nilai awal yang diberikan pada tiap ruang ketika larik dibuat.
Mendefinisikan larik yang diberi nilai awal pada bahasa C# dan JAVA, menggunakan
sintaks:
tipe(] namavar = { nilail, nilai2, ..., nilain };
Contoh:
int(] nilaiSiswa = { 80, 79, 95, 82);
Sintaks pada bahasa Python:
namavar = [ valuel, value2, ..., valueN]
Contoh:
Adermatenitd et ene hae acetate |
Untuk dapat mengakses nilai dari setiap ruang pada larik menggunakan perintah
namaVar{indeks}, hal ini berlaku untuk ketiga bahasa pemrograman. Perintah
pengulangan dapat membantu dalam akses nilai dalam larik. Berikut adalah contoh
program input/output nilai dari dan ke larik.
Bahasa C#t:using system;
class Program
c
static void Main(string(} args)
t
int(] nilai = new int (5);
for(int i= 0; i < 5; +44)
t
Console.Write("Nilai ke-" + i+": ")¢
nilai[i] = int.Parse (Console.ReadLine());
,
Console.WriteLine()
for(int i= 0; i <5; ++i)
Console.Write("Isi larik nilai ke-" +i +": " + nilai(il);
)
,
Bahasa JAV/
import java.util.Scanner;
public class Program {
public static void main(String{] args) (
Seanner sc = new Scanner (System. in);
int{] nilai + new int (5);
for(int i= 0; i <5; +41) (
System.out.print("Nilai ke-" + i+": ")7
nilai[i] = sc.nextInt ();
i
Console.writeLine();
for(int i= 0; i <5; +41)
System.out.printin("Isi larik nilai ke-" +i +
,
i
"4 nilaitil)s
Bahasa Python:
def main(
nilai = [None] * 5
for i in range(0, 5, 1):
nilaifi] = int (input (*Nilai ke-" 4 str(i) +"
”
for i in range(0, 5, 1):
print("Isi larik nilai ke-", i,
) nilai(il)
Af __name_
main()
Proses untuk mengunjungi setiap indeks pada larik (array) disebut traversal. Proses ini
dapat membantu dalam menampilkan seluruh data pada lari atau dalam melakukan
proses pencarian data. Proses pencarian data akan dijelaskan pada bab mendatang
(Algoritma Pencarian).
Contoh lain dari penggunaan larik (array) misalnya untuk mencari nilai terbesar danterkecil dari sekelompok bilangan. Data bilangan yang akan dibandingkan disimpan
dalam larik (array), kemnudian kita akan melakukan perbandingan, mulai dari indeks
pertama sampai indeks paling terakhir.
Solusi pada bahasa C#:
using System
class Program
(
static void Main(stringl] args)
i
int(] bilangan = new int (61;
for(int i= 0; i < 6; ++i)
(
Console.Write("Bilangan ke-" + i +": ");
bilangan[i] = int.Parse(Console.ReadLine());
)
int nilaiMin = bilangan(0];
int nilaiMax = bilangan[0];
for(int i= 1; i < 6; ++i)
‘
if (bilangan(i] < nilaiMin)
nilaiMin = bilangan[i];
if (bilangan[i) > nilaiMax)
nilaiMax = bilangan[il
}
Console.WriteLine("Nilai terkecil: " + nilaiMin);
Console.WriteLine("Nilai terbesar: " + nilaiMax)?
}
)
Solusi pada bahasa JAVA:
import java.util.Scanner;
public class Program {
public static void main(String{] args) (
Scanner sc = new Scanner (System. in) ;
int {] bilangan = new int 6];
for(int i= 0; i < 6; +44) (
Systen.out.print ("Bilangan ke-
bilangan(i] = sc.nextint ();
,
int nilaiMin = bilangan(0];
int ailaimax = bilangan(0);
for(int i= 1; i < 6; +#i) (
if (bilangan(i] < nilaimin)
nilaiMin = bilangan[i];
if(bilangan{i] > nilaiMax)
nilaiMax = bilangan[i]
,
System.out.printin("Nilai terkecil
System.out-printin("Nilai terbesar
)
)
+ nilaiMin);
+ nilaiMax);Solusi pada bahasa Python:
def main():
bilangan = [None] * 6
for i in range(0, 6, 1):
bilangan(i] = int (input ("Bilangan ke-" + str(i) +": "))
nilaiMin = bilangan(0]
nilaiMax = bilangan(0]
for i in range(1, 6, 1):
if(bilangan[i] < nilaiminy:
nilaiMin = bilangan (i)
if(bilangan[i] > nilaimax):
nilaiax = bilangan(i]
1) nilaiMin)
nilaiMax)
print ("Nilai terkeci:
print ("Nilai terbesa:
if name == '_main_':
main()
Proses pencarian bilangan terbesar dan terkecil dapat dilihat pada tabel berikut.
Counter (i)| Pembanding nilaiMin nilaiMax
10 10
1 bilangan{1}=14|14<10 (False) 14510 (True) -> nilaiNax=14
2 bilangan(2]=8 [8<10 (True) -> nilaiMin=8|8>14 (False)
3 bilangan{3}=20|20<8 (False) 20>14 (True) -> nilaiMax=20
4 bilangan(4]=1 |1<8 (True) -> nilaiMin=1_|1>20 (False)
5 bilangan|s}=9 [9<1 (False) '9>20 (False)Go. = (raewrtex 1
sR em (TIQRUTTEN HL vt. mm (r)aeuTTex 1
Mo
(riaewrrex 1
(riqewt res) at
1Qaxeu'os = aewrTex butzas
FATATA epuea TATUAETP JeUTTeX YeNges URYNseA,) 2UTTd"3no'waIshs
2 (uy -wa3sXg) reuuRog mau = 95 TeUUeDS
) (s63e [}6uy735) urew proa ot3e3s 2TTqnd
) wesbozg sseTo oFTand
trquuos" Tyan“ eael azoduy
“VAP eseyeq WeTep Isnjog
1
(
H(TRYOA + 4 FTEHOA FHINY YETUNE,) eUTTEITAM’eTOSUOD
‘
feet
144 TRH08,
Go, = (r)aeuTTed 1] 49, <= (r)aewrred 11
Cypsewyrey 1 ty == ()aeUrTeX Hse,
VC
Craeurtes) 3+
(7) aeur Tex) aTTUR
¥ 0 = Texoa aut
1 Q suPTpeey*eTosuop = aewrTey Surz3s
o SUTATR BpuEI TITUAETP JeUTTeX YeNgas uLyNseH.) @ITIH" aTOSUOD
1
(soe []6utz98)uTeW proa oT3e38
d
wex6ora sseTo
fueasks 6uysn
“#O eseyeq Weep |snjos ynyyeg “euNBBued Ye|o ueyNseWwIp BueA yeUIey
lenges elep [240A jruny eAuyecueg BunyyBuew ymun WweiBoud Yyeneng ‘snsey YouoO
-8, = [g}evey
ot, = [S]evey
10, = [p}eres
(eleven
le = [z]even
28» = [Levey
«Ma = (0}eve4
0 ee)
oe] ufo 2 1 elm
224
+ da}eseYO Jo Aewe ynqUEQ WEIE |SeNSNI| ‘,eLUOD}aMN,=eIe4 BULAS ‘YOUOD,
“syepu! ueyeun66uew uebuep sesye|p yedep epe Bue Jee2ey deyes
‘eueWip ‘(leyo) Ja}yesey Yep UeUNSNs UeyedrueW UeWeJBo.Wed eseyeq WEIep BULS
(Bung) s992eYD Jo Aeuyvokalt+;
itt
)
System.out.printin("Jumlah huruf vokal
,
,
4 vokal);
‘Solusi dalam bahasa Python.
def main():
kalimat = input ("Masukan sebuah kalimat diakhiri tanda titik:")
vokal = 0
iso
while(kalimat(i] t= '.1):
if(kalimat{i] == ‘at or kalimat(i] = ‘it or kalimat(i] ==
or kalimat[i] == 'e' or kalimat(ij} == ‘ot
vokal += 1
idea
print ("Jumlah huruf vokal:", vokal)
4€ name == '_main_'
main()Array dan Fungsi
Penggunaan larik (array) pada Fungsi sama halnya ketika menggunakan pada fungsi
main). Larik (array) pun dapat dijadikan sebagai parameter atau nilai kembalian (return)
dari sebuah Fungsi. Berikut adalah contoh program yang bertujuan untuk i
menjumlahkan nilai dalam larik menggunakan fungsi.
Bahasa C#:
using System;
class Program
(
static int[] IsiArray(int n)
{
int{] arr = new int{nl;
for(int i = 0; i < ny +44)
arr[i] = int.Parse(Console.ReadLine());
return arr;
’
int Hitungsum(int () arr)
for(int i = 0; i < arr.Length; ++i)
sum += arrliJ;
return sum;
static void Main(string(] args)
i
Console.Write("Jumlah bilangan:
int n=
"a
int Parse (Console.ReadLine()) +
int{] bil = Isiarray(a);
Console.WriteLine("Hasil sum: " + HitungSum(bil));
?
,
Bahasa JAVA:
import java.util.Scanner;
public class Program (
public static int(] isiArray(int n) (
Scanner sc = new Scanner (System. in);
int (] arr = new int(n];
for(int i= 0; i Anda mungkin juga menyukai
|