Cari hal yang Anda inginkan di sini...

Senin, 10 Mei 2021

TUGAS BAB 5


Kelompok 08

Kelas C

Anggota:

1. 2000018166 - Muhammad Izza

2. 2000018167 - Alja Priambodo Pinem

3. 2000018177 – Laila Sekar Gupita

1. Buatlah fungsi fibonacci dengan cara iteratif. Algoritma membuat fungsi fibonacci {membuat fungsi fibonacci yang diinputkan nilainya sebelum ke piranti keluaran} Deklarasi n,c,first=0,second=1,next : integer x : integer Deskripsi read (n) for (c=0;c < n ; c++ )then if (c<=1) next = c else next <- first + second; first <- second; second <- next; write (next) endfor endif program C++ #include <iostream> using namespace std; int interatif (int x){ int n, c, first = 0, second = 1, next; cout <<"Masukan Nilai =";cin>>n;cout<<endl; cout <<"Nilai =" <<n<< " fibonacci:- " <<endl; for (c=0;c < n ; c++ ) { if (c<=1) next = c;

else { next = first + second; first = second; second = next; } cout<<next<<endl; } } int main(int argc, char** argv) { int x; interatif(x); return 0; } Hasil Run

2. Buatlah fungsi fibonacci dengan 2 cara rekursif yang lain Algoritma membuat fungsi fibonacci 2 cara rekursif {membuat fungsi fibonacci 2 cara rekursif yang diinputkan nilainya sebelum ke piranti keluaran} Deklarasi n,c,first=0,second=1,next : integer x : integer Deskripsi read (n) for (c=0;c < n ; c++ )then if (c<=1) next = c else next <- first + second; first=second; second=next; for (x=0;x<n;x++) if (x<=1) next=x; else next <- first + second; first=second; second=next; write (next) write (interatif(x),rekursif (x)) endfor endif program C++ #include <iostream> using namespace std; int interatif (int x){ int c,n,first = 0, second = 1, next; cout <<"Masukan Nilai =";cin>>n;cout<<endl; for (c=0;c < n ; c++ ) { if (c<=1) next = c; else { next = first + second; first = second; second = next; } cout<<next<<endl; }

} int rekursif (int x){ int n,next,first=0,second=1; cout <<"\nMasukan Nilai =";cin>>n;cout<<endl; for (x=0;x<n;x++){ if (x<=1) next=x; else{ next = first + second; first=second; second=next; } cout<<next<<endl; } } int main(int argc, char** argv) { int x; cout<<"Interatif ="<<interatif(x);cout<<endl; cout<<"Recurtif ="<<rekursif (x);cout<<endl; return 0; } Hasil Run : 3. Algoritma perkalian dengan cara penjumlahan pada algoritma 5.3. belum sempurna karena belum mencakup semua kemungkinan, misalnya untuk harga b negatif. Buatlah

fungsi perkalian dengan cara penjumlahan dengan menyempurnakan algoritma 5.3. di atas. Algoritma menghitung perkalian dan penjumlahan {menyempurnakan program penjumlahan dan perkalian dari program kasus 5.3} Deklarasi a,b,i : integer jumlah <- 0 : integer Deskripsi read (a,b) if (a>0 && a<0 || b>0)then for(i=1;i<=b;i++) jumlah+=a else if(b<0 && a<0) jumlah-=b else for(i=1;i<=a;i++) jumlah+=b endfor endif write (a,b) program c++ #include <iostream> #include <math.h> using namespace std; class hitung{ private: int a,b,i,jumlah=0; public: hitung(){ cout<<"Menghitung Perkalian dengan Penjumlahan"<<endl; cout<<"Masukan Nilai pertama = ";cin>>a; cout<<"Masukan Nilai Kedua = ";cin>>b; } void output(); }; void hitung::output(){ if (a>0 && a<0 || b>0){ for(i=1;i<=b;i++) jumlah+=a; cout<<a<<"x"<<b<<"="<<jumlah; }else if(b<0 && a<0){ for(i=0;i>a;i--) jumlah-=b; cout<<a<<"x"<<b<<"="<<jumlah; }else{ for(i=1;i<=a;i++) jumlah+=b; cout<<a<<"x"<<b<<"="<<jumlah; } } int main(int argc, char** argv) { hitung x;

x.output(); return 0; } Hasil Run :

4.

Algoritma : algoritma rekrusif

(diberikan masukan a,b,I,jumlah)

Deklarasi :

I,n,jumlah,x:integer

Deskripsi:

Read (n)

jumlah←0

for i←1 to n do

read(x)

jumlah←jumlah+x

endifor ata←jumlah/n

write(rata)

5. #include <iostream>

using namespace std;

class perulangan{

public :

perulangan() {int i=0;}

void balik_while(int);

void balik_iteratif(int);

void balik_rekursif(int);

private :

int a,b,c,d;

};

void balik(char*s)

{

if(*s !='\0'){

balik(&s[1]);

cout<<s[0];

}

}

main(){

char*balik="balik bilagan";

int a,b,c,d;

cout<<"masukan iteratif maupun rekursif "<<endl;

cin>>a>>b;

cout<<b<<a;

cout<<"hasil";

return 0;

}

6. #include <iostream>

using namespace std;

int main()

{

int max,n,i,min;

float A[100];

cout <<"Masukkan Jumlah Data : ";cin>>n;

for(i=0;i<n;i++){

cout << "masukkan bilangan ke"<< i+1 << ":";

cin >> A[i];}

max = A[0];

for (i=1;i<n;i++){

if (max < A [i])

max = A[i];

}

cout <<"Nilai Terbesar adalah : "<<max<<endl;

return 0;

}

