0% menganggap dokumen ini bermanfaat (0 suara)
48 tayangan93 halaman

Mari Belajar Algoritma PemrogramanCJavaPython

Diunggah oleh

Alfito Z
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 atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
48 tayangan93 halaman

Mari Belajar Algoritma PemrogramanCJavaPython

Diunggah oleh

Alfito Z
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 atau baca online di Scribd
Anda di halaman 1/ 93
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 Penulis Algoritma 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<7 b2 = 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~decrement Console.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 operator aritmatika, 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 [false Lebih 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 operator relasional. 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 False 43.14 l= 9.87 true if__name__ == '_main_! main() an Karakter 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 >= 100 Masukan (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, yF int .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 ': main Pengulangan 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) f Af __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); ) o static 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) itungFoktoriat Larik 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 dan terkecil 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 Aeuy vokalt+; 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