Selasa, 13 September 2016

Refleksi Struktur Data 1

Refleksi Struktur Data Minggu ke-1

Jadi, selamat datang di kelas struktur data hehe. kelas ini masih kelanjutan dari sekuel algoritma pemrograman daaan ini refleksi pertama dari beberapa refleksi selanjutnya selama 1 semester

Berkaca dari perkuliahan alpro sebelumnya, seharusnya untuk level kesusahan, strukutur data ini pastinya akan lebih punya kemampuan untuk menguras tenaga, fikiran, batin, dan beberapa teman mereka lainnya.

Daan untuk semester 3 ini juga kegiatan perkuliahan kami akan semakin bertambah padat, dengan hampir semua mata kuliah yang masing-masing di mandati tugas akhir, tugas proyek atau apalah namanya itu di tambah dengan 5 kali praktikum setiap minggunya, tak bisa di pungkiri, bayangan kami akan seberapa mengerikannya semester ini nantinya sedikit demi sedikit sudah mulai tergambar di benak kami.

Pada akhirnya kami sebagai mahasiswa hanya bisa pasrah, sebenarnya tidak hanya pasrah, kami juga harus tetap menjaga semangat kami, itulah yang terpenting, pada dasarnya kami juga memiliki keinginan untuk bisa mendapatkan banyak ilmu pengetahuan, kami ingin bisa jadi pribadi yang serba tahu, terlebih untuk bidang yang kami geluti, dengan begitu nasib kami di dunia kerja bisa lebih terjamin, membangun keluarga ideal sesuai mimpi kami, dan hidup kami pun makmur tentram sejahtera dan lain sebagainya, di mulai dari hanya menjaga semangat kami.

Terlepas dari itu semua, kami sebagai mahasiswa juga tak tahu menahu bagaimana caranya untuk tetap menjaga semangat kami, simple sajalah, hal apa yang sekiranya dapat membuat muda/mudi umur 20an untuk tetap bisa semangat dalam menimba ilmu di dunia pekuliahan ?

Sekian terimakasih.




Read More

Selasa, 24 Mei 2016

tugas alpro minggu ke-10

Tugas alpro minggu ke-10

Identifikasi masalah :
Bagaimana cara mengalikan matriks dengan ordo 2x3 dengan vektor baris yang mempunyai record 2 buah elemen dan vektor kolom yang mempunyai record 3 buah elemen.

Analisis input dan output dengan contoh soal :
Contoh soal, di berikan matriks dengan ordo 2x3 dengan elemen sebagai berikut :
A :  | 2 1 3 |
       | 1 3 2 |
Dan 2 buah vektor yaitu vektor baris dan vektor kolom dengan data sebagai berikut :
Baris : | 3 2 |    
Kolom : | 2 |
              | 1 |
              | 3 | 
Pertanyaannya bagaimana cara mengalikan matriks a dengan vektor baris dan juga vektor kolom ?
Analisis :
Hasil kali vektor baris dengan matriks :
Hasil =   (a11 x b11 + a21 x b12) (a12 x b11 + a22 x b12) (a13 x b11 + a23 x b12)
Hasil kali vektor kolom dengan matriks :
Hasil =   (a11 x b11 + a12 x b21 + a13 x b31)
               (a21 x b11 + a22 x b21 + a23 x b31)


Penyusunan algoritma :
Procedure baris(a,b,vekb), kolom(a,k,vekk);
Deklarasi :
a[2][3], b[2], k[3], vekb[3], vekk[2];
Deskripsi :
Vektor baris : 
for(int j=0;j<3;j++){
for(int i=0;i<2;i++)
vekb[j]=vekb[j]+(a[i][j]*b[i]);}
Vektor kolom : 
for(int i=0;i<2;i++){
for(int j=0;j<3;j++)
vekk[i]=vekk[i]+(a[i][j]*k[j]);}

Implementasi kedalam program c++ :
 #include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