7. Algoritma 5.5 menggunakan fungsi untuk menghitung n faktorial secara rekursif. Buatlah algoritma menghitung n faktorial dengan menggunakan prosedur !

Algoritma mencari jumlah deret

Deklarasi

n, jumlah, x : integer

rata : real

Deskripsi

jumlah  0

i  1

repeat

jumlah  jumlah + (1/i)

i  i+1

selisih  (1/i)-(1/(i-1))

until abs(selisih) < 0.001

write(jumlah, i)

A. Kode Sumber

#include <iostream>

#include <stdio.h>

#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system(“pause”) or input loop */

using namespace std;

int main(void) {

int n;

int faktorial (int k);

printf("Masukkan sembarang bilangan positif : ");

scanf("%d",&n);

printf("\nMelalui perhitungan rekursif, %d! = %d\n", n, faktorial(n));

system("pause");

return 0;

}

int faktorial (int k){

if (k==0)

return 1;

else

return k*faktorial(k-1);

}

B. Tangkapan Layar Hasil

Algoritma Nomor 7

Dimisalkan menginputkan angka 4 sebagai bilangan positif, maka perhitungan menjadi 4*3*2*1.

int n; merupakan inisialisasi variabel n dengan tipe data integer sebagai proses perhitungan.

int faktorial(int k); merupakan inisialisasi variabel dengan nama faktorial yang dimana digunakan

untuk melakukan perhitungan variabel yang akan dijadikan variabel dalam melakukan perhitungan secara rekursif.

printf(“Masukkan sembarang bilangan positif”); adalah perintah awal untuk menginputkan bilangan positif yang akan diproses.

printf(\nMelalui perhitungan rekursif, %d!= %d\n”,n,faktorial(m)); adalah perintah untuk mengeksekusi

fungsi angka faktorialdimana angka akan terus berulang selama nilai variabel k belum bernilai 0, namun

jika sudah benar (0) maka akan mengembalikan nilai k*faktorial(k-1);

8. [Pengamatan : membayar barang belanja di kasir] Amatilah kejadian di mana seorang pembeli (yang membeli barang cukup banyak) pada sebuah took swalayan. Perhatikan apa yang dilakukan pembeli dan apa yang dilakukan oleh kasir ketika mengambil barang belanjaan untuk menghitung berapa harga keseluruhan yang harus dibayar pembeli.

Konsep counter : a. b. c

. Konsep total : a. b. c.

Langkah yang dilakukan saat belanja :

a. mulai : kondisi awal sebelum belanja

b. proses :kegiatan apa saja yang dilakukan saat belanja

c. akhir : berapa uang yang diserahkan ke kasir, berapa jumlah barang yang dibeli beserta jumlah uang yang harus dibayar dan uang kembalian (jika ada).

A. Kode Sumber

#include <iostream>

/* run this program using the console pauser or add your own getch, system(“pause”) or input loop */

using namespace std;

int main(int argc, char** argv) {

char nm_brg [50], lnjt, Y;

int diskon,Total_Belanja,bayar,kd_brg,jml_brg,hrg_brg,jml_uang,kembali;

do{

system("cls");

cout << "Program kasir sederhana" << endl;

cout << "=======================" << endl;

cout << "Masukkan kode barang : "; cin >> kd_brg;

cout << "Masukkan nama barang : "; cin >> nm_brg;

cout << "Masukkan harga barang : "; cin >> hrg_brg;

cout << "Masukkan jumlah barang : "; cin >> jml_brg;

cout << "=========================" << endl;

Total_Belanja = hrg_brg * jml_brg;

cout << "Total : Rp." << Total_Belanja << endl;

cout << "=========================" << endl;

if(Total_Belanja<=5000){

diskon=Total_Belanja*0;

}

else if(Total_Belanja>=100000){

diskon=Total_Belanja*10/100;

}

cout << "Diskon : Rp." << diskon << endl;

bayar=Total_Belanja-diskon;

cout << "Total bayar : Rp." << bayar << endl;

cout << "========================" << endl;

cout << "Masukkan jumlah uang : Rp."; cin >> jml_uang;

cout << "========================(-)" << endl;

kembali=jml_uang-bayar;

cout << "Kembali : Rp." << kembali << endl << endl;

cout << "Brang yang sudah dibeli tidak dapat ditukar atau dikembalikan" << endl;

cout << "Terimakasih atas kunjungan anda" << endl << endl;

cout << "Ulangi lagi [Y/T] : "; cin >> lnjt;

cout << endl << endl;

}while(lnjt == 'Y');

system("pause");

}

B. Tangkapan Layar Hasil

Menggunakan tipe data integer, menginputkan kode barang, nama barang, harga barang,

jumlah barang, kemudian akan muncul total harga belanjanya, jika harga belanjanya

kurang dari sama dengan 5000 maka diskonnya 0, jika lebih dari sama dengan 100000

maka mendapatkan diskon,total yang harus dibayarkan adalah total belanja dikurangi diskon, jika

total yang harus dibayarkan 4.119.300 dan uang yang dibayar kekasir 10.500.000 maka kembaliannya adalah 6.380.700.

9. [Proyek] Buatlah suatu class yang akan mengeksplorasi kalimat. Kalimat dapat disimpan

dalam bentuk array (kumpulan) karakter.

a. masukan user diterima huruf demi huruf sampai diakhiri tanda akhir baris

(sentinel)

b. buat method untuk menghitung statistik :

i. huruf hidup (vokal)

ii. huruf mati (konsonan)

iii. banyak kata

iv. huruf terbanyak dalam kalimat.

