Anda di halaman 1dari 28

LAPORAN PRAKTIKUM ALGORITMA (2)

NIM

213341035 IQBAL FAUZIRACHMAN 1AEC

NAMA : KELAS :

POLITEKNIK MANUFAKTUR NEGERI BANDUNG Jalan Kanayakan21 Dago - Bandung

BAB I PENDAHULUAN

1.1

Perulangan Beberapa program mungkin memerlukan untuk dieksekusi berulang. Sebuah perulangan mendefinisikan sebuah blok dari kode yang akan dieksekusi berulang kali. Tergantung dengan macam perulangan apa yang akan dipakai, blok kode dapat dieksekusi beberapa kali atau sampai menemukan kondisi tertentu. Bahasa C++ menyediakan tiga macam struktur perulangan diantaranya: for while do while Perulangan For Pada umumnya looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan jumlah perulangannya. Selama kondisi terpenuhi, maka pernyataan akan terus dieksekusi. Berikut adalah bentuk umum for: For ( inisialisasi; kondisi; perubahan) { statement;} Keterangan: Inisialisasi Kondisi Perubahan

1.2

:Pernyataan untuk menyatakan keadaan awal dari variabel kontrol :Ekspresi relasi yang menyatakan kondisi untuk keluar dari perulangan :pengatur variabel control untuk mencapai kondisi

1.3

Perulangan While Perulangan ini banyak digunakan bila jumlah perulangannya belum diketahui. Proses perulangan akan terus berlanjut selama kondisinya terpenuhi dan akan berhenti bila kondisi tidak terpenuhi. Berikut adalah bentuk umum While: While (kondisi) {statemet;}

1.4

Perulangan Do While Perulangan ini digunakan bila jumlah perulangan Do While sama saja dengan struktur while, hanya saja pada proses seleksi kondisi letaknya berada di bawah batas perulangan. Jadi dengan menggunakan struktur Do While sekurangkurangnya akan terjadi satu kali perulangan. Berikut adalah bentuk umumnya; Do { statement; statement;} While (kondisi);

1.5

Array Array merupakan kumpulan data dimana setiap elemen bertipe dan nama yang sama serta setiap elemen diakses dengan membedakan indeks array-nya. Indeks array secara default dimulai dari 0. Array dibedakan menjadi array dimensi satu, array dimensi dua dan array multidimensi. Yang dipelajari pada praktik ini hanya dua saja yaitu dimensi satu dan dimensi dua saja. Berikut adalah bentuk umum array dimensi satu: tipe_array nama_array[ukuran]; keterangan: tipe_array nama_array ukuran

: array inputan ataupun outputan seperti int atau float atau char :inisialisasi array :jumlah data yang akan diinput

yang membedakan array dimensi satu dan dimensi dua adalah array dimensi dua terdiri dari m banyak baris dan n banyak baris dan bentuknya dapat berupa tabel ataupun matriks. Berikut adalah bentuk umum array dimensi dua: Tipe_array nama_array[ukuran][ukuran] 1.6 String String merupakan fungsi operasi yang tersimpan dalam header file string.h. berikut adalah beberapa fungsi string yang dipraktekkan: Strcpy() Berfungsi untuk menyalin suatu string asal ke variabel string tujuan. Bentuk umum :strcpy(var_tujuan, string_asal); Strlen() Berfungsi untuk memperoleh jumlah karakter dari suatu string. Bentuk umum :strlen(string);

