Sunday, September 18, 2016

Minggu 2

Assalamu"alaikum wr.wb

Pada hari ini, rabu 14 september 2016 merupakan pertemuan ke-2 matkul S_Data. Hari ini, kami belajar tentang class dan struct. Hari ini kami dibagi menjadi beberapa kelompok belajar, kami membedah dan mempresentasikan penyelesaian contoh kasus class dan struct. Belajar berkelompok menurut saya, jauh lebih efektif dari pada kami hanya duduk dan mendengarkan pak Wahyu menjelaskan. Saya sedikit lebih paham tentang apa yang dijelaskan oleh teman saya. Mungkin penyampaiannya jauh lebih bisa dimengerti. Saya berharap dengan belajar kelompok ini, saya lebih bisa memahami matkul yang diajarkan. Untuk kecemasan saya kali ini, saya sangat mengkwatirkan praktikumnya, sebab, kami diminta harus bisa mengetik 10 jari, sedangkan saya belum begitu lancar dalam mengetik 10 jari. Mungkin ini saja yang dapat saya ceritakan untuk hari ini, kurang lebihnya saya mohon maaf.

Wassalamu"alaikum wr.wb
Read More ->>

Tuesday, September 6, 2016

Minggu 1

Assalamu"alaikum wr.wb

Hari ini, tanggal 07 september 2016 merupakan hari pertama pertemuan mata kuliah S_Data. Mata kuliah ini di ampuh oleh Pak Wahyu. Pada pertemuan pertama kali ini kami sedikit membahas tentang kontrak perkuliahan. Sekitar 45 menit terakhir, kami membahas kasus pada PPT minggu pertama. Pak wahyu menjelaskan tentang beberapa cara memodifikasi sebuah program. Harapan saya kali ini, saya ingin sekali bisa mengikuti alur pelajaran yang diberikan pak Wahyu sebab sebelum-sebelumnya pada mata kuliah Alpro saya masih susah mengerti apa yang di inginkan beliu , Ini lah yang saya khawatirkan. Tetapi dari semua ini saya ingin belajar . Mungkin hanya ini yang dapat saya sampaikan pada pertemuan S_Data hari ini, kurang lebihnya saya mohon maaf.

Wassalamu"alaikum wr.wb
Read More ->>

Kasus 1

Assalamualaikum wr.wb

Pada kesempatan kali ini saya ingin berbagi tentang hasil belajar kelas kami hari ini. Dihari pertama ini kami belajar memodifikasi sebuah program dengan beberapa cara.. Nah, kalo begitu langsung saja mari kita bahas...

Program 1.1



Penerapan C++


Hasilnya 



 Program 1.2 dan 1.3



Penerapan C++ 1.2


Hasilnya



Penerapan C++ 1.3



Hasilnya 



Program 1.4



Penerapan C++



Hasilnya



Program 1.5 dan 1.6


Penerapan C++ 1.5



Hasilnya



Penerapan C++ 1.6



Hasilnya



Dari setiap program diatas memiliki cara penerapan c++ yang berbeda-beda, namun hasilnya tetap sama. Jika teman-teman ada yang memiliki cara yang lain , teman -teman bisa menambahkan pada kolom komentar. Mungkin hanya ini yang dapat saya bagi untuk teman-teman semua, kurang lebihnya saya mohon maaf. Terima kasih

Wassalamu"alaikum wr.wb








Read More ->>

Tuesday, June 21, 2016

MINGGU KE EMPAT BELAS

Assalamu"alaikum wr.wb.
Hari ini selasa tanggal 14 juni 2016 merupakan minggu ke 14 pertemuan matkul alpro. Hari ini tidak banyak yang di pelajari, Pak Wahyu hanya menegaskan kepada kami soal pengumpulan TP dan sedikit materi yang akan keluar pada UAS. Pada pertemuan terakhir ini, kami di ajak berfoto bersama pak Wahyu. Dan pesan pertemuan terakhir ini adalah "kita akan ketemu lagi disemester selanjutnya" begitulah kata pak Wahyu. Mungkin hanya ini yang dapat saya sampaikan pada pertemuan kali ini. Kurang lebihnya saya mohon maaf.

Wassalamu"alaikum wr.wb
Read More ->>

Tuesday, June 7, 2016

MINGGU KE TIGA BELAS

Assalamu"alaikum wr.wb

Hari ini, tanggal 07 juni 2016 merupakan pertemuan mata kuliah Alpro minggu ke-13.
Pertemuan kali ini , kami belajar tentang RECORD, ARRAY,STRUCK dan POINTER.
Pak Wahyu menjelaskan secara rinci agar kita sebagai mahasiswa mengerti. Pak Wahyu juga mengigatkan kita bahwa minggu ini adalah dimana minggu Pengumpulan LAPORAN TP kelompok kami,  jadi LAPORAN TP kami harus sudah benar-benar jadi sebelum Hari Sabtu tanggal 11 juni 2016 jam 12.00 WIB. Mungkin hanya ini yang dapat saya ceritakan pada pertemuan kali ini. Kurang lebihnya saya mohon maaf.
Terima Kasih

