Jumat, 16 Juni 2017

Evaluasi Diri Minggu 8

Assalamualaikum Wr Wb.

Pada evaluasi diriminggu ke 8 ini kita membahas tentang Searching dan Sorting, yang dimana Searching itu digunakan untuk mencari suatu data dan Sorting itu digunakan untuk Mengurutkan data supaya terurut dengan rapi.
Pada pertemuan 8 ini kita membahas ke manualnya terlebih dahulu.

Sekian dan Terima Kasih.

Evaluasi Diri Minggu 7

Assalamualaikum Wr.Wb.

Pada evaluasi diri minggu ke 7 ini kita membahas tentang manipulasi string yang dimana string itu adalah tipe data untuk menampung banyaknya karakter sekaligus.
Pada evaluasi diri ke7 ini kita seperti biasa menggunakan algoritma, analisis, Raptor dan C++, jadi di dalam program C++ kita menggunakan string ini sesuai dengan keinginan kita.

Sekian dan Terima Kasih.

Evaluasi Diri Minggu 6

Assalamualaikum Wr.Wb.







Pada evaluasi diri minggu 6 dalam mata kuliah Algoritma Pemrograman ini membahas tentang Sub Program OOP dan Rekursi.
Namun  di dalam C++ kali ini berbeda karena sudah menggunakan source code OOP dan juga pemanggilannya sudah menggunakan ifstream dan ofstream.

 Sekian dan Terima Kasih.

Evaluasi Diri Minggu 5

Assalamualaikum Wr.Wb.

Pada evaluasi diri minggu 5 dalam mata kuliah Algoritma Pemrograman ini masih membahas tentang Analisis, Algoritma, Raptor dan C++.
Namun  di dalam C++ kali ini berbeda karena sudah menggunakan source code perulangan dan loop dan juga membuat suatu perulangan di dalam perperulangan.

Sekian dan Terima Kasih.

Tugas 8 Algoritma Pemrograman

Assalamualaikum Wr Wb.

Disini saya akan menjelaskan Tugas 8 Algoritma Pemrograma. Pada tugas ini akan membahas Searching dan Sorting.
Langsung saja...

Kasus 8.1
function pencarianLinier(input aray : larik; kunci, ukuran : integer) : integer
Deklarasi
       ketemu : boolean
       i, n : integer
Deskripsi
      ketemu <-- false;
      n <-- 1
     while ((n < ukuran) and (not ketemu)) do
         if (aray[n] = kunci) then
             ketemu <-- true { data ketemu }
             i <-- n { pada posisi ke-i }
         endif
         else n <-- n+1 { cek data berikutnya }
     endwhile
     if ketemu then pencarianLinier <-- i { data ketemu pada posisi ke-i }
     else pencarianLinier <-- -1 { data tidak ketemu }
     endif
  end



Ini Flowchartnya :  















Ini Source Code C++ nya :

#include <iostream>
#define UKURAN 100

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

using namespace std;

int pencarianLinier(int array[], int kunci, int ukuran){
   int i;
  
   for (i=0; i<=ukuran-1; ++i)
   if (array[i] == kunci)
   return i;
   return -1;
}

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

    int a[UKURAN], x, kunciPencarian, elemen;
   
    for (x=0; x<=UKURAN-1; x++) a[x] = 2*x;
    cout<<"Bilangan yang mau dicari : ";
    cin>>kunciPencarian;
    elemen = pencarianLinier(a,kunciPencarian,UKURAN);
    if (elemen != -1)
    cout<<kunciPencarian<<" Ditemukan pada posisi elemen ke " << elemen;
    else
    cout<<kunciPencarian<<" Tidak ada.";
   
    return 0;
} 



Kasus 8.3
Procedure Bubble_Sort (input/output x : larik, input n : byte)
Deklarasi
       larik = array [1..100] of integer
       i, a : byte
       k : larik
       j, bantu : integer
Deskripsi
       for i <-- 1 to n-1 do
          for j <-- i+1 to n do
             if x[i] > x[j] then
                tukar(x[i], x[j])
             endif
          endfor
      endfor