c. buat method untuk mengubah huruf awal setiap kata menjadi huruf besar

A. Kode Sumber

#include<iostream>

#include<conio.h>

#include<string.h>

using namespace std;

class septiankonsvok{

private:

int i;

int vokal;

int konsonan;

int x;

char kalimat[20];

public:

septiankonsvok();

void input();

void proses();

void output();

};

septiankonsvok::septiankonsvok(){

cout << "\t\tPEROGRAM MENGHITUNG HURUF KONSONAN DAN VOKAL\n";

cout << "\t\t——————————————–\n";

cout << endl;

cout << endl << endl;

}

void septiankonsvok::input(){

cout << "::.silahkan masukkan kalimat.::\n";

cin.getline(kalimat,20);

}

void septiankonsvok::proses(){

i=0,vokal=0,konsonan=0;

x=strlen(kalimat);

for(i=0;i<x;i++)

{

if(kalimat[i] == 'a'||kalimat[i] == 'u'||kalimat[i] == 'e'||kalimat[i] == 'o')

vokal++;

konsonan++;

}

}

void septiankonsvok ::output(){

cout << "Jumlah huruf vokal\t:" << vokal << "huruf" << endl;

cout << "Jumlah huruf konsonan\t" << konsonan << "huruf" << endl;

}

int main()

{

septiankonsvok skv;

skv.input();

skv.proses();

skv.output();

return 0;

}

B. Tangkapan Layar Hasil


TUGAS BAB 4


Kelompok 08

Kelas C

Anggota:

1. 2000018166 - Muhammad Izza

2. 2000018167 - Alja Priambodo Pinem

3. 2000018177 – Laila Sekar Gupita


1. Membuat flowchart untuk mencari angka terbesar dari yang dimasukan.kemudian ditranslasikan kedalam program c++,

2. Sempurnakan algoritma 3.3. dengan akar imajiner berbentuk :

a + bi

dengan a dan b bilangan real dan bila harga 2 40 b ac .

Perhatikan bahwa nilai a dan b dihitung terpisah.

3. Mengkonversikan nilai angka menjadi nilai huruf,buatlah program 4.4 dengan cara case….of

4. Buatlah algoritma, flowchart dan program untuk mengecek apakah pemakai

memasukkan bilangan bulat atau bilangan real.

Lebih dulu, carilah perbedaan dari 1.0 dan 1 kemudian 1 dan 1.23.


#include<iostream>

#include<string.h>

using namespace std;

string raptor_prompt_variable_zzyz;

class bil{

private:

float A;

int B;

public:

bil(){

raptor_prompt_variable_zzyz ="Masukan Bilangan : ";

cout << raptor_prompt_variable_zzyz << endl;

cin >>A;

B=A;

}

void output();

};

void bil::output(){

if (A==B)

{

cout << "Bilangan Bulat" << endl; }

else

{

cout << "Bilangan Real" << endl; }

}

int main()

{

bil x;

x.output();

return 0;

}

5. Buatlah algoritma, flowchart dan program untuk menentukan banyaknya hari

dalam suatu bulan dan tahun yang diberikan. Pertimbangkan pula adanya tahun

kabisat di mana bulan Februari mempunyai jumlah 29 hari. Gunakan case .. of

dan if .. then .. else .. yang tepat untuk setiap kasus.

#include<iostream>

using namespace std;

int year, month, day;

void input();

void erorYear();

void erorMonth();

void again();

int main(){

cout<<"Program Menghitung Hari dalam satu bulan"<<endl;

input();

}

void input(){

cout<<"Masukkan angka tahun: "<<endl;

cin>>year;

cout<<"Masukkan angka bulan: "<<endl;

cin>>month;

if (year <= 0)

erorYear();

switch (month){

cout<<"Bulan Januari tahun "<<year<<" ada 31 hari."<<endl;

break;

case 2:

if (year % 4 == 0)

cout<<"Bulan Februari tahun "<<year<<" ada 29 hari."<<endl;

else

cout<<"Bulan Februari tahun "<<year<<" ada 28 hari."<<endl;

break;

case 3:

cout<<"Bulan Maret tahun "<<year<<" ada 31 hari."<<endl;

break;

case 4:

cout<<"Bulan April tahun "<<year<<" ada 30 hari."<<endl;

break;

case 5:

cout<<"Bulan Mei tahun "<<year<<" ada 31 hari."<<endl;

break;

case 6:

cout<<"Bulan Juni tahun "<<year<<" ada 30 hari."<<endl;

break;

case 7:

cout<<"Bulan Juli tahun "<<year<<" ada 31 hari."<<endl;

break;

case 8:

cout<<"Bulan Agustus tahun "<<year<<" ada 31 hari."<<endl;

break;

case 9:

cout<<"Bulan September tahun "<<year<<" ada 30 hari."<<endl;

break;

case 10:

cout<<"Bulan Oktober tahun "<<year<<" ada 31 hari."<<endl;

break;

case 11:

cout<<"Bulan November tahun "<<year<<" ada 30 hari."<<endl;

break;

case 12:

cout<<"Bulan Desember tahun "<<year<<" ada 31 hari."<<endl;

break;

default :

erorMonth();

break;

}

again();

}

void erorYear(){

cout<<"Masukkan data tahun tidak valid."<<endl;

again();

main();

}

void erorMonth(){

cout<<"Masukkan data bulan tidak valid."<<endl;

again();

main();

}

void again(){

char answer;

cout<<endl<<" Tekan Y untuk mencobalagi."<<endl<<"Mau mencoba lagi?"<<endl;

cin>>answer;

if (answer == 'Y' || answer == 'y'){

main();

}

else{

return;

}

}

