judul

SELAMAT DATANG DAN SELAMAT MEMBACA BLOG KU :)

Sabtu, 29 Maret 2014

ebook 8.1 Binary Tree Traversal

=> algoritmanya :

1. in order tranversal :

procedure
begin
if current<>nil then
begin
inorder(current|left);
{assert: names in all nodes in left subtree of current node have
been printed in lexical order}
writln(current | treename);
{assert : name in current node printed}
inorder |current|.right}
{assert : names in all nodes in right subtree of current node
have been printed in lexical order}
end
end

2. preorder traversal


procedure preorder{current:treepointer};
begin
if current<> nil then
begin
writeln {current|.treename);
{assert : name in current node printed}
preorder {current|.left};
{assert : names in all nodes in lefft subtree of current node have
preorder{current|.right}
{assert : names in all nodes in right substree of current node
have been printed in preorder order}
end
end

3.posttorder traversal

posttorder traversal{current:treepointer};
begin
if current<> nil then
begin
writeln {current|.treename);
{assert : name in current node printed}
preorder {current|.left};
{assert : names in all nodes in lefft subtree of current node have
preorder{current|.right}
{assert : names in all nodes in right substree of current node
have been printed in preorder order}
end
end

7.6 Binary Tree Insertion And Deletion

7.5 Binary Tree Search

=> algoritmanya :
1. menetapkan kunci pencarian dan pointer ke akar pohon
2. mengatur negara tidak ditemukan dan membuat arus titik simpul pointer ke akar dan simpul pointer sebelumnya nihil
3. sementara kunci pencarian tidak ditemukan dan tiga masih jalan yang valid untuk mengikuti pohon lakukan
4. menetapkan apakah atau tidak mencari berhasil ditemukan kunci
5. kembali pointer ke node sebelumnya, node saat ini, dan variabel yang menunjukkan apakah atau tidak pencarian berhasil

=> programnya :



#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h> // dibutuhkan untuk system("cls");

struct tree_node
{
tree_node* left;
tree_node* right;
int data;

};

tree_node* root;

bool isEmpty()
{return root==NULL;}

void insert(int d)
{
tree_node* t = new tree_node;
tree_node* parent;
t->data = d;
t->left = NULL;
t->right = NULL;
parent = NULL;
if(isEmpty())root = t;
else
{
tree_node* curr;
curr = root;

while(curr!=NULL)
{
parent = curr;
if(t->data > curr->data) curr = curr->right;
else curr = curr->left;
}

if(t->data < parent->data)
parent->left = t;
else
parent->right = t;
}
}

void inorder(tree_node* p)
{
if(p!=NULL)
{
if(p->left)
inorder(p->left);
cout<<" "<<p->data<<" ";
if(p->right)
inorder(p->right);
}
else
return;
}


void print_inorder()
{
inorder(root);
}

int count(tree_node* p)
{
if(p==NULL)return 0;
return count(p->left) + count(p->right) + 1;
}

int height(tree_node* p)
{
if(p==NULL)return 0;
int u = height(p->left),v = height(p->right);
if(u > v)
return u+1;
else
return v+1;
}

void cari_terbesar(tree_node* p)
{
if(p==NULL)
return;
else
if(p->right==NULL)
{
cout<<" "<<p->data<<" ";
return;
}
else
{
cari_terbesar(p->right);
return;
}
}

int main()
{
root=NULL;
int ch,tmp;


while(1)
{
system("cls"); // Saya mengganti scrclr() karena dicompiler sy tidak ada fungsi tersebut
cout<<endl;
cout<<"Menu Utama Operasi Pohon Biner"<<endl;
cout<<"--------------------"<<endl;
cout<<"1. Insert/Tambah Data"<<endl;
cout<<"2. Kunjungan In-Order"<<endl;
//cout<<"3. Kunjungan Pre-Order"<<endl;
//cout<<"4. Kunjungan Post-Order"<<endl;
//cout<<"5. Hapus Data"<<endl;
cout<<"6. Menghitung Jumlah Node"<<endl;
cout<<"7. Menghitung Tinggi Pohon"<<endl;
//cout<<"8. Mencari Data Terkecil"<<endl;
cout<<"9. Mencari Data Terbesar"<<endl;
cout<<"10. Exit"<<endl;
cout<<"Pilihan Anda : ";
cin>>ch;
cout<<endl;
switch(ch)
{
case 1 : cout<<"Masukan Data : ";
cin>>tmp;
insert(tmp);
break;
case 2 : cout<<endl;
cout<<"Kunjungan In-Order"<<endl;
cout<<"---------------"<<endl;
print_inorder();getch();
break;
case 6 : cout<<"Menghitung Jumlah Node"<<endl;
cout<<"------------------"<<endl;
cout<<"Jumlah Node = "<<count(root);
getch();
break;
case 7 : cout<<"Menghitung Tinggi Pohon"<<endl;
cout<<"------------------"<<endl;
cout<<"Tinggi Pohon = "<<height(root);
getch();
break;
case 9 : cout<<"Mecari Data Terbesar"<<endl;
cout<<"------------------"<<endl;
cout<<"Data Terbesar Adalah = "<<endl;
cari_terbesar(root);
getch();
break;
case 10 : return 0;
break;
default: cout<<"Pilihan yang Anda Masukkan salah!"<<endl;
getch();
break;
}
}
}

7.4 Linked List Iinsertion And Deletion

=> algoritmanya :

1. menetapkan nama yang akan dimasukkan dan pointer ke kepala daftar

2. menginisialisasi simpul sebelumnya nihil dan arus simpul pointer ke kepala daftar

3. daftar pencarian untuk posisi penyisipan nama yang akan dimasukkan dan pointer retrun untuk logis predeccessor dan penggantinya node mereka

4. membuat node baru

5. menyimpan nama yang akan dimasukkan ke dalam simpul baru

6. menyesuaikan pointer yang dimasukkan node sehingga pointer sehingga menunjuk ke penerus logis

7. jika tidak memasukkan nama baru di depan daftar kemudian

8. kembali daftar diperbarui dan listhead

=> program nya :

#include <cstdlib>
#include <iostream>


using namespace std;


class stak
{
public:
stak();
void push();
void pop();
void cetak();
private:
int top;
char stack[6]; // asumsi max stack 100
char x;
};


stak::stak()
{
top=-1;
}
void stak::push()
{
if(top==5) cout<<"stack penuh";
else {
cout << "Masukkan satu karakter ";
cin >> x;
top++;
stack[top] = x;
}}


void stak::pop()
{
if(top < 0)
{
cout << "Stack kosong" << endl;
return;
}
x = stack[top];
top--;


cout << "Karakter yang di 'POP' adalah : " << x << endl;
}


void stak::cetak()
{
if(top < 0)
{
cout << "Stack kosong" << endl;
return;
}

int i = 0;
for(i = top; i >= 0; i--)
cout << stack[i] << endl;
}

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

int input;
stak a;
cout << "MASUKKAN PILIHAN : " << endl;
cout << "\tpush = 1" << endl;
cout << "\tpop = 2" << endl;
cout << "\tcetak = 3" << endl;
cout << "\tquit = 4" << endl;


while(true)
{
cout << "\nMasukkan pilihan: ";


cin>>input;


if(input==1)
{
a.push();
}
else if(input == 2)
{
a.pop();
}
else if(input == 3)
{
a.cetak();
}
else if(input == 4)
{
break;
}
else
{
cout << "Perintah '" << input << "' tidak dikenal" <<endl;
}
}
return 0;
}

7.3 Linked List Search

Dalam hal ini tentukan indeks paling awal dan indeks paling akhir, untuk membagi 2 elemen tersebut.
Indeks awal = i, dimana nilai i, pada awalnya bernilai 0;
Indeks akhir = j, dimana nilai j, pada awalnya bernilai sama dengan jumlah elemen.

=> programnya :

//#include
#include
#include
//#pragma hdrstop
//#pragma argsused
int main(int argc , char* argv[])
{
int x,i,k;
int l[10]={20,15,22,30,60,28,17,18,21,22};
printf(“Data yang dicari = “); scanf(“%d”,&x);
k=0;
for(i=0;i<9;i++)
{
if(l[i]==x)
{
printf("Data ditemukan di elemen %d\n",i);
k++;
}
}
if(k==0)
{
printf("Data tidak ditemukan\n");
}
printf("Jumlah data yang ditemukan = %d",k);
getch();
return 0;
}

7.2 Queue Addition And Deletion

Pada queue, operasi tersebut dilakukan di tempat yang berbeda. Penambahan elemen selalu
dilakukan melalui salah satu ujung, menempati posisi di belakang elemen-elemen yang
sudah masuk sebelumnya atau menjadi elemen paling belakang. Sedangkan penghapusan
elemen dilakukan di ujung yang berbeda, yaitu pada posisi elemen yang masuk paling
awal atau elemen terdepan. Sifat yang demikian dikenal dengan FIFO.

=> programmnya :

#include
#include
void main()
{
int cek=0, data[20], x, hapus;
char pil;
do {
clrscr();
printf("1. Tambah Antrian\n");
printf("2. Hapus Antrian\n");
printf("3. Lihat Antrian\n");
printf("4. Keluar\n");
printf("Silahkan masukkan pilihan anda... ");
pil=getche();
if(pil!='1' && pil !='2' && pil !='3' && pil!='4' )
printf("\n\nAnda salah mengetikkan inputan...\n");
else
{
if(pil=='1') //PUSH
{
if(cek==20)
printf("\nAntrian Penuh\n\n");
else
{
printf("\nMasukkan nilai--> ");scanf("%i",&x);
data[cek]=x;
cek++;
}
}else
{
if(pil=='2') //POP
{
if(cek==0)
printf("\nAntrian kosong\n\n");
else
{
hapus=data[0];
for(int v=0;v
data[v]=data[v+1];
data[cek-1]=NULL;
cek--;
printf("\nData dgn nilai=%i terhapus.",hapus);
}getch();
}
else
{
if(pil=='3') //CEK DATA
{
if(cek==0)
printf("\nAntrian Kosong.\n\n");
else
{
printf("\n");
for(int z=0;z
{
printf(" | ");
printf("%i",data[z]);
printf(" | ");
}
}getch();
}}
}}
}while(pil!='4');
}

7.1 Stack Operations

stack adalah salah satu struktur data pada komputer,, disebut juga dengan tumpukan,,

=> program c++ nya:



#include <iostream.h>

#include <conio.h>

#include <stdlib.h>

#include <stdio.h>

#include <string.h>

int maks,top,pil,karakter,i;

int top2;

char elemen,aa,bb;

char stack[20];

char infiks[20];

char postfiks[20];

char stack2[10];

char hasil[20];

void delay();

void create(int x){

top = 0;

gotoxy(50,3);printf(” ”);

for(i=0;i<100;i++){

gotoxy(59,4+i);printf(” ”);

}

if(x<=20){

for(i=0;i<=x;i++){

if(i==x){

gotoxy(60,4+i);printf(“—”);

}

else{

gotoxy(59,4+i);printf(“| |”);

}

}

}

}

void push(char aa){

gotoxy(50,2);printf(” ”);

if(top == maks){

gotoxy(53,2);printf(“—-OVERFLOW—-”);

}

else{

stack[top]=aa;

for(i=0;i<11;i++){

gotoxy(50+i,3);cout<<” “;

gotoxy(51+i,3);cout<<aa;

delay();

}

for(i=0;i<(maks-top);i++){

gotoxy(61,3+i);cout<<” “;

gotoxy(61,4+i);cout<<aa;

delay();

}

top = top + 1;

}

}

void pop(){

gotoxy(50,2);printf(” “);

if(top == 0){

gotoxy(53,2);printf(“—-UNDERFLOW—-”);

}

else{

bb = stack[top-1];

for(i=(maks-(top-1));i>0;i–){

gotoxy(61,3+i);cout<<” “;

gotoxy(61,2+i);cout<<bb;

delay();

}

for(i=10;i<21;i++){

gotoxy(50+i,3);cout<<” “;

gotoxy(51+i,3);cout<<bb;

delay();

}

gotoxy(71,3);printf(” “);

top = top – 1;

}

}

void main(){

maks = 0;

top = 0;

do{

gotoxy(3,1);printf(“====================================”);

gotoxy(3,2);printf(” PROGRAM STACK 2IA01 ”);

gotoxy(3,3);printf(“====================================”);

gotoxy(4,4);printf(“1 : BUAT STACK BARU (CREATE)”);

gotoxy(4,5);printf(“2 : TAMBAH ELEMEN (PUSH)”);

gotoxy(4,6);printf(“3 : HAPUS ELEMEN (POP)”);

gotoxy(4,7);printf(“4 : KELUAR”);

gotoxy(3,9);printf(“====================================”);

for(i=10;i<20;i++){

gotoxy(3,i);printf(” “);

}

gotoxy(3,10);printf(“Masukan pilihan : “);cin>>pil;

switch(pil){

case 1:{

gotoxy(3,12);printf(“Masukan kapasitas stack (maksimal 20) : “);cin>>maks;

create(maks);

break;

}

case 2:{

if(maks==0){

gotoxy(3,12);printf(“Stack belum dibuat.Create stack terlebih dahulu”);

getch();

}

else{

gotoxy(3,12);printf(“masukan satu karakter : “);cin>>elemen;

push(elemen);

}

break;

}

case 3:{

if(maks==0){

gotoxy(3,12);printf(“Stack belum dibuat.Create stack terlebih dahulu”);

getch();

}

else{

pop();

}

break;

}

}

}

while(pil!=4);

}

void delay()

{

for(int y=1;y<100;y++)

for(int x=1;x<100;x++)

for(int p=1;p<30;p++)

cout<<”";

}

6.6 Sub Linear Pattern Search

=> Algoritma nya :



1. Menetapkan kata dan teks yang akan dicari

2. set up meja melompat

3. mengatur pencocokan kata kunci menghitung sampai nol

4. mengatur karakter posisi saya untuk kata kunci panjang

5. sedangkan posisi karakter saat <panjang teks lakukan

6. kembali jumlah pertandingan..

=> 

6.5 Linear Pattern Search

6.4 Text Lline Editing

=> Algoritmanya :

1.establish baris teks, pola pencarian, dan pola penggantian dan panjang terkait dalam karakter 
2. menetapkan nilai awal untuk posisi dalam teks teks lama, pola teks dan pencarian baru
3.while semua posisi pola dalam teks belum diperiksa apakah 
4. salin karakter sisa di baris teks asli Garis
5.return diedit teks


=> program c++ ny a:

Pada text edit anda dapat memasukan perintah-perintah yang sudah ada dan mengkombinasikannya dengan output yang anda butuhkan/inginkan.
Berikut adalah contoh sederhana/dasar dari penggunaan C++


#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
clrscr();
printf("\t\tHalo Apa Kabar?\n");
cout<<"\tSelamat Belajar C++"<<endl;
printf("\n\tSelamat Mencoba");
getch();
}

6.3 Keyword Searching In Text

=> algoritmanya:

1. membangun kata dan wordlenght panjang dari kata pencarian 
2. menginisialisasi pertandingan menghitung pertandingan, set karakter sebelumnya dan mengatur pointer untuk kata Array i untuk 1 
3. sementara tidak pada akhir baris lakukan 
4. kembali kata pertandingan count pertandingan

=> program c++ nya:






# include <file-include> Main ( )
{
Pernyataan ;
………..
………..
}



Contoh :
#include <iostream.h>
#include <conio.h>
void main ()
{
clrscr ();
cout <<”Hallo vivin .. welcome my blog.\n”;
getch ();
}

6.2 Left And Right Justification of Text

=> algoritma deskripsion

1. membangun jaringan untuk dibenarkan, saat ini (lama) panjang panjang tion (baru) panjangnya. 
2. termasuk tes untuk melihat apakah hal itu dapat dibenarkan. 
3. menginisialisasi jumlah ruang dan mulai abjad baris 
4. sementara karakter saat spasi lakukan 
5. untuk dari awal abjad ke akhir baris lakukan 
6. menghapus ruang apapun dari akhir baris 
7. menentukan ruang tambahan yang akan ditambahkan dari panjang garis baru dan lama
8. sementara ruang masih ekstra untuk menambah dan mungkin untuk melakukannya lakukan 
9. untuk dari awal sampai akhir baris lakukan 
10. menyelesaikan dengan akhir baris


=> program c++ nya :

#include <iomani.h>


using namespace std;

int main(int argc, char *argv[])
{
    int a=87,b=32;
    clrscr();
    cout<<"penggunaan ios::left dan ios::right \n\n";
    cout<<" rata sebelah kiri=";
    cout<<"setiosflags(ios::left)<<setw(10)<<a;
    cout<<"setiosflags(ios::left)<<setw(10)<<b<<endl;
    cout<<"rata sebelah kanan =";
    cout<<"setiosflags(ios::right)<<setw(10)<<a;
    cout<<"setiosflags(ios::right)<<setw(10)<<b;
    
    system("PAUSE");
    return EXIT_SUCCESS;

}

SELAMAT MENCOBA KAWAN

6.1 Text Line Length Adjusment

Refleksi Pperetemuan 6

pertemuan alpro minggu ke enam ini kami  gabung dengan anak klas c.
1. materi yang saya dapat :
  • belajar tentang rekursif 
  • belajar tentang iteratif
  • membaca rumus sigma berpangkat
  • saat  uts membawa sepuluh contoh rekursi tulis tangan dengan tinta warna biru
  • open book satu lenbar catatan
  • soal uts sudah pernah di kerjakan
2. apa yang anda tidak paham ?
flowchart tentang iteratif,
flowchart tentang going down


3. cara menhyelesaikannya ?
dengan memahami materi berulang"
diskusi kelompok

5.8 Hash Searching

5.7 Binary Search

=> Algoritmanya :

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.

5.6 Sorting By Partitioning

5.5 Sorting By Diminishing Increment

5.4 Sorting By insertion

=> Aalgoritma nya :


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++ nya :


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

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

Jumat, 28 Maret 2014

5.2 Sorting By Selection

=>algoritmanya:

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++ nya :


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

5.1 The Two Way Merge

=> algoritmany

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 nya :


#include <iostream>

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

Kamis, 27 Maret 2014

Refleksi Minggu 5

pertemuan alpro minggu ke lima ini aku dan temen" mulai masuk lagi jam tujuh :)

1. apa yang anda dapat kan ?

  • mulai memikirkan paspor
  • algoritma bukan makul yang baru karna kita sudah belajar c++ di semester 1
  • anak it di tuntut untuk punya skill
  • belajar tentang sub program
  • penjelesan raptor pengkondisian dan loop penjelasan pak wahyu
             literatif
 int faktorial(n:int)        raptor pakekondisional
faktorial<-1<- awal
for i<- to n do
faktorial <- faktorial*i

       rekursi
int faktorial(n: int)
if n =1 then                  raptor pake loop
faktorial <- 1
else
faktorial<-
n*faktorial (n-1)



  • pengumpulan kuis jam 8 malam


  • uts anda diminta untuk membuat 10 kasusu konversi dari literatif menjaddi rekursif (pengulangan di rinya sendiri)

    •    tugas : buatlah sub program konversikan menjadi rekursi

    2. apa yang anda tidak paham ?
        materi tentang sub program
       

    3.  cara menyelesaikannay ?
       terus membaca sampai paham

    4. Longest Monotone Subsequence



    soal

    {given a set of n distinct numbers find the length of the longest monotone increasing subsequence}

    diberi satu set n nomor yang berbeda menemukan panjang monoton terpanjang meningkatkan subsequence

    desskripsi :

    1. membangun array a[1 ... n] dari elemen n

    2. mengatur kondisi awal untuk subsequence mengakhiri di posisi pertama

    3. untuk sisa (n-1) posisi array lakukan

    (a) jika elemen saat ini kurang maksimal di set terpanjang sebelumnya kemudian
    (a.1) mencari posisi dan nilai maksimum antara pendahulu
    (a.2) memperbarui posisi dan panjang maksimum jika diperlukan jika tidak
    Update posisi panjang lain dari maksimum dan panjang maksimum terjauh

    4. tampilkan panjang tetap terpanjangdari subsequen

    4.Partitioning an Array



    soal

    diberikan perintah array dalam bentuk acak dari n elemen. mambagi elemen menjadi
    dua bagian sedemikian rupa sehingga elemen <= x berada di salah satu bagian dalam
    elemen >x berada di bagian.

    deskripsi:


    1. membangun array a[1 ... n] dan nilai pembagi dari x.


    2. pindahkan 2 pembagi terhadap satu sama lain sampai sepasang salah ditempatkan elemen dalam perhitungan memungkinkan untuk kasus-kasus khusus x berada di luar kisaran nilai array


    3. sedangkan jika dua perhitungan belum pernah bertemu atau menyeberang melakukan


    (a) bertukar pasangan yang salah perhitungan dan memperpanjang kedua perhitungan ke dalam oleh salah satu elemen
    (b) memperpanjang partisi kiri sementara elemen kurang dari atau sama dengan x
    (c) memperpanjang partisi yang benar sementara elemen lebih besar dari x


    4. tampilkan perhitungan indeks p and perhitungan array

    4. Removal of Duplicates From an ordered array

    soal

    menghapus semua duplikat dari perintah array

    deskripsi :
    1. membangun array a[1 ... n] dari elemen n
    2. mengatur indeks pengulangan i=2 untuk memungkinkan terminasi yang benar
    3. membandingkan pasangan berurutan dari elemen sehingga duplikat ditemui kemudian menetapkan elemen tertinggi penhitungan j
    4. sementara semua pasangan belum diperiksa lakukan
    (a) jika pasangan selanjutnya tidak duplikasi lakukan
    (a.1) tambahkan 1 perhitungan element tertinggi j
    (a.2) kemudian pindahkan elemen dari pasangan ke posisi array tentukan dari elemen perhitungan array tertinggi.

    4. Finding the maximum number in set



    soal

    menemukan nilai maksimun a dari nilai n

    deskripsi :
    1. membangun sebuah array a[1....n] dimana elemen n>=1
    2. berikan nilai maksimum sementara max untuk elemen pertama array
    3. sementara kurang dari n elemen array telah di anggap
    (a) jika elemen selanjutnya elemen maksimum max maka itu nilai maksimun
    4. menuliskan nilai maksimum dari n elemen array

    4. Array Counting or Histogramming



    soal

    diberi satu set sebuah tanda ujian siswa (dalam kisaran 0 hingga 100) membuat hitungan jumlah siswa yang mungkin diperoleh masing-masing tanda

    deskripsi :
    1. meminta dan membaca jumlah n tanda untuk diproses
    2. memberi inisial semua elemen yang akan di hitung array [0...100]
    3. sementara masih ada yang akan di peroses, untuk melakukan perulangan
    (a) membaca tanda berikutnya m
    (b) menambahkan 1 perhitungan di lokasi m didalam array
    4. tuliskan output nilai frekuensi perhitungan

    4. Array Order Rreversal



    soal
    mengatur ulang elemen dalam array sehingga muncul urutan terbaik

    deskripsi :
    1. membangun sebuah array a[a....n] dari n elemen yang akan dilindungi
    2. menghitung r jumlah pertukaran yang diperlukan untuk memesan array
    3. sementara masih ada pasang elemen array untuk ditukar
    (a) menukar elemen i dengan elemen [n-i + 1]
    4. mengembalikan array dilindungi undang-undang

    Wawancara kakak tingkat

    by: Anni Kholilah daulay (1300018147)
        Vivin Villiani Rosadi (1300018158)
         Sahdatul umi (1300018154)



    identitas kakak tingkat :
    nama : Afriq Yasin Ramadhan
    nim : 09018222


    kami memilih kak afriq sebagai narasumber karena menurut kami dia adalah orang yang bisa memberikan inspirasi dan motivasi untuk kami. berikut adalah tanya jawab antara kami dengan beliau...


    narator : mengapa kakak mengambil jurusan ti?


    narasumber: menurutnya teknik informatika itu asyik dan kita tidak perlu kotor-kotoran dalam bekerja hanya didepan komputer saja.


    narator : mengapa memilih uad?


    narasumber : dia memilih uad karna kurang beruntung saat tes di umy dan akhirnya dia mendaftar jalur pmdk di uad alhamdulillah diterima :) untuk tahun berikutnya dia tidak berencana mengulang karena menurutnya dia sudah nyaman kuliah di uad.


    narator : apa yang menarik dari teknik informatika?


    narasumber : karena kita belajar tentang teknologi, meskipun kita diperbudak oleh teknologi tapi kita menjadi rantai tertinggi didunia teknoligi itu sendiri, seperti membuat program danlain sebagainya.


    narator : berapa ipk tertinggi selama kuliah? dan bagaimana cara belajar yang dilalui?


    narasumber : 3.98 ==> jangan terlalu banyak belajar karena yang banyak belajar itu kalah dengan orang yang tidak belajar, karna di informatika kita hanya belajar algoritma dan yang logic jadi tidak usah terlalu banyak belajar.


    narator : berapa ipk terendah selama kuliah? dan mengapa?


    narasumber : 2.5 saat saya semester 1 ==> karna besic saya bukan di informatika dan saya masih terbawa sifat sma masih yang malas dalam belajar bahkan saya pernah tidak ikut uts sehingga ipk saya 2.5 namun di semester 2 saya bangkit (sudah sadar) :D


    narator : disemester 1 ipk kakak 2.5 setelah itu bagaimana grafik ipk kakak? naik turun atau bagaimana?


    narasumber : alhamdulillah ipk saya naik namun sempat di semester 5 ipk saya turun.


    narator : apa yang terjadi pada saat kakak semester 5? karena menurut saya anak semester 5 itu sudah banyak mendapatkan tugas proyek yang menghasilkan pendapatan.


    narasumber : semester 5 itu sudah masuk semester-semester akhir itu sudah memasuki rasa jenuhnya kuliah, dan untuk proyek itu sendiri kita sering begadang malam-malam bersama teman-teman sampai terlambat masuk dalam study, kita juga mengadakan belajar kelompok kita memback up teman-teman yang pintar untuk menjadi tutor sehingga kita bisa.


    narator : tadi kakak bilang kalau kakak ngga punya basic di teknik informatika, tapi dengan tidak adanya basic kakak bisa memperoleh ipk yang sangat cemerlang?


    narasumber : itu semua memang butuh proses semuanya itu berawal dari semester 2 saya mulai merasakan asyiknya belajar di teknik informatika dan dari itu bisa mengikuti dan mungkin ipk itu merupakan kebetulan :))


    narator : okee terim kasih kak atas informasinya :) sukses terus buat kakak :))

    Minggu, 23 Maret 2014

    Tugas kelompok

    Simulation of fuel purchases.

    Declaration
    Liter: integer;
    Uang (money): integer;
    Type of fuel: String;
    Description
    Read (Liter);
    Options Liter
    1. 1 Liter 6500
    2. 2 Liter 13000
    3. 3 Liter 19500
    4. 4 Litre 26000
    End {select}
    Write {L} 


    Program  
    # include (iostream) 
    Class fuel {

    Public:
    void input ();
    void process ();
    void output ();
    Private:
    int output;
    int liter;
    };

    void fuel:: insert () {
    cout <<"enter the price of fuel:";
    cin>> output;
    cout <<"type of fuel:"; cin>> output;
    }

    void fuel:: process () {
    output = liter * money
    }

    void fuel:: output () {
    cout <<"the output of the process:" <<result;
    }

    int main (int argc, char * argv []) {
    Fuel X;
    X input ();
    X process ();
    X output ();
    System ("pause");
    Return exit_success;
    }/ * Import to jeliot: * /
    {Public class fuel

    void static void input ();
    void static void process ();
    void static void output ();

    private int output;
    private int liter;
    };
    Public void input();{
    system.out.print ("enter the price of fuel")
    output = input.readint ();
    system.out.print ("type of fuel");
    output = input.readint ();
    }
    Public void process () {
    output = liter * money
    }
    Public void output () {
    system.out.print ("output of the process : " + result);
    }

    Public static void main () {
    X = new fuel fuel ();
    X.input ();
    X.procces ();
    X.output ();
    } }

    Latihan Individu 3

    Algoritma Nilai Terkecil Terbesar dan Jumlah Semua Bilangan Positif
    { menentukan nilai terkecil, terbesar, dan jumlah semua bilangan positif yang dimasukkan}


    Deklarasi :
    x,y : integer {data yang dibaca}
    n : integer {banyak data masukan, >0}
    min : integer {data terkecil/minimum}
    maks : integer {data terbesar/maksimum}
    i : integer {pencacah pengulangan}
    jumlah : real {jumlah bilangan positif} 


    Algoritma :
    read(n)
    read(x) {baca data pertama}
    min ← x {asumsikan min adalah data pertama}
    maks ← y {asumsikan maks adalah data terakhir}


    for i ← 2 to n do {lanjutkan dengan ke-2 sampai ke-n}
    read(x)
    if x < min then
    min ← x
    if y > maks then
    maks ← y
    endif
    while (x > 0) do
    jumlah ← jumlah + x
    read(x)
    n ← n + 1
    write(‘positif’)
    endfor
    jumlah ← x + 1
    write(min)
    write(maks)
    write(jumlah)

    Latihan Individu 2


    Algoritma untuk menghitung nilai dari 1 - 1/2 + 1/3 - 1/4 +....+ 1/n

    Algoritma Penjumlahan Deret Pecahan


    {Menjumlahkan deret dengan bentuk pecahan 1-1/2+1/3-1/4+…1/n. Nilai n


    dibaca, ditentukan terlebih dahulu}


    Deklarasi :
    jumlah : real {jumlah deret}
    n : integer {penyebut pada suku terakhir, n >0}
    i : integer {suku ke-i}
    p : integer {penyebut suku ke-i}


    Algoritma :
    read(n)
    jumlah ← 0
    i ← 1 {suku pertama}
    p ← 1 {penyebut suku pertama}
    while p ≤ n do
    if i mod 2 = 1 then {suku ke-i ganjil}
    jumlah ← jumlah + 1/p
    else
    jumlah ← jumlah – 1/p
    endif
    i ← i+1 {tinjau suku berikutnya}
    p ← p + 1 {tinjau penyebut suku berikutnya}
    endwhile
    {p > n}
    write(jumlah)

    Latihan Individu 1


    SOAL: 

    Buatlah algoritma dan program untuk mencetak bilangan yang habis dibagi 3 dan 5 antara1 sampai dengan 100.

    algoritma :
    {algoritma menerima inputan bilangan 1-100, melakukan perulangan for, menyeleksi bilangan yang habis dibagi 3 dan 5, mencetak bilangan yang habis dibagi 3 dan 5}

    deklarasi :
    int proses ();
    int total;

    deskripsi :
    read (a);
    total=0;
    for(int 1=0;1<100;1++)
    {if(i%3=0 && i%5==0)}
    {cout<<i<<" ";total+=1;}
    cout<<"total bilangannya adalah : ";
    cout<<total; return total;
    end if; endfor;
    write (a);


    jika diaplikasikan kedalam bahasa c++

    #include <cstdlib>
    #include <iostream>

    using namespace std;
    class vivin {
    private :
    int total;

    public :
    int proses();
    int output();
    };

    int vivin::proses(){
    total=0;
    for(int i=1; i<=100; i++)
    if (i %3==0 && i%5==0)
    {cout<<i<<" " ;
    total+=1;}


    cout<<" total dari bilangannya adalah : ";
    cout<<total;
    cout<<endl<<endl;
    return total;

    }


    int main()
    {
    cout<<"bilangan yang habis dibagi 3 dan 5 adalah : "<<endl<<endl;
    vivin a;
    a.proses();

    system("PAUSE");
    return EXIT_SUCCESS;
    }


    jika dirun akan tampil seperti dibawah ini :)





    semoga bermanfaat :)

    Sabtu, 22 Maret 2014

    Tugas Kelompok (loop)

    Perulangan Loop Dalam Kehidupan Sehari-hari


    1. saat mencuci pakaian


        pada saat mencuci pakaian hal pertama yang di lakukan adalah merendam cucian.           setelah di rendam maka ia akan mengkucek nya , jika baju masih terlihat kotor                     maka ia akan mengkucek baju tersebut secara berulang-ulang sampai baju benar-           benar terlihat bersih.


    2. menyisir rambut



        seseorang akan mulai merapikan atau rambut nya, saat dia mulai merasa rambutan         nya berantakan. aktifitas menyisir rambut ini lah yang akan di lakukan berulang- ulang       saat ia benar-benar merasa rambut nya rapi.


    3. menyapu



       Pertama-tama seseorang akan menyapu, jika terdapat beberapa kotoran atau sampah     di lantai, maka orang tersebut akan melakukan perulangan menyapu hingga keadaan       lantai bersih dari kotoran yang sebelumnya ada.




    nah itu lah tadi contoh looping dalam kehidupan kita sehari-hari ,...



    semoga bermanfaat :) :) :) :D

    Refleksi Alpro Minggu Ke 4


    hari ini kedua kali nya masuk jam enam lagi buat tanding sokoban, tapi aku kalah karna aku gak buat suka maen game,jadi harap maklum.. 

    1. Apa yang anda peroleh ?

    •      materi hari ini tentang loop
    • belajar perulangan for menggunakan c++ dan menggunakan raptor

    • belajar perulagan while  menggunakan c++ dan menggunakan raptor 
    • belajar perulangan repeat-until menggunakan c++ dan menggunakan raptor
    • menyeleaikan masalah deret fibonaci, buat raptor bilangan fibonasi program c++ di buat dengan menggunakan class..
    • penggunaan repeat until : repeat until : di ulang saat dia salah, while di ulang saat dia benar
    • latian  : mengurai bilangan (satuan,puluhan,ratusan)
    • latihan :membuat diamond dengn perulangan 
    • latihan :membuat tabel perkalian
    • dapat tugas lagi di power point sama di ebook..
    • tugas :- buat 3 contoh loop dalam kehidupan sehari-hari (di selesaikan kelompok)
    • tugas buku resto , dan tanyakan pada kk tingkat yang mengambil prodi teknik informatika untuk tanya masalah naik turun nya kuliah di prodi teknik informatika,
        

    2. Apa yang anda belum paham ?
    • belum terlalu paham tentang perulangan for
    • belum mengerti tentang perulangan while
    • belum mengerti tantang perulangan do while 
    • belum terlalu paham dengan bahasa inggris 

    3. Penyelesaian :
    • mencoba belajar berkali kali untuk membuat program dengan perulangan for
    • belajar bareng dengan teman"
    • mendapat jawaban dari kk tingkat
    • jika ada tugas di ebook di translate menggunakan google translate agar mudah memahami maksd nya

    Kamis, 20 Maret 2014

    Raising A Numbers To A Large Power



    mengurutkan bilangan dari yang terkecil sampai yang terbesar

    C++

    #include<iostream.h>
    #include<conio.h>
    int main(int argc, char *argv[])

    void main()
    {
     int nilai[20];
     int x,temp;
     cout<<"Masukkan Banyak Input = ";cin>>x;
     cout<<"Masukkan Input: "<<endl;
     for(int i=1;i<=x;i++)
        {
         cout<<"Nilai Ke-"<<i<<" : ";cin>>nilai[i];
        }
     cout<<"Input sebelum diurutkan : "<<endl;
     for(i=1;i<=x;i++)
        {
         cout<<"Nilai ke-"<<i<<" : "<<nilai[i]<<endl;
        }
     for(int j=1;j<=x;j++)
        {
         for(int k=j+1;k<=x;k++)
            {
             if(nilai[j]>nilai[k])
                {
                 temp=nilai[j];
                 nilai[j]=nilai[k];
                 nilai[k]=temp;
                }
            }
        }
        cout<<"Input setelah diurutkan : "<<endl;
        for(i=1;i<=x;i++)
            {
             cout<<"Nilai ke-"<<i<<" : "<<nilai[i]<<endl;
            }
            system("PAUSE");
        return EXIT_SUCCESS;
    }

    ---------------selamat mencoba---------

    Generation Of Pseudo-random Numbers


    => algoritma :

    nomor acak generator yang sering digunakan dalam ilmu komputer untuk amorig hal lainnya, tesrting dan menganalisis perilaku algoritma. urutan nomor acak harus menunjukkan Perilaku berikut. 
    Urutan 
    1.The akan muncul seperti pikir setiap nomor telah terjadi secara kebetulan. 
    2. setiap nomor harus memiliki probabilitas spesifik jatuh dalam kisaran tertentu.


    => program c++ nya :







    Computing The Prima Faktor Of An Integer

    => algoritma nya :
    1. membangun n jumlah faktor utama yang di cari
    2. menghitung sisa r dan q untuk pertama dan berikutnya
    3. tidak di tetapkan bahwa n adalah bilangan prima
    .4.  jika n lebih besar maka tambahkan n daftar  sebagai faktor utama.
         kembali.

    => program c++ nya :



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

    void main()
    {
    clrscr();
    int bil, I, J;
    cout << "input bilangan = ";
    cin >> bil;
    for (I=2; I<=bil; I++)
    {
    if (bil%I==0)
    {
    if (I==2)
    {
    cout << I << " ";
    }
    else
    {
    for (J=2; J<=I-1; J++)
    {
    if (I%J==0)
    {
    goto selesai;
    }
    }
    cout << I << " ";
    }
    selesai:
    }
    }
    }





    Selasa, 18 Maret 2014

    Generating Prime Numbers



    soal
    Setiap integer bisa di ekspresikan ke dalam hasil bilangna atau angka. Prima pola algoritma untuk memperhitungkan semua factor prima dan sebuah integer.

    input dan output

    A= integer
    R= integer
    I= integer
    X=integer
    X=integer

    algoritma

    A ß x div y
    R ß x mod x
    I ß 0
    While ( r =0) or (a > y) do
    If ( I :: 0) then
    I= i+1
    X [i] ß y
    Y ß a
    If r > I then
    [i] = r
    End while

    test data

    X=16
    Y= 2
    Q =16/2 =8
    R=16%2=6
    While (r-o) ll (Q > y) do
    If (r ==0) I = [+1]
    X [i] =2
    X=8

    jika diaplikasikan ke dalam c++

    Class prima {
    Friend ostream& operator << (ostream& prima&);
    Friend istream& operator >>(istream& prima7);
    Public;
    Void prima ();
    Prima ();
    Private;
    Int + [50],I,n;
    Int Q,R,S;
    };
    Void prima :: prima (){
    Q= n/5;
    R=n%5;
    I=0;
    While ((r=0) ll(Q >5)0{
    If (r==0){
    If(r==0){
    R= i+1;
    F(i)=5;
    N= Q; }
    Else{
    Q = n/5;
    R= n % 5 ;}
    }
    If ( n> 1){
    I= I + 1
    F [i]=n }
    }}

    semoga bermanfaat teman-teman :))

    The Greatest Common Divisor Of Two Integer



    soal

    masalah

       Di berikan 2 integer positif tidak atau bukan nol n & m, pola algoritma untuk mencari pembagi yang paling besar.

    input dan output
                      M= integer (input)
                      N =integer
                      Gcd= integer (output)
                      R= integer
                      D= integer

    algoritma

    Read m,n
    While (m <0) do
    R ß n mod m
    N ß m
    End while
    Gcd ß m
    Write = (gcd)

    test data

    M= 36             n= 28
    N= 28            m=8
    R=36 % 28      gcd = 8
    R= 8


    jika diaplikasikan kedalam c++

    Class gcd {
    Friend ostream& operator << (ostream. Gcd&);
    Friend istream& operator >> (istream. Gcd&);
    Public;
    Int hitung gcd (int ,int);
    Private ;
    Int x,y;
    };
    Int gcd :: hitung gcd (int ,(int d)
    { int r;
    While ( d> 0);
    R = c % d;
    D= d;
    D= r;
    }
    Return  ( r );
    }
    (istream& operation >> (istream& in, gcd& a){
    Cout << “ inputkan bilangan petama ;” ;
    In >> a.x;
    Cout << “ inputkan bilangan kedua ; “ ;
    In >> a.x;
    Return in; }

    Ostream& operation << istream& out , gcd& a){
    Out << “gcd ‘ << a.c << “.” << a. x << );”;
    Out << a.hitung gcd (a.x, a.y);
    Return out;
    }
    Void main (){
    Gcd run;
    Cin >> run ;
    Cout << run ;
    Getch ();
    }


    semoga bermanfaat :))

    The Smallest Divisor of an Integer

    =>  Masalah
    Di berikan sebuah n integer kemudian memikirkan algoritma untuk menentukan pembagi terkecil selain angka 1.


    =>  input dan output
    X=integer (input)
    R=integer
    D= integer
    Kpk = integer (output)


    => algoritma
    Menetukan pembagi terkecil dari sebuah bilangan
    Deklarasi
    X=integer
    R= integer
    D=integer
    Deskripsi
    Read x
    R ß sqrt (x);
    D ß 3
    If (n ! = n) then kpk =2
    Else
    While (n mod d ≤ 0) and (d < r) do
    D ß d + 2
    If (n mod :: 0) then kpk. D
    Else then kpk=1
    End while


    =>  test data


    X= 25
    R= 5
    If(x! =x)
    Kpk =2
    While x mod <> 0 end (d < r)
    Kpk = d+2


    jika kita aplikasikan kedalam bahasa c++



    Friend istream& operator >> (istream&, terkecil&);
    Friend ostream& operator >> (ostream&, terkecil&);
    Public;
    Void kpk ();
    Private ;
    Int x,n,d,k;
    };
    Istream& operator >> (istream& in, terkecil& a)}
    Cout <<”masukan bilangan “ ; in >> a,x;}
    Ostream& operator << (ostream out. Terkecil& b)}
    Out << “hasilnya “ << b.k <<endl; }
    Terkecil::terkecil (){
    Cout <<”mencari kpk “ ; }
    Void terkecil :: kpk (){
    If (n! =n) k= 3;
    Else while (n % d<) 0 && d < r ){
    D=d+2
    If (n % d :: 0 ) k=d;
    Else k = 1;}
    Int main (){
    terkecil m;
    Cin >>m ;
    m.FPB ();
    cout <<m ;
    getch ();
    return 0;
    }

    Minggu, 16 Maret 2014

    Bilangan terbesar antara 2 bilangan bulat



    tentukan bilangan terbesar antara dua bilangan bulat,,

    analisis :
    input : misalkan A dan B keduanya integer

    proses :
    bandingan A dan B, jika A>B maka A terbesar adalah output dan jika B>A maka B terbesar adalah output.

    algoritma

    {menetukan nilai terbesar antara dua bilangan bulat}

    deklarasi :
    a, b : integer

    deskripsi :
    read (a,b)
    if (a>b) then write (bilangan terbesar adalah : ',A) else write ('bilangan terbesar adalah : ',B) and if

    jika kita aplikasikan kedalam c++

    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main(int argc, char *argv[])
    {
        int a,b;
        cout<<"inputkan bilangan pertama : ";
        cin>>a;
        cout<<"inputkan bilangan kedua : ";
        cin>>b;
        
        if (a>b)
        cout<<" bilangan terbesar : "<<a;
        else 
        cout<<" bilangan terbesar : "<<b;
        cout<<endl;
        
        system("PAUSE");
        return EXIT_SUCCESS;
    }

    setelah run akan tampil :



    flowchat dari bilangan terbesar dari dua bilangan bulat,,,


     sekian dan terimakasih :) semoga bermanfaat :)))

    Kamis, 13 Maret 2014

    AKAR IMAGINER

    Carillah akar-akar persamaan kuadrat:

    => Deskripsi

    • read : a,b,c
    • disk <--b*b-4a*c
    • if (a=0) then write (bukan persamaan kuadrat)
    else if disk>0 then
    x1<--(-b)+sqrt(disk)/2*a
    x2<--(-b)-sqrt(disk)/2*a

    else if disk=0 then
    x1<--(-b)/2*a
    x2<--x1

    else write (akar imaginer)
    end if : write (x1,x2)

    => program c++ nya :






    => ini dy flowchart :






    Bilangan terbesar antara 3 bilagan

    Tentukanlah bilangan terbesar dari 3 bilangan :

    => analisis

    • input x,y,z(integer)
    • proses
    • output 

    => ini algoritmanya :


    => ini flowchart nya :


    TERIMAKASIH