Jangan lupa ya, kunjungi juga blog teman-teman saya



Wassalamu"alaikum wr.wb 
Read More ->>

Menghitung IPK

Assalamu"alaikum wr.wb

KELOMPOK 15

Edi Siswanto_1500018018
Galih Tsabit Ulumudin_1500018019
Lalu Sabrian Ganata_1500018048

Pada kesempatan kali ini kami akan membahas tentang program perhitungan IPK menggunakan Struct.

Program Menentukan IPK

Algoritma :

{struct biodata,nilai}

Deklarasi :

i,jumlah; -> integer
ipk,jsks=0; -> float

Deskripsi :

Nama ==> gets(mhs.nama)
Nim ==> gets(mhs.nim)
Kelas ==> gets(mhs.kelas)
Jurusan ==> gets(mhs.jurusan)

write("Banyak Mata Kuliah =") read -> jml;
for i = 1 to jml do
{

write("sks") read-> nil[i].sks
write("Nilai Tugas") read-> nil[i].tugas
write("Nilai Kuis") read-> nil[i].kuis
write("Nilai Mid") read-> nil[i].mid
write("Nilai Uas") read-> nilai[i].uas

nil[i].na=(0.1*nil[i].tugas)+(0.2*nil[i].kuis)+(0.3*nil[i].mid)+(0.4*nil[i].uas)

write("Nilai Akhir") read->nil[i].na
write("Nilai Huruf")

if nil[i].na>=80
{
write("A")
nil[i].bobot=4*nil[i].sks
}

else if nil[i].na>65 && nil[i].na<=80
{write("B")
nil[i].bobot=3*nil[i].sks;}
end else if

else if nil[i].na>55 && nil[i].na<=65
{write("C")
nil[i].bobot=2*nil[i].sks;}
end else if

else if (nil[i].na>40 && nil[i].na<=55)
{write("D")
nil[i].bobot=1*nil[i].sks;}
end else if

else if (nil[i].na<=40)
{write("E")
nil[i].bobot=0*nil[i].sks;}
end else if

jsks <== jsks+nil[i].sks
ipk+ <== nil[i].bobot


end if

end for



Jika program diaplikasikan dengan c++


#include <iostream>

#include <stdio.h>

#include <iomanip>

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


using namespace std;

struct biodata

{ char nama[50],nim[15],jurusan[50],kelas[50];

}mhs;

struct nilai

{char makul[20];

float tugas,kuis,mid,uas,bobot;

int sks;

float na;

} nil[100];

main()

{

int i,jml;

float ipk,jsks=0;

cout<<"===============================================================\n";

cout<<"\t\t Program Menentukan IPK\n";

cout<<"===============================================================\n";

cout<<"Nama \t\t: "; gets(mhs.nama);

cout<<"Nim \t\t: "; gets(mhs.nim);

cout<<"Kelas \t\t: "; gets(mhs.kelas);

cout<<"Jurusan \t: ";gets(mhs.jurusan);

cout<<"\n________________________________________________________________";

input:

cout<<"\nBanyak Mata Kuliah = ";cin>>jml;

cout<<endl;

cout<<"\n_________________________________________________________________";

for(i=0;i<jml;i++)

{

cout<<"\nMATA KULIAH "<<i+1<<" \t: ";cin>>nil[i].makul;

cout<<"\SKS \t\t: ";cin>>nil[i].sks;

cout<<"\nNilai TUGAS \t: ";cin>>nil[i].tugas;

cout<<"\Nilai KUIS \t: ";cin>>nil[i].kuis;

cout<<"\Nilai MID \t: ";cin>>nil[i].mid;

cout<<"\Nilai UAS \t: ";cin>>nil[i].uas;

nil[i].na=(0.1*nil[i].tugas)+(0.2*nil[i].kuis)+(0.3*nil[i].mid)+

(0.4*nil[i].uas);

cout<<"_____________________________";

cout<<"\nNilai Akhir \t: "<<nil[i].na;

cout<<"\nNilai Huruf \t: ";

if (nil[i].na>=80)

{cout<<"A";

nil[i].bobot=4*nil[i].sks;}

else if (nil[i].na>65 && nil[i].na<=80)

{cout<<"B";

nil[i].bobot=3*nil[i].sks;}

else if (nil[i].na>55 && nil[i].na<=65)

{cout<<"C";

nil[i].bobot=2*nil[i].sks;}

else if (nil[i].na>40 && nil[i].na<=55)

{cout<<"D";

nil[i].bobot=1*nil[i].sks;}

else if (nil[i].na<=40)

{cout<<"E";

nil[i].bobot=0*nil[i].sks;}

jsks=jsks+nil[i].sks;

ipk+=nil[i].bobot;

cout<<endl;

cout<<"_____________________________\n";

}

cout<<"\n\t\tNama Mahasiswa \t: "<<mhs.nama;

cout<<"\n\t\tNim \t: "<<mhs.nim;

cout<<"\n\t\tKelas \t: "<<mhs.kelas;

cout<<"\n\t\tJurusan \t: "<<mhs.jurusan;

cout<<"\n\t\tJumlah SKS \t: "<<jsks;

cout<<"\n\t\tIPK anda \t: "<<ipk/jsks;

cout<<endl;

cout<<"\n___________________________________________________________________";

cout<<endl;

return 0;

}
Outputnya akan seperti ini :




Alhamdulillah tugas membuat program untuk menentukan IPK menggunakan struct terselesaikan...
Kami mohon maaf jika ada kekurangan ataupun kesalahan,

Terima Kasih

Wassalamu"alaikum wr.wb

Read More ->>

Sunday, June 5, 2016

MINGGU KE DUA BELAS

Assalamu"alaikum wr.wb

Pada hari ini selasa tanggal 31 juni 2016 adalah pertemuan ke-12 Mata kuliah Algoritma dan Pemrograman. Hari ini, kami membahas tentang Tugas Project yang akan kami presentasikan di kampus-kampus Negeri dan Swasta. Saya berharap selalu semoga saja TP dari kelompok saya mendapat hasil yang memuaskan. Ammiin... Mungkin ini saja yang dapat saya ceritakan hari ini, kurang lebihnya saya mohon maaf.


Jangan lupa kunjungi juga blog rekan-rekan saya ya....

Galih Tsabit Ulumudin
Lalu Sabrian Ganata

Terima kasih.

Wassalamu"alaikum wr.wb
Read More ->>

Monday, May 30, 2016

"S_o_7"

Assalamu"alaikum wr.wb

hai apa kabar teman-teman...????

Nah kali ini, saya ingin berbagi lagu2 galau dan super keren dari Sheila on seven...
Ayo,,, mana nih Sheila gank nya.... hahaha... Berikut ini lagu S_O_7 yang mungkin wajib kalian denger....

Sheila On 7 - Hari Bersamanya.mp3 download
Sheila On 7 - Pejantan Tangguh.mp3 download
Sheila On 7 - Pemuja Rahasia.mp3 download
Sheila On 7 - Pria Kesepian.mp3 download
Sheila On 7 - Seberapa Pantas.mp3 download
Sheila On 7-Tunjukkan Padaku.mp3 download
Sheila_on7_Mudah_Saja.mp3 download
Sheila_On7_Yang_Terlewatkan.mp3 download
Sheila_On_7_Ambilkan_Bulan.mp3 download
Sheila_On_7_Betapa.mp3 download
Sheila_On_7_Bila_Kau_Tak_Disampingku.mp3 download
Sheila_On_7_Buat_Aku_Tersenyum.mp3 download
Sheila_On_7_Lapang_Dada.mp3 download
Sheila_on_7_Melompat_Lebih_Tinggi.mp3 download
Sheila_On_7_Sahabat_Sejati.mp3 download
Sheila_On_7_Sebuah_Kisah_Klasik.mp3 download
Sheila_On_7_Temani_Aku.mp3 download
Sheila_On_7_Tunjuk_Satu_Bintang.mp3 download
Sheila_On_Radio.mp3 download

Nahhh itu lah lagu-lagu S_O_7 yang mungkin bisa jadi teman buat teman-teman yang mungkin lagi galau... hehehehe...

Salam.... Sheila_Gank!!!!!


Wassalamu"alaikum wr.wb
Read More ->>

Thursday, May 26, 2016

MINGGU KE SEBELAS

Assalamu"alaikum wr.wb

Hari ini, selasa 24 mei 2016 merupakan pertemuan matakuliah Alpro minggu ke-11.Pagi ini kami disuguhi dengan pembahasan materi baru, yaitu tentang Matriks dan Vektor. Materi yang diberikan pak Wahyu memang agak sulit untuk di mengerti, makanya kami diberikan tugas mencermati tentang perkalian matriks dan vektor. Tugas tersebut di upload di blog masing masing dan akan dicopas linknya di grup facebook. Mungkin hanya ini yang dapat saya ceritakan pada pertemuan kali ini.

TERIMA KASIH

oh ya, jangan lupa ya kunjungi juga blog teman-teman saya...
Galih Tsabit Ulumudin
Lalu Sabrian Ganata

Wassalamu"alaikum wr.wb

Read More ->>

Tuesday, May 24, 2016

Perkalian Matriks dan Vektor

Assalamu"alaikum wr.wb

Pada kesempatan kali ini kita akan membahas tentang perkalian matriks dan vektor. Sebelum kita lanjut ke tahap penyelesaiannya kita sebaiknya mengerti dan dapat menganalisa permasalahannya.
Pada perkalian matriks dan vektor, syarat agar matriks bisa dikalikan dengan vektor adalah diantara keduanya harus memiliki jumlah baris atau kolom yang sama. Misalnya pada Matriks terdapat 2 baris dan 3 kolom, dan pada vektor memiliki 3 baris dan 1 kolom. Nah pada kasus ini, kita dapat mengalikannya, karena pada matriks atau pun vektor memiliki salah satu baris atau kolom yang sama.
Selanjutnya mari kita belajar untuk membuat programnya.....

Menentukan Input, proses dan Output :

Input :


Matriks 
i=  
2 3 5
4 3 2

Vektor
j=
2
4
3

k = hasil

Proses :


i[2][3]+j[3][1]= k[2][1]
k11=i11 * j11 + i12 * j21 + i13 * j31
k21=i21 * j11 + i22 * j21 + i23 * j31
k11=2*2+3*4+5*3=31
k21=4*2+3*4+2*3=26


Output :

31
26

Nah selanjutnya kita ke tahap menentukan algoritma dan programnya....

Algoritma :



Function Matriks (Array : i[2][3],j[3][1])

Deklarasi :

a,b,c ==> integer
hasil[10][10] ==> Array

Deskripsi :

for a <== 0 to 2 do
for b <== 0 to 1 do
hasil[a][b]=0
for c <== 0 to 3 do
hasil[a][b]=hasil[a][b]+i[a][c]*j[c][b]
cetak (hasil[a][b])
end for
end for
end for


Setelah kita selesai menentukan algoritmanya, langsung saja mari kita pelajari programnya...

C++

#include <iostream>

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

void matriks(int i[2][3],int j[3][1]){
int a,b,c,hasil[10][10];
for(int a=0;a<2;a++){
for(int b=0;b<1;b++){
hasil[a][b]=0;
for (c=0;c<3;c++)
hasil[a][b]=hasil[a][b]+i[a][c]*j[c][b];
cout<<hasil[a][b]<<endl;
}
}
}

int main(int argc, char** argv) {
int i[2][3]={2,3,5,4,3,2};
int j[3][1]={2,4,3};
matriks(i,j);
return 0;

}


Dan hasilnya jika menggunakan dev c++ akan seperti ini:

codingannya.... 


dan outpunya akan seperti ini:


Alhamdulillah terselesaikan juga. Sekian dari saya , kurang lebihnya saya mohon maaf.

Jika masih kurang paham tentang perkalian matriks dan vektor... Teman-teman bisa langsung saja mengunjungi blog rekan-rekan saya.

Silahkan di klik:

Semoga bermanfaat...

Wassalamu"alaikum wr.wb



Read More ->>

Thursday, May 19, 2016

Diktat Bab 10

Assalamu"alaikum wr.wb

Pada kesempatan kali ini kita akan membahas tentang penyelesaian latihan pada diktat bab 10.
Langsung saja mari kita bahas....



Penyelesaian :

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



Alhamdulillah penyelesaian latihan pada diktat bab 10 terselesaikan. 
Kurang dan lebihnya saya mohon maaf, karena saya juga masih dalam tahap pembelajaran jadi mohon di mengerti.

Wassalamu"alaikum wr.wb










Read More ->>

MINGGU KE SEPULUH

Assalamu"alaikum wr.wb

Hari selasa tanggal 17 Mei 2016 Jam 07.00 WIB adalah perkuliahan ALPRO minggu ke-10 yaitu tentang : SEARCHING. Seperti pertemuan sebelumnya sebelum dosen datang maka kita sudah harus mempersiapkan/membuka : Rencana Kuliah, PPT, Diktat, E-Book.
Dosennya menjelaskan materi SEARCHING yang didalmnya terdapat Linear Search & Binary Search. Dosennya menjelaskan sesuai dengan 6 kaidah/langkah. Dosennya memberi tugas di kelas, terdapat 2 tugas diantarannya di kumpulkan pada saat perkuliahan selesai 09.00 WIB, dan pada jam 12.00 WIB.
Alhamdulillah di minggu ini tidak diberi tugas dari Diktat maupun E-book, mungkin karena sudah di upload minggu kemarin tentang SEARCHING AND SORTING. Jadi minggu ini hanya upload Refleksi saja di Blog. Tetapi ada tugas TP yaitu presentasi di depan Mentor , agar tahu sudah sejauh mana TP kelompok. Batas penilaian hari Sabtu, tanggal 21, jam 12.00 WIB.
Mungkin ini saja yang dapat saya sampaikan dalam pertemuan kali ini. Kurang lebihnya saya mohon maaf.

Jangan lupa kunjungi juga blog teman-teman saya ya...

Galih Tsabit Ulumudin
Lalu Sabrian Ganata

Wassalamu"alaikum wr.wb




Read More ->>

Tuesday, May 17, 2016

"Boomers"

Assalamu"alaikum wr.wb

Silakan pilih dan Download Lagu Bomerang di bawah ini...


BOOMERANG - debu jalanan.mp3 download
Boomerang - Sepi Tak Bertepi.mp3 download
Boomerang -Bebas Hambatan.mp3 download
Boomerang feat iuz do-peluk jiwaku.mp3 download
Boomerang- Aurora.mp3 download
Boomerang- Tragedi.mp3 download
Boomerang-Kisah.mp3 download
Boomerang-Anti Sosial.mp3 download
Boomerang_Aku di sini.mp3 download
Boomerang_Pelangi.mp3 download
Boomerang_Seumur_Hidupku.mp3 download
Boomerang-selamanya.mp3 download
Boomerang - Bawalah Aku.mp3 download
Boomerang - Berita Cuaca.mp3 download
boomerang - kisah seorang pramuria.mp3 download
BOOMERANG - Milik-Mu.mp3 download
BoOmErAnK - BuNgAkU.mp3 download

Terima Kasih...
Salam Boomers!!!

Wassalamu"alaikum
Read More ->>

"OUTSIDER"

Assalamu"alaikum wr.wb

Pada kesempatan kali ini, saya ingin membagi koleksi lagu-lagu S.I.D saya. Langsung saja tanpa basa-basi silakan pilih dan download lagunya.

S.I.D

sid-bulletproof-heart.mp3 download
Superman Is Dead - Kemesraan Ft Jika Kami Bersama.mp3 download
Superman Is Dead - Sunset di Tanah Anarki.mp3 download
Superman_Is_Dead_Belati_Tuhan.mp3 download
Superman_Is_Dead_Beyond_This_Honesty.mp3 download
Superman_Is_Dead_Bukan_Pahlawan.mp3 download
Superman_Is_Dead_Cerita_Semalam.mp3 download
Superman_Is_Dead_Feat_Shaggydog_Jika_Kami_Bersama.mp3 download
Superman_Is_Dead_Hanya_Hari_Ini.mp3 download
Superman_Is_Dead_Indonesia_Pusaka.mp3 download
Superman_Is_Dead_Jadilah_Legenda.mp3 download
Superman_Is_Dead_Kita_Luka_Hari_Ini_Mereka_Luka_Selamanya.mp3 download
Superman_is_Dead_Kuat_Kita_Bersama.mp3 download
Superman_Is_Dead_Muka_Tebal.mp3 download
Superman_Is_Dead_Punk_Hari_Ini.mp3 download
Superman_Is_Dead_Kuta_Rock_City.mp3 download

Terima Kasih...
Salam Out_sider....

Wassalamu"alaikum
Read More ->>

Monday, May 16, 2016

Sorting

Assalamu"alaikum wr. wb

Pada kesempatan kali ini kelompok kami akan membahas tentang sorting, ada 3 jenis sorting yang akan kami jelaskan. Langsung saja mari kita bahas..

Kelompok 15 



Selection Sort

(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 i dengan elemen terkecil yang ditemukan t}
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>
#include <cstdlib>



using namespace std;

int data[10],data2[10];
int n;

void tukar(int a, int b)
{
 int t;
 t = data[b];
 data[b] = data[a];
 data[a] = t;
}
void selection_sort()
{
 int pos,i,j;
 for(i=1;i<=n-1;i++)
 {
  pos = i;
  for(j = i+1;j<=n;j++)
  {
   if(data[j] < data[pos]) pos = j;
  }
  if(pos != i) tukar(pos,i);
 }
}

int main()
{
 cout<<"===PROGRAM SELECTION SORT==="<<endl;

 cout<<"Masukkan Jumlah Data : ";
 cin>>n;
 for(int i=1;i<=n;i++)
 {
  cout<<"Masukkan data ke "<<i<<" : ";
  cin>>data[i];
  data2[i]=data[i];
 }

 selection_sort();
 cout<<"Data Setelah di Sort : ";
 for(int i=1; i<=n; i++)
 {
  cout<<" "<<data[i];
 }
 cout<<"\n\nSorting dengan selection sort Selesai";
 getch();
}





Langkah-langkah :

Menentukan n atau banyak data yang akan diproses.
Program akan memproses data yang telah di koding tadi kemiudian masukkan angka atau nilai sampai batas yang telah di masukkan.
Lalu data yang di masukkan akan muncul setelah data-data tersebut di inputkan.
Program akan selesai setelah menentukan niali minimum di tentukan.
setelah nilai minimum di tentukan program tersebut akan melanjutkan sorting yaitu mengurutkan data dari kiri ke kanan.

untuk Bubble Sort akan dijelaskan oleh teman saya Galih Tsabit Ulumudin, langsung saja klik di sini
dan untuk Insertion Sort akan dijelaskan oleh teman saya Lalu Sabrian Ganata, langsung saja klik di sini.

Sekian hasil diskusi dari kelompok kami, kurang lebihnya kami mohon maaf...

Wassalamu"alaikum wr.wb
Read More ->>

Friday, May 13, 2016

How to solve #5

Assalamu"alaikum wr.wb

Pada kesempatan kali ini, kita akan membahas tentang penyelesaikan kasus-kasus pada ebook how to solve bab 5. OK, langsung saja mari kita bahas.

Kasus 5.1

E-Book (How To Solve It By Computer) = Algorithm 5.1 The Two-Way Merge.


Algoritma :

if a[m]<b[n] then a[m+1]:=b[n+1]:=a[m];
i:=1;
j:=1;
nm:= n+m;
for k:= 1 to nm dobegin {merge next element }
if a[i]<b[j] thenbeginc[k]:=a[i];
i:=i+1end elsebeginc[k]:=b[j];
j:=j+1end
end
Program dengan C++ :

#include <iostream>
#include <cstdlib>

using namespace std;

int data[100];

void mergeSort(int awal, int mid, int akhir){
cout<<endl;
int temp[100], tempAwal = awal, tempMid = mid, i = 0;


while(tempAwal < mid && tempMid < akhir){
if(data[tempAwal] < data[tempMid])
temp[i] = data[tempAwal],tempAwal++;
else
temp[i] = data[tempMid],tempMid++;
i++;
}
while(tempAwal < mid) //kalau masih ada yang sisa
temp[i] = data[tempAwal],tempAwal++,i++;
while(tempMid < akhir)
temp[i] = data[tempMid],tempMid++,i++;
for(int j=0,k=awal;j<i,k<akhir;j++,k++) //mengembalikan ke array semula, tapi
cout<<data[k]<<' '<<temp[j]<<endl, data[k] = temp[j]; //sudah urut
}

void merge(int awal, int akhir) //membagi data secara rekursif{
if(akhir-awal != 1){
int mid = (awal+akhir)/2;
merge(awal, mid);
merge(mid, akhir);
mergeSort(awal, mid, akhir);
}
}