BAB II ISI Kumpulan instruksi atau perintah yang disusun sedemikian rupa membentuk urutan langkah langkah yang tepat dalam penyelesaian masalah. Perintah yang dimaksud adalah cara penulisan dengan sesuai dengan bahasa pemrograman yang digunakan dan memiliki komponen yang utama seperti input, output, proses, percabangan, perulangan. Berikut adalah contoh perintah dan hasil yang muncul dengan menggunakan program Turbo C++ versi 4.5 Percobaan pertama: /* File Program: duaexkuadrat.C */ #include <stdio.h> #include <conio.h> #include <math.h> main() { int x=1, y, i, j; float v, w, z, a=0, b=0, c=0; char lagi='y', tidak='t'; while (lagi=='y') { clrscr(); y=0;a=0;b=0;c=0;w=0;z=0;v=0; gotoxy(1,1); printf("Masukkan Bilangan:"); scanf("%i", &y); gotoxy(1,2); printf("====================================\n"); gotoxy(1,3); printf("x"); gotoxy(10,3); printf("2x"); gotoxy(19,3); printf("sqrt(2x)"); gotoxy(28,3); printf("Jumlah"); gotoxy(1,4); printf("====================================\n"); for (x=1; x<=y; x++) { w=2*pow(x,2); z=sqrt(2*x);v=w+z; gotoxy(1,4+x); printf("%i", x); gotoxy(10,4+x); printf("%5.2f", w); gotoxy(19,4+x); printf("%5.2f", z); gotoxy(28,4+x); printf("%5.2f", v); gotoxy(1,5+y); printf("====================================\n"); a=a+w;b=b+z;c=c+v; gotoxy(1,6+y); printf("Jumlah:");

gotoxy(10,6+y); printf("%5.2f", a); gotoxy(19,6+y); printf("%5.2f", b); gotoxy(28,6+y); printf("%5.2f", c); gotoxy(1,7+y); printf("rata :"); gotoxy(10,7+y); printf("%5.2f", a/y); gotoxy(19,7+y); printf("%5.2f", b/y); gotoxy(28,7+y); printf("%5.3f", c/y); } printf("\nMencoba lagi? (y/t) :");do {(lagi=getch());} while (lagi!='y' && lagi!='t'); } } Output yang ditampilkan:

Analisis: Diatas merupakan printscreen dari contoh perulangan While dan For. Pada program tertuliskan bila kita menginput data berupa angka semisal 4 maka akan disimpan dalam variable y lalu perulangan For akan melakukan perulangan sebanyak 4 kali sesuai dengan program yang di perintahkan, lalu perulangan While yang bekerja sekarang. Program diatas menyatakan kondisi perulangan akan terjadi selama variabel lagi sama dengan karakter y.

Percobaan Kedua: /* File Program: GenapGanjil.C */ #include <stdio.h> #include <conio.h> #include <math.h> main() { int x, z; char lagi='y'; while (lagi=='y') { clrscr(); z=0; printf("Masukkan Bilangan: ");scanf("%d",&x); z=x%2; if(z==0) printf("Bilangan %d adalah Genap", x); else printf("Bilangan %d adalah Ganjil", x); printf("\nMencoba lagi? (y/n) :"); lagi=getch(); } } Output yang ditampilkan:

Analisis: Program kedua diatas merupakan contoh dari perulangan While sama seperti program pertama. Disini divariasikan dengan statement seleksi yang mana menggunakan mod, dimana mod menggunakan rumus %. Contohnya bila z=10%2, maka z=0. Jika z=10%3 maka z=1. Bila program diinputkan angka 16 lalu menggantikan variable x dan diinput ke rumus mod dan terjadi proses seleksi dan keluar output genap dilanjut proses perulangan While yes atau no.

Percobaan ketiga: //IndeksNilai.c #include <stdio.h> #include <conio.h> main() { float nilai; char x='y', y='t', nama[30]; while (x=='y') { clrscr(); nilai=0; printf("Masukkan nama :");fflush(stdin); scanf("%[^\n]", nama); printf("Masukkan nilai :"); scanf("%f",&nilai); if(nilai<40 && nilai>=0){ printf("\nNilai Mutu : E \nYudistium Kelulusan: Sangat Kurang"); }else if(nilai<60 && nilai>=0){ printf("\nNilai Mutu : D \nYudistium Kelulusan: Kurang"); }else if(nilai<70 && nilai>=0){ printf("\nNilai Mutu : C \nYudistium Kelulusan: Cukup"); }else if(nilai<85 && nilai>=0){ printf("\nNilai Mutu : B \nYudistium Kelulusan: Memuaskan"); }else if(nilai<=100 && nilai>=0){ printf("\nNilai Mutu : A \nYudistium Kelulusan: Sangat Memuaskan"); }else{ printf("Nilai hanya 0-100\n"); } printf("\nAkan Proses Lagi?(y/t):"); do(x=getch()); while (x!='y' && x!='t');} }

