This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Jumat, 06 Mei 2016

Diktat Bab 8

Kasus 7.1

C++

#include <iostream>
#define UKURAN 100
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;
}
void main(){
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.";
}





Kasus 7.2

C++

#include <iostream>
#define UKURAN 15
void cetakHeader(void)
{ int i;
cout<<"\nSubscript : \n";
for (i=0;i<=UKURAN-1;i++) cout << i << " ";
cout << "\n";
for (i=1; i <= 4*UKURAN; i++) cout << "-";
cout << "\n";
}
void cetakBaris(int b[], int low, int mid, int high)
{ int i;
for (i=0; i<=UKURAN-1; i++)
if (i<low || i>high) cout << " ";
else if (i==mid) cout << "*" << b[i];
else cout << b[i] << " ";
cout << "\n";
}
int pencarianBiner(int b[], int kunciPencarian, int low, int high)
{ int i, middle;
while (low <= high) {
middle = (low+high) / 2;
cetakBaris(b, low, middle, high);
if (kunciPencarian == b[middle])
return middle;
else if (kunciPencarian < b[middle])
high = middle - 1;
else low = middle + 1;
}
return -1;
}
main() {
int a[UKURAN], i, kunci, hasil;
for (i=0; i<=UKURAN-1; i++) a[i] = 2*i;
cout << "Masukkan bilangan antara 0-28 : ";
cin >> kunci;
cetakHeader();
hasil=pencarianBiner(a,kunci,0,UKURAN-1);
if (hasil != -1) cout << kunci
<< " ditemukan pada posisi : "<< hasil;
else
cout << kunci << " tidak ditemukan";
return 0;


 

Kasus 7.3

C++

#include <iostream>
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]);
}
void main() {
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);
}




Kasus 7.4

C++

#include <iostream>
#include <conio.h>
using namespace std;
class Sorting {
friend istream& operator>>(istream& in, Sorting& a);
friend ostream& operator<<(ostream& out, Sorting& a);
public:
void baca_data();
void cetak_data();
void buble_sort();
void insertion_sort();
void selection_sort();
private:
void minimum(int , int, int&);
void tukar (int&, int&);
int data[10], n;
};
istream& operator>>(istream& in, Sorting& a) {
cout << "Banyak data : ";
in >> a.n;
for (int i = 0; i < a.n; i++) {
cout << "Data ke-" << i+1 << " : ";
in >> a.data[i];
}
return in;
}
ostream& operator<<(ostream& out, Sorting& a) {
for (int i = 0; i < a.n; i++)
out << a.data[i] << " ";
out << "\n";
return out;
}




Kasus 7.5

C++

#include <iostream>
using namespace std;
void baca_data(int A[], int n)
{ int i;
for (i = 0; i < n; i++)
{ cout << "Data ke-%d : ";i++);
cin >> A[i]);
}
}
void cetak_data(const int A[], int n)
{ int i;
for (i = 0; i < n; i++)
cout << "%d ",A[i]);
cout << "\n");
}
void tukar (int *a, int *b)
{ int temp;
temp = *a;
*a = *b;
*b = temp;
}
void minimum(int A[], int dari, int n, int * tempat)
{ int i, min;
min = A[dari];
*tempat = dari;
for (i = dari+1; i<n; i++)
if (A[i] < min)
{ min = A[i];
*tempat = i;
}
}
void selection_sort(int A[], int n)
{ int i, t;
for (i = 0; i<n; i++)
{ minimum(A, i, n, &t);
tukar(&A[i], &A[t]);
}
}
main() {
int data[10], n;
cout << "Banyak data : ");
cin >> n);
baca_data(data,n);
cetak_data(data,n);
selection_sort(data,n);
cetak_data(data,n);
return 0;
}


 

 


Kasus 7.6

C++