int main(){
int n;
cout<<"Masukan banya data = ";cin>>n;
cout<<"Masukan data yang akan di susun = ";
for(int i=0;i<n;i++)
cin>>data[i];
merge(0,n);
for(int i=0;i<n;i++)
cout<<data[i]<<' ';

return 0;
}

Kasus 5.2

E-Book (How To Solve It By Computer) = Algorithm 5.2 Sorting By Selection.


Algoritma:

Selection Sort

Algoritma ini mudah diterjemahkan ke dalam program computer tetapi memiliki kekurangan yaitu sort dengan menggunakan metode Seleksi membutuhkan ruang di memori untuk meyimpan 2 daftar lengkap.
Jika memiliki satu daftar nama dan meletakkan dalam urutan berdasarkan huruf bisa menggunakan pemdekatan umum sebagai berikut :


1. Temukan atau cari nama yang pertama kali datang dalam urutan huruf dan tulis di sheet kedua
2. Tandai nama yang keluar dari daftar asli
3. Lanjutkan perputaran ini sampai semua nama di daftar semula telah di coret dan ditulis di daftar kedua dimana di bagian daftar yang kedua ini nama-nama sudah terurut berdasarkan huruf.
Program C++ :

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

int data[100],data2[100];
int n;

void tukar(int a,int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}

