Modul Kuliah Dan Praktikum Algoritma Dan Pemrograman_2

  • Upload
    dew45ui

  • View
    901

  • Download
    0

Embed Size (px)

Citation preview

Modul Kuliah dan Praktikum Algoritma dan PemrogramanMODUL 11.PERTEMUAN : 12.JUDUL : DASAR ALGORITMA DAN NOTASI ALGORITMA3. TUJUAN :a.Mampu memahami suatu permasalahanb.Menyusun langkah-langkah penyelesaian masalahc.Membuat algoritma deskriptif, flowchart dan pseudo codeA. DASAR TEORIProgram Komputer merupakan salah satu cara untuk membantu manusia dalammenyelesaikan pekerjaan. Sebelum Program dibuat, maka perlu disusun suatu algoritmaprogram, agar program yang dibuat menjadi terstr uktur dan terdokumentasi dengan baik.Algoritma adalah urutan langkah-langkah penyelesaian suatu masalah atau tugasYang tersusun secara sistematis dan logis.Masalah Algoritma PemrogramanGambar 1 : Langkah-Langkah Penyelesaian MasalahBeber apa langkah dalam proses pembuatan suatu program atau software :1.Mendefinisikan masalah dan menganalisanyaLangkah awal yang harus dilakukan adalah mengidentifikasikan masalah antara laintujuan dari pembuatan program, parameter-parameter yang digunakan, fasilitas apasaja yang akan disediakan oleh progr am. Kemudian menentukan metode ataualgoritma apa yang akan diterapkan untuk menyelesaikan masalah tersebut danterakhir menentukan bahasa program yang digunakan untuk pembuatan progr am.1Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrograman2.Merealisasikan dengan langkah-langkah berikut :StartDisain AlgoritmaMenulis ProgramUji Coba ProgramDokumentasi ProgramStopGambar 2 : Diagram Alir Penyelesaian MasalahNOTASI ALGORITMAAda tiga cara penulisan Algoritma yaitu :a.Uraian deskriftifb.Menggunakan bagan-bagan/symbol-simbol tertentu seperti Diagram Alir(Flowchart)c.Menggunakan kata-kata atau kalimat yang mirip dengan bahasa permograman yaituPseudo Code2Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrogramanA .1 ALGORITMA DALAM BENTUK DESKRIPTIFContoh : Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilanganganjil atau bilangan genap.Algoritmanya :a.Masukkan sebuah bilangan sembarangb.Bagi bilangan tersebut dengan bilangan 2c.Hitung sisa hasil bagi pada langkah 2.d.Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapibila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.A .2 ALGORITMA DALAM BENTUK FLOWCHARTFlow- chart atau bagan alir adalah suatu skema/gambar yang memperlihatkan urutaninstruksi/kegiatan dan hubungan antar proses beser ta instruksinya.Gambaran ini dinyatakan dengan symbol. Dengan demikian setiap symbolmenggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan gar ispenghubung. Simbol-simbol Flowchart :3Roslina, M.I.T

