Selasa, 20 September 2016

Refleksi Minggu Kedua

Assalamulaikum w,r,w,b
Pada tanggal 14 September 2016 merupakan kuliah pertemuan kedua mata kuliah Struktur Data. Awal perkuliahan di mulai dosen menjelaskan sistem perkuliaha di minggu kedua selama 15 menit. Kemudian kami di suruh untuk belajar berkelompok sesuai dengan kelompok yang sudah di tentukan, kami membahas materi tentang Class dan Struct dan diberikan waktu selama 15 menit pula. Setelah kami membahas materi tersebut, kami disuruh agar mempersentasikan yang kami bahas dengan kelompok lain sampai kelompok lain mengerti dan kelompok lain tersebut juga menjelaskan apa yang mereka bahas tadi kepada kami sehingga saling menjelaskan sesama kelompok sehingga kami saling bertukar bahasan agar lebih mengerti lagi. Begitulah pertemuan kuliah di minggu kedua sampai selesai waktu kuliah.

Cukup sekian yang bisa saya sampaikan di mingggu kedua ini, kurang dan lebihnya saya mohon maaf.
Wassalamulaikum w,r,w,b

Selasa, 13 September 2016

Refleksi Minggu Pertama

Assalamu'alaikum wr.wb

Hari ini, tanggal 07 september 2016 merupakan pertemuan pertama mata kuliah Structur Data. Mata kuliah ini di ampuh oleh Pak Wahyu Pujiono. Pada pertemuan pertama kami sedikit membahas tentang kontrak perkuliahan, kemudian kami membahas kasus pada PPT minggu pertama. Harapan saya kali ini, saya ingin agar bisa mengikuti pelajaran yang diberikan pak Wahyu sebab sebelum-sebelumnya pada mata kuliah Alpro saya masih susah mengerti, Ini lah yang saya khawatirkan. Mungkin hanya ini yang dapat saya sampaikan pada pertemuan Structur Data hari ini, kurang lebihnya saya mohon maaf.

Wassalamu'alaikum wr.wb

Sabtu, 18 Juni 2016

TUGAS AKHIR ALGORITMA DAN PEMROGRAMAN


Presentasi tugas akhir telah dibuat dan berhasil kami selesaikan kemudian memasang video presentasi di youtube, dengan minimal like 100, alhamdullah kami berhasil mengejar target like berkat dukungan kawan - kawan sekalian



Selasa, 07 Juni 2016

Menghitung IPK Menggunakan Struktur Data

Nama         : Muhammad Sutikno
Nim            : 1500018061


Contoh membuat program menghitung IPK menggunakan Struktur data di C++, langsung saja ini dia programnya:


#include <iostream>
using namespace std;

int HitungIPK (char x, int y);
       int HitungIPK (char x, int y)
{
       int ip;
       switch(x)
       {
       case 'A':
              ip=4*y;
              break;
       case 'B':
                     ip=3*y;
                     break;
       case 'C':
                     ip=2*y;
                     break;
       case 'D':
                     ip=1*y;
                     break;
       case 'E':
                     ip=0*y;
                     break;
       default:
              ip=0;
              break;
       }
       return ip;
}

int main()
{
       cout<<"\t\tPROGRAM MENGHITUNG IPK"<<endl;
       cout<<"\t\tpresented by : "<<endl<<endl;
       cout<<"\t\tMuhammad Saepul Hadi(1500018029)"<<endl;
       cout<<"\t\tMuhammad Sutikno(1500018061)"<<endl;
       cout<<"\t\tSuwanto(1500018046)"<<endl;
       cout<<"\t*****************************************************"<<endl<<endl;

       int jumlahMK, jumlahMhs, jumlahsks, a,b,c;
       float ip_plus,ipp, ippp;
       char hitunglagi;
       jumlahsks=0;
       ippp=0;

       struct mahasiswa
       {
              char nama[25];
              int nim;
              char fak[20];
              char prodi[25];
              char alamat[40];
              float ipk;
              
       };

       struct matakuliah
       {
              int kodeMK;
              char namaMK[25];
              char nilai;
              int sks;
       };

       mahasiswa mhs;
       matakuliah makul;

       cout<<"Silahkan masukkan data diri anda"<<endl;
       cout<<"===================================="<<endl<<endl;

       do {
              cout<<"------------------------------------------------------"<<endl<<endl;
              cout<<"\tNama\t\t: ";
              cin>>mhs.nama;
              cout<<"\tNim\t\t: ";
              cin>>mhs.nim;
              cout<<"\tFakultas\t: ";
              cin>>mhs.fak;
              cout<<"\tProdi\t\t: ";
              cin>>mhs.prodi;
              cout<<"\tAlamat\t\t: ";
              cin>>mhs.alamat;
              cout<<"------------------------------------------------------"<<endl<<endl;

              cout<<"Berapa jumlah matakuliah yang akan dihitung? ";
              cin>>jumlahMK;
              cout<<endl;

              for(b=0; b<jumlahMK; b++)
              {
                     cout<<b+1;
                     cout<<"  .Masukkan kode MK\t: ";
                     cin>>makul.kodeMK;
                     cout<<"    Masukkan nama MK\t: ";
                     cin>>makul.namaMK;
                     cout<<"    Masukkan jumlah SKS\t: ";
                     cin>>makul.sks;
                     cout<<"    Masukkan nilai MK (A,B,C,D,E) : ";
                     cin>>makul.nilai;
                     cout<<endl;

                     jumlahsks=jumlahsks+makul.sks;
                     ipp= HitungIPK(makul.nilai, makul.sks);
                     ippp+=ipp;

              }
              mhs.ipk = ippp/jumlahsks;
              cout<<endl<<endl;
              cout<<"NAMA\t\t: "<<mhs.nama<<endl;
              cout<<"NIM\t\t: "<<mhs.nim<<endl;
              cout<<"FAKULTAS\t:"<<mhs.fak<<endl;
              cout<<"PRODI\t\t:"<<mhs.prodi<<endl;
              cout<<"ALAMAT\t\t:"<<mhs.alamat<<endl;
              cout<<"=================================================== \n";
              cout<<"Jumlah Mata Kuliah: \t\t"<<jumlahMK<<endl;
              cout<<"Jumlah SKS \t\t\t : "<<jumlahsks<<endl;
              cout<<"Jumlah SKS x Nilai\t\t :"<<ippp<<endl;
              cout<<"Indeks Prestasi Kumulatif \t :"<<mhs.ipk<<endl<<endl;

              cout<<"HItung lagi (y /n) = ";
              cin>>hitunglagi;

       }while(hitunglagi=='y' || hitunglagi=='Y');
      

       
       return 0;
}

Hasil Outputnya:




Sekian cara menghitung IPK, semoga program ini bermanfaat. Jangan lupa kunjungi link blog temen kelompok saya:
 
      

REFLEKSI MINGGU KE 13.

Assalamu'alaikum w.w.

              Perkuliahan ALPRO minggu ke-13 Pada bulan Ke-4. Perkuliahan ini sudah masuk di bulan Ramadhan , pada pertemuan kali ini membahas tentang : RECORD, ARRAY,STRUCK dan POINTER, Pointer dan Pengenalan Struktur Data.

             Dosen menjelaskan materi RECORD, STRUCK dan CLASS dll. Dosennya mengigatkan kita bahwa minggu ini adalah dimana minggu Pengumpulan Laporan TP. Jadi Laporan TP kita harus sudah benar-benar selesai sebelum Hari Sabtu tanggal 11 juni 2016.

             Dosen memberi tugas untuk membuat program menampilakan KRS. Dimana masing masing anggota kelompok mengerjakan bagian-bagiannya yaitu : 1 orang mengerjakan Algoritma, 1 orang mengerjakan Struck, dan 1 orang mengerjakan Program dengan keseluruhannya. Dan salah seorang dari 3 angoota tersebut mengupload tugas tersebut di Blog, dan hasil pengerjaan manual tersebut di sisi bagian kiri atas ditulis NIM & NAMA yang mengupload di Blog. Batas pengumpulan hari Rabu 08 Juni 2016 jam 07.00 WIB di ruang 314.

            Mungkin hanya ini dulu yang bisa saya posting dihari ini. Kurang dan lebihnya saya minta maaf.

Wassalamu'alaikum w.w.

REFLEKSI MINGGU KE 12.

Assalamu'alaikum w.w.

             Perkuliahan ALPRO minggu ke-12 yaitu membahas tentang : RECORD, STRUCK dan CLASS, Pointer dan Pengenalan Struktur Data. Pada minggu ke 12 dimulai dengan kuis. Kuis tersebut batas pengerjaan 15 menit.

             Dosen menjelaskan materi RECORD, STRUCK dan CLASS dll. Dosennya menjelaskan secara rinci agar mahasiswa mengerti. Dosen mengigatkan kita bahwa minggu ini adalah minggu Presentasi TP kelompok. Jadi TP harus sudah benar-benar layak untuk di presentasikan.

            Cukup sekian postingan saya, jika kata-kata saya ada yang kurang berkenan maafkan lah karena saya masih tahap belajar.

Wassalamu'alaikum w.w.

Jumat, 27 Mei 2016

REFLEKSI MINGGU KE 11

Assalamualikum w.r.w.b

                Di minggu ini kami membahas tentang materi Binary. Dosen menjelaskan materi begitu jelas sehingga kami mengerti tentang Binary. Dan di akhir perkuliahan kami di beri tugas tentang Binary dan di kumpul sesaat itu juga, alhamdulillah karena saya mengerti jadi tidak susah payah menyelesaikannya.

               Sekian refleksi minggu 11, mohon maaf jika ada kata-kata saya yang salah.

Wassalamulaikum W.r.w.b  

REFLEKSI MINGGU KE 10

Assalamulaikum W.r.w.b

                 Minggu ke 10, Alhamdulillah saya tidak datang terlambat malah saya datang cepat bgt, sebelum kuliah  di mulai 15 menit sebelumnya saya sudah ada di kelas dan menyiapkan bahan pengajaran yang akan di bahas di minggu ke 10, di ruangan begitu rame karena kami gabung dengan kelas B. Tetapi walaupun banyaknyaorang di kelas tetapi kelas tetap tenang dan peroses belajar pun berjalan dengan lancar.

                 Minggu ke 10 kami masih membahas tentang materi sorting, dan di minggu ini adalah minggu di mana kita harus mengerti betul tentang sorting, karena jika kita tidak mengerti bakalan susah, karena banyak tugas yang di berikan oleh dosen.

                 Sekian refeleksi minggu ke 10 dari saya.

wassalmulaikum w.r.w.b  

Selasa, 24 Mei 2016

Perkalian Matrik Dengan Vektor


Menentukan hasil perkalian antara matrik x vektor (3x2) menggunakan 6 kaidah penyusunan program:



1. Mengerti masalah

 Mengalikan antara matrik dan vektor

2. Menentukan input dan output

input : matrik[2][3]={3,2,5,1,6,4}
vektor[3]={1,2,3}
output : hasil[2]

3.Membuat algoritma

Deklarasi : i,j, = integer

Deskripsi : for (i=1 ; i<=2 ;i++)
for (j= 1 ; j<=3 ; j++
total [i][j]=0;
for (k= 1 ; k<=3 ; k++)
total [i][j] = total [i][j]+A[i][k][j] ;

4. Mencoba dengan data :

MATRIK
j=1 j=2 j=3
A i=1| 3 2 5
i=2| 1 6 4
VEKTOR
J=1
B i=1| 1 |
i=2| 2 |
i=3| 3 |
cara perkalian
C = |A11*B11+A12*B21+A13*B31|
|A21*B11+A22*B21+A23*B31|
jadi
| 3x1 + 2x2 + 5x3 |
| 1x1 + 6x2 + 4x3 |
hasil akhirnya
| 22 |
| 25 |

5. Codingan DEV C++ :

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

void kali(int matrik[2][3],int vektor[3],int hasil[2]){
cout<<"matrik : \n";
for(int i=0;i<2;i++){
for(int j=0;j<3;j++)
hasil[i]=hasil[i]+(matrik[i][j]*vektor[j]);
}
}
void cetakm(int hasil[][3]){
for(int i=0;i<2;i++){
for(int j=0;j<3;j++)
cout<<hasil[i][j]<<" ";
cout<<endl;
}
}
void cetakv(int vektor[]){
cout<<"vektor : \n";
for(int i=0;i<3;i++){
cout<<vektor[i]<<endl;
}
}

void cetak(int hasil[]){
cout<<"hasil trakhir : \n";
for(int i=0;i<2;i++){
cout<<hasil[i]<<endl;
}
}
int main(int argc, char** argv) {
int matrik[2][3]={ 3,2,5,1,6,4}, vektor[3]={1,2,3},hasil[2]={0};
kali(matrik,vektor,hasil);
cetakm(matrik);
cetakv(vektor);
cetak(hasil);
return 0;

}



6. Hasil Outputnya :







Senin, 16 Mei 2016

Pembahasan Materi Searching And Sorting Tentang Insertion Sort

Assalamu’alaikum w.r,w,b

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ . Program yang akan di buat yaitu : Tentang : Insertion Sort.

Menyusun Algoritma :

procedure insertion_sort(input/output data:larik; input n:integer)


Deklarasi:
a,i, j, temp : int

Deskripsi:
for (int i = 0; i < a; i++) {fungsi Perulangan jika i < a maka i akan terus bertambah}
{
temp = data [i];

j = i-1;
do(j > 1) {fungsi perulangan menggunakan do while yg kondisinya jika j > 1}
{

data [j+1] = data [j];

j = j-1;
}

while (temp <= data [j]);

if (temp >= data [j]) {fungsi percabangan yg kondisinya jika temp >= data [j] maka data [j+1] = temp}
{
data [j+1] = temp;
}

else {mengganti tempat elemen saat ini data[j+1] dengan elemen data[j] dan element data [j] ditukar dengan element temp}
{data [j+1] = data [j];


data [j] = temp;
}
}


 Berikut ini adalah Pengimplementasian Program Flowchart yang menggunakan Aplikasi RAPTOR :






Dan yang ini Pengimplementasian Program C++ yang Menggunakan Aplikasi Dev 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;

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;
}
  void Sorting::tukar (int &a, int &b){
       int temp;
       temp = a;
       a = b;
       b = temp;
  }
  void Sorting::insertion_sort(){
       int i, j, temp;
       cout<<"Data pertama sudah ada ditangan kiri, yaitu : " << data[0] << '\n';
       for(j = 1; j < n; j++){
           temp = data[j];
           cout<<"\nData ke-" << j+1 << " yaitu " << data[j] << " diambil dari meja\n";
           cout<<"Dilakukan penggeseran elemen :\n";
       for(i = j - 1; (i >= 0) && (data[i] > temp); i--){
           cout<<"data pd posisi ke-[" << i+1 << "] digeser ke posisi [" << i+2 << "]\n";
           data[i+1] = data[i];
       }
        cout<<"Data baru masuk pada posisi ke-[" << i+2 << "]\n";
        data[i+1] = temp; //Insert key into proper position
        cout<<"Data saat ini adalah : ";
        for (int k=0; k<=j; k++) cout << data[k] << " ";
            getch();
            }
  }
int main(int argc, char** argv) {
    Sorting angka;
    cin>>angka;
    angka.insertion_sort();
    cout<<"\nHasil akhir adalah : \n";
    cout<<angka;

 return 0;
}



Uji coba Output/hasil compiler dari program tersebut :

  

Langkah-Langkah Pengerjaan:
Terdapat angka yang acak di bawah ini :
[7,5,6,3,4,1,2]
-Cara pengerjaanya pertama-tama kita menggambil angka pertama di sebelah kiri yaitu [7]
[7]
-Kemudian kita ambil angka ke dua yaitu [5] , karena angka [5]  lebih kecil dari [7], kita ditaruh di 
sebelah kiri: 
[5, 7]

-Kemudian kita ambil angka ke tiga yaitu [6], karena angka ke [6] < [7] dan [6] > [5], maka kita taruh di tengah-tengah antara angka [5] dan [7], seperti di bawah ini:

[5,6,7]

-Selanjutya kita ambil angka ke empat yaitu [3] karena tiga lebih kecil dari angka yang kita cari sebelumnya, maka angka [3] kita taruh di paling kiri, seperti di bawah ini:

[3,5,6,7]

-Selanjutnya kita ambil angka ke lima yaitu [4], karena angka [4] < [5,6,7] dan [4] > [3] maka kita taruh seperti di bawah ini:

[3,4,5,6,7]

-Selanjutya kita ambil angka ke enam yaitu [1] karena [1] lebih kecil dari angka yang kita cari sebelumnya, maka angka [1] kita taruh di paling kiri, seperti di bawah ini:

[1,3,4,5,6,7]

-Selanjutya kita ambil angka ke tujuh yaitu [2], karena [2] < [3,4,5,6,7] dan [2] > [1] maka kita taruh seperti di bawah ini:

[1,2,3,4,5,6,7]

Selesai sudah karena angka-angka sudah terurut, begitulah langkah-langkah pengerjaannya. terimakasih.

Selamat mencoba, dan Semoga bermanfaat ....

Untuk pembahasan Bubble Sort dan Selection Sort silakan kunjungi link blog teman kelompok saya:-)
klik disini!
klik disini!
Wassalamu’alaikum w.w.



Jumat, 13 Mei 2016

Refleksi Pertemuan 9

Assalamualaikum w.r.w.b

             Pada kesempatan kali ini saya akan sedikit curhat tentang pertemuan 9, di pertemuan kali ini kami membahas materi tentang shorting. Sorting adalah materi tentang mengurutkan bilangan yang belum terurut menjadi terurut, kita bisa menggunkan aplikasi Dev C++ dan Raptor.

            Pertemuan kali ini sedikit menegangkan, karena dosen sedikit ngambek sehingga perkuliahanpun di ganti menjadi jam 18.30. Setelah perkuliahan di mulai dosen memberikan kami materi sorting dan sedikit panjang menjelaskannya, setelah selesai menjelaskan ada beberapa orang yang di suruh maju untuk menyelesaikan soal yang ada di papan tulis, suasanapun menjadi  mencekam dan seluruh mahasiswa kelihatan ketakutan bila di suruh maju. ehmmm sangat mengerikan....

            Akhirnya perkuliahan pun selesai, dan kami di beri tugas yang banyak banget, deadline sabtu jam 12.00 siang. Sehingga saya sangat terburu-buru mengerjakan tugas yang di berikan, jadi saya mohon  maaf jika banyak yang salah dalam postingan saya.

           Cukup sekian curhatan dari hati saya yang paling dalam semoga Allah melancarkan semua hal yang kita kerjakan. Amin....

Kunjungin juga blog temen kelompok saya:-)
Greentimeuad.blogspot.com
hadie97.blogspot.com

Wassalmualikum W.r.w.b


Diktat Bab 9



Assalamu'alaikum wr.wb

Pada kesempatan kali ini, saya akan membahas kasus-kasus pada diktat bab 9. Langsung saja.

Workshop

Kasus 1

Algoritma

deklarasi
A[maks][maks],baris,kolom::integer
deskripsi
read (baris,kolom)
for i <-- 1 to n -1 do
for j <-- 1 to n-1 do
baris,kolom := A[i][j]
for i <-- 1 to n-1 do
for j <-- 1 to n-1 do
for z <-- 1 to n-1 do
hasil := A[i][j]*2[m]
endfor
endfor
endfor

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;
}



muhammadsutiknocronosal.blogspot.com







Kasus 2




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;

}

}




muhammadsutiknocronosal.blogspot.com







Flowchart




muhammadsutiknocronosal.blogspot.com










Kasus 3




C++




#include <iostream>

#include <conio.h>

#include <cstdlib>




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;

}

system("cls");

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;

}

return 0;

}




muhammadsutiknocronosal.blogspot.com








Flowchart


muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com







Kasus 4




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;

}







muhammadsutiknocronosal.blogspot.com







Kasus 5




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;

}

}







muhammadsutiknocronosal.blogspot.com







Flowchart




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com







Alhamdulillah pembahasan kasus pada diktat bab 9 terselesaikan. Sekian pembahasan dari saya, kurang lebihnya saya mohon maaf.

Kunjungi link blog temen kelompok saya:-)
Greentimeuad.blogspot.com
hadie97.blogspot.com


Wassalamu"alaikum wr.wb

Kamis, 12 Mei 2016

Kasus 8.7 (Quick Sort)


Assalamu’alaikum w.r.w.b

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ . Program yang akan di buat yaitu : Tentang : Quick Sort.

Algoritma :

procedure quick_sort(output data : larik; input L, R : integer)

Deklarasi
       i, j, p : integer
Deskripsi
       p <-- data[(L+R) div 2]
       i <-- L
      j <--R
     { mulai membuat partisi }
      while (i<=j) do
               while (data[i] < p) do i <-- i+1 endwhile
               while (data[j] > p) do j <-- j -1 endwhile
         if (i<=j) then
              tukar(data[i], data[j])
              i <-- i+1
              j <-- j-1
        endif
     endwhile
     if (L < j) then quick_sort(data,L,j) endif
     if (i < R) then quick_sort(data,i,R) endif

Dan yang ini Gambar Program C++ yang Menggunakan Aplikasi Dev C++ :

#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 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);
}

int main(int argc, char** argv) {
    int data[10], n;
   
    cout << "Banyak data : ";
    cin >> n;
    masuk_data(data,n);
    quick_sort(data,0,n-1);
    cetak_data(data,n);

  return 0;
}




 Selamat mencoba, dan Semoga bermanfaat :-)


Wassalamu’alaikum w..r.w.b

Kasus 8.6 (Merge Sort)


Assalamu’alaikum w.r.w.b

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ . Program yang akan di buat yaitu : Tentang : Merge Sort.
Dan yang ini Gambar Program C++ yang Menggunakan Aplikasi Dev C++ :


#include <iostream>
#include <cstdlib>

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

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);
     }
}

int main(int argc, char** argv) {
    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;
}


m





Output/hasil compiler dari program tersebut :

muhammadsutiknocronosal.blogspot.com

Selamat mencoba, dan Semoga bermanfaat 


Wassalamu’alaikum w.r.w.b

Kasus 8.5 (Selection Sort)

Assalamu’alaikum w.w.,

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ . Program yang akan di buat yaitu : Tentang : Selection Sort.
Algoritma :
Procedure selection_sort(output A : larik; input n : integer)

Deklarasi
       i, t : integer
Deskripsi
      for i <-- 1 to n do
            minimum(A, i, n, t);
            tukar(A[i], A[t]); {tukar tempat elemen saat ini j dengan elemen terkecil yang ditemukan t}
    endfor

 Berikut ini adalah Gambar Program Flowchart yang menggunakan Aplikasi RAPTOR :

 






Output/hasil compiler dari program tersebut :

 
Dan yang ini Gambar Program C++ yang Menggunakan Aplikasi Dev C++ :

#include <iostream>
#include <cstdlib>

using namespace std;

void baca_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 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]);
     }
}

int main(int argc, char** argv) {
    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;
}
m







 Selamat mencoba, dan Semoga bermanfaat ....

Wassalamu’alaikum w.w.


kasus 8.4 (Insertion Sort)

Assalamu’alaikum w.w.,

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ . Program yang akan di buat yaitu : Tentang : Insertion Sort. 
Algoritma :

procedure insertion_sort(input/output data:larik; input n:integer)

Deklarasi
       k, j, temp : integer
Deskripsi
       for k <-- 2 to n do
            temp := data [k];
            j := k-1;
       while (temp <= data [j]) and (j > 1) do
               data [j+1] := data [j];
               j := j-1;
       endwhile
       if (temp >= data [j]) then data [j+1] := temp
       else
             data [j+1] := data [j];
             data [j] := temp;
        endif
   endfor

 Berikut ini adalah Gambar Program Flowchart yang menggunakan Aplikasi RAPTOR :





Dan yang ini Gambar Program C++ yang Menggunakan Aplikasi Dev 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;

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;
}
  void Sorting::tukar (int &a, int &b){
       int temp;
       temp = a;
       a = b;
       b = temp;
  }
  void Sorting::insertion_sort(){
       int i, j, temp;
       cout<<"Data pertama sudah ada ditangan kiri, yaitu : " << data[0] << '\n';
       for(j = 1; j < n; j++){
           temp = data[j];
           cout<<"\nData ke-" << j+1 << " yaitu " << data[j] << " diambil dari meja\n";
           cout<<"Dilakukan penggeseran elemen :\n";
       for(i = j - 1; (i >= 0) && (data[i] > temp); i--){
           cout<<"data pd posisi ke-[" << i+1 << "] digeser ke posisi [" << i+2 << "]\n";
           data[i+1] = data[i];
       }
        cout<<"Data baru masuk pada posisi ke-[" << i+2 << "]\n";
        data[i+1] = temp; //Insert key into proper position
        cout<<"Data saat ini adalah : ";
        for (int k=0; k<=j; k++) cout << data[k] << " ";
            getch();
            }
  }
int main(int argc, char** argv) {
    Sorting angka;
    cin>>angka;
    angka.insertion_sort();
    cout<<"\nHasil akhir adalah : \n";
    cout<<angka;
 
 return 0;
}



Output/hasil compiler dari program tersebut :

  

Langkah-Langkah Pengerjaan:
Terdapat angka yang acak di bawah ini :
[7,5,6,3,4,1,2]
-Cara pengerjaanya pertama-tama kita menggambil angka pertama di sebelah kiri yaitu [7]
[7]
-Kemudian kita ambil angka ke dua yaitu [5] , karena angka [5]  lebih kecil dari [7], kita ditaruh di 
sebelah kiri: 
[5, 7]

-Kemudian kita ambil angka ke tiga yaitu [6], karena angka ke [6] lebih kecil dari angka[7] dan lebih besar angka dari [5], maka kita taruh di tengah-tengah antara angka [5] dan [7], seperti di bawah ini:

[5,6,7]

-Selanjutya kita ambil angka ke empat yaitu [3] karena tiga lebih kecil dari angka yang kita cari sebelumnya, maka angka [3] kita taruh di paling kiri, seperti di bawah ini:

[3,5,6,7]

-Selanjutnya kita ambil angka ke lima yaitu [4], karena angka [4] lebih kecil dari angka [5,6,7] dan lebih besar angka [3] maka kita taruh seperti di bawah ini:

[3,4,5,6,7]

-Selanjutya kita ambil angka ke enam yaitu [1] karena [1] lebih kecil dari angka yang kita cari sebelumnya, maka angka [1] kita taruh di paling kiri, seperti di bawah ini:

[1,3,4,5,6,7]

-Selanjutya kita ambil angka ke tujuh yaitu [2], karena [2] lebih kecil dari angka [3,4,5,6,7] dan lebih besar dari angka [1] maka kita taruh seperti di bawah ini:

[1,2,3,4,5,6,7]

Selseai sudah karena angka-angka sudah terurut, begitulah langkah-langkah pengerjaannya. terimakasih.

Selamat mencoba, dan Semoga bermanfaat ....

Untuk pembahasan Bubble Sort dan Selection Sort silakan kunjungi link blog teman kelompok saya:-)
klik disini!
klik disini!
Wassalamu’alaikum w.w.


Kasus 8.3 : (Bubble Sort)


Assalamu’alaikum w.w.,

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ . Program yang akan di buat yaitu : Tentang : Bubble Sort.

     Algoritma :


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

 Berikut ini adalah Gambar Program Flowchart yang menggunakan Aplikasi RAPTOR :

 

 

 

Output/hasil compiler dari program tersebut :

 
Dan yang ini Gambar Program C++ yang Menggunakan Aplikasi Dev C++ :

#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;
}







 Selamat mencoba, dan Semoga bermanfaat ....

Wassalamu’alaikum w.w.