6. Buatlah algoritma, flowchart dan program untuk mengecek apakah karakter yang

dimasukkan itu merupakan huruf besar, huruf kecil atau digit (bilangan).

Gunakan fungsi ORD(char) untuk menyatakan nomor urut dalam tabel ASCII.

7. Seorang dosen ingin mengkonversikan nilai angka hasil ujian mahasiswa menjadi nilai huruf dengan ketentuan : Nilai antara Nilai Huruf 0-60 = F, 61-70 = D, 71-80 = C, 81-90 = B, 91-100 = A.

Problem :

mengkonversikan nilai angka menjadi nilai huruf dengan syarat nilai :

F=0-60

D=61-70

C=71-80

B=81-90

A=91-100

8. Diberikan ketentuan pecahan uang di Indonesia. User memasukkan sebuah

bilangan, program harus dapat memecahnya menjadi pecahan sesuai dengan

mata uang di Indonesia.

Misalkan dimasukkan nilai uang 127.675 rupiah. Cobalah memecah secara

manual nilai uang di atas.


9. Seorang pegawai bekerja selama 5 hari kerja, yaitu Senin sampai Jum’at. Setiap

hari dia masuk jam 08.00 dan pulang jam 16.00. Kecuali Jum’at dia pulang jam

11.00. Apabila dia bekerja lebih dari 30 jam per bulan maka setiap 5 jam akan

memperoleh uang lembur sebesar Rp 30.000,- bila kurang dari 5 jam maka akan

dihitung Rp 4.000,-/jam. Buat program dengan masukan bulan yang diinginkan,

dan outputnya berupa besarnya uang lembur pegawai tersebut.


Workshop Pemrograman : Operator Overloading


Kelompok 08

Kelas C

Anggota:

1. 2000018166 - Muhammad Izza

2. 2000018167 - Alja Priambodo Pinem

3. 2000018177 – Laila Sekar Gupita


1. Buatlah program yang meminta user memasukkan jam, menit dan detik kemudian

menampilkannya dengan format jam:menit:detik. Deklarasikan jam dan menit berupa

integer, sedangkan menit berupa floating point. Buat masukan dan keluaran

menggunakan operator overloading << dan >> sesuai yang dikehendaki.

A. Kode Sumber

#include <iostream>

using namespace std;

class waktu{

friend istream& operator >> (istream&, waktu&);

friend ostream& operator << (ostream&, waktu&);

private:

int pukul, menit; float detik;

};

istream& operator >> (istream&in, waktu&a){

cout << "Masukkan Pukul: ";

in >> a.pukul;

cout << "Masukkan Menit: ";

in >> a.menit;

cout << "Masukkan Detik: ";

in >> a.detik;

return in;

}

ostream& operator << (ostream&out, waktu&b){

out << "\nPukul " << b.pukul << ":" << b.menit <<

":" << b.detik;

return out;

}

main(){

waktu w;

cin >> w;

cout << w;

return 0;

}

B. Hasil

2. Buatlah program yang meminta user memasukkan bagian penyebut dan pembilang dari

sebuah bilangan rasional berbentuk p/q. Setiap memasukkan bilangan rasional outputnya

berbentuk p/q. Misalnya, masukan 1 dan 2 maka tampilan outputnya ½.

A. Kode Sumber

#include <iostream>

using namespace std;

class bilrasio{

friend istream& operator >> (istream&, bilrasio&);

friend ostream& operator << (ostream&, bilrasio&);

private:

int penyebut, pembilang;

};

istream& operator >> (istream& in, bilrasio& a){

cout << "Masukkan Pembilang: ";

in >> a.pembilang;

cout << "Masukkan Penyebut: ";

in >> a.penyebut;

return in;

}

ostream& operator << (ostream& out, bilrasio& b){

out << "\nBilangan rasionalnya adalah " << b.pembilang << "/" << b.penyebut << ".";

return out;

}

main(){

bilrasio br;

cin >> br;

cout << br;

return 0;

}

B. Hasil

3. Buatlah program yang meminta user memasukkan bagian ribuan, ratusan, puluhan dan

satuan. Misalnya : 1000, 200, 30, 4. Tampilan yang dikehendaki adalah 1234.

A. Kode Sumber

#include <iostream>

using namespace std;

class bilangan{

friend istream& operator >> (istream&, bilangan&);

friend ostream& operator << (ostream&, bilangan&);

private:

int a, b, c, d, hasila, hasilb, hasilc, hasild;

public:

int hitung_ribu(){

hasila = a / 1000;

}

int hitung_ratus(){

hasilb = b / 100;

}

int hitung_puluh(){

hasilc = c / 10;

}

int hitung_satu(){

hasild = d / 1;

}

};

istream& operator >> (istream& masukan, bilangan& satu)

{

cout << "Masukkan bilangan ribuan: ";

masukan >> satu.a;

cout << "Masukkan bilangan ratusan: ";

masukan >> satu.b;

cout << "Masukkan bilangan puluhan: ";

masukan >> satu.c;

cout << "Masukkan bilangan satuan: ";

masukan >> satu.d;

return masukan;

}

ostream& operator << (ostream& keluaran, bilangan& dua)

{

keluaran << "\nHasilnya adalah: " << dua.hasila << dua.hasilb << dua.hasilc << dua.hasild << endl;

return keluaran;

}

int main()

{

bilangan bil;

cin >> bil;

bil.hitung_ribu();

bil.hitung_ratus();

bil.hitung_puluh();

bil.hitung_satu();

cout << bil;

}

B. Hasil

4. Buatlah program untuk merepresentasikan operasi-operasi aritmatika : penjumlahan,