#include <iostream>
using namespace std;
typedef int larik[10];
void masuk_data(int A[], int n)
{ int i;
for (i = 0; i < n; i++)
{ cout << "Data ke-%d : ",i+1;
cin >> A[i];
}
}
void cetak_data(const int A[], int n) {
int i;
for (i = 0; i < n; i++)
cout << "%d ",A[i];
cout << "\n";
}
void merge(larik a, int kiri, int tengah, int kanan)
{ int bagianKiri, posTemp, banyakElemen, i;
larik temp;
bagianKiri = tengah - 1;
posTemp = kiri;
banyakElemen = kanan - kiri + 1;
while ((kiri <= bagianKiri) &&
(tengah <= kanan))
if ((a[kiri] <= a[tengah]))
{ temp[posTemp] = a[kiri];
posTemp = posTemp + 1;
kiri = kiri + 1;
} else
{ temp[posTemp] = a[tengah];
posTemp = posTemp + 1;
tengah = tengah + 1;
}
/* kopi bagian kiri */
while ((kiri <= bagianKiri)) {
temp[posTemp] = a[kiri];
posTemp = posTemp + 1;
kiri = kiri + 1;
}
/* kopi bagian kanan */
while ((tengah <= kanan)) {
temp[posTemp] = a[tengah];
posTemp = posTemp + 1;
tengah = tengah + 1;
}
/* kopi kembali ke array asal */
for (i = 1; i <= banyakElemen; i++)
{ a[kanan] = temp[kanan];
kanan = kanan - 1;
}
}
void merge_sort(larik A, int kiri, int kanan)
{ int tengah;
if ((kiri < kanan))
{ tengah = (kiri + kanan) / 2;
merge_sort(A, kiri, tengah);
merge_sort(A, tengah + 1, kanan);
merge(A, kiri, tengah + 1, kanan);
}
}
main() {
int n;
larik data;
cout << "Berapa data array : ";
cin >> n;
masuk_data(data, n);
cetak_data(data, n);
merge_sort(data, 0, n-1);
cetak_data(data, n);
return 0;
}







Kasus 7.7

C++

#include <iostream>
using namespace std;
void masuk_data(int A[], int n) {
int i;
for (i = 0; i < n; i++) {
cout << "Data ke-%d : ",i+1;
cin >> A[i];
}
}
void cetak_data(const int A[], int n) {
int i;
for (i = 0; i < n; i++)
cout << "%d ",A[i];
cout << "\n";
}
void tukar (int *a, int *b)
{ int temp;
temp = *a;
*a = *b;
*b = temp;
}
void quick_sort(int data[], int L, int R) {
int i, j, p;
p = data[(L+R) / 2];
i = L;
j = R;
while (i<=j) {
while (data[i] < p) i++;
while (data[j] > p) j--;
if (i<=j)
{ tukar(&data[i], &data[j]);
i++;
j--;
}
}
if (L < j) quick_sort(data,L,j);
if (i < R) quick_sort(data,i,R);
}
void main() {
int data[10], n;
cout << "Banyak data : ");
cin >> n);
masuk_data(data,n);
cetak_data(data,n);
quick_sort(data,0,n-1);
cetak_data(data,n);
}







Latihan 1

C++
#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) {
  int banyakData, cariData, posisi=0;
    bool ketemu = false;
    cout << "Banyak data : ";
    cin >> banyakData;
    int data[banyakData];
    for(int ulang=0; ulang<banyakData; ulang++)
    {
        cout <<"Berikan Data ke["<<ulang<<"] : ";
        cin >> data[ulang];
    }
    cout <<"Data yang akan di cari posisinya: ";
    cin >> cariData;
    for(int ulang=0; ulang<banyakData; ulang++)
    {
        if(cariData == data[ulang])
        {
            posisi = ulang;
            ketemu = true;
            break;
        }
    }
    if(ketemu)
    {
        cout<<"Data "<<cariData<<" ditemukan di posisi : "<<posisi<<endl;
        cout<<"Terimakasih"<<endl;
    }
    else
    {
        cout<<"Data yang anda berikan"<<endl;
        cout<<"Tidak tertera pada data Array"<<endl;
    }
 return 0;
}




Latihan 2 A

C++