void bubble_sort()
{
for(int i=1;i<n;i++)
{
for(int j=n-1;j>=i;j–)
{
if(data[j]<data[j-1]) tukar(j,j-1);
}
}
cout<<”bubble sort selesai!”<<endl;
}

void exchange_sort()
{
for (int i=0; i<n-1; i++)
{
for(int j = (i+1); j<n; j++)
{
if (data [i] > data[j]) tukar(i,j);
}
}
cout<<”exchange sort selesai!”<<endl;
}

void selection_sort()
{
int pos,i,j;
for(i=0;i<n-1;i++)
{
pos = i;
for(j = i+1;j<n;j++)
{
if(data[j] < data[pos]) pos = j;
}
if(pos != i) tukar(pos,i);
}
cout<<”selection sort selesai!”<<endl;
}

void insertion_sort()
{
int temp,i,j;
for(i=1;i<n;i++)
{
temp = data[i];
j = i -1;
while(data[j]>temp && j>=0)
{
data[j+1] = data[j];
j–;
}
data[j+1] = temp;
}
cout<<”insertion sort selesai!”<<endl;
}

void QuickSort(int L, int R) //the best sort i’ve ever had
{
int i, j;
int mid;

i = L;
j = R;
mid = data[(L+R) / 2];

do
{
while (data[i] < mid) i++;
while (data[j] > mid) j–;

if (i <= j)
{
tukar(i,j);
i++;
j–;
};
} while (i < j);

if (L < j) QuickSort(L, j);
if (i < R) QuickSort(i, R);
}