Ini Flowchart nya : 


































Ini Source Code C++ nya : 


#include <iostream>
#include <cstdlib>

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

using namespace std;

void baca_data(int A[], int n) {
     int i;
     for (i = 0; i < n; i++){
         cout<<"Data ke-" <<i+1<< " : ";
         cin>>A[i];
     }
}
void cetak_data(const int A[], int n) {
     int i;
     for (i = 0; i < n; i++)
     cout<<A[i]<< " ";
     cout<<"\n";
}
void tukar (int *a, int *b){
     int temp;
     temp = *a;
     *a = *b;
     *b = temp;
}
void buble_sort (int x[], int n){
     int i, j;
     for (i = 0; i<n-1; i++)
     for (j = i+1; j<n; j++)
     if (x[i] > x[j]) tukar(&x[i], &x[j]);
}

int main(int argc, char** argv) {
    int data[10], n;
    cout<<"Banyak data : ";
    cin>>n;
    baca_data(data,n);
    cetak_data(data,n);
    buble_sort(data,n);
    cetak_data(data,n);

 return 0;
}




Sekian dan Terima Kasih.

Tugas 6 Algoritma Pemrograman

Assalamualaikum Wr Wb.

Disini saya akan membahas tentang Workshop 6 Algoritma Pemrograman
Langsung saja...

Kasus 6.1
Hitung rata-rata dari n bilangan bulat dengan menggunakan array!
Algoritma :

Deklarasi : Integer i,jumlah;
Deskripsi : jumlah=0;
        for i=1 to n do;
        jumlah = jumlah +x[i]
        end for;
        rata = jumlah/n


Ini Flowchart nya :




















Ini Source Code C++ nya : 

#include <iostream>
#include <cstdlib>

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

using namespace std;

class HitungRATA {
friend ostream& operator<<(ostream&, HitungRATA&);
friend istream& operator>>(istream&, HitungRATA&);
public:
float rata();
private:
int n;
int A[20];
};

istream& operator>>(istream& in, HitungRATA& a) {
cout << "Banyaknya data : ";
in >> a.n;
for (int i = 0; i < a.n; i++) {
cout << "Masukkan data ke- : " << i+1 << " > ";
cin >> a.A[i];
}
return in;
}

float HitungRATA::rata() {
float total=0;
for (int i = 0; i<n; i++) total = total + A[i];
return(total/n);
}

ostream& operator<<(ostream& out, HitungRATA& a) {
cout << "Rata-rata dari " << a.n;
cout << " bilangan adalah : "<< a.rata();
return out;
}

main() {
HitungRATA run;
cin >> run;
cout << run;
return 0;
}



Kasus 6.3
Algoritma untuk menentukan nilai maksimum dari n bilangan.
Algoritma :
Deklarasi : integer i,temp;
deskripsi : temp=data[1];
        for i=2 to n do;
        temp=maksimum2(temp,data[i]);
        maksimum=temp;


Ini Flowchartnya : 




















Ini Source Code C++ nya : 

#include <iostream>
#include <math.h>

using namespace std;

class HitungStatistik {
friend ostream& operator<<(ostream&, HitungStatistik&);
friend istream& operator>>(istream&, HitungStatistik&);
public:
int maksimum();
private:
int maksimum2(int, int);
int n;
int A[20];
};

istream& operator>>(istream& in, HitungStatistik& a)
{
cout << "Banyaknya data : ";
cin >> a.n;
for (int i = 0; i < a.n; i++)
{
cout << "Data ke- : " << i+1 << " > ";
cin >> a.A[i];
}
return in;
}

int HitungStatistik::maksimum2(int a, int b)
{ if (a>b) return(a);
else return(b);
}

int HitungStatistik::maksimum()
{ int temp = A[0];
for (int i = 1; i<n; i++)
temp = maksimum2(temp, A[i]);
return(temp);
}

ostream& operator<<(ostream& out, HitungStatistik& a) {
cout << "Nilai terbesar: " << a.maksimum();
return out;
}

main() {
HitungStatistik run;
cin >> run;
cout << run;
return 0;
}