pengurangan, perkalian dan pembagian. User diminta memasukkan 2 buah bilangan bulat,

kemudian menampilkan sajian lengkapnya dari semua operasi. Sebagai contoh, user

memasukkan 1 dan 2 maka tampilan outputnya :

1 + 2 = 2

1 – 2 = -1

1 * 2 = 2

1 : 2 = ½

A. Kode Sumber

#include <iostream>

using namespace std;

class bilangan{

friend ostream& operator << (ostream&, const bilangan&);

friend istream& operator >> (istream&, bilangan&);

public:

friend istream& operator >> (istream& in, bilangan& bulat){

cout << "Masukkan bilangan bulat pertama: ";

in >> bulat.a;

cout << "Masukkan bilangan bulat kedua: ";

in >> bulat.b;

bulat.c = bulat.a + bulat.b;

bulat.d = bulat.a - bulat.b;

bulat.f = bulat.a * bulat.b;

return in;

}

friend ostream& operator << (ostream& out, bilangan& bulat){

out << bulat.a << " + " << bulat.b << " = " << bulat.c << endl;

out << bulat.a << " - " << bulat.b << " = " << bulat.d << endl;

out << bulat.a << " * " << bulat.b << " = " << bulat.f << endl;

out << bulat.a << " / " << bulat.b << " = " << bulat.a << "/" << bulat.b << endl;

return out;

}

private:

int a, b, c, d, f, g;

}x;

int main(){

cin >> x;

cout << x;

}

B. Hasil

5. Buatlah program untuk merepresentasikan bilangan bulat menjadi bilangan scientific

number berbentuk 1.23E1 untuk menyatakan bilangan 12.3. Masukan bilangan bulat 4

digit, keluaran berbentuk aEb, dengan a adalah bilangan antara 0 dan 10, sedangkan b

dari 0 sampai 4.

A. Kode Sumber

#include <iostream>

#include <string>

using namespace std;

int main()

{

string raptor_prompt_variable_zzyz;

float a, b, x;

cout << "Program konversi bilangan raasional menjadi bilangan scientific" << endl<<endl;

raptor_prompt_variable_zzyz = "masukkan bilangan = ";

cout << raptor_prompt_variable_zzyz;

cin >> x;

if (x>999){

b =3;

a =x/1000;

}

else if (x>99){

b =2;

a =x/100;

}

else if (x>9){

b =1;

a =x/10;

}

else{

b =0;

a =x;

}

cout << "\nscientific Number = " << a << "e" <<b << endl;

return 0;

}

B. Hasil

Workshop algoritma dan class

1. Buatlah analisis dan algoritma untuk mencari titik tengah sebuah garis yang ujung

titiknya adalah A(x1,y1) dan B(x2,y2).

A. Kode Sumber

#include <iostream>

#include <string>

using namespace std;

class tt{

friend istream& operator >> (istream&, tt&);

friend ostream& operator << (ostream&, const tt&);

private:

float y1, y2, x1, x2, xt, yt;

public:

void operasi();

};

ostream& operator << (ostream& out, const tt& tgh){

out << "(" << tgh.xt << " , " << tgh.yt << ")" <<

endl;

return out;

}

istream& operator >> (istream& in, tt& tgh){

cout << "Masukkan nilai x1: ";

in >> tgh.x1;

cout << "Masukkan nilai y1: ";

in >> tgh.y1;

cout << "Masukkan nilai x2: ";

in >> tgh.x2;

cout << "Masukkan nilai y2: ";

in >> tgh.y2;

return in;

}

void tt::operasi(){

xt = (x2 + x1)/2;

yt = (x2 + x1)/2;

}

int main(){

tt t;

cin >> t;

t.operasi();

cout << t;

return 0;

}

B. Hasil

2. Buatlah algoritma untuk mencari isi bola bila diketahui jari-jari bola.

A. Kode Sumber

#include <iostream>

using namespace std;

int main(int argc, char** argv){

int jari;

long int luas,volume;

double phi=3.14;

cout<<"Mengitung luas dan volume bola"<<endl;

cout<<endl;

cout<<"masukan jari jari:";

cin>>jari;

volume=(4*phi*jari*jari*jari)/3;

luas=4*phi*jari*jari;

cout<<endl;

cout<<"Volume bola adalah:"<<volume;

cout<<endl;

cout<<"Luas bola adalah:"<<luas;

return 0;

}

B. Hasil

3. Buatlah analisis dan algoritma untuk mencari hipotenusa dari segitiga Pythagoras bila

diketahui sisi siku-sikunya. (Petunjuk : gunakan fungsi sqrt yang menyatakan akar

dari).

A. Kode Sumber

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

int a, b;

float c;

bool kondisi=true;

while(kondisi){

cout<<" ==============================="<<endl;

cout<<" MENGHITUNG PANJANG SISI MIRING "<<endl;

cout<<" ==============================="<<endl;

cout<<" Masukan Sisi Depan = "; cin>>a;

cout<<" Masukan Sisi Alas = "; cin>>b;

c=sqrt(pow(a,2) + pow(b,2));

cout<<"\n Panjang Hipotenusa = "<<c<<" cm"<<endl;

//==============================================================//

char ulang;

cout<<"\n Apakah Anda akan menghitung ulang? (y/n) "; cin>>ulang;

if(ulang=='y' || ulang=='Y'){

system("cls");

}else{

kondisi=false;

cout<<"\n PROGRAM SELESAI!"<<endl;

}

}

//==============================================================//

return 0;

}

B. Hasil

4. Buatlah analisis dan algoritma untuk menghitung konversi detik menjadi format

jam:menit:detik