void Input()
{
cout<<”Masukkan jumlah data = “; cin>>n;
for(int i=0;i<n;i++)
{
cout<<”Masukkan data ke-”<<(i+1)<<” = “; cin>>data[i];
data2[i] = data[i];
}
}

void Tampil()
{
cout<<”Data : “<<endl;
for(int i=0;i<n;i++)
{
cout<<data[i]<<” “;
}
cout<<endl;
}

void AcakLagi()
{
for(int i=0;i<n;i++)
{
data[i] = data2[i];
}
cout<<”Data sudah teracak!”<<endl;
}

void main()
{
int pil;
clrscr();
do
{
clrscr();
cout<<”Program Sorting Komplit!!!”<<endl;
cout<<”*********************************************”<<endl;
cout<<” 1. Input Data”<<endl;
cout<<” 2. Bubble Sort”<<endl;
cout<<” 3. Exchange Sort”<<endl;
cout<<” 4. Selection Sort”<<endl;
cout<<” 5. Insertion Sort”<<endl;
cout<<” 6. Quick Sort”<<endl;
cout<<” 7. Tampilkan Data”<<endl;
cout<<” 8. Acak Data”<<endl;
cout<<” 9. Exit”<<endl;
cout<<” Pilihan Anda = “; cin>>pil;
switch(pil)
{
case 1:Input(); break;
case 2:bubble_sort(); break;
case 3:exchange_sort(); break;
case 4:selection_sort(); break;
case 5:insertion_sort(); break;
case 6:QuickSort(0,n-1);
cout<<”quick sort selesai!”<<endl;
break;
case 7:Tampil(); break;
case 8:AcakLagi(); break;
}
getch();
}while(pil!=9);
}

