Makalah 3 Kasus Atau Lebih [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

MAKALAH ALGORITMA DAN PEMROGRAMAN DASAR Analisa Tiga Kasus atau Lebih,Penyelesaian,Masalah Tiga Kasus atau Lebih,Menggunakan Bahasa C,Struktur Case,Penyelesaian Masalah dengan,Struktur Case Menggunakan Bahasa C



DISUSUN OLEH KELOMPOK 9 



ALFONSO GIRSANG



(5193351002)







ANGEREINY CITRA SARI



(5191151005)



PENDIDIKAN TEKNOLOGI INFORMATIKA DAN KOMPUTER FAKULTAS TEKNIK UNIVERSITAS NEGERI MEDAN 2019



KATA PENGANTAR Assalammu’alaikum warahmatullahi wabarakatuh Segala puji bagi Allah SWT yang telah memberikan kami kemudahan sehingga kami dapat menyelesaikan makalah ini dengan tepat waktu. Tanpa pertolongan-Nya tentu kami tidak akan bisa untuk menyelesaikan makalah kami ini dengan baik. Shalawat serta salam kita curahkan kepada baginda tercinta kita yaitu Nabi Muhammad SAW yang kita nanti-natikan syafa’atnya di akhirat nanti, atas limpahan nikmat sehat-Nya, baik itu berupa sehat fisik maupun akal , sehingga kami mampu untuk menyelesaikan pembuatan makalah sebagai tugas dari mata kuliah algoritma dan pemrograman dasar dengan materi” Analisa Tiga Kasus atau Lebih,Penyelesaian,Masalah Tiga Kasus atau Lebih,Menggunakan Bahasa C,Struktur Case,Penyelesaian Masalah dengan,Struktur Case Menggunakan Bahasa C”.



Kami menyadari bahwa makalah ini masih jauh dari kata sempurna dan masih banyak kesalahan beserta kekurangan di dalamnya, apabila terdapat banyak kesalahan pada makalah ini kami mohon maaf yang sebesar-besarnya.



Demikian, semoga makalah ini dapat bermanfaat. Terima



Medan,



Oktober 2019



Penyusun



i



DAFTAR ISI



KATA PENGANTAR ............................................................................................................................. i DAFTAR ISI........................................................................................................................................... ii BAB I ...................................................................................................................................................... 1 PENDAHULUAN .................................................................................................................................. 1 1.1 LATAR BELAKANG .................................................................................................................. 1 1.2 RUMUSAN MASALAH .............................................................................................................. 1 1.3 TUJUAN ....................................................................................................................................... 1 BAB II..................................................................................................................................................... 2 PEMBAHASAN ..................................................................................................................................... 2 2.1 ALGORITMA PERCABANGAN TIGA KONDISI .................................................................... 2 2.2 ALGORITMA LEBIH DARI TIGA KONDISI ........................................................................... 3 2.3.SWITCH CASE ............................................................................................................................ 8 BAB III ................................................................................................................................................. 17 PENUTUP ............................................................................................................................................ 17 3.1 KESIMPULAN ........................................................................................................................... 17 DAFTAR PUSTAKA ........................................................................................................................... 18



ii



BAB I



PENDAHULUAN 1.1 LATAR BELAKANG Pemograman dalam struktur data ada beberapa macam,salah satunya adalahpemograman C++. Dalampemograman inibiasanya menggunakan variableArray,Strukt ur dan Linked List.Makalah ini membahas tentang 3 variabel tersebut dimana ketiga variable mempunyaiciri dan umum yang berbeda sesuai dengan tipe file yang digunakan pembaca.Sepertiarray yang menggunaka satu dimensi dan dua dimensi serta 3 dimensi dimana sangat berbeda dengan struktur yang menggunakan tingkatan prosedur.Program ini merupakan pemograman yang berbeda dari pemograman lainnya misalnyaVB,Delphi atau Pascal namun perbedaannya tidak begitu signifikan.



1.2 RUMUSAN MASALAH 1.Apa itu Algoritma tiga kondisi ? 2.Apa itu algoritma lebih dari tiga kondisi ? 3.Apa itu Switch Case?



1.3 TUJUAN 1.Untuk memahahi arti dari algoritma tiga kondisi. 2.Untuk mengerti algoritma lebih dari tiga kondisi. 3.Mengetahui arti dari switch case.



1



BAB II



PEMBAHASAN



2.1 Algoritma Percabangan 3 Kondisi Algoritma tiga kondisi merupakan algoritma yang dapat digunakan untuk memecahkan kasus yang memiliki 3 kondisi. Untuk algoritma 3 kondisi maka strukturnya adalah: IF (kondisi 1) THEN pernyataan 1 ELSE IF(kondisi 2) THEN pernyataan 2 ELSE pernyataan 3. ENDIF Untuk kondisi pertama selalu menggunakan IF (Kondisi 1) THEN, sedangkan untuk kondisi kedua dan seterusnya selain kondisi terakhir, menggunakan ELSE IF (kondisi n) THEN, dan untuk kondisi terakhir menggunakan ELSE saja. Contoh algoritma dengan 3 kondisi: Algoritma untuk mencari nilai dalam bentuk abjad A,B atau C, dengan ketentuan 1. Jika nilai >80 maka nilai A 2. jika nilai >=70 dan =70 AND nilai 100).