#include <iostream>
#include <stdio.h>
#include <conio.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
 {
   int A[10],i,j,k,tkr,top,bottom,middle,tm;

   for(i=0; i<10; i++)
   {
    printf("Data ke-%d : ", i+1);
      scanf("%d", &A[i]);
   }
   printf("Masukkan data yang akan dicari : ");
   scanf("%d",&k);

   for(i=0; i<10; i++)
   {
     for(j=i+1; j<10; j++)
      {
        if(A[i]>A[j])
         {
           tkr=A[i];
            A[i]=A[j];
            A[j]=tkr;
         }
      }
   }

   tm=0;
   top=9;
   bottom=0;
   while(top>=bottom)
   {
     middle=(top+bottom)/2;
      if(A[middle]==k)
      {
        tm++;
      }
      if(A[middle]<k)
      {
        bottom=middle+1;
      }
      else
      {
        top=middle-1;
      }
   }

   if(tm>0)
   {
     printf("Data %d yang dicari ada dalam array\n",k);
   }
   else
   {
     printf("Data tidak diketemukan dalam array\n");
   }
}
 return 0;
}






Latihan 2 B

C++

#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) {
 int A[15],i,j,k,tkr,top,bottom,middle,tm;

   for(i=0; i<15; i++)
   {
    printf("Data ke-%d : ", i+1);
      scanf("%d", &A[i]);
   }
   printf("Masukkan data yang akan dicari : ");
   scanf("%d",&k);

   for(i=0; i<15; i++)
   {
     for(j=i+1; j<15; j++)
      {
        if(A[i]>A[j])
         {
           tkr=A[i];
            A[i]=A[j];
            A[j]=tkr;
         }
      }
   }

   tm=0;
   top=9;
   bottom=0;
   while(top>=bottom)
   {
     middle=(top+bottom)/2;
      if(A[middle]==k)
      {
        tm++;
      }
      if(A[middle]<k)
      {
        bottom=middle+1;
      }
      else
      {
        top=middle-1;
      }
   }

   if(tm>0)
   {
     printf("Data %d yang dicari ada dalam array\n",k);
   }
   else if(tm=71)
   {
     printf("Data tidak diketemukan dalam array\n");
   } else
   {
     printf("Data tidak diketemukan dalam array\n");
   }

 return 0;
}






Latihan 3

C++

#include <iostream>
#include <conio.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

 int main()
{   int a,k,c,d,g;
    k=5;
    int b[5];

    cout<<"Bubble sort adalah salah satu metode sorting atau mengurutkan dari data terkecil ke data terbesar "<<endl<<endl;
    for(a=0;a<k;a++)
    {
        cout<<"Masukkan nilai "<<a+1<<" : ";
  cin>>b[a];
    }
    for(a=0;a<k-1;a++)
    {

        for(d=a+1;d<k;d++)
        {
        c=a;
            if(b[c]<b[d])
            {
                c=d;
            }
        g=b[c];
        b[c]=b[a];
        b[a]=g;
        }

    }
    cout<<"\n setelah diurutkan akan menjadi : \n";
    for(a=0;a<k;a++)
    {
        cout<<b[a]<<" \n";
    }

   return 0;
}


 

Latihan 4

C++

#include <iostream>
#include <conio.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

 int main()
{
  int data [50];
     int a,b;
     int max,min;

// masukan untuk batas
printf("Banyak Bilangan: ");scanf ("%d",&a);

//pengulangan untuk memasukkan data ke dalam array
for (b=1;b<=a;b++)
{
    printf("\nbilangan ke-%d: ",b);scanf("%d",&data [b]);
}
//mencari nilai terbesar dan terkecil di array dengan looping
          max=data[1];
          min=data[1];
      for (b=1;b<=a;b++)
      {
          if (data[b]>=max)
          {
          max=data[b];
          }
          else if (data[b]<=min)
          {
          min=data[b];
          }
      }
printf("\n\nnilai tertinggi\t:%d", max);
printf("\n\nnilai terkecil\t:%d", min);
getch();

    return 0;
}


 



Latihan 5

C++

#include <iostream>
#include <iomanip>
#include <conio.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
template <class T>
void s_sort(T a[],int n)
 {
    int i,j,t;
    for(i=0;i<n;i++){
    for(j=i+1;j<n;j++){
    if(a[j]<a[i])
 {
    t=a[i];
    a[i]=a[j];
    a[j]=t;
    }
    }
    }
}
int main()
{
    int a[100],i,n;
    cout<<"Masukan jumlah elemen : ";
    cin>>n;
    cout<<"Masukan elemen - elemen tersebut :";
    for(i=0;i<n;i++)
    {
 cout<<"\n Enter : ";
    cin>>a[i];
    }
    s_sort(a,n);
    cout<<"Setelah di sorting :";
    for(i=0;i<n;i++)
    {
    cout<<a[i]<<" , ";
    }
    
    return 0;
}




