Tampilkan postingan dengan label Algoritma dan Pemrograman. Tampilkan semua postingan
Tampilkan postingan dengan label Algoritma dan Pemrograman. Tampilkan semua postingan

Kamis, 10 April 2014

Sub Program

Dalam algoritma pemrograman pembahasan subprogram yaitu dalam programnya menampilkan lebih dari satu output.
Sebagai contoh,suatu pekerjaan yang dilakukan oleh seseorang tentu akan dilakukan oleh orang tersebut sesuai profesinya.
Misal,seorang direktur tentu akan memimpin suatu perusahaan dengan banyak pekerja dibawahnya. Mereka otomatis (bawahan direktur) akan melakukan pekerjaannya masing2 sesuai dengan yang mereka kerjakan,dan direktur tersebut hanya menerima hasil jadinya.
Dalam dalam proses tersebut bisa kita aplikasikan ke dalam algoritma subprogram,dengan membuat prosedurnya terlebih dahulu.
Kali ini saya punya contoh dalam subprogram flowchart raptor,yaitu suatu bilangan yang outputny akan menampilkan hasil +5.
Jadi misalnya kita inputkan angka 4,maka akan keluar hasilnya 9. Itu terjadi juga seperti contoh yang diatas. Membuat prosedur dan maka akan memunculkan hasil sesuai dengan perintah atau kerjanya dari inputannya tersebut.


Langkah-langkahnya :::
Tutorial Tahap membuat subprogram menggunakan RAPTOR
1. buka file latian 1.rap.. file bisa diunduh disini
2. klik kanan pada bagian main, pilih add procedure
2. Beri nama procedure, pada bagian paling atas
3. Ubah MODE nya menjadi Intermediate yah
4. Parameter input (dicentang) : x, parameter output (dicentang) : hasil
ini SS nya..






5. Isikan algoritma seperti menulis di main di dalam procedure tambah5
6. Kembali pada bagian main, kita panggil procedure tadi. hasilnya :


Gambar flowchart dibawah ini yaitu akan memunculkan output +5.



dalam flowchart subprogram dibawah ini,kita membuat dua flowchart dalam satu raptor. Yang flowchart pertama kita inputkan telebih dahulu variabelnya,kemudian kita outputkan hasilnya. Flowchart yang kedua kita membuat prosedur untuk pemanggilan variabel tersebut,kemudian di proses di dalam flowchart kedua. Maka kalau kita jalankan flowchart tersebut,hasilnya akan menginputkan kan suatu angkan dan hasil outputnya +5 (sesuai contoh diatas).

Rabu, 09 April 2014

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

jika diaplikasikan kedalam c++

#include
#include
#include
#include // 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<<" "<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<<" "<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<>ch;
cout<>tmp;
insert(tmp);
break;
case 2 : cout< cout<<"Kunjungan In-Order"< cout<<"---------------"< print_inorder();getch();
break;
case 6 : cout<<"Menghitung Jumlah Node"< cout<<"------------------"< cout<<"Jumlah Node = "< getch();
break;
case 7 : cout<<"Menghitung Tinggi Pohon"< cout<<"------------------"< cout<<"Tinggi Pohon = "< getch();
break;
case 9 : cout<<"Mecari Data Terbesar"< cout<<"------------------"< cout<<"Data Terbesar Adalah = "< cari_terbesar(root);
getch();
break;
case 10 : return 0;
break;
default: cout<<"Pilihan yang Anda Masukkan salah!"< getch();
break;
}
}
}

7.4 Linked List Linsertion and Deletion

algoritma

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


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" < }
}
return 0;
}