Penyelesaian Misalkan suhu air adalah T. Analisis kasus : Kasus 1 : T ≤ 0, maka tulis “padat” Kasus 2 : 0 < T < 100, maka tulis “cair” Kasus 3 : T ≥ 100, maka tulis “uap”



4



Algoritma WUJUD_AIR {menentukan wujud air : padat, cair, atau gas, bergantung pada suhunya }



DEKLARASI T : real



{ suhu air, dalam derajat celcius }



DESKRIPSI read(T) if T ≤ 0 then write(‘padat’)



{ kasus 1 }



else if ( T > 0) and ( T < 100 ) then



Jadi, program WUJUD_AIR dalam penulisan IF-THEN-ELSE yang bertingkat-tingkat.



write(‘cair’) { kasus 2 } program WUJUD_AIR; else { menentukan wujud air : padat, cair, atau gas, bergantung pada suhunya } if T ≥ 100 then write(‘gas atau uap’);



{ kasus 3 }



uses wincrt; endif endif (* DEKLARASI *) endif var T : real; { suhu air, dalam derajat celcius }



(* DESKRIPSI *) begin write('suhu ');read(T); write('adalah '); if T 0) and ( T < 100 ) then



5



write('cair') else



{ kasus 2 }



Struktur CASE Tidak semua bahasa pemrograman menyediakan struktur CASE (misalnya Bahasa Fortran). Bahasa pascal menyediakan struktur ini. Jika bahasa pemrograman tidak yang ekivalen. Contoh analisis : Buatlah algoritma dan program yang membaca angka bulan dan tahun, lalu menuliskan jumlah hari dalam bulan tersebut. Misalnya jika dibaca bulan 8 (agustus), maka jumlah harinya adalah 31.



Penyelesaian Kita harus mengidentifikasi bulan-bulan dan jumlah harinya sebagai berikut : Bulan



Jumlah hari



1, 3, 5, 7, 8, 10, 12



31



4, 6, 9, 11



30



2



29 (jika tahun kabisat), 28 (jika bukan kabisat)



6



program JUMLAH_HARI; { menentukan jumlah hari dalam satu bulan }



uses wincrt;



(* DEKLARASI *) var AngkaBulan : integer;



{ 1 . . 12 }



Tahun



{ > 0 }



: integer;



JumlahHari : integer;



(* DESKRIPSI *) begin write('Bulan (1-12) = ');readln(AngkaBulan); write('Tahun = ');readln(Tahun); case AngkaBulan of



Jadi, program JUMLAH_HARI bahasa pascal adalah sebagai berikut : 1, 3, 5, 7, dalam 8, 10, 12 : JumlahHari:=31; Algoritma JUMLAH_HARI 4, 6, 9, 11



: JumlahHari:=30;



{ menentukan jumlah hari dalam satu bulan } 2 : if Tahun mod 4 = 0 then JumlahHari:=29 DEKLARASI



else



AngkaBulan



: integer



Tahun



: integer



JumlahHari end;



: integer



{ 1 . . 12 } JumlahHari:=28; { > 0 } {endif}



DESKRIPSI writeln('Jumlah hari dalam bulan ',AngkaBulan,' adalah ',JumlahHari); end.



read(AngkaBulan,Tahun) case(AngkaBulan) AngkaBulan= [1, 3, 5, 7, 8, 10, 12 ]



: JumlahHari←31



AngkaBulan= [ 4, 6, 9, 11 ]



: JumlahHari←31



AngkaBulan= 2 : case Tahun 7 Tahun mod 4 = 0



: JumlahHari←29



Tahun mod 4 ≠ 0



: JumlahHari←28



2.3.SWITCH CASE A. Pengertian



Percabangan adalah suatu pilihan atau opsi dengan kondisi tertentu. Jika kondisi yang menjadi syarat terpenuhi, maka opsi atau pilihan dijalankan, jika tidak maka sebaliknya. Dalam java terdapat 4 macam jenis percabangan, if, if-else, else-if, dan juga switch. Keempat jenis ini memiliki penggunaan masing-masing. Disini kita akan membahas tentang percabangan switch case. Switch case digunakan untuk percabangan yang kondisinya banyak. Sedangkan percabangan if hanya bisa untuk menangani dua kondisi yaitu TRUE atau FALSE. Tapi jika kita ingin melakukan percabangan untuk peringkat nilai, contoh nilai A = sempurna, B = bagus, C = sedang, D = kurang, akan ribet jika kita menggunakan percabangan if untuk menyelesaikan kondisi tersebut. Untuk itu mari kita pelajari percabangan switch case. Switch Case merupakan salah satu bentuk percabangan, bentuk dari Switch-case merupakan pernyataan yang dirancang khusus untuk menangani pengambilan keputusan yang melibatkan sejumlah atau banyak alternatif penyelesaian. Pernyataan switch-case ini memiliki kegunaan sama seperti if – else bertingkat. Kontruksi if - else yang bertingkattingkat seringkali membingungkan pembacaan alur program. Pernyataan Switch lebih jarang digunakan dibandingkan dengan pernyataan if pada java. Tetapi lebih sering digunakan ketika kita ingin menuliskan percabangan ataupun pengambilan keputusan dengan sangat banyak pilihan. Jika pada percabangan terdapat pilihan banyak, maka perintah switch-case lebih dianjurkan daripada menggunakan if - else. Tidak dianjurkan pada pilihan yang melibatkan jangkauan (range) tetapi dianjurkan pada pilihan berupa konstanta dan banyak misalnya untuk memilih menu. Java menyediakan intruksi Switch untuk memudahkan pembacaan alur program bercabang yang sangat banyak. meskipun Switch didesain untuk mengganti if - else, akan tetapi Switch memiliki batasan: a) Variabel penentu harus bertipe Integer, atau yang cocok dengan Integer seperti character, boolean, byte, short dan long 8



b) Range data yang diperiksa bernilai 0 s/d 255. Jika kamu ingat pernyataan main( ) pada program Java, pernyataan main memiliki parameter String[ ]args , dimana args merupakan argumen yang diberikan pada saat program dijalankan melalui konsol. Biasanya argumen yang diberikan berupa opsi bagaimana program harus dilaksanakan. Di sini pernyataan switch juga berguna untuk memilih bagaimana program akan berjalan. Jika kamu terbiasa atau pernah bergaul dengan Linux, maka tidak asing untuk menemukan perintah pada Linux seperti "ls -l" atau "tar xfz blabla". Di sini ls atau tar adalah nama program dan "-l" atau "xfz blabla" adalah argumen yang diberikan pada saat program dijalankan.