Buat contoh kasus, misalnya konversikan 1230 detik menjadi … jam … menit … detik.

A. Kode Sumber

#include <stdio.h>

#include <conio.h>

main(){

int sec,jam,menit,detik ;

printf("Masukan jumlah detik yang mau dihitung : "); scanf("%d",&sec);

jam=sec / (60*60);

sec= sec-((60*60)*jam);

menit=sec / 60;

sec= sec - (60*menit);

printf("\n===============================================");

printf("\nmaka waktunya adalah : ");

printf("\n Jam : %d \n Menit : %d \n Detik : %d ",jam,menit,sec);

getch();

}

B. Hasil

5. Buatlah analisis dan algoritma untuk menghitung konversi dari jam:menit:detik ke detik

Buat contoh kasus, misalnya konversikan 2 jam 13 menit 43 detik menjadi … detik.

A. Kode Sumber

#include <iostream>

using namespace std;

int main (){

int jam =3600;

int menit =60;

int konversi, hour, minute, second;

char pilihan, pilihan2;

x:

system ("CLS");

cout<<" ========================================"<<endl;

cout<<" | Konversi Waktu ke Detik |"<<endl;

cout<<" ========================================"<<endl;

cout<<" | Masukan Data Waktu : | "<<endl;

cout<<" ========================================"<<endl;

cout<<" | Masukan Jam : ";cin>>hour;

cout<<" | Masukan Menit : ";cin>>minute;

cout<<" | Masukan Detik : ";cin>>second;

cout<<" | |"<<endl;

cout<<" ========================================"<<endl;

cout<<endl;

cout<<" ========================================"<<endl;

cout<<" | Apakah data di atas sudah benar ? |"<<endl;

cout<<" | |"<<endl;

cout<<" | [Y] Yes [N] No |"<<endl;

cout<<" | |"<<endl;

cout<<" | Masukan Pilihan [Y/N] : ";cin>>pilihan;

cout<<" | |"<<endl;

cout<<" ========================================"<<endl;

y:

if (pilihan == 'n' || pilihan == 'N'){

cout<<endl;

cout<<" ========================================"<<endl;

cout<<" | Masukan data kembali ? : |"<<endl;

cout<<" ========================================"<<endl;

cout<<" | |"<<endl;

cout<<" | [Y] Yes [X] Exit |"<<endl;

cout<<" | |"<<endl;

cout<<" | Masukan Pilihan [Y/N] : ";cin>>pilihan2;

cout<<" | |"<<endl;

cout<<" ========================================"<<endl;

if (pilihan2 == 'y' || pilihan2 == 'y'){

goto x;

}

else if (pilihan2 == 'x' || pilihan2 == 'X'){

cout<<"Tekan Enter"<<endl;

system("EXIT");

}

else {

cout<<endl;

cout<<" ========================================"<<endl;

cout<<" | Maaf Menu yang anda minta tidak ada |"<<endl;

cout<<" | Mohon masukan kembali |"<<endl;

cout<<" ========================================"<<endl;

goto y;

}

}

else if (pilihan == 'y' || pilihan == 'Y' ){

konversi=hour*jam+minute*menit+second;

cout<<endl;

cout<<" ========================================"<<endl;

cout<<" | hasil dari Konversi Waktu |"<<endl;

cout<<" ========================================"<<endl;

cout<<" | |"<<endl;

cout<<" | "<<hour<<" jam "<<minute<<" menit "<<second<<" detik |"<<endl;

cout<<" | kedetik adalah : "<<konversi<<" |"<<endl;

cout<<" ========================================"<<endl;

}

else {

cout<<endl;

cout<<" ========================================"<<endl;

cout<<" | Maaf Menu yang anda minta tidak ada |"<<endl;

cout<<" | Mohon masukan kembali |"<<endl;

cout<<" ========================================"<<endl;

}

cout<<" ========================================"<<endl;

cout<<" | Learn more @ koding123.com |"<<endl;

cout<<" ========================================"<<endl;

}

B. Hasil

6. Buatlah analisis dan algoritma untuk menghitung selisih 2 waktu. Output ditampilkan

dalam bentuk jam:menit:detik. Asumsikan menggunakan sistem jam 24-an.

Buat contoh kasus, misalnya berapa selisih waktu antara jam 3.45 sore dengan jam 10.23

malam.

A. Kode Sumber

#include <iostream>

#include <conio.h>

using namespace std;

main()

{

int j1, m1, d1, j2, m2, d2, lama1, lama2, lama3;

cout<<"MASUKAN WAKTU AWAL: "<<endl;

cout<<"Jam = ";

cin>>j1;

cout<<"menit = ";

cin>>m1;

cout<<"detik = ";

cin>>d1;

cout<<"WAKTU AWAL Pada Pukul = "<<j1<<":"<<m1<<":"<<d1<<" WIB"<<endl;

cout<<endl;

cout<<"MASUKAN WAKTU AKHIR : "<<endl;

cout<<"Jam = ";

cin>>j2;

cout<<"menit = ";

cin>>m2;

cout<<"detik = ";

cin>>d2;

cout<<"WAKTU AKHIR pada Pukul = "<<j2<<":"<<m2<<":"<<d2<<" WIB"<<endl;

if ((d2-d1)<0)

{

lama1=(60+d2)-d1;

}

else

{

lama1=d2-d1;

}

if ((m2-m1)<0)

{

lama2=(60+m2)-m1;

}

else

{

lama2=m2-m1;

}

if ((j2-j1)<0)

{

lama3=(24+j2)-j1;

}

else

{

lama3=j2-j1;

}

cout<<"SELISIH : "<<endl;

cout<<"Jam = "<<lama3<<endl;

cout<<"Menit = "<<lama2<<endl;

cout<<"Detik = "<<lama1<<endl;

cout<<" SELISIHNYA = "<<lama3<<":"<<lama2<<":"<<lama1<<" WIB ";

getch ();

}