Latihan 6

C++





Latihan 7

C++


Latihan 8

C++



Latihan 9

C++


Latihan 10

C++




REFLEKSI KE DELAPAN

Assalamu"alaikum wr.wb

Pada hari ini, tanggal 3 mei 2016 merupakan hari baru setelah kami menyelesaikan UTS. Pada minggu ke-8 Alpro membahas soal-soal UTS, membahas kasus-kasus pada materi minggu ke lapan, dan disuruh mengerjakannya. 


Wassalamu"alaikum wr.wb

Problem solving 414

Kasus 1





Kasus 2





Kasus 3









Problem solving 584


Kasus :


Penyeselaian

Algoritma


Procedur Bilangan Kompleks

Deklarasi :

real, imajiner, real1, imajiner1, pilihan, hasil :: integer

real, imajiner, real1, imajiner1, pilihan :: read/input

pilihan;

if = 1

cout<<”Hasil penjumlahan”;

hasil = real+real1 “+“ Imajiner + Imajiner1;

hasil;

if = 2

cout<<”Hasil Pengurangan”;

hasil = real-real1 “-“ Imajiner – imajiner1;

hasil;

if =3

cout<<”Hasil perkalian”;

hasil = real*real1 “*” imajiner * imajiner1;

hasil;

end if;

end;



C++



#include <iostream>

#include <string>


using namespace std;

int main()

{

float hasilJumb,hasilJuma,hasilKura,b,c,Penjumlahan,a,hasilKurb,Pengurangan,d;

cout << "Bagian Pertama Real dan Imajiner Dari Bilangan Kompleks" << endl;

cout<<"Masukan Bilangan Real Pertama : ";

cin >> a;

cout<<"Masukan Bilangan Imajiner Pertama : ";

cin >> b;

if (b==0)

{

b =a;

}

else

{

cout << a<<"+"<<b<<"i" << endl; }

hasilJuma =a+b;

hasilKura =a-b;

cout << "Bagian Kedua Real dan Imajiner Dari Bilangan Kompleks" << endl;

cout<<"Masukan Bilangan Real Kedua : ";

cin >> c;

cout<<"Masukan Bilangan Imajiner Kedua :";

cin >> d;

if (d==0)

{

d =c;

}

else

{

cout << c<<"+"<<d<<"i" << endl; }

hasilKurb =c-d;

hasilJumb =c+d;

Penjumlahan =hasilJuma+hasilJumb;

Pengurangan =hasilKura-hasilKurb;

cout << "Hasil Penjumlahan : ("<<a<<"+"<<b<<"i)+("<<c<<"+"<<d<<"i)="<<Penjumlahan<<"i" << endl;

cout << "Hasil Pengurangan : ("<<a<<"-"<<b<<"i)-("<<c<<"-"<<d<<"i)="<<Pengurangan<<"i" << endl;

return 0;

}




Flowchart







How to solve #3

Kasus 3.1

Flowchart




Kasus 3.2

C++

#include <iostream>
#include <string>

using namespace std;
int main()
{
   int kpk;
   int a;
   int b;

   cout<<"masukan nilai A=";
   cin >> a;
   cout<<"masukan nilai B=";
   cin >> b;
   kpk =0;
   while (1)
   {
      kpk =a+kpk;
      if (kpk % b==0)break;
   }
   cout << "kpknya adalah= "<<kpk << endl;
   return 0;
}



Flowchart




Kasus 3.3


C++

#include <iostream>
#include <string>

using namespace std;
int main()
{
   int a, b, i, j, hasil;

   cout<<"Masukkan bilangan A : ";
   cin >> a;
   cout<<"Masukkan bilangan B : ";
   cin >> b;
   i =1;
   j =1;
   while (!(i>a && j>b))
   {
      if ((a % i)==0 && (b % j)==0)
      {
         hasil =i;
      }
      else
      {
      }
      i =i+1;
      j =j+1;
   }
   cout << "FPB dari bilangan "<<a<<" dan "<<b<<" adalah "<<hasil << endl;
   return 0;
}




Flowchart





 


Kasus 3.4


Flowchart




Kasus 3.5

C++