void matrik(int a[2][3])
{
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
cout<<" "<<a[i][j]<<" ";
}
cout<<endl;
}
}
void baris(int a[2][3], int b[2], int vekb[3])
{
for(int j=0;j<3;j++)
{
for(int i=0;i<2;i++)
vekb[j]=vekb[j]+(a[i][j]*b[i]);
}
}
void kolom(int a[2][3], int k[3], int vekk[2])
{
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
vekk[i]=vekk[i]+(a[i][j]*k[j]);
}
}
void vektorb(int b[2])
{
for(int i=0;i<2;i++)
{
cout<<" "<<b[i];
}
cout<<endl;
}
void vektork(int k[3])
{
for(int i=0;i<3;i++)
{
cout<<" "<<k[i]<<endl;
}
}
void cetak(int vekk[])
{
for(int i=0;i<3;i++)
{
cout<<" "<<vekk[i];
}
cout<<endl;
}
void tulis(int vekb[])
{
for(int i=0;i<2;i++)
{
cout<<" "<<vekb[i]<<endl;
}
}
int main(int argc, char** argv) 
{
int a[2][3]={2,1,3,1,3,2}, b[2]={3,2}, k[3]={2,1,3};
int vekb[3]={0}, vekk[2]={0};
baris(a,b,vekb);
kolom(a,k,vekk);
cout<<"Matrik ordo 2x3 : "<<endl;
matrik(a);
cout<<"Vektor baris : "<<endl;
vektorb(b);
cout<<"Vektor kolom : "<<endl;
vektork(k);
cout<<"Hasil kali vektor baris : "<<endl;
cetak(vekb);
cout<<"Hasil kali vektor kolom : "<<endl;
tulis(vekk);
return 0;
}

Melakukan uji coba data :





Semoga bermanfaat terimkasih.

Read More

Senin, 16 Mei 2016

DIKTAT BAB 8

1.     Perhatikan bahwa Anda dapat melewatkan banyak nomor dalam daftar dan masih berada dalam urutan menaik yaitu sebagai berikut :
3 4 6 17 21 24 32 43
Angka-angka ini meningkat saat Anda bergerak melalui daftar dari kiri ke kanan. Bangunlah sebuah array yang berisi angka-angka tersebut ? Kemudian lakukan pencarian biner (Binary Search) untuk memeriksa apakah angka yang kita cari ada dalam daftar array tersebut ?

Source code :

#include <iostream>
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;

}









2. Jika terdapat sebuah array yang elemennya berindeks 1 sampai dengan 15. Masing-masing elemen berturut-turut berisi nilai sebagai berikut:
1, 2, 8, 25, 30, 49, 50, 55, 60, 61, 68, 70, 72, 84, 90.
a.     Jelaskan langkah-langkah pencarian nilai 49 dalam array tersebut dengan metode pencarian biner, sehingga menghasilkan indeks elemen array tempat ditemukannya nilai tersebut.
b.     Jelaskan langkah-langkah pencarian nilai 71 dalam array tersebut dengan metode pencarian biner, sehingga menghasilkan kesimpulan bahwa nilai tersebut tidak berhasil ditemukan.
Source code :
#include <cstdlib>
#include <iostream>

using namespace std;
void output(int a[14],int awal,int akhir,int tengah,int cari){

while(awal<=akhir){
                        tengah=(awal+akhir)/2;
                        if(cari>a[tengah]){
                                    awal=tengah+1;
                        }else if(cari<a[tengah]){
                                    akhir=tengah-1;
                        }else{
                                    awal=akhir+1;
                        }
            }
            if(cari==a[tengah]){
                        cout<<"Data di temukan indeks ke-"<<tengah<<endl;
            }else{
                        cout<<"Data tidak di temukan"<<endl;
            }
}
int main(int argc, char *argv[])
{
            int a[15]={(1),(2),(8),(25),(30),(49),(50),(55),(60),(61),(68),(70),(72),(84),(90)};
            int cari,awal,akhir,tengah;
            for(int i=0;i<15;i++){
                        cout<<a[i]<<" ";}
            cout<<"\nMasukan data yang di cari = ";
            cin>>cari;
            awal=0;akhir=15;
            output(a,awal,akhir,tengah,cari);
            system("pause");
            return 0;
}