B. Hasil

7. Buatlah analisis dan algoritma untuk menghitung jumlah komponen sejumlah uang

menjadi pecahan-pecahannya. Misalkan Rp 188.875,- menjadi : 1 seratus ribuan, 1 lima

puluh ribuan, 1 dua puluh ribuan, 1 puluhan ribu, 1 lima ribuan, 3 ribuan, 1 lima ratusan,

1 dua ratusan, 1 ratusan, 1 lima puluhan, 1 dua puluh limaan

A. Kode Sumber

#include<iostream>

using namespace std;

int konversi(long &u, long p)

{

int pecahan;

pecahan = u / p;

u = u % p;

return(pecahan);

}

void output(long u)

{

cout<<"Uang Rp. 100000 : "<<konversi(u, 100000)<<" lembar\n";

cout<<"Uang Rp. 50000 : "<<konversi(u, 50000)<<" lembar\n";

cout<<"Uang Rp. 20000 : "<<konversi(u, 20000)<<" lembar\n";

cout<<"Uang Rp. 10000 : "<<konversi(u, 10000)<<" lembar\n";

cout<<"Uang Rp. 5000 : "<<konversi(u,

5000)<<" lembar\n";

cout<<"Uang Rp. 2000 : "<<konversi(u, 2000)<<" lembar\n";

cout<<"Uang Rp. 1000 : "<<konversi(u, 1000)<<" lembar\n";

cout<<"Uang Rp. 500 : "<<konversi(u, 500)<<" lembar\n";

cout<<"Uang Rp. 200 : "<<konversi(u, 200)<<" lembar\n";

cout<<"Uang Rp. 100 : "<<konversi(u, 100)<<" lembar\n";

cout<<"Uang Rp. 50 : "<<konversi(u, 50)<<" lembar\n";

cout<<"Uang Rp. 25 : "<<konversi(u, 25)<<" lembar\n";

}

int main()

{

long uang;

cout<<"Masukkan Jumlah Uang : Rp. ";

cin>>uang;

output(uang);

return 0;

}

B. Hasil

8. Buatlah analisis dan algoritma untuk menghitung luas sebuah plat CD.

Bab 3 Sekuen halaman : 63

Diameter lingkaran luar = …. cm.

Diameter lingkaran dalam = …. cm.

Rumus luas plat CD :

A. Kode Sumber

#include <iostream>

#include <conio.h>

using namespace std;

int main()

{

float luas;

int r1, r2;

luas=22/7*r1*r1 - 22/7*r2*r2;

cout<<"Diameter Lingkaran Luar= ";

cin>>r1;

cout<<"Diameter Lingkaran dalam= ";

cin>>r2;

cout<<"Luas cover CD= "<<luas<<endl;

getch();

}

B. Hasil

9. Buatlah analisis dan algoritma untuk menghitung operasi bilangan rasional :

penjumlahan, pengurangan, perkalian, pembagian dan kebalikan.

Buat contoh kasus, misalnya dua bilangan rasional 2/3 dan 4/7.

A. Kode Sumber

#include <iostream>

#include <string>

using namespace std;

int main()

{

string raptor_prompt_variable_zzyz;

int b;

int c;

int a;

int penjumlahan;

int pembagian;

int d;

int perkalian;

int pengurangan;

int kebalikan;

raptor_prompt_variable_zzyz ="a : ";

cout << raptor_prompt_variable_zzyz << endl;

cin >> a;

raptor_prompt_variable_zzyz ="b : ";

cout << raptor_prompt_variable_zzyz << endl;

cin >> b;

raptor_prompt_variable_zzyz ="c :";

cout << raptor_prompt_variable_zzyz << endl;

cin >> c;

raptor_prompt_variable_zzyz ="d : ";

cout << raptor_prompt_variable_zzyz << endl;

cin >> d;

penjumlahan =(a*d+b*c)/(b*d);

pengurangan =(a*d-b*c)/(b*d);

perkalian =(a*b)/(c*d);

pembagian =(a*d)/(b*c);

cout << "Hasil Penjumlahan : "<<penjumlahan << endl; cout << "Hasil Pengurangan : "<<pengurangan << endl; cout << "Hasil Perkalian : "<<perkalian << endl;

cout << "Hasil Pembagian : "<<pembagian << endl; cout << "Hasil Kebalikan : "<<b<<"/"<<a<<"dan "<<d<<"/"<<c << endl;

return 0;

}

B. Hasil

10. Buatlah analisis dan algoritma untuk mengkonversi bilangan biner 4 digit menjadi

bilangan desimal. Operator overloading input mencegah user untuk memasukkan

bilangan selain 0 dan 1. Deklarasi variabel input dan output adalah bertipe integer.

Konversikan 1011 ke desimal :

A. Kode Sumber

#include <iostream>

#include <string>

using namespace std;

int main()

{

string raptor_prompt_variable_zzyz;

int error;

int a;

raptor_prompt_variable_zzyz ="masukkan 4 bil biner :";

cout << raptor_prompt_variable_zzyz << endl;

cin >> a;

if (a==1000)

{

cout << 8 << endl; }

else

{

if (a==1001)

{

cout << 9 << endl; }

else

{

if (a==1010)

{

cout << 10 << endl; }

else

{

if (a==1011)

{

cout << 11 << endl; }

else

{

if (a==1100)

{

cout << 12 << endl; }

else

{

if (a==1101)

{

cout << 13 << endl; }

else

{

if (a==1110)

{

cout << 14 << endl; }

else

{

if (a==1111)

{

cout << 15 << endl; }

else

{

cout << error << endl; }

}

}

}

}

}

}

}

return 0;

}