B. Fungsi a) Digunakan ketika kita ingin menuliskan percabangan ataupun pengambilan keputusa dengan sangat banyak pilihan b) Digunakan ketika kita ingin menuliskan percabangan multi arah c) Instruksi switch case digunakan sebagai instruksi pemilihan dimana aksi yang akan dilakukan bergantung pada nilai dari satu macam variabel saja.



C. Cara Program switch(ekspresi){ case konstanta -1: pernyataan -1; pernyataan -2; ….. break; case konstanta -2: pernyataan -1; ….. break; case konstanta -n: pernyataan -n; ….. break default : ….. 9



….. break; } Konsep di atas menjelaskan bawah untuk pernyataan adalah nilai yang akan diseleksi dan akan dibuat case pada setiap case untuk setiap nilai dari variable yang sesuai. Keterangan : case nilai: (nilai yang sama dengan variabel) Pernyataan; break; Adalah pernyataan yang dikerjakan jika nilai sesuai dengan nilai variabel di dalam sebuah switch (nilai) yang diberikan. default: Pernyataan ; break; Adalah pernyataan yang dikerjakan jika nilai dari kecocokan variable nilai di switch (nilai) tidak memenuhi disetiap case nilai. Setiap blok default maupun case harus diakhiri dengan tanda titik dua ( : ) dan break diakhiri dengan tanda semikolon ( ; ). Pernyataan switch akan menyeleksi atau mencari sebuah kondisi yang diberikan dan kemudian akan membandingan hasilnya dengan konstanta yang berada di dalam case. Pembandingan akan dimulai dari konstanta1 sampai konstanta akhir. Jika hasil yang didapatkan sama dengan konstanta3 maka statemen pada konstanta3 akan diproses. Jika hasil tidak ada yang memenuhi kriteria dari masing-masing konstanta maka statement yang berada pada default akan diproses. Tipe data dari pernyataan harus karakter atau integer. Default mengekspresikan statement alternatife yaitu jika nilai yang dimasukan tidak sesuai dengan nilai nilai konstan yang telah didefinisikan. Break berfungsi sebagai statement peloncatan atau untuk mengakhiri statement. Apabila tidak ada break, komputer akan mengeksekusi intruksi yang berada di bawahnya walaupun berada di case yang berbeda. Contohnya, misalnya hasil yang kita dapatkan akan memproses konstanta1, apabila pada case konstanta1 tidak ada break, maka statement2 pada case konstanta2 sampai case konstanta3 akan ikut di proses. Maka dari itu apabila menggunakan Switch Case , jangan lupa untuk menulis break pada akhir statemen.



10



D. Perbedaan Antara struktur IF dengan Switch Walaupun memiliki tujuan yang hampir sama, namun struktur if dan switch memiliki perbedaan yang mendasar. Di dalam struktur switch, kondisi logika hanya akan diperiksa satu kali saja, yaitu pada awal perintah switch, dan hasilnya dibandingkan dengan setiap case. Akan tetapi di dalam struktur if, setiap kondisi akan selalu diperiksa. Sehingga jika anda memiliki struktur percabangan yang banyak, struktur switch akan lebih cepat dieksekusi. Namun disisi lain, switch memiliki keterbatasan dalam jenis operasi perbandingan yang dapat dilakukan. Operasi perbandingan di dalam switch terbatas untuk hal-hal sederhana seperti memeriksa nilai dari sebuah variabel. Struktur switch tidak bisa digunakan untuk percabangan program dengan operasi yang lebih rumit seperti membandingkan 2 variabel. Kita tidak bisa menggunakan switch untuk membuat kode program menentukan nilai terbesar seperti contoh pada tutorial if sebelum ini. Untuk kebanyakan kasus, kita akan sering menggunakan if dibandingkan switch.