Kasus 5.3


E-Book (How To Solve It By Computer) = Algorithm 5.3 Sorting By Exchange.

Soal

Diberikan urutan yang tidak beraturan dari kumpulan nilai n gunakan urutan dengan emnggunakan sorting by exchange

Penyelesaian :
Bubble Sort (Gelembung) merupakan metode pertukaran yang alur logikanya mirip dengan gelembung yaitu dengan cara membandingkan indeks Array yang pertama dengan indeks Array berikutnya secara terus menerus dan bergantian. Namun cara ini kurang efektif karena meskipun data sudah terurut proses perulangan yang terjadi akan terus berlangsung sampai batas perulangan itu berakhir. Ini adalah contoh alur alogaritmanya dalam kode program.

for (c=0; c<7; c++)
{ for (x=0; x<7; x++)
{if (menu[x]menu[x+1])
{term=menu[x];
menu[x]=menu[x+1];
menu[x+1]=term;
}
else {
menu[x]=menu[x];
}}}

Selection Sort (Maksimum/Minimum) merupakan metode pertukaran yang mencari nilai Maksimum/Minimum sekelompok data array yang nantinya nilai yang paling ujung akan diisolasikan dan tidak disertakan pada proses selanjutnya. Perhatikan contoh code berikut ini.

for(y=0; y<9; y++)
{max=0;
for (x=1; x<=b; x++)
{ if (A[x]>A[max])
{
max=x;
} }
if (A[max]>A[b])
{ term=A[b];
A[b]=A[max];
A[max]=term;
b--;
} else
{
b--;
}}


