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.