Sabtu, 16 April 2016

HOW TO SOLVE 4.2

Bismillahirohmanirohim
Assalamualikum w.w,

4.2 How To Solve

Program mengunakan 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) { 
int banyak, i,x;
int nilai[20];
string nama;
cout<<"Masukan Banyak Mahasiswa :"; cin>>banyak;
for (int i=1;i<=banyak;i++){
cout<<"nama Mahasiswa :";cin>>nama;
cout<<"Masukan nilai  :";cin>>nilai[20];
if (nilai[20]>=80 || nilai[20]<=100){
cout<<"\n Nilai "<<nilai[20]<<"Adalah A";
}
else if (nilai[20]>=60 || nilai[20]<80){
cout<<"\n Nilai "<<nilai[20]<<"Adalah B";
}
else if (nilai[20]>=40 || nilai[20]<60){
cout<<"\n Nilai "<<nilai[20]<<"Adalah C";
}
else if (nilai[20]>=20 || nilai[20]<40){
cout<<"\n Nilai "<<nilai[20]<<"Adalah D";
}
else if (nilai[20]>=0 || nilai[20]<20){
cout<<"\n Nilai "<<nilai[20]<<"Adalah E";
}
cout<<"\n========================================================================\n";
}
return 0;

}
Gambar program nya:

Gambar output nya:


Alhamdulillah 
Selamat mencoba dan semoga bermanfaat :)
Waalaikumsalam w.w.

HOW TO SOLVE 4.1

Bismillahirohmanirohim
Assalamualikum w.w,

4.1 How To Solve

Program mengunakan Dev C++:

#include <iostream>
#include <stdlib.h>
using namespace std;
int main(void)
{
       int A[5] = {5, 10, 6, 0, 4};
       int B[5] = {0, 0, 0, 0, 0};
       int i;
       // Nilai array A integer
       cout<<"Nilai dari array A: ";
       for(i=0; i<5; i++){
              cout<<A[i];
       }
       //
       for(i=0; i<5; i++){
              B[4-i] = A[i];
       }
       // Output
       cout<<"\n";
       cout<<"Nilai dari array B hasil dari membalikkan nilai array A :\n";
       for(i=0; i<5; i++){
              cout<<B[i];
       }
       cout<<"\n";
     
       system("pause");
       return(0);
}
Gambar program nya:

Gambar  output nya:


Alhamdulillah 
Selamat mencoba dan semoga bermanfaat :)
Waalaikumsalam w.w.

BAB X POINTER, PENGENALAN STRUKTUR DATA

Bismillahirohmanirrohim
Assalamualaikum w.w,

Berikut ini penyelesaian Latihan BAB X Dengan materi POINTER, PENGENALAN STRUKTUR DATA. Berikut latigan-latihan yang ada di diktat :

LATIHAN
Modifikasilah struktur data dari algoritma 9.1. dan algoritma 9.2. sehingga sesuai dengan

tabel di bawah ini dengan menggunakan link list

Program menggunakan Dev C++:

#include <iostream>
#include <conio.h>
#include <windows.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class Mhs{
public:
void Buat_berikut_list();
char Nama[20];
char Nim[10];
int Nilai;
Mhs *berikut;
};
void Mhs::Buat_berikut_list(){
Mhs *Ptr_Kepala = NULL;
Mhs *Ptr_Baru;
char lagi;
do{
Ptr_Baru= new Mhs;
cout<<"\nNama Mahasiswa : ";
cin>>Ptr_Baru->Nama;
cout<<"Nim Mahasiswa : ";
cin>>Ptr_Baru->Nim;
cout<<"Nilai Mahasiswa : ";
cin>>Ptr_Baru->Nilai;
Ptr_Baru->berikut=Ptr_Kepala;
Ptr_Kepala=Ptr_Baru;
cout<<"Tambah (y/t) : ";
cin>>lagi;
} while (lagi=='Y' || lagi=='y');
system("cls");
cout<<"\nAnda telah memasukkan data : "<<endl;
Mhs *cetak= Ptr_Kepala;
cout<<"Nama \t\t Nim \t\t Nilai Angka \t\t Nilai Huruf"<<endl;
while (cetak !=NULL){
cout<<cetak->Nama<<" \t\t"<<cetak->Nim<<" \t\t"<<cetak->Nilai<<" \t\t";
if (cetak->Nilai>=0&&cetak->Nilai<20)
cout<<"E"<<endl;
else if(cetak->Nilai>=20&&cetak->Nilai<40)
cout<<"D"<<endl;
else if(cetak->Nilai>=40&&cetak->Nilai<60)
cout<<"C"<<endl;
else if(cetak->Nilai>=60&&cetak->Nilai<80)
cout<<"B"<<endl;
else
cout<<"A"<<endl;
cetak=cetak->berikut;
}
}
int main(int argc, char** argv) {
Mhs *simpul;
simpul->Buat_berikut_list();
getch();
}