Output yang ditampilkan:

Analisis: Program ketiga merupakan contoh dari kombinasi perulangan While dan Do While. Dimana program akan mengulang jika kita inputkan y dan berhenti jika kita inputkan t saja.

Percobaan keempat: /* File Program: Faktorial.C */ #include <stdio.h> #include <conio.h> #include <math.h> main() { int n, m, o; char x='y'; while (x=='y') { clrscr();n=0;m=0;o=0; printf("Masukkan Nilai:");scanf("%i", &n); o=1; for(m=0;m<n;m++) {o=o*(m+1);} printf("Nilai Faktorial dari %i adalah %i",n,o); printf("\nAkan Coba Lagi? (y/t):"); do (x=getch()); while (x!='y' && x!='t'); } } Output yang ditampilkan:

Analisis: Program keempat sama dengan program sebelumnya melakukan proses kombinasi perulangan While dan Do While yang hanya mengulang dan berhenti jika kita inputkan y dan t

Percobaan kelima: /* File Program: Deret.C */ #include <stdio.h> #include <conio.h> #include <math.h> main() { float n, m, o; char x='y', y='t'; while (x=='y') { clrscr();n=0;m=0;o=0; printf("Masukkan Nilai:");scanf("%f", &n); printf("\nDeret Bilangan:\n"); for (m=1;m<=n;m=m+3) {printf("%1.0f ", m);o=o+m;} printf("= %1.0f", o); printf("\n\nAkan Coba Lagi? (y/t):");do (x=getch());while (x!='y' && x!='t');} } Output yang ditampilkan:

Analisis: Program kelima ini merupakan kombinasi perulangan ketiga-tiganya., salah satunya perulangan For pada proses output dan perulangan While dan Do While pada proses perulangan Program.

Percobaan keenam: /* File Program: SejumlahBilangan.C */ #include <stdio.h> #include <conio.h> #include <math.h> main() { int c, d, e, f=0; char lagi='Y'; while (lagi=='Y') { clrscr();f=0; printf("Program Menjumlah Bilangan\n"); printf("Masukkan jumlah bilangan yang akan diinput :");scanf("%i", &c); for (d=1; d<=c; d++) { printf("Besar Bilangan %i =", d); scanf("%i", &e); f=f+e; } printf("Jumlah =%i\n", f); printf("Mencoba lagi? (Y/N) :"); lagi=getch(); } } Output yang ditampilkan:

Analisis: Program ini merupakan contoh dari kombinasi perulangan While dan For. Dimana While untuk perulangan program dan For untuk perulangan proses outputan.

Percobaan ke tujuh: // 3 Jenis Deret.c #include <stdio.h> #include <conio.h> #include <math.h> main() { float m, n, o, p, q, r,s; char x='y', y='t'; while (x=='y') { clrscr();n=0;m=0;o=0; printf("Masukkan Bilangan:");scanf("%f", &n); printf("\nDeret Bilangan Bulat :"); for (m=1;m<=n;m++) {printf(" %1.0f ", m);o=o+m;} printf("= %1.0f", o); p=0;o=0; printf("\nDeret Bilangan Ganjil:"); for (m=1;m<=n;m++) {p=p+2; printf(" %1.0f ", p-1);o=o+(p-1);} printf("= %1.0f", o); o=0;r=0; printf("\nDeret Bilangan Genap :"); for (m=1;m<=n;m++) {r=r+2; printf(" %1.0f ", r);o=o+r;} printf("= %1.0f", o);

printf("\n\nAkan Coba Lagi? (y/t):");do (x=getch());while (x!='y' && x!='t'); } }

Output yang ditampilkan:

Analisis Diatas merupakan program dengan kombinasi perulangan While, For dan Do While. Dimana Perulangan For difungsikan pada perulangan proses outputan sedangkan While dan Do While pada proses perulangan program.

Percobaan ke delapan: /* File Program: duaexkuadrat.C */ #include <stdio.h> #include <conio.h> #include <math.h> main() { int x=1, y, i, j; float v, w, z, a=0, b=0, c=0; char lagi='y', tidak='t'; while (lagi=='y') { clrscr(); y=0;a=0;b=0;c=0;w=0;z=0;v=0; gotoxy(1,1); printf("Masukkan Bilangan:"); scanf("%i", &y); gotoxy(1,2); printf("====================================\n"); gotoxy(1,3); printf("x"); gotoxy(10,3); printf("2x"); gotoxy(19,3); printf("sqrt(2x)"); gotoxy(28,3); printf("Jumlah"); gotoxy(1,4); printf("====================================\n"); for (x=1; x<=y; x++) { w=2*pow(x,2); z=sqrt(2*x);v=w+z; gotoxy(1,4+x); printf("%i", x); gotoxy(10,4+x); printf("%5.2f", w); gotoxy(19,4+x); printf("%5.2f", z); gotoxy(28,4+x); printf("%5.2f", v); gotoxy(1,5+y); printf("====================================\n"); a=a+w;b=b+z;c=c+v; gotoxy(1,6+y); printf("Jumlah:"); gotoxy(10,6+y); printf("%5.2f", a); gotoxy(19,6+y); printf("%5.2f", b); gotoxy(28,6+y); printf("%5.2f", c); gotoxy(1,7+y); printf("rata :"); gotoxy(10,7+y); printf("%5.2f", a/y); gotoxy(19,7+y); printf("%5.2f", b/y); gotoxy(28,7+y); printf("%5.3f", c/y); } printf("\nMencoba lagi? (y/t) :");do {(lagi=getch());} while (lagi!='y' && lagi!='t'); } }

Output yang ditampilkan:

Analisis Pada program ini merupakan contoh yang sama dari pemakaian perulangan ketiga-tiganya. Dimana yang berbeda disini adalah penggunaan fungsi gotoxy. Dimana bentuk umumnya adalah gotoxy(koordinat_x, koordinat_y);

Percobaan Kesembilan: /* File Program: array.c*/ #include <stdio.h> #include <conio.h> #include <math.h> #include <string.h> #include <ctype.h> main() { int x, a, nilai[20]; clrscr(); printf("Program Menggunakan Array 1 Dimensi"); printf("\n==================================="); printf("\nMasukkan Jumlah Data:"); scanf("%i", &a); for (x=1; x<=a; x++) {printf("Data ke %i= ", x); scanf("%i", &nilai[x]);} printf ("\nData Output: "); for (x=1; x<=a; x++) printf("%i ", nilai[x]); } Output yang ditampilkan:

Analisis: Diatas merupakan contoh dari program Array. nilai[20] merupakan variable yang memiliki maksimal 20 data yang sama bila diinputkan. Diatas juga merupakan contoh dari perulangan For.

Program Kesepuluh: /* File Program: array.c*/ #include <stdio.h> #include <conio.h> #include <math.h> #include <string.h> #include <ctype.h> main() { int x, a, y, n[10][10]; printf("Program Menggunakan Array 2 Dimensi"); printf("\n==================================="); printf("\nMasukkan Jumlah Data:"); scanf("%i", &a); for (x=1; x<=a; x++) { for (y=1; y<=a; y++) {printf("Data nilai (%i,%i) = ",x,y);scanf("%i", &n[x][y]);} } printf ("\nData disusun dalam matrix %ix%i:\n",a,a); for (x=1; x<=a; x++) { for (y=1; y<=a; y++) {printf("%i ", n[x][y]); } printf("\n");} }

Output yang ditampilkan:

Analisis Diatas merupakan program contoh dari Array dimensi dua. Dimana n[10][10] merupakan variablenya yang mempunyai ukuran maksimal 10 data untuk kolom dan baris. Diatas juga merupakan perulangan bertingkat dari For.