E. Contoh import java.util.*; public class Switch_Case { public static void main(String[] args) { Scanner input = new Scanner(System.in); char nilai = 'B'; String nama; System.out.print("Masukkan nama: "); nama = input.nextLine(); System.out.println("Nilai : "+nilai); System.out.println("\n"); switch(nilai) { case 'A': System.out.println(nama+" Nilai Anda memuaskan"); break; case 'B': System.out.println(nama+" Nilai Anda bagus"); break; case 'C': System.out.println(nama+" Nilai Anda cukup"); 11



break; } } Output : Masukkan Nama : RATIH Nilai :B RATIH Nilai Anda Bagus Pengertian Kondisi SWITCH CASE Bahasa C Kondisi SWITCH CASE adalah percabangan kode program dimana kita membandingkan isi sebuah variabel dengan beberapa nilai. Jika proses perbandingan tersebut menghasilkan nilai true, maka block kode program akan dijalankan. Kondisi SWITCH CASE terdiri dari 2 bagian, yakni perintah SWITCH dimana terdapat nama variabel yang akan diperiksa, serta 1 atau lebih perintah CASE, masing-masing untuk setiap nilai yang ingin diperiksa. Berikut format dasar penulisan kondisi SWITCH CASE dalam bahasa C: switch (nama_variabel) { case 'nilai_1': // Kode program yang dijalankan jika nama_variabel == nilai_1 break; case 'nilai_2': // Kode program yang dijalankan jika nama_variabel == nilai_2 break; case 'nilai_3': // Kode program yang dijalankan jika nama_variabel == nilai_3 break; ... ... default: // Kode program yang dijalankan jika tidak ada kondisi yang terpenuhi } 12



Di awal kode program, terdapat perintah SWITCH untuk menginput variabel yang akan diperiksa. Kemudian terdapat beberapa perintah CASE yang diikuti dengan sebuah nilai. Jika isi dari variabel sama dengan salah satu nilai ini, maka blok kode program akan dijalankan. Jika ternyata tidak ada kondisi CASE yang sesuai, blok default di baris paling bawah lah yang akan dijalankan. Di dalam setiap block case diakhiri dengan perintah break; agar struktur CASE langsung berhenti begitu kondisi terpenuhi. Mari langsung kita lihat contoh prakteknya.



Contoh Kode Program Percabangan SWITCH CASE Bahasa C Dalam tutorial sebelumnya, kita telah membuat program menampilkan nilai dengan struktur IF ELSE IF. Kita akan coba konversi kode tersebut menjadi struktur SWITCH CASE. Sebelumnya, berikut kode program menampilkan nilai dengan struktur IF ELSE IF: 1



#include



2



int main(void)



3



{



4



char nilai;



5 6



printf("Input Nilai Anda (A - E): ");



7



scanf("%c",&nilai);



8 9



if (nilai == 'A' ) { printf("Pertahankan! \n");



10 11



}



12



else if (nilai == 'B' ) { printf("Harus lebih baik lagi \n");



13 14



}



15



else if (nilai == 'C' ) { printf("Perbanyak belajar \n");



16 17



}



18



else if (nilai == 'D' ) { printf("Jangan keseringan main \n");



19 20



}



21



else if (nilai == 'E' ) { 13



printf("Kebanyakan bolos... \n");



22 23



}



24



else { printf("Maaf, format nilai tidak sesuai \n");



25 26



}



27



return 0;



28



}



Program yang sama bisa dikonversi ke dalam bentuk SWITCH CASE berikut: 1



#include



2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20



int main(void) { char nilai; printf("Input Nilai Anda (A - E): "); scanf("%c",&nilai); switch (nilai) { case 'A': printf("Pertahankan! \n"); break; case 'B': printf("Harus lebih baik lagi \n"); break; case 'C': printf("Perbanyak belajar \n"); break; case 'D': printf("Jangan keseringan main \n");



21



break;



22



case 'E':



23



printf("Kebanyakan bolos... \n");



24



break;



25



default: 14



printf("Maaf, format nilai tidak sesuai \n");



26 }



27 28



return 0;



29 30



}



31 Hasil kode program: Input Nilai Anda (A - E): A Pertahankan! Input Nilai Anda (A - E): D Jangan keseringan main Input Nilai Anda (A - E): E Kebanyakan bolos... Input Nilai Anda (A - E): F Maaf, format nilai tidak sesuai Di baris 8 saya meminta user untuk menginput salah satu huruf antara ‘A’ – ‘E’. Nilai huruf ini disimpan ke dalam variabel nilai yang di set dengan tipe data char. Kondisi SWITCH CASE dimulai pada baris 10. Di sini terdapat perintah switch (nilai), yang artinya saya ingin memeriksa isi dari variabel nilai. Seluruh block SWITCH ini berada di dalam tanda kurung kurawal, yakni mulai dari baris 10 sampai 28. Di baris 11 terdapat perintah case ‘A’: Ini artinya jika variabel nilai berisi karakter ‘A’, maka jalankan isi dari block CASE, yakni perintah printf(“Pertahankan! \n”). Lalu terdapat perintah break di baris 13 agar struktur CASE lain tidak perlu di proses lagi. Di baris 14 terdapat perintah CASE kedua, yakni case ‘B’:. Sama seperti sebelumnya, blok ini akan dijalankan jika variabel nilai berisi huruf ‘B’. Demikian seterusnya sampai case ‘E’ : di baris 23. Jika ternyata tidak ada nilai yang sesuai, maka block default di baris 26 yang akan di eksekusi. Struktur SWITCH CASE ini terlihat lebih rapi daripada struktur IF ELSE IF, dan kadang kala bisa lebih efisien. Namun SWITCH CASE juga memiliki batasan, yakni tidak bisa dipakai 15



untuk kondisi yang lebih kompleks seperti perbandingan dengan tanda lebih besar dari ” > “, maupun penggabungan kondisi. Kita tidak bisa membuat struktur CASE seperti berikut: 1



case > '90':



2



printf("Pertahankan! \n");



3



break;



Kondisi perbandingan di atas hanya bisa ditulis menggunakan struktur IF. Sehingga jika kondisi yang diperiksa cukup rumit, tetap harus menggunakan struktur IF ELSE IF. Struktur SWITCH CASE hanya cocok dipakai untuk operasi perbandingan sederhana, dimana nilai yang diperiksa hanya terdiri dari nilai yang tetap.



16



BAB III PENUTUP 3.1 KESIMPULAN Algoritma percabangan adalah salah satu instruksi dalam algoritma yang digunakan untuk memberikan pilihan kepada program perintah mana yang harus diproses dan perintah mana yang harus dilewati sesuai dengan kondisi yang diberikan. Algoritma percabangan terkadang diperlukan untuk kasus-kasus tertentu, karena pada kenyataannya alur pemrosesan kode program tidak selamanya berurutan dari baris instruksi satu ke baris instruksi lainnya, namun terkadang program perlu diatur agar bisa meloncat pada baris instruksi tertentu sesuai dengan kondisi yang terpenuhi. Di dunia bahasa pemrograman atau algoritma, instruksi agar alur proses program bisa loncat menuju baris instruksi tertentu sesuai dengan kondisi yang diberikan, itu disebut dengan instruksi percabangan, pemilihan atau flow control. Di dalam algoritma, instruksi percabangan dikategorikan menjadi beberapa jenis yaitu, percabangan 1 kondisi, percabangan 2 kondisi, percabangan 3 kondisi, percabangan lebih dari 3 kondisi dan percabangan bersarang.



17



DAFTAR PUSTAKA http://referensisiswa.blogspot.com/2018/09/algoritma-percabangan-12-3-kondisi.html https://www.academia.edu/5978533/Algoritma_Dan_Pemrograman http://student.blog.dinus.ac.id/yolandatania1/2017/12/28/dasar-pemrograman-analisiskasus/ Diakses pada 30 September 2019 https://www.duniailkom.com/tutorial-belajar-c-percabangan-kondisi-switch-case-bahasa-c/ Diakses pada 15 Oktober 2019



18