Gambar program nya :

Gambar output nya:


Alhamdulillah
Selamat mencoba dan semoga bermanfaat :)
Wassalamualaikum w.w.

BAB IX ARRAY DUA DIMENSI, KASUS MATRIKS

Bismillahirohmanirrohim
Assalamualaikum w.w,

Berikut ini penyelesaian Latihan BAB IX Dengan materi ARRAY DUA DIMENSI, KASUS MATRIK. Berikut latigan-latihan yang ada di diktat :


1.  Buatlah algoritma dan program untuk mengalikan matriks dengan vektor. Vektor adalah
matriks berdimensi satu (bisa matriks baris maupun matriks kolom). Implementasikan
matriks dengan array berdimensi dua, dan vektor dengan menggunakan matriks

berdimensi satu.

Program menggunakan Dev C++:

#include <iostream>
#define maks 10
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 A[maks][maks], baris, kolom;
cout<<"input baris :"; cin>>baris;
cout<<"input kolom :"; cin>>kolom;
for(int i=0; i<baris; i++){
for(int j=0; j<kolom; j++){
cout<<"Masukan data ke ["<<i<<"] ["<<j<<"] : "; cin>>A[i][j];
}
}
cout<<"Isi Matriks A :\n";
for(int i=0; i<baris; i++){
for(int j=0; j<kolom; j++){
cout<<A[i][j]<<" ";
}
cout<<endl;
}
int m[baris],n;
cout<<"penghitungan vektor \n";
cout<<"berapa variabel : ";
cin>>m[kolom];
for(int z=0; z<kolom; z++){
cout<<"Masukan data ke ["<<z<<"] "" : "; cin>>m[z];
}
cout<<endl;

cout<<" vektor b : \n";
for(int z=0; z<kolom; z++){
cout<<m[z]<<"\n";
}
cout<<"perkalian matrik dan vektor \n";
for(int i=0; i<baris; i++){
for(int j=0; j<kolom; j++){
for(int z=0; z<kolom; z++){
n=A[i][j]*m[z];
cout<<n<<" ";
}
}
}
return 0;
}

Gambar program nya :

Gambar output nya:


2.  Diberikan suatu matriks berordo n. Buatlah algoritma dan program untuk mencetak
matriks identitas berodo n.

Gambar program nya dengan Flowchart:
Gambar output nya:

Program dengan menggunakan Dev C++:

#include"iostream"
using namespace std;
main(){ int i,j,n;
cout<<"masukkan ordo matriks : "; cin>>n;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(i==j) cout<<"1 ";
else cout<<"0 ";
}
cout<<endl;
}
}

Gambar ptogram nya:
Gambar output nya



3.  Buatlah algoritma dan program untuk menghasilkan transpose suatu matriks.

Program nya menggunakan flowchart:


Gambara output nya:

Program nya menggunakan Dev C++:
#include"iostream"
using namespace std;
main(){ int i,j,m,n,o;
cout<<"Program transpose matriks C(m,n)\nMasukkan nilai m : ";
cin>>m; cout<<"masukkan nilai n : "; cin>>n;
int mat[m][n];
for(i=0;i<m;i++){
for(j=0;j<n;j++){
cout<<"nilai C("<<i+1<<","<<j+1<<")=";
cin>>mat[i][j];
}
cout<<endl;
}
cout<<"matriks diatas diilustrasikan seperti gambaran dibawah ini\n\n";
for(i=0;i<m;i++){
for(j=0;j<n;j++){
cout<<mat[i][j]<<" ";
}
cout<<endl;
}
o=m; m=n; n=o;
cout<<"\nTranspose matriksnya adalah seperti gambar dibawah ini\n\n";
for(j=0;j<m;j++){
for(i=0;i<n;i++){
cout<<mat[i][j]<<" ";
}
cout<<endl;
}
}
Gambar program nya:
Gambar output nya:


4.  Buatlah algoritma dan program mengalikan matriks dengan suatu skalar (konstanta).

Program nya mengunakan Dev C++ :

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
void Masukan(int *q, int brs, int klm) {
    int i, j;
    for(i = 0; i < brs; i++) {
        for(j = 0; j < klm; j++) {
            cout << " Elemen [" << (i + 1) << "][" << (j + 1) << "]? ";
            scanf("%d", (q + i * klm + j));
        }
    }
}

void Tampilkan(int *q, int brs, int klm) {
    int i, j;
    for(i = 0; i < brs; i++) {
        cout << endl;
        for(j = 0; j < klm; j++) {
            cout <<" ";
            cout << *(q + i * klm + j) << "\t";
        }
    }
    cout << endl;
}

void Kali(int *p, int *q, int *z, int bA, int kA, int bB, int kB) {
    int i, j, k;
    for(i = 0; i < bA; i++) {
        for(j = 0; j < kB; j++) {
            *(z + i * bB + j) = 0;
            for(k = 0; k < kA; k++) {
                *(z + i * bB + j) += *(p + i * kA + k) * (*(q + k * kB + j));
            }
        }
    }
}

int main() {
cout<<"\t\t\tPROGRAM    : PERKALIAN MATRIKS DENGAN SKALAR\n";
awal:
    int *a, *b, *c, brsA, klmA, brsB, klmB;
    cout<<"\n SYARAT...!!!\n";
    cout<<" Jumlah Kolom A HARUS SAMA dengan Baris B\n\n";
    cout << " Jumlah Baris Matriks A? ";
    cin >> brsA;
    cout << " Jumlah Kolom Matriks A? ";
    cin >> klmA;
    cout << " Jumlah Baris Matriks B? ";
    cin >> brsB;
    cout << " Jumlah Kolom Matriks B? ";
    cin >> klmB;
    if(klmA != brsB) {
        cout << " Perkalian TIDAK Dapat Dilakukan." << endl;
        cout << " Jumlah Kolom A TIDAK Sama Dengan Jumlah Baris B." << endl;
    } else {
        a = (int *) malloc(brsA * klmA * 4);
        b = (int *) malloc(brsB * klmB * 4);
        c = (int *) malloc(brsA * klmB * 4);

        cout << "\n Kordinat Inputan [y][x]" ;
        cout << "\n Contoh: ordo 2x2" ;
        cout << "\n [1][1]\t[1][2]\t" ;
        cout << "\n [2][1]\t[2][2]\t" ;
        cout << "\n\n Input Matriks A:\n" ;
        cout << " ----------------\n";
        Masukan(a, brsA, klmA);
        cout << "\n Input Matriks B:\n" ;
        cout << " ----------------\n";
        Masukan(b, brsB, klmB);

        cout << "\n Matriks A:" << endl;
        Tampilkan(a, brsA, klmA);
        cout << "\n Matriks B:" << endl;
        Tampilkan(b, brsB, klmB);
        Kali(a, b, c, brsA, klmA, brsB, klmB);
        cout << "\n Matriks A x B:" << endl;
        Tampilkan(c, brsA, klmB);
    }
cout<<"\n\n Apakah Anda Ingin Mengulang [Y/N] ? "  ;
char m ;
cin>>m;
if (m == 'y' || m== 'Y')
goto awal;
else if (m == 'n' || m== 'N')
{
goto akhir;
}
akhir:
cout<<"\n\n\t\t\t    \"TERMA KASIH\"";
    return 0;
Gambar program nya:


Gambar output nya:


5.  Buatlah algoritma dan program invers matriks berordo dua. Lalu kalikan matriks asal
dengan matriks inversnya untuk mengecek apakah hasil kalinya merupakan matriks
identitas atau bukan.

Program nya menggunakan Flowchart :






Gambar output nya:


Program menggunakan Dev C++:

#include"iostream"
using namespace std;
main(){ int i,j; float det,temp;
float mat[2][2], c[2][2], ci[2][2], ch[2][2];
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<"nilai C("<<i+1<<","<<j+1<<")=";
cin>>mat[i][j];
c[i][j]=mat[i][j];
}
cout<<endl;
}
cout<<"matriks diatas diilustrasikan seperti gambaran dibawah ini\n\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<mat[i][j]<<" ";
}
cout<<endl;
}
mat[0][1]=-mat[0][1]; mat[1][0]=-mat[1][0];
temp=mat[0][0]; mat[0][0]=mat[1][1]; mat[1][1]=temp;
cout<<"\nadjoin dari matriks diatas adalah\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<mat[i][j]<<" ";
}
cout<<endl;
}
det=mat[0][0]*mat[1][1]-mat[1][0]*mat[0][1];
det=1/(float)det;
cout<<"\nSedangkan untuk inversnya adalah sebagai berikut\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
ci[i][j]=det*mat[i][j];
cout<<ci[i][j]<<" ";
}
cout<<endl;
}
for(i=0;i<2;i++){
for(j=0;j<2;j++){
for(int k=0;k<2;k++){
temp=c[i][k]*ci[k][j];
ch[i][j]=ch[i][j]+temp;
}
}
}
cout<<"\nhasil perkalian matriks asal dengan\nmatriks yang telah di invers adalah\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<ch[i][j]<<" ";
}
cout<<endl;
}
}
Gambar program nya:

Gambar output nya:


Alhamdulillah
Selamat mencoba dan semoga bermanfaat :)
Wassalamualaikum w.w.


Dubsmash Jamaah ooo jamaah Ceramah

KASUS 6.6 ARRAY

Bismillahirohmanirohim
Assalamualaikum w.w,


Berikut ini lanjutan kasus materi ARRAY 
KASUS 6.6
Buatlah suatu algoritma untuk mengecek apakah suatu kata atau kalimat merupakan
palindrom atau tidak. Palindrom adalah suatu kata atau kalimat yang dibaca dari kiri ke kanan
sama dengan kalu dibaca dari kanan ke kiri.

Algoritma 6.6.

function palindrom(input s : string) : boolean
Deklarasi
i, pj : integer
Deskripsi
palindrom Ã… true { diasumsikan benar, dibuktikan dengan penyangkalan }
pj <-length(s)
for i <- to (pj div 2) do
if (s[i] <> s[pj-i+1]) then palindrom  <-false

Program menggunakan 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 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())
out<<a.s<<"Adalah Palindrom";
else out<<a.s<<"Bukan Palindrom";
return out;
}
istream&operator>>(istream&in, Palindrom& a){
cout<<"Masukkan sebuah kalimat = ";
in>>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;
}
int main(int argc, char** argv) {
Palindrom kata;
cin>>kata;
cout<<kata;
return 0;
}
Gambar program nya:
Alhamdulillah
Selamat mencoba dan semoga bermanfaat :)
Wassalamualikum w.w.

KASUS 6.5 ARRAY

Bismillahirohmanirohim
Assalamualaikum w.w,


Berikut ini lanjutan kasus materi ARRAY
KASUS 6.5
Tentukan modus dari n buah data berupa bilangan bulat, di mana besar datanya antara 1
sampai dengan 10.

Gambar program nya menggunakan Flowchart:


Gambar output nya:

Program menggunakan 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 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[1]=0;}
istream& operator>>(istream&in,HitungStatistik& a){
cout<<"Banyak data : ";
in>>a.n;
for (int i=0;i<a.n;i++){
cout<<"Data ke : "<<i+1<<">";
}
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();
out<<"Nilai modus : "<<a.item;
return out;
}
int main(int argc, char** argv) {
HitungStatistik run;
cin>>run;
cout<<run;
return 0;
}

Gambar program nya:

Alhamdulillah
Selamat mencoba dan semoga bermanfaat :)
Wassalamualikum w.w.



 

Copyright @ 2013 Salman.