#include <iostream>
#include <string>

using namespace std;
int main(){
   int a;
   cout<<"Masukkan bil = ";
   cin >> a;
   cout << "Faktor Prima dari "<<a<<" =" << endl;   while (!(a<=2))
   {
      if (a % 2==0)
      {a =a/2;cout << 2 << endl;}
      else
      {if (a % 3==0){
            a =a/3;
            cout << 3 << endl;}
         else
         {if (a % 5==0){
               a =a/5;
               cout << 5 << endl; }
            else
            { if (a % 7==0){
    a =a/7;
                 cout << 7 << endl;}
               else
               {if (a % 11==0)
                  {
                     a =a/11;
                     cout << 11 << endl;}
                  else
                  {if (a % 13==0)
                     {
                        a =a/13;
                        cout << 13 << endl;}
                     else
                     {
                        a =a/17;
                        cout << 17 << endl;}
  }} } }}}

   return 0;
}






Flowchart





 

How to solve #2

Kasus 2.1

C++

#include <iostream>
#include <conio.h>
#include <string.h>
/* 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){
string a,b,c;

 cout<<"==========================================="<<endl;
 cout<<"     PROGRAM MENUKAR ISI GELAS A KE B"<<endl;
    cout<<"==========================================="<<endl;
 cout<<"Beri isi Gelas A : ";
 cin>>a;
 cout<<"Beri isi Gelas B : ";
  cin>>b;
  cout<<endl;
 
 cout<<"Isi awal dari Gelas A yaitu  : "<<a<<endl;
 cout<<"Isi awal dari Gelas B yaitu  : "<<b<<endl;

 c=a; a=b; b=c;
 cout<<"---------------------------------------"<<endl;
 cout<<"Isi akhir dari Gelas A yaitu : "<<a<<endl;
 cout<<"Isi akhir dari Gelas B yaitu : "<<b<<endl;

 return 0;
}





Kasus 2.2

Flowchart


 

 

Kasus 2.3


Flowchart


 




Kasus 2.4

Flowchart





Kasus 2.5

Flowchart


 


 




Kasus 2.6


Flowchart
 





Kasus 2.7

C++

#include <iostream>
#include <conio.h>
using namespace std;

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

int main(int argc, char** argv) {
 int awal, kebalikan=0, n;

 cout <<"================================================"<<endl;
 cout<<"            PROGRAM MEMBALIKKAN ANGKA "<<endl;
 cout<<"               By: Edi siswanto"<<endl;
 cout<<"================================================"<<endl;

 cout<<"Masukkan angka : "; cin>>awal;
 n=awal;

 do{
  kebalikan=(kebalikan*10)+(n%10);
  n=n/10;
 }while(n>0);

 cout<<endl;
 cout<<"Kebalikan dari angka "<<awal<<" adalah "<<kebalikan<<endl;

 getch();
}



Flowchart


Kasus 2.8


Flowchart


Kasus 2.9

C++

#include<iostream>
using namespace std;

int main() {

 long desimal, pembagi=1073741824, bit;
 char karakter;

//long=int. fungsi long adalah jika bilangan bulat yang di kelompokan itu jumlahnya sangat banyak, dan tipe data melebihi kapasitas tipe data dari integer.
    
 cout<<"==========================================="<<endl;
 cout<<" PROGRAM KARAKTER ASCII KE KONVERSI ANGKA"<<endl;
    cout<<"      By: Edi siswanto"<<endl;
    cout<<"==========================================="<<endl;

 cout<<"Masukkan Karakter : ";
  cin>>karakter;cout<<endl;

 cout<<"Karakter yang dimasukkan = "<<karakter<<endl;
 cout<<"Nilai Desimal            = "<<(int)karakter<<endl;

 desimal=(int)karakter;

 cout<<"Kode Biner [bit code]    = ";
        while(pembagi>desimal) pembagi/=2;
        do{
                bit=desimal/pembagi;
                cout<<bit;
                desimal=desimal%pembagi;
                pembagi/=2;
        }
        while(pembagi>=1);
        
 cout<<endl<<endl<<"Keterangan : "<<endl
 <<"Untuk 8-bit code, tambahkan angka 0 didepan "<<endl
 <<"hingga total sampai 8-bit";

return 0;
}



Flowchart