RESUME PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
RESUME PRAKTIKUM
ALGORITMA DAN PEMROGRAMAN
Disusun Oleh
Nama : Surya Adi Prasetyo
NIM : 191080200106
Kelompok 17
Nama : Surya Adi Prasetyo
NIM : 191080200106
Kelompok 17
LABORATORIUM INFORMATIKA
PROGRAM STUDI INFORMATIKA
2019 – 2020
Setiap program c++ mempunyai bentuk umum seperti dibawah, yaitu :
# prepocessor directive
Void main ()
{
// batang tubuh program
utama
}
Penjelasan :
1.
Include
Adalah
salah satu pengarah prepocessor directive yang tersedia pada c++ prepocessor selalu dijalankan terlebih dahulu
pada saat proses kompilasi terjadi . bentuk umumnya :
#
include < nama file>
Tidak diakhiri tanda semicolon karena bentuk tersebut bukanlah suatu
bentuk pernyataan tetapi merupakan bentuk preprocessor directive baris tersebut
mengintrusikan kepada kompiler yang menyisipkan file lain dalam hal ini file
yang berakhiraran .h file header yaitu file yang berisi sebagai deklrasi
contohnya :
# include <iostream.h> : diperlukan pada program yang menggunakan
cout
#include<conio.h> : diperlukan bila melibatkan clrscr() yaitu
perintah untuk membersihkan layar
# include<iomanip.h> :diperlukan bila melibatkan set w().yang
bermanfaat untuk mengatur lebar dari suatu tampilan data
2. Fungsi main ()
Fungsi ini menjadi awal
dan akhir eksekusi program c++.main adalah nama judul fungsi.melihat bentuk seprti
itu dapat kita ambil kesimpulan bahwa batang tubuh program utama , utama, maka dapat
dipastikan seorang pemrogram menggunakan minimal sebuah fungsi. Pembahasan
lebih lanjut mengenai fungsi .
akan di terangkan
kemudian. Yang sekarang coba ditekankan adalah kita menuliskan program utama
kita di dalam sebuah fungsi main().
3.
Komentar
Komentar tidak pernah di
compiler. Dalam C++ terdapat 2 jenis komentar, yaitu :
Jenis 1 : /* Komentar anda di
letakkan di dalam ini bisa mengapit lebih dari satu baris */
Jenis 2 : // Komentar anda
diletakkan disini (hanya bisa perbaris)
4. Tanda Semicolon
Tanda semicolon “ : “
digunakan untuk mengakhiri sebuah pernyataan. Setiap pernyataan harus diakhiri
dengan sebuah tanda semicolon.
5. Mengenal Cout ( dibaca : C out)
Pernyataan cout
merupakan sebuah objek di dalam C++, yang digunakan untuk mengarahkan data ke
dalam standar output (cetak pada layar)
Contoh :
Tanda “ << “ merupakan sebuah operator yang disebut operator
“penyisipan / peletakan”
Membuat program
dengan menggunakan fungsi puts
Assalamualaikum, nama
saya adalah .....
Sekarang saya belajar
memprogram memakai bahasa c
Ayo teman teman
belajar juga
Sampai jumpa.
Coding :
#include <stdio.h>
#include <conio.h>
int main()
{
puts("Assalamualaikum, nama saya adalah Surya Adi Prasetyo. \nSekarang
saya belajar memprogram memakai bahasa c. \nAyo teman teman belajar juga. \nSampai jumpa!");
_getch();
}
PROGRAM TAMPILAN MENGGUNAKAN KODE ESCAPE
Coding
:
#include <stdio.h>
#include
<conio.h>
void main()
{
printf("1\t2\t3\t4\t5\t6\t7\t8\n");
printf("program\tkomputer\tbahasa\tc");
printf("\td1 lab\tini\n");
printf("Saya sedang
belajar\r");
printf("kode escape\n");
puts("Suara apa ya
ini?\a");
_getch();
}
Apa Perbedaan antara puts dan printf ?
puts berfungsi untuk
menampilkan suatu output tetapi hanya untuk menampilkan nilai string,
Sedangkan printf
berfungsi untuk menampilkan suatu output dan menampilkan semua jenis data.
Memperhatikan
tampilan yang ada di layar. Bagaimana efek kode escape \n, \t, \r, dan \a?
\n : Memberikan efek garis baru / New Line (Enter).
\t : Memberikan efek menjorok ke dalam (Tab).
\r : Pindah ke kolom paling kiri dari baris yang sama.
\a : Mengeluarkan sebuah bunyi (Bel).
PROGRAM MENGISI INPUT KE VARIABLE STRING
Coding
:
#define
_CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include
<conio.h>
main()
{
char nama[50];
printf("Isikan nama : ");
gets(nama);
printf("Haii ");
puts(nama);
printf("Betul kah, kamu si %s?\n", nama);
_getch();
}
Apa arti angka 80
pada nama[80] di atas?
Arti angka 80 adalah
batas maksimal string(huruf) yang bisa dimasukkan
Apa kegunaan fungsi gets?
Gets digunakan untuk
mendefinisikan string yang dimasukkan ke program
gets(nama);
menjadi:
scanf(“%s”,nama);
Apa pula fungsi scanf ?
Fungsi scanf untuk
mendefinisikan setiap masukan ke dalam program
PROGRAM MATEMATIKA BILANGAN BULAT & RIIL : PEMBAGIAN
Coding
:
#include <stdio.h>
#include
<conio.h>
main()
{
int a=10, c;
float b=3.5, d;
c=a/b; d=a/b;
printf("a=%d\n",a);
printf("b=%f\n",b);
printf("c=%d\n",c);
printf("d=%f\n",d);
_getch();
}
- Memperhatikan cara menginisialisasi nilai variable a dan bBerapakah nilai c dan d?Jawab : c = 2 dan d = 2.857143Mengapa nilai keduanya berbeda meskipun operasinya sama?Jawab : Karena c didefinisikan bertipe int (bil. bulat) dan d bertipe float (bil. Pecahan).KEPRESISIAN BILANGAN RIILSCRIPT :#include <stdio.h>void main(){float a=3,b;double c;b=1000/a;c=1000/a;printf(“a=%f\n”,a);printf(“b=%f\n”,b);printf(“c=%f\n”,c);}Mengapa nilai b dan c berbeda meskipun operasinya sama?Jawab : Karena nilai b bertipe data pecahan dengan ketetapan data tunggal (float), sedangkan nilai c bertipe data numerik.
POKOK BAHASAN 2STRUKTUR PEMROGRAMAN PENCABANGAN1. PENCABANGAN TUNGGAL : IFBuatlah program dibawah ini, jika umur lebih dari 60 tahun maka akan ditampilkan komentar.SCRIPT :#include<iostream.h>void main(){int umur;cout<<"masukkan umur kamu= ";cin>> umur;if (umur >= 60){cout<<"Selamat siang mbah"<<endl;cout<<"Salam buat cucumu ya"<<endl;}cout<<"jadi umurumu"<<umur<<"tahun";}Error apakah yang muncul serta bagaimana yang benar ?Jawab : Error yang terjadi adalah jika umur di isi kurang dari 60 tahun maka komentar tetap akan ditampilkan, harusnya yang benar ialah jika umur kurang dari 60 tahun maka komentar tidak akan ditampilkan.Jalankan dengan mengisikan umur 80 tahun, lalu jalankan lagi dengan umur 20 tahun. Mengapa komentar tambahan selalu muncul untuk umur berapapun tidak sesuai dengan yang diinginkan. Serta bagaimana yang benar ?Jawab : Karena tidak ada {} saat setelah if, dimana tanda itu digunakan untuk tanda blok pada if.SCRIPT :#include <iostream>using namespace std;int main(){int umur;cout<< "Masukkan Umurmu = ";cin>> umur;if (umur >= 60){cout<< "\n Hallo Mbah"<< endl;cout<< "Salam Buat Cucumu Ya" << endl;cout<< "Jadi Umurmu "<< umur << " Tahun\n";}}PROGRAM CONTOHSCRIPT :#include<iostream.h>void main(){int tahun, umur;cout<<"Masukkan tahun kelahiranmu = "<<endl;cin>>tahun;umur = 2013 - tahun;cout<< "Umurmu " <<umur <<"tahun\n"<<endl;if (umur < 17){ cout<< "Kamu belum sweet seventeen\n";cout<< "Sorry, Belum cukup umur\n";}}Jalankan dan isikan tahun kelahiran 2000 serta nilai lain. Kesalahan apakah yang terjadi dan bagaimana yang benar ?Jawab : Hasil umur yang dikeluarkan tidak sesuai dengan saat ini karena umur = 2013-tahun; yang benar adalah umur = 2019-tahun;SCRIPT :#include<iostream.h>void main(){int tahun, umur;cout<<"Masukkan tahun kelahiranmu = "<<endl;cin>>tahun;umur = 2019 - tahun;cout<< "Umurmu " <<umur <<"tahun\n"<<endl;if (umur < 17){ cout<< "Kamu belum sweet seventeen\n";cout<< "Sorry, Belum cukup umur\n";}}
POKOK BAHASAN 3STRUKTUR PEMROGRAMAN : LOMPATAN & KALANGSebuah / kelompok intruksi diulang untuk jumlah pengulangan tertentu. Baik yang terdifinisikan sebelumnya ataupun tidak.Struktur pengulangan terdiri atas dua bagian :1. Kondisi pengulangan yaitu ekspresi Boolean yang harus di penuhi untuk melaksanakan pengulangan.2. Isi atau badan pengulangan yaitu satu atau lebih pernyataan (aksi) yang akan diulang.Perintah atau notasi dalam struktur pengulangan adalah :1. Pernyataan while2. Pernyataan do…while3. Pernyataan for4. Pernyataan continue dan break5. Pernyataan go toPENJELASAN1. Pernyataan WHILEPernyataan while merupakan salah satu pernyataan yang berguna untuk memproses suatu pernyataan atau beberapa pernyataan beberapa kali. Pernyataan while memungkinkan statemen-statemen yang ada didalamnya tidak dilakukan sama sekali. Bentuk Umumnya :while (kondisi){Pernyataan ;}2. Pernyataan DO…WHILEPernyataan do while mirip seperti pernyataan while hanya saja pada do whilepernyataan yang terdapat didalamnya minimal akan sekali dieksekusi. Bentuk Umumnya :do {pernyataan;} while (kondisi);3. Pernyataan FORPernyataan for digunakan untuk menghasilkan pengulangan(looping) beberapa kali tanpa penggunaan kondisi apapun. Pada umumnya looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya. Pernyataan for digunakan untuk melakukan looping. Pada umumnya looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya. Selama kondisi terpenuhi, maka pernyataan akan terus dieksekusi.Bentuk Umumnya :for (inisialisasi ; kondisi ; perubahan){Statement; }4. Pernyataan Continue dan BreakPernyataan break akan selalu terlihat digunakan bila menggunakan pernyataan switch. Pernyataan ini juga digunakan dalam loop. Bila pernyataan ini dieksekusi, maka akan mengakhiri loop dan akan menghentikan itrasi pada saat tersebut.5. Pernyataan gotoPernyataan goto diperlukan untuk melakukan suatu lompatan ke suatu pernyataan berlabel yang ditandai dengan tanda " : ". Bentuk Umumnya :Go to bawah;pernyataan 1;pernyataan 2;pernyataan 3;LOMPATAN : LABEL DAN GOTOBuatlah program dibawah ini. Jalankan dan tulislah tampilan yang muncul. Terangkan fungsi dari label dan goto.SCRIPT :#include<iostream.h>void main (){cout<<"ini langkah pertama"<<endl;goto LABELB;LABELA:cout<<"ini langkah kedua"<<endl;goto LABELC;LABELB:cout<<"ini langkah ketiga"<<endl;goto LABELA;LABELC:cout<<"ini langkah keempat"<<endl;}
Label dan goto berfungsi :Jawab : Label sebagai penunjuk dalam proses. Sedangkan Goto digunakan untuk melompati suatu proses yang lainnya didalam program dan juga bisa digunakan sebagai suatu proses pertimbangan.KALANG BERSYARAT “PERIKSA-JALANKAN” : WHILESCRIPT :#include <iostream.h>#include <conio.h>void main(){ char nama [80];char tombol;while ((tombol == 'Y')||(tombol == 'y')) {cout<< "Masukkan nama anda = ";cin>> nama;cout<< "Halo " << nama << endl << endl;cout<< "Apakah mau mengulangi (Y/T)?";tombol = getch();cin >> tombol;cout<< endl << endl; }cout<< "Selesai"; }Apakah yang terjadi mengapa hasil output kosong ?Jawab : karena belum ada fungsi getch dan sebelum masuk while diberi fungsi getchtombol : ();SCRIPT :#include<iostream.h>#include<conio.h>main() {char nama[80];int tombol;while((tombol =='Y')||(tombol=='y')); {cout<<"Masukkan nama anda: ";cin>>nama;cout<<"Hai "<<nama<<endl<<endl;cout<<"Apakah mau mengulangi(Y/T)?: ";tombol=getch();cin>>tombol;cout<<endl<<endl;}cout<<"Selesai";}
POKOK BAHASAN 4STRUKTUR PEMROGRAMAN : KALANG
TABEL KUADRAT
SCRIPT :
#include <iostream.h>
#include <iomanip.h>
void main() {int x=0;cout << " x x kuadrat\n";while (x <= 20) {cout << setw(3) << x<< setw(8) << (x*x) << endl;x++;} }Jalankan program diatas. Jika, terjadi error, bagaimana yang benar ?Jawab : tidak ada error waktu program di compile.Apa guna fungsi setw( ) berfungsi membuat tampilan dalam rata kanan dengan lebar ditentukan oleh nilai yang ada dalam kurungMEMUTUS KALANG : BREAK & CONTINUESCRIPT :#include <iostream.h>void main() {int i = 0;cout<< i;do {i++;cout<< "- "; if (i == 4)continue; cout<< i;} while (i < 10); cout << "\nSelesai\n"; }Fungsi simbol / / Berfungsi sebagai komentar dalam program / keterangan Fungsi dari keyword break, Break berfungsi mengeluarkan eksekusi compiler dari struktur program setelah suatu kondisi tertentu dipenuhiGantilah break dengan continue, dan jalankan !SCRIPT :#include<iostream>using namespace std;int main(){int i=0;cout<<i;do{i++;cout<<"-";// if (i==4)// continue;cout<<i;}while(i<12);cout<<"\nSelesai\n";}Apa fungsi Continue ?Jawab : Continue berfungsi untuk melanjutkan suatu kompile setelah suatu perintah sudah terpenuhi.TABEL SINUSSCRIPT :#include <stdio.h>#include <math.h>void main (){const float PI = 3.141593;int x = 0, x2;float y,y2;puts ("Tabel sinus\n------------");puts (" x sin(x) x sin(x)");do {y = sin (x/180.0*PI);x2 = x+180;y2 = sin(x2/180*PI);printf("%4d %8.4f %4d %8.4f\n",x,y,x2,y2);x+= 10;}while (x <= 180 );}Yang menyebabkan Tabel ini salah?y = sin (x/80,0*PI) y = sin (x2/80*PI) Seharusnyay = sin (x/57,2958) y 2= sin (x/57,2958)Apakah fungsi dari operator += ?+= untuk menambahkan nilai x dengan nilai 10
POKOK BAHASAN 5
VARIABEL LARIK : MATRIKS& STRINGS
SEKUP VARIABEL DALAM KALANG FOR
SCRIPT :#include< iostream>using namespace std;int main(){int i = 5;cout<< "di luar kalang i= " << i << endl;for (i=1; i<=10; i++) {cout <<" di dalam kalang i= "<< i<< endl;}cout<< "di luar kalang i= " << i << endl;}Mengganti pernyataan for di atas menjadi:for (int i=1; i<=10; i++) {jalankan program tersebut dan perhatikan nilai i yang ditampil-kan. Apa pengaruh pendefinisian variabel i di dalam kalang for(1). Muncul error karena Multiple declaration for „i‟.Mengganti pernyataan for di atas dengan menghilangkan bagian inialisasi kalang for menjadi :for (; i<=10; i++) {Apakah yang terjadi apabila tidak dilakukan inisialisasi pada kalang for(2). Pengaksesan variabel dalam kalang for memakai nilai awal yang telah didefinisikan diluar kalang forKALANG FOR UNTUK MENGISI DAN MENAMPILKAN MATRIKSSCRIPT :#include <iostream.h>main() {int i,j,N = 3;float A[5][5];for ( i=0; i<N; i++) {for ( j=0; j<N; j++) {cout << "A(" << i<< "," << j << ") = ";cin >> A[i][j];}}cout << "Matriks A = \n";for ( i=0; i<N; i++) {for ( j=0; j<N; j++) {cout << "\t" << A[i][j]; }cout << endl;}}Program di atas adalah sebuah contoh program yang digunakan untuk mengisi nilai-nilai elemen pada matriks ukuran 3x3. Modifikasi (dengan menambah atau mengubah sekitar 3 baris saja) program tersebut agar dapat digunakan untuk mengisi dan menampilkan matriks yang berukuran 4 baris x 5 kolom (3).
OPERASI PADA STRING : KUTAK-KATIK NAMA
SCRIPT :
#include <stdio.h>
#include <iostream.h>
#include <string.h>void main (){char nama [80], nama2[80], tulisan[80];int panjang, posisi;cout<< "Input nama = ";gets (nama);strcpy (tulisan, "Halo ");cout<< strcat(tulisan, nama)<<endl;if (strcmp (nama, "Keyla") == 0){cout<< "Namamu Keyla kan" << endl;}else {cout<< "Namamu bukan keyla"<<endl;}panjang = strlen (nama);cout<< "panjang namamu " <<panjang<<endl;posisi = strcspn (nama,"z");if (posisi<panjang){cout<< "Huruf z pada posisi " <<posisi<<endl;}else {cout<< "Tidak ada huruf z nya"<<endl;}strcpy (nama2,nama);cout<< strupr (nama2) <<endl;cout<< strlwr (nama2) <<endl;cout<< strrev (nama2) <<endl;cout<< strset (nama2,'x') <<endl;}Jalankan program di atas dan jelaskan kegunaan dari fungsi berikut ini: strlen(), strcpy(), strcat(), strcmp(),strlen(), strcspn(), strupr(), strlwr(), strrev(), dan strset()(5).strlen()= Bentuk format strlen(const char *s)Fungsi menghitung panjang string sstrcpy()= Bentuk format strcpy(char *dest, const char *src)Fungsi mengkopi string src ke deststrcat()= Bentuk format strcat (char*dest, const char*src) Fungsi menambahkan kopian src ke bagian akhir deststrcmp()= Bentuk format strcmp(const char*s1, const char*s2)Fungsi melakukan perbandingan s1 dengan s2strcspn()= Bentuk format strcspn (const char *s1, const char *s2)Fungsi menemukan bagian awal string s1 yang mengandung s2strupr()= Bentuk format strupr(const char *s)Fungsi mengubah string menjadi huruf KAPITAL (uppercase)strlwr()= Bentuk format strlwr(const char *s)Fungsi mengubah string menjadi huruf biasa/kecil (lowercase)strrev()= Bentuk format strrev(const char *s)Fungsi membalik semua karakter string, jadi huruf terakhir menjadi awalstrset()= Bentuk format strset(const char *s, int ch)Fungsi menset semua karakter dalam s ke ch
POKOK BAHASAN 6
SORTING (PENGURUTAN)
FUNGSI DENGAN NILAI KEMBALIAN (RETURN VALUE ) : BISECTIONReview kembali program bisection pada modul 5, modifikasi program tersebut dengan menggunakan fungsi, yaitu dengan menambahkan fungsi berikut sebelum main().Double y(double x){return ::*x-2*x-3;}Kemudian gantilah intruksi yang digunakan untuk menghitung nilai-nilai yL,yC,yU menjadi:yL = y (xL);yC = y(xC);yU = y(xU);jalankan dan periksa hasilnya. Apabila program tersebut digunakan untuk persamaan yang lain yaitu exp(x)-2*x-2=0, apakah yang harus diubah dalam program tersebut.SCRIPT :#include <iostream>#include <iomanip.h>#include <math.h>double y(double x){return exp (x)-2*x-2;}void main (){int iterasi = 0;double xL, xC, xU, yL, yC, yU;cout<< "Mencari akar persamaan x*x-2*x-3=0\n"<<"dengan metode bisection\n"<<"Masukkan tebakan awal bawah = ";cin>> xL;cout<< "Masukkan tebakan awal atas = ";cin>> xU;cout<< "iterasi xL xC"<<" xU yL"<<" yC yU\n";do {xC = ( xL+xU)/2;yL = y(xL);yU = y(xU);yC = y(xC);cout<< setw(5) << iterasi<<setiosflags (ios::fixed)<<setprecision (5)<<setw (12) << xL<<setw (12) << xC<<setw (12) << xU<<setw (12) << yL<<setw (12) << yC<<setw (12) << yU << endl;if (yL*yC <= 0)xU = xC;elsexL = xC;iterasi ++;}while ((iterasi <= 50) && (fabs(yC)>1e-5));cout<< "Jadi akarnya adalah " <<xC;}
PELEWATAN PARAMETER PADA PEMANGGILAN FUNGSI
SCRIPT :
#include <iostream.h>
void Gandakan (int A, int *B, int &C)
{A = A*2;*B = *B*2;C = C*2;}main (){int x=1, y=10, z=6;cout<< "Sebelum fungsi gandakan di panggil\n"<<"x="<<x<<endl<<"y="<<y<<endl<<"z="<<z<<endl;Gandakan (x, &y, z);cout<< "Setelah fungsi gandakan di panggil\n"<<"x="<<x<<endl<<"y="<<y<<endl<<"z="<<z<<endl;}Variabel manakah yang akan diubah nilainya ketika dijadikan parameter yang dilewatkan pada fungsi gandakan?variabel Y dan Z, variabel X tidak termasuk karena pemanggilan variabel X tidak
diawal simbol ampersand (&) dan penulisan variabel dalam fungsi tidak diawali
symbol bintang (*)
NILAI DEFAULT PADA PARAMETER FUNGSISCRIPT :#include <iostream.h>void Keterangan (int N=10){if (N >= 8)cout<< "Nilai "<<N<< " itu bagus\n";else if (N < 5)cout<< "Nilai "<<N<< " itu parah\n";elsecout<< "Nilai "<<N<< " itu cukupan\n";}void main (){int Nilai;Keterangan ();cout<< "Masukkan nilai = ";cin>> Nilai;Keterangan (Nilai);}Apakah yang menyebabkan terjadinya error pada program diatas?Tidak terjadi errorMengapa tidak terjadi error ketika fungsi diatas dipanggil tanpa mengisikan parameternya?Tidak terjadi error ketika parameter fungsi tidak diisikan karena pada fungsi tersebut sudah ada nilai default, sehingga saat parameter fungsi tidak diisi makaProgram akan menggunakan nilai default itu.
Comments
Post a Comment