Percobaan kesebelas: /* File Program: ArraySortir.c*/ #include <stdio.h> #include <conio.h> #include <math.h> #include <string.h> #include <ctype.h> main() { int x, a, nilai[20], y, z; clrscr(); printf("Program Menggunakan Array 1 Dimensi"); printf("\n==================================="); printf("\nMasukkan Jumlah Data:"); scanf("%i", &a); for (x=1; x<=a; x++) {printf("Data ke %i= ", x); scanf("%i", &nilai[x]);} printf ("\nData Output sebelum tersortir: "); for (x=1; x<=a; x++) printf("%i ", nilai[x]);

//sortir for (x=1; x<=a-1; ++x) { for (y=1; y<=a-1; ++y) { if (nilai[y]>nilai[y+1]) { z=nilai[y]; nilai[y]=nilai[y+1]; nilai[y+1]=z; } } } printf ("\nData Output sesudah tersortir: "); for (x=1; x<=a; x++) printf("%i ", nilai[x]); }

Output yang ditampilkan:

Analisis Diatas merupakan contoh dari fungsi array 1 dimensi yang juga merupakan fungsi for yang dikombinasikan dengan fungsi if untuk proses penyortiran atau pengurutan.

Percobaan keduabelas: //Menu Rumus Matematika.c #include <stdio.h> #include <conio.h> #include <math.h> #include <string.h> #include <ctype.h> void akar(); void derbel(); void derjum(); char kemb='k'; void akar() { float a, b, c, d, x1, x2; char lagi='y'; while (lagi=='y') { clrscr(); a=0; b=0; c=0; d=0; x1=0; x2=0; printf("masukkan nilai a: ");scanf("%g", &a); printf("masukkan nilai b: ");scanf("%g", &b); printf("masukkan nilai c: ");scanf("%g", &c); d=pow(b,2)-(4*a*c); x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); printf("D= %g\n",d); printf("X1=%g\n",x1); if (d=0) printf("X2=%g",x1); else printf("X2=%g",x2); printf("\n\nMencoba lagi(y) ke Menu (k) :");do {(lagi=getch());} while (lagi!='y' && kemb!='k'); } } void derbel() { int x=1, y, i, j; float v, w, z, a=0, b=0, c=0; char lagi='y', tidak='t'; while (lagi=='y') { clrscr(); y=0;a=0;b=0;c=0;w=0;z=0;v=0;

gotoxy(1,1); printf("Masukkan Bilangan:"); scanf("%i", &y); gotoxy(1,2); printf("====================================\n"); gotoxy(1,3); printf("x"); gotoxy(10,3); printf("2x"); gotoxy(19,3); printf("sqrt(2x)"); gotoxy(28,3); printf("Jumlah"); gotoxy(1,4); printf("====================================\n"); for (x=1; x<=y; x++) { w=2*pow(x,2); z=sqrt(2*x);v=w+z; gotoxy(1,4+x); printf("%i", x); gotoxy(10,4+x); printf("%5.2f", w); gotoxy(19,4+x); printf("%5.2f", z); gotoxy(28,4+x); printf("%5.2f", v); gotoxy(1,5+y); printf("====================================\n"); a=a+w;b=b+z;c=c+v; gotoxy(1,6+y); printf("Jumlah:"); gotoxy(10,6+y); printf("%5.2f", a); gotoxy(19,6+y); printf("%5.2f", b); gotoxy(28,6+y); printf("%5.2f", c); gotoxy(1,7+y); printf("rata :"); gotoxy(10,7+y); printf("%5.2f", a/y); gotoxy(19,7+y); printf("%5.2f", b/y); gotoxy(28,7+y); printf("%5.3f", c/y); } printf("\nMencoba lagi(y) Ke Menu (k) :");do {(lagi=getch());} while (lagi!='y' && kemb!='k'); } } void derjum() { float n, m, o; char x='y', y='t'; while (x=='y') { clrscr();n=0;m=0;o=0; printf("Masukkan Nilai:");scanf("%f", &n); printf("\nDeret Bilangan:\n"); for (m=1;m<=n;m=m+3) {printf("%1.0f ", m);o=o+m;} printf("= %1.0f", o); printf("\n\nAkan Coba Lagi? (y) Ke Menu (k):");do (x=getch());while (x!='y' && kemb!='k'); } }