Kasus 6.5
Modus dari n buah data berupa bilangan bulat (data antara 1 sampai dengan 10).
 Analisis :

Modus adalah bilangan (data) yang paling sering muncul. Dengan kata lain, frekuensi data terbesarlah yang dicari.
Langkah penyelesaian masalahnya adalah :
- setiap jenis data dihitung frekuensi kemunculannya
- dari frekuensi-frekuensi tersebut dicari frekuensi terbesarnya.

Algoritma :
Deklarasi : integer i;
Deskripsi : maks=data[1]
        item=1;
        for i=2 to n do;
        if(data[i]>maks)then
        maks=data[i];
        item=i;
        endif
    endfor;


Ini Flowchart nya :





















Ini Source Code C++ nya : 

#include <iostream>
#include <math.h>

using namespace std;

class HitungStatistik {
friend ostream& operator<<(ostream&, HitungStatistik&);
friend istream& operator>>(istream&, HitungStatistik&);
public:
HitungStatistik();
void hitung_modus();
private:
void maksimum();
void frekuensi();
int maks, item;
int n;
int A[20];
int f[11];
};

HitungStatistik::HitungStatistik()
{ for (int i=0; i<20; i++) f[i] = 0; }

istream& operator>>(istream& in, HitungStatistik& a) {
cout << "Banyaknya data : ";
cin >> a.n;
for (int i = 0; i < a.n; i++) {
cout << "Data ke- : " << i+1 << " > ";
cin >> a.A[i];
}
return in;
}

void HitungStatistik::maksimum()
{
maks = f[0];
item = 1;
for (int i=0; i<n; i++)
if (f[i] > maks) {
maks = f[i];
item = i;
}
cout << "Modus = " << item;
}

void HitungStatistik::frekuensi()
{
for (int i=1; i<n; i++) ++f[A[i]];
}

void HitungStatistik::hitung_modus() {
cout << "Frekuensi running\n";
frekuensi();
maksimum();
}

ostream& operator<<(ostream& out, HitungStatistik& a) {
cout << "Mulai ...\n";
a.hitung_modus();
cout << "Nilai modus : " << a.item;
return out;
}

main() {
HitungStatistik run;
cin >> run;
cout << run;
return 0;
}




Sekian dan Terima Kasih.

Tugas 5 Algoritma Pemrograman

Assalamualaikum Wr Wb.

Langsung saja kita akan membahas Workshop 5 Algoritma Pemrograman.


1.  cetaklah bilangan 1 sampai dengan 4 menggunakan downto.

Ini Flowchartnya : 















Ini Program C++ nya :













Outputnya :












3.  Buatlah algoritma dan program untuk mencetak bilangan yang habis dibagi 3 dan 5
antara 1 sampai dengan 100.


Ini Program C++ nya :










Outputnya :









4.  Hitunglah nilai dari :
     1-1/2+1/3-1/4+...+1/n
 
Ini Program C++ nya : 
 

 
Outputnya : 



6.  Buatlah algoritma dan program untuk mengkonversi bilangan desimal menjadi bilangan
biner. Petunjuk : Gunakan operator mod dan div
 
Ini Program C++ nya : 
 
 
Outputnya : 



Sekian dan Terima Kasih.

Tugas 4 Algoritma Pemrograman

Assalamualaikum Wr Wb.

Disini saya akan membahas tentang Workshop 4 Algoritma Pemrograman.
Langsung saja...
 

1. Buatlah flowchart dan translasi program dari algoritma 3.2.b. di atas.

Ini Flowchart nya : 















Ini Program C++ nya :



















Outputnya :









2. Sempurnakan algoritma 4.3. dengan akar imajiner


Ini Program C++ nya :






























Outputnya :









3. Buatlah program dari algoritma 3.4. menggunakan case … of .

Ini Flowchartnya : 











Ini Program C++ nya :





















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.
 
Ini Program C++ nya :
 
 




















Ini Outputnya :
 



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
 
Ini Flowchartnya : 
 
 
Ini Program C++ nya :


Outputnya : 



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.
 
Ini Program C++ nya :
 

 
Sekian dan Terima Kasih.