DIKTAT

Minggu, 17 April 2016

diktat bab 7



WORSKHOP

1.     Menyisipkan kata

   Dev c++ :
#include <iostream>
#include <string.h>
#include <cstdlib>
/* 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;int c;
          cout<<"kalimat pertama : ";
          getline(cin, a);
          cout<<"kalimat kedua : ";
          cin>>b;
          cout<<a<<endl;
          cout<<"Menyisipkan kata pada karakter ke : ";cin>>c;
          a.insert(c, b+" ");
          cout<<a;
          return 0;
}


2.     String bergantian huruf besar dan kecil

    Dev c++ :
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
int main()
{
int i,jum;

char string[100];

cout<<"Masukan sembarang kalimat:\n";
cin.getline(string,100); //membaca spasi

//mengubah huruf awal menjadi huruf kapital
if((string[0]>='a')&& (string[0]<='z'))
string[0]=(char)string[0]-32;


//mengubah huruf setelah huruf awal menjadi huruf kecil
jum=1;int d=0;
for(i=0;i<(int)strlen(string);i++)
{
          if(i%2==0){
         
if((string[jum]>='A')&& (string[jum]<='Z'))
string[jum]=(char)string[jum]+32;
jum++;}
}

//mengubah huruf setelah spasi menjadi huruf kapital
for(i=1;string[i]!='\0';i++)
{
          if(string[i]==' ') d++;
if((i-1-d)%2==0)
{
if(string[i+1]>='a' && string[i+1]<='z')
string[i+1]=(char)(string[i+1]-32);
}
}


cout<<"Hasil Akhir : "<<string<<endl;
getch();
}


3. Menghitung Kata Dalam Sebuah Kalimat
    Dev c++ :
#include<stdio.h>
#include<iostream>
#include<ctype.h>
using namespace std;
int main()
{
      char kalimat[100];
      int i, spasi=0;

      cout << "\n\t\t - Program Menghitung Kata Dalam Sebuah Kalimat -\n";
      cout << "\t==================================================================\n\n";
      cout << "\t Masukan Sebuah Kalimat : ";
      cin.getline(kalimat, sizeof(kalimat));

      for(i=0; kalimat[i]; i++)
      {
            if(isspace (kalimat[i]) || ispunct (kalimat[i]))
            {
                  spasi++;
            }
      }
      cout << "\t Jumlah Kata = " << spasi +1 << "\n\n";
      cout << "\t Kata yang anda masukan adalah : \n";
      cout << "\t ";

      for(i=0; kalimat[i]; i++)
      {
            if(isspace (kalimat[i]) || ispunct (kalimat[i]))
            {
                  spasi++;
                  cout << "\n";
                  cout << "\t";
            }
            cout << kalimat[i];
      }

      cout << "\n";
     
      cout << "\t==================================================================\n\n";
      cout << "\n";
      getchar();
}

4. Vektor
    Dev c++ :
#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class Vektor {
friend ostream& operator<<(ostream&, Vektor&);
friend istream& operator>>(istream&, Vektor&);
friend class SPL;
public:
Vektor();
void penjumlahan_vektor(const Vektor& A, const Vektor& B);
void perkalian_vektor(float k, const Vektor& A);
void beri_nilaiBanyak(int);
private:
int elemen[100];
int banyak; };
int main(int argc, char** argv) {
         
          return 0;
}

LATIHAN

1.  Buatlah algoritma dan subprogram yang cara kerjanya seperti function pos di atas.
   

2.  Menghitung panjang karakter tanpa strlen
    Dev 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) {
          string a;
          cout<<"Masukkan Kalimat : ";getline(cin,a);
          cout<<a<<endl;
          cout<<"Panjang Karakter : "<<a.size();
          return 0;
}


3. Kapitalisasi huruf dengan inputan kalimat
    Dev c++  :
#include <iostream>
#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;
          cout<<"masukkan kalimat : ";
          getline(cin,a);
          int b = a.length();
          cout<<"dalam bentuk kapital : ";
          for(int c=0;c<=b;c++)
          {
                   a[c]=toupper(a[c]);
                   cout<<a[c];
          }
          cout<<endl;
          cout<<"dalam bentuk huruf kecil : ";
          for(int d=0;d<=b;d++)
          {
                   a[d]=tolower(a[d]);
                   cout<<a[d];
          }
          cout<<endl;
          return 0;
}


kasus pertemuan minggu ke 7



Kasus 6.6
Buatlah suatu algoritma untuk mengecek apakah suatu kata atau kalimat merupakan palindrom atau tidak.


Program Dev C++:

#include <iostream>
#include <string.h>
#include <conio.h>

using namespace std;

 class Palindrom {
 friend ostream& operator<<(ostream&, Palindrom&);
 friend istream& operator>>(istream&, Palindrom&);
 public:
 int cek_palindrom();
 private:
  char *s;
 };
 ostream& operator<<(ostream& out, Palindrom& a) {
 if (a.cek_palindrom())
 cout << a.s << " adalah palindrom";
 else out << a.s << " bukan palindrom";
 return out;
 };
 istream& operator>>(istream& in, Palindrom& a) {
 cout << "Masukkan sebuah kalimat : ";
 cin >> a.s;
 return in;
};

int Palindrom::cek_palindrom()
{ int i, pj;
pj = strlen(s);
for (i=0; i<=pj/2 ;i++)
if (s[i] != s[pj-i-1]) return 0;
return 1;
}

main() {
Palindrom kata;
cin >> kata;
cout << kata;
getch();
 return 0;
}
Kasus 6.5
Tentukan modus dari n buah data berupa bilangan bulat (data antara 1 sampai dengan 10).


Program Dev C++:

#include <cstdlib>
#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<endl;
 return out;
}

main() {
 HitungStatistik run;
 cin >> run;
 cout << run<<endl;
 system("pause");
 return 0;
}
 Kasus 6.4
Buatlah algoritma untuk menentukan nilai maksimum dan minimum dari


Program Dev C++:

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

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

 class HitungStatistik {
 friend ostream& operator<<(ostream&, HitungStatistik&);
 friend istream& operator>>(istream&, HitungStatistik&);
 public:
 void maks_min();
 private:
 int m1, m2; // m1 untuk maksimum, m2 untuk min
 int n; // banyaknya data
int A[20]; // array untuk menyimpan data
};

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

void HitungStatistik::maks_min()
{ m1 = m2 = A[0];
for (int i=1; i<n; i++)
{
if (A[i] > m1) m1 = A[i];
if (A[i] < m2) m2 = A[i];
}
}

ostream& operator<<(ostream& out, HitungStatistik& a) {
a.maks_min();
out << "Nilai terbesar : " << a.m1 << endl;
out << "Nilai terkecil : " << a.m2;
return out;
}

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

Kasus 6.3

Buatlah algoritma untuk menentukan nilai maksimum dari n bilangan.


Program Dev C++:

#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; // banyaknya data
 int A[20]; // array untuk menyimpan data
 };

 istream& operator>>(istream& in, HitungStatistik& a)
 {
 cout << "Banyaknya data : ";
 in >> a.n;
 for (int i = 0; i < a.n; i++)
 {
 cout << "Data ke- : " << i+1 << " > ";
 in >> 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) {
 out << "Nilai terbesar: " << a.maksimum();
 return out;
 }

 main() {
 HitungStatistik run;
 cin >> run;
 cout << run;
 return 0;
 }
Kasus 6.2
Carilah nilai deviasi standar  dari n buah data.


Program Dev C++:

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

class HitungStatistik{
friend ostream& operator<<(ostream&, HitungStatistik&);
friend istream& operator>>(istream&, HitungStatistik&);

 float rata();
 float STD();

 long sqr(int n) { return(n*n);}
 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<<"Masukan data ke- :"<<i+1<<">";
   cin>>a.A[i];
 }
 return in;
 }
 float HitungStatistik::rata()
 {
 float total=0;
 for (int i = 0; i<n; i++) total = total + A[i];
 return(total/n);
 }

 float HitungStatistik::STD ()
 { float rerata = rata();
 float jumlah=0.0;
 for (int i = 0; i<n; i++)
 jumlah = jumlah + sqr(A[i] - rerata);
 return(sqrt (jumlah/(n-1)));
 }
 ostream& operator<<(ostream& out, HitungStatistik& a) {
 cout << "Rata-rata dari " << a.n
 << " bilangan adalah : " << a.rata() << endl;
 cout << "Standar deviasi= " << a.STD();
 return out;
 }

 main() {
 HitungStatistik run;
 cin >> run;
 cout << run<<endl;
 return 0;
 }
Kasus 6.1
Carilah rata-rata dari n bilangan bulat dengan menggunakan array

Program Dev C++:

#include <iostream>

/* 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<<">";
                 in>>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){
               out<<"Rata-rata dari "<<a.n<<" bilangan adalah : "<<a.rata()<<endl;
      return out;
      }
     

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