main() { int h; while (kemb=='k') { clrscr(); printf("~~~~~~~~MENU~~~~~~~~"); printf("\n1. Akar Akar\n2. Deret Tabel\n3. Deret Penjumlahan\n4. Selesai\n\nPilihan (14):"); scanf("%i", &h); if (h==1) {clrscr(); akar();} else if (h==2) {clrscr(); derbel();} else if (h==3) {clrscr(); derjum();} else if(h==4) kemb='n'; } } Output yang ditampilkan:

Analisis Diatas merupakan contoh program dari void. Void merupakan bagian dari program yang utama. Namun void disini difungsikan sebagai program dalam program. Dalam contoh void ini terdapat beberapa void dan satu main program sebagai program utama. Ketika kita mengetikkan 1 lalu enter maka program akan memanggil void akar akar. Begitu juga bila kita inputkan angka 2 lalu enter maka program akan memanggil void tabel deret. Sama saja bila kita inputkan angka 3 lalu enter maka kita akan masuk ke program deret bilangan dan kembali ke menu hanya dengan mengklik k saja.

Percobaan ketigabelas #include<conio.h> #include<stdio.h> #include<math.h> #include<string.h> main() { char a[256], b[256], c[256], d[256]; printf("Masukkan Kata A : "); fflush(stdin); scanf("%[^\n]", &a); printf("Masukkan Kata B : "); fflush(stdin); scanf("%[^\n]", &b); printf("\nMaka : "); strcpy(c,a); strcpy(d,b); printf("\nBilangan A = %s",d); printf("\nBilangan B = %s\n",c); printf("\nA= %s",a); printf("\nB= %s\n",b); printf("\nkata %s terdiri dari %i karakter ",a,strlen(a)); printf("\nkata %s terdiri dari %i karakter ",b,strlen(b)); }

Output yang ditampilkan:

Analisis: Program diatas merupakan contoh dari beberapa fungsi string. Pada fungsi strcpy(c,a); dijelaskan bahwa string dikopi ke variabel c dari variabel a. fungsi lainnya yaitu strlen(a) memunculkan data berupa integer yang mengitung jumlah karakter pada variabel yang dituju seperti yang diperintahkan strlen(b) maka perintah tersebut akan memunculkan angka berbentuk integer berasal dari perhitungan karakter dari variabel yang dituju.

BAB III PENUTUP 3.1 Kesimpulan

Kegiatan praktik algortima yang kedua ini merupakan pendalaman dari dasar-dasar pemrograman. Praktik algoritma kedua ini merupakan lajutan dari yang pertama. Praktik algoritma yang pertama harus benar benar mengerti agar praktik yang kedua ini bisa dipahami ilmunya. Di kegiatan praktik ini, kami memperdalam fungsi For, While, dan Do While. Lalu menggunakan perulangan tersebut untuk programnya dan memperdalam perulangan yang bertingkat. Pada praktik ini juga kami diperkenalkan fungsi Array dimensi satu, Array dimensi dua, fungsi strcpy(); dan strlen();, dan penggunaan fungsi void. Dengan praktik ini kami dapat memperdalam dasar dasar dari pemrograman c++ . menggunakan perulangan pada programnya maupun prosesnya. Kami dapat mengenal fungsi void yang berguna untuk membuat program dengan banyak sub-sub program yang dibuat dengan satu program saja. 3.1 Saran

Perhatikan dosen yang sedang mengajar agar tidak terjadi miscommunication atau salah mengerti, fokus dan kosentrasi penuh. Telitilah dalam melakukan praktik algoritma ini. Efisiensikan waktu yang ada untuk praktikum ini.