3.     Urutkan deret angka berikut dengan bubble sort :
7 4 5 8 10
Tuliskan hasil tiap langkah (step).

Source code :
#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;
}






4.     Periksalah daftar 6 angka di bawah ini :
14 32 5 12 61 7
Ketika Anda melihat daftar tersebut, Anda segera dapat melihat bahwa 5 adalah angka terkecil didaftar. Tugas ini lebih sulit untuk komputer. Jadi untuk itu harus dibuat program untuk menemukan nilai minimum tersebut. Buatlah program selection sort dan lakukan sorting secara manual (step by step) !

Source code :

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

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



Read More

Jumat, 13 Mei 2016

Refleksi Minggu ke-9

Selasa, 10 Mei 2016 pukul 07.00 kuliah algoritma pemrograman pertemuan ke-9 dibuka dengan materi searching and sorting. Dosen kami terlebih dahulu menjelaskan tentang materi sorting, tapi karena alasan yang kurang jelas beliau meminta kami untuk mengganti jam kuliah, sehingga perkuliahan diganti pukul 18.30 di hari yang sama.
Malam harinya beliau lanjutkan dengan pembahasan materi sorting. Perkuliahan selesai pada pukul 20.00 dan seperti biasa beliau memberikan beberapa tugas dengan tenggat waktu yang terbatas. 
Jadi, cukup sekian refleksi saya di minggu ke-8 pertemuan algoritma pemrograman, terimakasih.
Read More

Algoritma pengurutan data menggunakan teknik menyisipkan (Insertion Sort)

Assalamualaikum sobat blogger...

Pada kesempatan kali ini saya akan memposting sebuah program untuk mengurutkan beberapa buah data acak yang diinputkan secara manual dengan jumlah yang diinputkan secara manual juga.

Cara kerja program ini adalah dengan cara mengambil angka pertama dari beberapa data telah diinputkan sebelumnya, kemudian angka pertama ini akan dibandingkan dengan data setelahnya, apabila lebih besar maka ditukar dan apabila lebih kecil maka akan dibiarkan.

Begitu seterusnya sehingga nantinya didapatkan data dengan nilai paling besar berada di urutan paling belakang atau paling kanan.

1. masalah : bagaimana cara mengurutkan beberapa buah data dari inputan manual dengan jumlah           yang desesuaikan oleh pengguna program.
2. input : 625341
    output : 123456
3. 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
4. Berikut saya sertakan source code dari program yang telah saya buat :

#include <iostream>

using namespace std;
int main(int argc, char** argv)
{
int n,i,j,m,a[50];
cout<<"masukkan jumlah data : ";
cin>>n;
for(i=0;i<n;i++)
{
cout<<"masukkan data ke-"<<i+1<<" : ";
cin>>a[i];
}
for(i=1;i<=n;i++)
{
for(j=i;j>=1;j--)
{
if(a[j]<a[j-1])
{
m=a[j];
a[j]=a[j-1];
a[j-1]=m;
}
}
}
cout<<"data saat ini : ";
for(int k=0;k<n;k++)
{
cout<<a[k]<<" ";
}
return 0;
}

5. Dan di bawah ini saya sertakan screenshot dari compiler cpp-nya :



Sekian program pengurutan secara insertion sederhana yang saya buat, sebagai tambahan berikut saya sertakan teknik pengurutan dengan cara buble sort dan selection sort milik kedua teman saya.
Pengurutan data dengan cara bubble sort klik di sini (Marzota Dwi R)
Pengurutan data dengan cara selection sort klik di sini (Imam Suryanto)
Terimakasih telah berkunjung, wassalamualaikum wr,wb.
Read More

Jumat, 06 Mei 2016

Pembahasan Latihan dan Diskusi kelompok Materi ke-7

Assalamualaikum sobat blogger...
Pada postingan kali ini saya akan membahas tugas latihan dan diskusi kelompok pada powerpoint pertemuan ke-7 :
1.       Buatlah algoritma dan function dalam bahasa C++ untuk menggantikan strlen, yaitu mengetahui panjang suatu string