Modul Kuliah dan Praktikum Algoritma danPemrogramanGambar 3 : Simbol FlowchartContoh algoritma di atas tentang menentukan apakah suatu bilangan adalah bilangan ganjilatau bilangan genap, flowchartnya adalah sebagai ber ikut :4Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrogramanStartHasil=0Bilangan=17Hasil=Bilangan%2tHasil=0yBilinganBilinganGenapGanjilStopA .3 ALGORITMA DALAM BENTUK PSEUDO CODEPseudocode digunakan untuk mewakili urutan-urutan proses dari program. Pseudo berartiimitasi dan code dihubungkan dengan instruksi yang ditulis dalam bahasa komputer.Contoh algoritma dalam bentuk Pseudocode :StartHasil=0Bilangan = 175Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrogramanHasil=Bilangan%2If (hasil=0)Print Bilangan GenanpElsePrint Bilangan Ganjilend4.4 MENTERJEMAHKAN ALGORITMA KEDALAM BAHASAPEMROGRAMAN.Dalam modul ini kita menggunakan Bahasa Pemrograman C.Struktur Bahasa Pemrograman CPemrograman C terseusun dar i sejumlah blok fungsi. Sebuah program minimal terdir i dar isebuah fungsi. Setiap fungsi terdiri dar i satu atau beberapa pernyataan.Bentuk Umum Struktur Program C :Pengarah praprocessorNama-fungsi (daftar parameter){Tubuh fungsi}4.5 Pengenalan FungsiFungsi merupakan statemen yang membangun sebuah program C. Fungsi dapat memilikibagian pernyataan fungsi yang diawali dengan kurung kurawal buka ({) dan diakhir idengan kur ung kurawal tutup (}) dan ada juga fungsi yang tidak memiliki bagianpernyataan seperti fungsi main ().Contoh fungsi :Main()Printf()Scanf()6Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrograman4.6 PraprocessorPraprocessor dipakai untuk membaca file yang dinamakan dengan file-judul ( header file),yaitu file yang ber isi deklarasi fungsi dan defenisi konstanta. File ini mempunyai ciri yaitunamanya diakhiri dengan extension .h. Contoh #include memberikan per nyataanpada kompiler agar membaca file bernama stdio.h pada saat pelaksanaan kompilasi.4.7 Penulisan ProgramC merupakan bahasa pemrograman yang member ikan kebebasan dalam penulisan programdengan catatan penulisannya harus konsisten (disarankan penulisan program menggunakanhuruf kecil) dan mudah dipahami, kalau terjadikesalahan mudah ditelusuri.Contoh beberapa bentuk penulisan progr am :#includemain(){printf(Selamat Belajar\n);printf(Turbo C\n);}atau :#includemain() { printf(Selamat Belajar\n); printf(Turbo C\n); }4.8 Komentar ProgramKomentar program diper lukan untuk memberikan keterangan dalam program, agar mudahdipahami. Komentar program diwali dengan tanda /* dan diakhiri dengan tanda */Contoh :Awal komentar/* Program contoh1Dibuat oleh : Team */Akhir komentar#includemain(){printf(Selamat Belajar\n);7Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrogramanprintf(Turbo C\n);}5. PERCOBAAN1.Algoritma dan program untuk menjumlahkan dan mengalikan 2 buah bilangan danmencetak hasilnyaStart#includemain(){int A,B,C, D;A=45; B=25;A, B, Cclrscr();printf("Nilai A : %d \n",A);printf("Nilai B : %d \n",B);C=A + B;D=A * B;A=45printf("\n Hasil Penjumlahan A dengan B = %d \n",C);B=25printf("\n Hasil Penjumlahan A dengan B = %d \n",D);getch();}TampilkanNilai A dan BC= A+BC=A * BTampilkanNilai A dan BStop8Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrograman2.Algoritma dan program untuk menukarkan isi dua buah variabel dan menampilkanhasilnya#includeStartmain(){int A,B,C;A=20; B=50;clrscr();A, B, Cprintf("Nilai A sebelum Ditukar : %d \n",A);printf("Nilai B sebelum Ditukar : %d \n",B);C=A;A=B;B=C;A=20printf("\n Nilai A setelah Ditukar : %d \n",A);B=50printf("Nilai B setelah Ditukar : %d \n",B);getch();}TampilkanNilai A danBC=AA=BB=CTampilkanNilai A danBStop6. LATIHANBuatlah algoritma dan program untuk menghitung Keliling, Luas Lingkaran danmenampilkan hasilnya.9Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrogramanMODUL 21.PERTEMUAN : 22.JUDUL : PROGRAM INPUT DAN OUTPUT3.TUJUAN :a.Menjelaskan dan menggunakan fungsi untuk input datab.Menjelaskan dan menggunakan fungsi untuk menampilkan/mencetak informasic.Menggunakan penentu format4. LANDASAN TEORIInput data dan menampilkan data/infor masi (output) merupakan kegiatan yang seringdilakukan dalam pemrograman. Input data dilakukan melalui keyboard menghasilkanoutput melalui pir anti monitor atau printer.4.1Program InputData diinputkan melalui keyboard saat eksekusi pr ogram berlangsung. Fungsi yangdigunakan untuk input data yaitu : scanf(), getch() dan getch().a.scanf()Fungsi ini digunakan untuk menginputkan berbagai jenis data denganmenggunakan penentu format data.Daftar penentu format data :Kode Keterangan%c Membaca sebuah kar akter%s Membaca sebuah str ing% i atau %d Membaca sebuah integer%e atau %f Membaca sebuah bilangan real ( bisa dalam bentuk eksponensial)%o Membaca sebuah integer oktal%x Membaca sebuah integer hexadesimal%u Membaca sebuah integer tak bertandal Awalan untuk membaca data long int (misal %ld)L Awalan untuk membaca data long double ( misal %Lf)10Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrogramanh Awalan untuk membaca data short int (misal %hd)b.getch()dangetche()fungsigetch() digunakan untuk membaca sebuah karakter, dengan sifat karakteryang diinputkan tidak perlu diakhiri dengan ENTER dan karakter yang diinputkantidak akan ditampilkan di layar. Sedangkan fungsi getche() kegunaannnya samadengan fungsi getch() , perbedaannya karakter yang diinputkan ditampilkan di layar.4.2Program OutputUntuk menampilkan output/infor masi digunakan fungsi printf(), puts() dan putchar() .a.printf()Fungsi printf() digunakan untuk menampilkan berbagai jenis data. Fungsi pr intf()sama dengan fungsi scanf() menggunakan penentu format.b.pust()Fungsi puts() digunakan khusus untuk manapilkan data string ke layar. Denganmenggunakan fungsi ini, str ing yang ditampilkan secara otomatis akan diakhiridengan \n (pindah baris)c.putchar ()Fungsi putchar() digunakan khusus untuk menampilkan sebuah karakter ke layar,akan tetapi tidak diakhir dengan pindah baris.5. PERCOBAANa. Algoritma dan program menginputkan sejumlah nilai, menghitung nilai total dan nilairata-rata11Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrogramanStart#include main(){int nl1, nl2,nl3,nl4,nl5;Nl1,nl2,nl3,nl4,float total, rata2;nl5,total,rata2clrscr();printf("Inputkan Nilai 1 : ");scanf("%d", &nl1);printf("Inputkan Nilai 2 : ");scanf("%d", &nl2);Inputkan nl1, nl2printf("Inputkan Nilai 3 :" );,nl3, nl4, nl5scanf("%d", &nl3);printf("Inputkan Nilai 4 :" );scanf("%d", &nl4);total=nl1 + nl2 + nl3printf("Inputkan Nilai 5 :" );+ nl4 + nl5scanf("%d", &nl5);rata2=total/5total=nl1+nl2+nl3+nl4+nl5;rata2=total/5;printf("\nNilai Total = %f\n",total);printf("Nilai Rata- Rata = %f\n",rata2);Tampilkangetch();total, rata2}Stop12Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrogramanb. Algoritma dan program untuk menghitung luas segitigaStart#includemain(){int alas,tinggi;Alas, tinggi,float luas;luasclrscr();printf("Inputkan Alas Segitga : ");scanf("%d",&alas);Inputkan alas,printf("Inputkan Tinggi Segitga :);tinggiscanf("%d",&tinggi);luas=0.5*alas*tinggi;printf("Luas Segitiga = %.2f\n",luas );Luas =0.5 * alas *getch ();tinggi}Tampilkan luasStop6. LATIHANa. Buatlah algoritma dan program untuk menginputkan 5 buah nilai, menghitung total nilaidan nilai rata-rata dar i ke-5 buah nilai tersebut.b. Buat algor itma dan program untuk menginputkan, menghitung dan menampilkan luaspersegi panjang, luas bujur sangkar serta jumlah bayar barang13Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrogramanMODUL 31.PERTEMUAN : 32.JUDUL : TIPE DATA, OPERATOR DAN EKSPRESI3. TUJUAN :a.Menjelaskan dan menggunkan tipe data dasar (jenis dan jangkauannya)b.Menjelaskan dan menggunakan Variabelc.Menjelaskan dan menggunakan konstantad.Menjelaskan dan menggunakan berbagai jenis operator4. DASAR TEORI4.1 Tipe DataData menggambarkan suatu nilai yang bisa dinyatakan dalam bentuk konstanta atauvariabel. Dimana konstanta menyatakan suatu nilai yang tetap dan variabel menyatakannilai yang dapat diubah-ubah selama eksekusi program berlangsung.Jenis tipe data :1.Bilanga bulat (integer )2.Bilangan real presisi- tunggal3.Bilangan real presisi- ganda4.Karakter5.Tak bertipeDaftar tipe data :Tipe dat a Total bit Kawasan KeteranganChar 8 -128 s/d 127 KarakterInt 16 -32768 s/d 32767 Bilangan IntegerFloat 32 3.4E-38 s/d 3.4E+38 Bilangan Real Presisi-tunggalDouble 64 1.7E-308 s/d 1.7E+308 Bilangan Real Presisi-gandaVoid 0 - Tak bertipe14Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrograman4.2 VariabelVariabel digunakan untuk menyimpan suatu nilai dalam program, dan nilai tersebut dapatdiubah-ubah selama eksekusi progr am berlangsunga.Deklarasi variabelVaribel yang digunakan dalam program harus dideklarasikan terlebih dahulu, yaitupemesanan memori dan penentuan jenis data yang bisa disimpan dalam var iabeltersebut. Bentuk umum deklarasi variabel :Tipe nama variabelPada deklarasi variabel,nama-variabel dapat terdiri dari satu variabel ataubeberapa variabel yang dipisahkan dengan tanda koma (,).Contoh :int R ;float nilai, nilai_total, ipk;b.Member ikan nilai variabelBentuk umum member ikan nilai ke suatu var iabel :variabel=nilaiContoh :R=10;nilai=70.5; ipk=3.4;c.inisialisasi variabelMerupakan pemberian nilai awal terhadap suatu var iabel. Adakalanya dalampembuatan program, setelah variabel dideklarasikan langsung diberi nilai awal.Contoh :int total; atau int total=0;total=0;15Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrograman4.3 KonstantaKonstanta menyatakan nilai tetap. Tidak perlu dideklarasikan, dan mempunyai tipe data.Aturan penulisan:Konstanta karakter : diawali dan diakhiri dengan tanda petik tunggal, Contoh : Adan @ .Konstanta integer : ditulis dengan angka (tanpa tanda petik) tanpa mengandungpemisah ribuan dan tak mengandung bagian pecahan. Contoh : 1 dan 32767.Konstanta real (float dan double) bisa mengandung pecahan (dengan tanda ber upatitik) dan nilainya bisa ditulis dalam bentuk eksponensial ( menggunakan tanda e),contohnya : 27.5f ( untuk tipe f loat) atau 27.5 (untuk tipe double) dan 2.1e+5(maksudnya 2,1 x 105 ).Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tandapetik-ganda (). Contoh: Program Dasar.Menggunakan keyword #define#define atauMenggunakan keyword constconst = ;Contoh:#define PI 3.14159atau :constfloat PI = 3.14159;4.4 OperatorOperator merupakan simbol atau karakter yang digunakan untuk melakukan suatu operasiatau manipulasi seperti operasi matematika, operasi logika dan lain sebagainya.a.Opeartor Ar imatikaOperator Operasi* Perkalian/ Pembagian% Sisa pembagian+ Penjumlahan- Pengurangan16Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrogramanb.Operator penaikan dan penurunanOperator Operasi++ Penaikan- - Penurunanc.Operator relasiOperator relasi (hubungan) biasa dipakai untuk membandingkan dua buah nilai.Hasil per bandingan berupa keadaan benar atau salah.Operator Operasi> Besar dar i>= Besar dar i atau sama dengan< Kurang dari Besar dar i>= Besar dar i atau sama dengan< Kurang dari=80 && na=70 && na=60 && na=50 && na=10 && na=60)printf("Anda Lulus\n" );elseprintf("Anda tidak lulus\n");getch();}3.Program untuk menghitung diskon dan jumlah bayar harga barang#include main(){float j,h,hbrg,diskon,jb;clrscr();printf("Inputkan Jumlah Barang :");scanf("%f",&j);printf("Inputkan Harga Barang :");scanf("%f",&h);hbrg=j*h;printf("Jumlah Harga Barang = %.2f\n",hbrg);if (hbrg>=500000){diskon=0.5*hbrg;jb=hbrg-diskon;}if (hbrg 0 , maka terdapat 2 akar real yang berlainan, yaitu :x1 = (-b + sqrt( D)) / 2ax2 = (-b - sqrt(D)) / 2a Jika D < 0 , maka terdapat 2 akar imaginair yang berlainan, yaitu :x1 = -b / 2a + (sqrt(-D) / 2a) ix2 = -b / 2a - ( sqrt(-D) / 2a) iInput : a, b, cOutput : Nilai Determinan dan nilai akar-akar per samaan (x1& x2) .Ketentuan : - untuk mencar i akar dari x, gunakan : sqrt(x) yang didefinisikan pada.b. Buatlah algoritma dan pr ogram untuk menampilkan menu dan melakukan proses sbb :Menu :1. Keliling lingkaran dengan rumus Kel=3.14*r*r22. Menghitung luas lingkaran dengan rumus luas = 3.14 * r23. Menghitung volume silinder. Dengan rumus vol = 3.14 * r* tKetentuan : gunakan switch - casec.Modifikasi Program berikut dengan menggunakan instruksi switch#includemain(){char nip[9], nama[15];int gol,st;float gapok,tjg,gk,pph,gb;clrscr();printf("DAFTAR GAJI PEGAWAI\n");printf("Inputkan NIP Pegawai : "); scanf("%s" ,&nip);printf("Inputkan Nama Pegawai : "); scanf("%s" ,&nama);printf("Inputkan Golongan (1-4) : "); scanf("%d" ,&gol);25Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrogramanprintf("Inputkan Status (1=Maried,2=single): "); scanf("%d" ,&st);if (gol==1)gapok=900000;if (gol==2)gapok=1250000;if (gol==3)gapok=1750000;if (gol==4)gapok=2500000;if (st==1)tjg=0.25*gapok;if (st==2)tjg=0.05*gapok;gk=gapok+tjg;pph=0.1*gapok;gb=gk-pph;printf("Gaji Pokok : %.2f\n",gapok);printf("Tunjangan : %.2f\n",tjg) ;printf("Gaji Kotor : %.2f\n",gk );printf("PPh : %.2f\n",pph);printf("Gaji Bersih : %.2f\n",gb );getch();}26Roslina, M.I.T Modul Kuliah dan Praktikum Algoritma danPemrogramanMODUL 51.PERTEMUAN : 82.JUDUL : PENGULANGAN (LOOPING) WHILE DAN DO-WHILE3.TUJUAN :a.Menjelaskan dan menggunakan proses pengulangan pernyataan whileb.Menjelaskan dan menggunakan proses pengulangan pernyataan do-whilec.Menjelaskan dan menggunakan pernyataan breakd.Menjelaskan dan menggunakan pernyataan continue4. DASAR TEORI4.1.Pernyataan whilePada pernyataan ini, pengecekan terhadap loop dilakukan di bagian awal, apabilakondisi tidak benar maka pernyataan di dalam blok loop tidak diker jakan sama sekali.-Sintakwhile(kondisi)pernyataan;Selama kondisi benar maka pernyataan dikerjakanJika kondisi salah maka keluar dari blok loopContoh :bil = 1;while (bil