Insertion Sort (Sisip) meripakan metode pengurutan dengan cara menyisipkan nilai pada array pada posisi yang tepat. Untuk lebih jelasnya silakan lihat code dibawah ini.

for (k=1; k<9; k++)
{
term=L[k];
j=k-1;
while (term<=L[j])
{
L[j+1]=L[j];
j--;
}
if ((term >= L[j]) || (j=1))
{
L[j+1]=term;
}
else
{
L[j+1]=L[j];
L[j]=term;
}

Kasus 5.4

E-Book (How To Solve It By Computer) = Algorithm 5.4 Sorting By Insertion.


Algoritma :

1. Membangun sebuah array [1 .. n] elemen n.
2. Menemukan minimum dan meletakkannya di tempat untuk bertindak sebagai sentinel :
3. Sementara masih ada unsur-unsur yang akan dimasukkan di bagian memerintahkan melakukan
a. Pilih x elemen berikutnya untuk dimasukkan
b. Sementara x kurang dari sebelumnya unsur melakukan
c. Insert x pada posisi saat ini
for i:=2 to n do
begin {search for x's position then insert it}
j:=1; x:=a[i];
while x>a[j] do j:=j+1
for k:= i down to j+1 do a[k]:= a[k-1];
a[j]:=x
end


Program C++ :

#include <iostream.h>


void main(){
int data[100];
int a,b,c,d,x;
int temp;


cout<<"PROGRAM SORTING DATA "<<endl;
cout<<"---------------------------------------------"<<endl;
cout<<"Masukkan jumlah data : ? ";cin>>x;


for(d=1;d<=x;d++)
{
cout<<"Data ke-"<<d<<" = ";cin>>data[d];
}
cout<<"\nData Sebelum Diurutkan \n";
for(d=1;d<=x;d++){
cout<<"\t"<<data[d];
}
for(a=0;a<x;a++){
for(b=0;b<x;b++)
if(data[b]>= data[b+1])
{
temp=data[b];
data[b]=data[b+1];
data[b+1]=temp;
}
}
cout<<"\n\nData setelah diurutkan :\n";
for(c=0;c<x;c++)
cout<<"\t"<<data[c];
cout<<"\n\n---------------------------------------------"<<endl
}
system("PAUSE");
return EXIT_SUCCESS;
}

Kasus 5.7

E-Book (How To Solve It By Computer) = Algorithm 5.7 Binary Search.


Algoritma :

Pencarian pada data yang telah terurut menunjukkan kinerja yang lebih baik daripada pada data yang masih acak, hal ini karena dapat segera diketahui bahwa x tidak terdapat dalam larik bila ditemukan elemen yang lebih besar dari x.
Binary searching atau biasa disebut pencarian bagi dua merupakan metode pencarian yang paling efisien untuk data yang telah terurut. Metode ini digunakan untuk kebutuhan pencarian dengan waktu yang cepat.
Langkah-langkah pencarian bagi dua untuk data yang telah terurut secara ascending:
1. Bagi dua elemen larik yang telah terurut secara ascending, dengan cara menentukan elemen awal pencarian, elemen akhir pencarian dan elemen tengahnya.
- elemen awal pencarain (lo) = 1
- elemen akhir pencarain (hi) = n
- elemen tengah = (lo + hi) div 2

Misalnya terdapat larik L dengan 9 elemen yang telah terurut secara ascending seperti dibawah ini, maka kita akan menentukan elemen awal, akhir dan tengah pencariannya.

3
6 7 9 10
15 20 30 45

Lo = 1
Hi = 9
Mid = ( 1 + 9 ) div 2 = 5
2. Jika elemen yang dicari ada pada elemen di mid, maka ketemu.
3. Jika elemen yang ada di mid > elemen yang dicari, maka hi berubah
Hi = mid - 1
4. Jika elemen yang ada di mid < elemen yang dicari, maka lo berubah Lo = mid + 1 5. Ulangi langkah-langkah tersebut sampai data yang dicari ditemukan atau sampai elemen telah habis dibagi. Contoh: 3 6 7 9 10 15 20 30 45 Misalnya data yang dicari (x) = 7 1. lo = 1 hi = 9 mid = (1 + 9) div 2 = 5 L[5] = 10 L[mid] > x, maka hi berubah.
2. hi = mid -1 = 5 – 1 = 4
lo = 1
mid = ( 1 + 4 ) div 2 = 2
L[2] = 6
L[mid] < x, maka lo berubah 3. lo = mid +1 = 2 + 1 = 3 hi = 4 mid = ( 3 + 4 ) div 2 = 3 L[3] = 7 L[mid] = x, maka data ditemukan Pseudocode Pencarian bagi dua: Algoritma bin_searching; Var lo,hi,mid,n,x,idx :integer; ketemu : boolean; L : array [1..100] of integer; Begin {misalnya telah terdapat sekumpulan data yng tersimpan di dalam larik L} loß 1; hi ß n; ketemu ß false; while (not ketemu) and (lo <= hi) do midß (lo + hi ) div 2; If L[mid] = x then ketemu ß true Else If ( L[mid] > x ) then
lo ß mid + 1
Else
hi ß mid – 1;
End if
End if
End while
If (ketemu) then
Idx ß mid
Else
Idx ß -1;
End if
End.

Alhamdulillah kasus pada ebook how to solve bab 5 terselesaikan. 
Terima kasih, kurang lebihnya saya mohon maaf.

Wassalamu"alaikum wr.wb
Read More ->>

kasus alpro #8


Kasus 8.1 : Pencarian Linear (Linear Search).

Assalamu’alaikum wr.wb

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 : Pencarian Linear (Linear Search).

Algoritma :

function pencarian Linier (input aray : larik; kunci, ukuran : integer) : integer


Deklarasi
ketemu : boolean
i, n : integer
Deskripsi
ketemu <-- false;
n <-- 1
while ((n < ukuran) and (not ketemu)) do
if (aray[n] = kunci) then
ketemu <-- true { data ketemu }
i <-- n { pada posisi ke-i }
endif
else n <-- n+1 { cek data berikutnya }
endwhile
if ketemu then pencarianLinier <-- i { data ketemu pada posisi ke-i }
else pencarianLinier <-- -1 { data tidak ketemu }
endif
end


Berikut ini adalah Gambar Program Flowchart yang menggunakan Aplikasi RAPTOR :






Output/hasil compiler dari program tersebut :




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

#include <iostream>
#define UKURAN 100

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

using namespace std;

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

int main(int argc, char** argv) {

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.";

return 0;
}





Kasus 8.2 : Pencarian Biner (Binary Search).


Algoritma :

function pencarianBiner(input aray : larik; kunci, low, high : integer) : integer

Deklarasi
ketemu : boolean
i, middle : integer
Deskripsi
ketemu <-- false
while (low <= high) and (not ketemu) do
middle <-- (low+high) div 2
if (kunci = aray[middle]) then ketemu <-- true { data pencarian = data di tengah }
else if (kunci < aray[middle]) then high <-- middle – 1 {data akan dicari lagi di sebelah kiri}
else low <-- middle + 1 {data akan dicari lagi di sebelah kanan}
endif
endwhile
if ketemu then pencarianBiner := middle
else pencarianBiner := -1;
endif


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

#include <iostream>
#define UKURAN 15

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

using namespace std;

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

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




kasus 8.4 (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;
}

 muhammadsutiknocronosal.blogspot.com





Kasus 8.5 (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 :







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






Kasus 8.6 (Merge Sort)



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







Kasus 8.7 (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;

}



Alhamdulillah kasus-kasus pada PPT 8 terselesaikan... 

Wassalamu"alaikum wr.wb
Read More ->>
Powered by Blogger.