B. Hasil

11. Buatlah analisis dan algoritma untuk menjumlah dua bilangan scientific berbentuk aEb

dengan 0 < a < 10 dan 0 <= b <= 4.

Hitung 2.1E2 + 3.31E1 = secara manual lebih dulu.

A. Kode Sumber

#include <iostream>

#include <string>

using namespace std;

int main(){

double a, b, hasil;

cout <<"masukkan scientific 1 : "<< endl;

cin >> a;

cout <<"Masukkan scientific :"<< endl;

cin >> b;

if (0<a && a<10 && 0<=b && b<=4)

{

hasil =a+b;

cout << "Hasil Bilangan Scientific : "<<hasil << endl; }

else

{

cout << "ERROR" << endl; }

}

B. Hasil

12. Buatlah analisis dan algoritma untuk menghitung jumlah dari dari dua tanggal yang

dimasukkan user. Misalnya, berapa hari dari 6/1/90 sampai 8/3/92 ? Anggap satu tahun

365 hari dan anggap semua komponen tanggal pertama SELALU LEBIH KECIL dari

komponen tanggal kedua.

A. Kode Sumber

#include <iostream>

#include <string>

using namespace std;

int main()

{

string raptor_prompt_variable_zzyz;

int b;

int c;

int a;

int hasil;

int hasil2;

int z;

int hasil3;

int x;

int y;

cout << "Tanggal 1" << endl; raptor_prompt_variable_zzyz ="masukkan tahun";

cout << raptor_prompt_variable_zzyz << endl;

cin >> a;

raptor_prompt_variable_zzyz ="masukkan bulan";

cout << raptor_prompt_variable_zzyz << endl;

cin >> b;

raptor_prompt_variable_zzyz ="masukkan tanggal";

cout << raptor_prompt_variable_zzyz << endl;

cin >> c;

cout << "Tanggal 2" << endl; raptor_prompt_variable_zzyz ="masukkan tahun";

cout << raptor_prompt_variable_zzyz << endl;

cin >> x;

raptor_prompt_variable_zzyz ="masukkan bulan";

cout << raptor_prompt_variable_zzyz << endl;

cin >> y;

raptor_prompt_variable_zzyz ="masukkan tanggal";

cout << raptor_prompt_variable_zzyz << endl;

cin >> z;

if (z-c<0)

{

hasil =30+z-c;

}

else

{

hasil =z-c;

}

if (y-b<0)

{

hasil =12+y-b;

hasil2 =x-a-1;

}

else

{

hasil =y-b;

hasil2 =x-a;

}

hasil3 =hasil*360+hasil*30+hasil;

cout << "selisihnya dalam hari : "<<hasil3 << endl; cout << "tahun"<<hasil2<<"bulan"<<hasil<<"tanggal"<<hasil << endl;

return 0;

}

B. Hasil


 

Sumber gambar: Algoritma-Pemrograman.png (800×500) (wahyublahe.id)

ALGORITMA PEMROGRAMAN


PROGRAM KOMPUTER

    Program komputer adalah rangkaian kata perintah yang telah dimengerti

oleh komputer untuk dikerjakannya. Kata-kata perintah tersebut membentuk

suatu bahasa yang disebut dengan bahasa pemrograman. Sebagaimana

bahasa pada manusia, bahasa pemrograman juga terdiri atas banyak macam

bahasa, dan memiliki aturannya masing-masing.

    Sulitnya, komputer saat ini belum diberi hak inisiatif, sehingga jika ada sedikit

saja kesalahan penulisan perintah oleh pemrogram, ia tidak mau memakluminya

atau berusaha memperbaiki sendiri kesalahan tersebut. Serta merta ia

“ngambek” dan tidak mau mengerjakan perintah-perintah lainnya. Komputer

diciptakan melalui logika manusia, karenanya, ia bekerja secara logis, tanpa

campur-tangan “perasaan.”


ALGORITMA PEMROGRAMAN

    Orang yang telah terbiasa “bergaul” dengan komputer menggunakan satu

bahasa pemrograman tertentu (tingkat mahir), biasanya tidak lagi memerlukan

kertas coret-coretan untuk membuat suatu program komputer. Namun bagi

pemula, pembelajar, atau yang belum mahir, diperlukan kertas coret-coretan

tersebut.

    Kertas coret-coretan itu akan digunakan untuk menyusun algoritma

(langkah-langkah penyelesaian masalah), flowcharting (alur logika perintah,

yang merupakan aplikasi dari algoritma), maupun menuliskan perintah sesuai

dengan kaidah dari bahasa pemrograman yang akan digunakannya.

Sewaktu menyusun algoritma, kita tidak perlu tahu (atau tidak perlu

menyesuaikan dengan) bahasa pemrograman yang nanti akan kita gunakan.

Hal utama yang kita pikirkan adalah kaidah (hirarki) dari komputer itu sendiri,

yaitu input-proses-output.

Input adalah data yang harus ada (sudah ada/ sudah tersedia), yang dapat

diproses dengan aturan-aturan tertentu untuk menghasilkan output seperti yang

dikehendaki. Data yang ada harus logis (masuk akal) bahwa “ia” dapat

diproses untuk menghasilkan output.


Sumber: http://bwahyudi.staff.gunadarma.ac.id/Downloads/files/1342/ALGORITMA+PEMROGRAMAN.pdf