#include <iostream>
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;
}
Berikut tampilan dalam compiler c++ :

2.       Buatlah algoritma dan program untuk mengubah string menjadi bergantian huruf besar dan kecil. Contoh : Algoritma dan Pemrograman à AlGoRiTmA dAn PeMrOgRaMaN

#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();
}
Berikut tampilan dalam compiler c++ :

3.       Berikan penjelasan dan kesimpulan(untuk diposting):
-          Kapan array digunakan
Jawab : Array digunakan Ketika membuat banyak variabel dengan type data homogen, untuk menyimpan suatu deratan nilai di dalamnya. Dan Array dideklarasikan setelah tipe data.
-          Mengapa array digunakan
Jawab : Array digunakan dalam penulisan program ketika ada banyak variabel yang sama dan di pisahkan berdasarkan nomor elemen sehingga memungkinkan / memudahkan untuk menyusuri elemen-elemen tersebut.
-          Apa kekurangan/ kelemahan array
Jawab : Kekurangan Array adalah semua tipenya harus sama, indeks array yang kosong tetap memiliki porsi memori yang sama sehingga tidak efesien.
-          Buat contoh program menggunakan array yang memperlihatkan pentingnya menggunakan array (selain dari materi slide) :

#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
  int a[100],n;
  cout<<"masukkan jumlah data : ";
  cin>>n;
  for(int i=0;i<n;i++)
  {
                  cout<<"data ke-"<<i+1<<" : ";
                  cin>>a[i];
  }
  for(int i=0;i<n;i++)
  {
                  cout<<a[i]<<" ";
  }
  cout<<endl;
  int temp=a[0];
  for(int i=0;i<n;i++ )
  {
                  a[i]=a[i+1];
                  a[n]=temp;
                  cout<<a[i]<<" ";
  }
  return 0;
}
Berikut tampilan dalam compiler c++ :

Sekian pembahasan pogram array yang saya buat, terimakasih, wassalamualaikum wr,wb.

Read More

Rencana Kuliah Minggu Ke-8 Nomor 3 - Menghilangkan Duplikasi Pada Array

Assalamualaikum sobat blogger...
Program kali ini membahas tentang materi array, seperti kita ketahui array bisa kita isi dengan data yang berulang, semisal dalam array a yang menyimpan 7 buah data dan di dalamnya terdapat data yang sama seperti data 1 yang ada 2, data 3 yang jumlahnya ada 5 dan sebagainya.
Nah, program yang saya posting kali ini akan menghilangkan duplikasi data tersebut, langsung saja kita lihat source codenya :

#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
                int a[50],n,c;
                cout<<"masukkan jumlah data : ";
                cin>>n;
                for(int i=1;i<=n;i++)
                {
                                cout<<"masukkan data ke-"<<i<<" : ";
                                cin>>a[i];
                }
                cout<<"data yang anda masukkan adalah : ";
                for(int i=1;i<=n;i++)
                {
                                cout<<a[i]<<" ";
                }
                for(int i=1;i<=n;i++)
                {
                                for(int l=i+1;l<=n;l++)
                                {
                                                if(a[i]==a[l])
                                                {
                                                                n=n-1;
                                                                for(int m=l;m<=n;m++)
                                                                a[m]=a[m+1];
                                                                c=1;
                                                                l;
                                                }
                                }
                }
                if(c==0)
                cout<<"eror";
                else
                {
                                cout<<endl;
                                cout<<"angka sesudah duplikasi : ";
                                for(int l=1;l<=n;l++)
                                {
                                                cout<<a[l]<<" ";
                                }
                }
                return 0;
}
Berikut tampilan pada saat di compile :



Program saya di atas adalah program nomer 3 dari total jumlah 3 soal yang diberikan dosen kami, untuk nomer 1 dan 2 bisa sobat lihat di blog kedua teman saya :
Sekian pembahasan pogram array yang saya buat, terimakasih, wassalamualaikum wr,wb.
Read More