ALGORITMA PEMROGRAMAN 2
Di susun Oleh:
Teknik Informatika D
FAKULTAS TEKNIK
SUMBAWA BESAR
2020
LEMBAR PENGESAHAN
Menyetujui,
NIDN : 0814078603
KATA PENGANTAR
Penulis
DAFTAR ISI
LEMBAR PENGESAHAN..............................................................................................2
LAPORAN PRAKTIKUM ALGORITMA PEMPROGRMAN 2 ...............................2
KATA PENGANTAR ......................................................................................................3
DAFTAR ISI ....................................................................................................................4
BAB I ................................................................................................................................5
PENDAHULUAN ............................................................................................................5
1. LATAR BELAKANG ..........................................................................................5
2. Rumusan masalah ................................................................................................5
3. Tujuan ...................................................................................................................5
BAB II ...............................................................................................................................6
PEMBAHASAN ...............................................................................................................6
A. Konsep Pemrograman .........................................................................................6
B. Algoritma Sequential ...........................................................................................6
C. Implementasi ......................................................................................................15
D. Modular ..............................................................................................................20
E. FUNGSI ..............................................................................................................22
F. REKURSIF .........................................................................................................23
G. Implementasi ..................................................................................................25
H. Array ...............................................................................................................34
BAB I
PENDAHULUAN
1. LATAR BELAKANG
2. Rumusan masalah
Adapun yang akan dibahas pada Laporan Praktikum ini antara lain:
a. Algoritma dan pemrograman sequential, braching, rekursif
b. Modular (Procedure dan Function)
c. Array Multidimensi
3. Tujuan
PEMBAHASAN
A. Konsep Pemrograman
Algoritma :
a. Sequential / Beruntun
b. Branching /Pencabangan
c. Looping/ Iterasi / Rekursif
Struktur data :
B. Algoritma Sequential
Perintah1
Perintah2
Perintah3
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main()
{
int ksoni,kadi,kanis,kluki;
cout<<"\nAlgoritma menghitung kelereng Adi, Anis, Luki";
cout<<"\ninput kelereng soni : ";
cin>>ksoni;
kadi=ksoni-10;
kanis=2*(ksoni+kadi);
kluki=ksoni+kadi+kanis-5;
cout<<"\n##########################";
cout<<"\n\nkelereng adi = " <<kadi;
cout<<"\nkelereng anis = " <<kanis;
cout<<"\nkelereng luki = " <<kluki;
cout<<"\n\n############################";
return 0;
}
Bias di liat pada gambar di atas dimana yang di eksekusi operasi
1(kadi=ksoni-10;), operasi 2(kanis=2*(ksoni+kadi);) , kemudian operasi
3(kluki=ksoni+kadi+kanis-5;). Kelereng adi didapatkan dari kelereng
kelereng soni (input) – 10 , kemudian kelereng anis di dapatkan dari
kelereng soni+ kelereng adi, dan dikali 2. Dan untuk kelereng luki di
dapatkan dari kelereng soni + kelereng adi + kelereng anis – 5.
Contoh :
Sebuah aturan untuk menonton sebuah film tertentu adalah sebagai berikut,
jika usia penonton lebih dari 17 tahun maka penonton diperbolehkan dan
apabila kurang dari 17 tahun maka penonton tidak diperbolehkan nonton.
Buatlah Algoritma untuk permasalahan tersebut.
Deskripsi
1. Scanf(Usia)
3. End
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
int main()
system("cls");
int umur;
string nama,boleh;
system("cls");
cin>>nama;
cin>>umur;
cout<<"\n##########################";
cout<<"\n\n############################";
Pada gambar di atas dapat kita lihat dimana syarat umur tidak
terpenuhi dimana saya menginputkan nilai 19 (if(umur >= 1 && umur <=
17)boleh="Maaf, Anda Tidak dapat Menonton";) maka akan
dilaksanakan kondisi yang kedua, yaitu else boleh=" Selamat menonton
:D";
for
while do
do while
contoh 1 :
for
Menuliskan nama anda sebanyak 100 kali !
int main()
int banyak=1;
system("cls");
for(banyak;banyak<=100;banyak++)
{cout<<"\n informatika D " <<banyak;}
return 0;
}
Hasil :
Contoh 2 :
While do
#include<iostream>
while(banyak<=100)
{cout<<"\nhanu "<< banyak;
banyak=banyak+1;}
return 0;
}
Hasil :
Contoh 3 :
Do while
Source code :
#include<iostream>
}while(banyak<=100);
return 0;
}
Hasil :
C. Implementasi
Source code :
#include<iostream>
#include <stdlib.h>
{
int periode;
long jum_awal,jum_akhir;
char gol;
float bunga;
system("clear");
jum_akhir=((bunga/periode)*jum_awal)+jum_awal;
return(0);
}
Hasil :
Buatlah program yang menampilkan :
Source code :
#include <iostream>
#include<stdlib.h>
#include <stdio.h>
int main()
{
int pilihan_pengobatan,obat;
float diskon;
double biaya,biaya_pengobatan,hasil_diskon,hasil,Jumlah_uang,kembali;
char ulang;
do{
system("cls");
switch(pilihan_pengobatan)
{
case 1:
biaya=125000;
break;
case 2:
biaya=150000;
break;
case 3:
biaya=225000;
break;
case 4:
biaya=300000;
break;
case 5:
biaya=3000000;
break;
case 6:
biaya=5000000;
break;
default:
cout<<"MAAF, ANDA SALAH INPUT, INPUT HANYA BERUPA
PILIHAN DI ATAS.";
exit(0);
system("cls");
}
hasil_diskon=biaya*diskon;
hasil=biaya-hasil_diskon;
kembali=Jumlah_uang-hasil;
cout<<"Kembali : "<<kembali;
cout<<"\n";
cout<<"\nApakah anda ingin Mengulang? ";
cout<<"[Y/N] :";
cin>>ulang;
}while(ulang=='Y' || ulang=='y');
cout<<"\nterimakasih sudah mampir";
return 0;
}
Hasil :
D. Modular
#include <iostream>
using namespace std;
void info_program();
int main()
{
info_program();
system("pause");
cout << "\n";
info_program();
return 0;
}
void info_program()
{
cout << "Selamat Belajar\n";
cout << "di Universitas Teknologi Sumbawa\n";
}
F. REKURSIF
Iterasi
#include <iostream>
using namespace std;
int main ()
{
int x,a,i,hasil=1;
cout << "Program Iterasi Perpangkatan \n";
cout << "Masukkan nilai x = ";
cin >> x ;
cout << "Masukkan nilai a = "; cin >> a ;
for ( i = 1 ; i <=a ; i++ )
{
hasil = hasil*x;
}
cout<<"Hasil pemangkatan "<<x <<"^" <<a <<" = " <<hasil;
return 0;
}
Dari program tersebut dapat kita lihat bahwa program tersebut hanya
mempunya fungsi main yang menggunakan satu perulangan dimana dimana
variable x akan berisi angka nya dan variable a akan berisi nilai
perpangkatannya. Adapun hasil dari program tersebut antara lain:
G. Implementasi
1. Rekursif
#include <iostream>
using namespace std;
#include <iostream>
using namespace std;
#include <iostream>
using namespace std;
int main(){
int c, hasil = 1;
cout << "Masukan Suhu dalam celsius = ";
cin >> c;
fahrenheit(hasil, c);
reamur(hasil, c);
kelvin(hasil, c);
return 0;
}
int fahrenheit(float carifar, float c2){
carifar = c2 * 1.8 + 32;
cout << "Nilai fahrenheinya adalah = " << carifar << endl;
return carifar;
}
int reamur(float carirea, float c2){
carirea = c2 * 0.8;
cout << "Nilai reamurnya adalah = " << carirea << endl;
return carirea;
}
int kelvin(float carikel, float c2){
carikel = c2 + 273.15;
cout << "Nilai kelvinnya adalah = " << carikel << endl;
return carikel;
}
4. Bintang
#include <iostream>
using namespace std;
5. Bintang2
#include <iostream>
using namespace std;
Fibbonaci
Barisan bilangan Fibonacci dapat dinyatakan sebagai berikut:
Fn = (x1n – x2n)/ sqrt(5)
dengan
Fn adalah bilangan Fibonacci ke-n
x1 dan x2 adalah penyelesaian persamaan x2 – x – 1 = 0.
Perbandingan antara Fn+1 dengan Fn hampir selalu sama untuk sebarang
nilai n dan mulai nilai n tertentu, perbandingan ini nilainya tetap.
Dapat juga dengan Logika berikut ;
Angka 1 = 0
Angka ke-2 = 1
Angka ke-3= angka 1+ Angka ke-2
Angka ke-4 = angka 2+ Angka ke-3
dst….
7. Deret Fibonaci
#include <iostream>
using namespace std;
int main()
{
int i, n, a[100];
cout<<"----- Program Deret Fibonacci -----\n\n";
cout<<"Masukkan jumlah deret : ";
cin>>n;
for(i=0; i<n; i++)
{
if(i<2) a[i]=i;
else a[i]=a[i-2]+a[i-1];
}
H. Array
Indeks array selalu dimulai dari angka nol (0). Pada teori struktur
data ukuran array akan bergantung dari banyaknya data yang disimpan di
dalamnya.
1. Cara Membuat Array pada C++
Pada C++, array dapat kita buat dengan cara seperti ini.
Seperti yang sudah kita ketahui Array akan menyimpan sekumpulan data
dan memberinya nomer indeks agar mudah diakses.Indeks array selalu
dimauli dari nol 0.Misalkan kita punya array seperti ini:
Jawabannya:
huruf[2];
Mengapa bukan huruf[3]?
Biar lebih jelas, mari kita coba dalam program. Silahkan buat file
baru dengan nama contoh_array.cpp, kemudian isi dengan kode berikut:
#include <iostream.h>
#include <conio.h>
void main(){
char huruf[5] = {'a', 'b', 'c', 'd', 'e'};
getche();
}
Setelah itu, coba compile dan jalankan.
Maka hasilnya:
Data pada array dapat kita isi ulang dengan cara seperti ini:
huruf[2] = 'z';
Maka isi array huruf pada indeks ke-2 akan bernilai 'z'.
#include <iostream.h>
#include <conio.h>
void main(){
// isi awal array
char huruf[5] = {'a', 'b', 'c', 'd', 'e'};
Contoh lain:
#include <iostream.h>
#include <conio.h>
void main(){
// membuat array kosong
int nilai[5];
// mengisi array
nilai[0] = 32;
nilai[1] = 42;
nilai[2] = 76;
nilai[3] = 31;
nilai[4] = 57;
getche();
}
Hasilnya:
Contoh:
#include <iostream.h>
#include <conio.h>
void main()
{
int Baris, Kolom, Garis, Jumlah, Matriks_A[2][4] =
{20,30,40,50,10,20,30,40}, Matriks_B[2][4] = {1,2,3,4,4,3,2,1};
cout << "\n PROGRAM PENJUMLAHAN DUA MATRIKS";
cout << "\n ";
for (Garis = 1; Garis <= 31; Garis++){ cout << "\xc4"; }
cout << "\n\n ---MATRIKS A---\n";
for (Baris = 0; Baris < 2; Baris++)
{
cout << " ";
for (Kolom = 0; Kolom < 4; Kolom++)
{
cout << Matriks_A [Baris] [Kolom] << " ";
}
cout << endl;
}
cout << "\n\n ---MATRIKS B---\n";
for (Baris = 0; Baris < 2; Baris++)
{
cout << " ";
for (Kolom = 0; Kolom < 4; Kolom++)
{
cout << Matriks_B [Baris] [Kolom] << " ";
}
cout << endl;
}
cout << "\n\n ===PENJUMLAHAN MATRIKS===\n";
for (Baris = 0; Baris < 2; Baris++)
{
cout << " ";
for (Kolom = 0; Kolom < 4; Kolom++)
{
Jumlah = Matriks_A [Baris] [Kolom] + Matriks_B
[Baris] [Kolom];
cout << Matriks_A [Baris] [Kolom] << " + " <<
Matriks_B [Baris] [Kolom] << " = " << Jumlah << " ";
}
cout << endl;
}
getche();
}
Hasilnya: