Tampilkan postingan dengan label Pemrograman C. Tampilkan semua postingan
Tampilkan postingan dengan label Pemrograman C. Tampilkan semua postingan

Sabtu, 21 Januari 2012

Program mencari KPK dan FPB dari 2 buah bilangan menggunakan C++


sob dulu waktu SD pasti waktu pelajaran matematika pernah belajar tentang KPK dan FPB, kali ini ane bakal kasih program cara mencari KPK dan FPB dari 2 bilangan menggunakan C++. penjelasan tentang KPK dan FPB kalo lupa silahkan tanya mbah google aja mumpung orangnya lagi melek. hehehe so, langsung aja ini nih programnya

listing program KPK :

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

void main()
{
int i,a,b,kpk;
kpk=0;
clrscr();
cout<<"===Pencarian KPK==="<<endl<<endl;
cout<<"nMasukkan Nilai A = ";
cin>>a;
cout<<"Masukkan Nilai B = ";
cin>>b;
cout<<endl;

for(i=1;i<=b;i++)
 {
     kpk=kpk+a;

    if(kpk % b==0)
     {
         cout<<"KPK antara "<<a<<"  dan  "<<b<<" adalah "<<kpk;
       break;
       }
   }

getch();
}

listing program FPB :

#include <iostream.h>
#include <conio.h>
int main()
{
int m,n,r;
cout << "Masukkan nilai A : ";
cin >> m;
cout << "Masukan nilai B : " ;
cin >> n;
r = m%n;
while (r!=0)
{
m = n;
n = r;
r = m%n;
}
cout << "Faktor Persekutuan Terbesar dari A dan B adalah : " <<n<<endl;
getch();
}

Selengkapnya...

Jumat, 20 Januari 2012

Program Penjadwalan Proses/Scheduling FIFO menggunakan C++


Penjadwalan FIFO ini merupakan penjadwalan tidak berprioritas, dan penjadwalan dengan ketentuan-ketentuan paling sederhana, yaitu:

Proses-proses diberi jatah waktu pemroses diurutkan berdasarkan waktu kedatangan proses-proses itu ke system. Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.
Penjadwalan ini dikatakan adil dalam arti resmi (dalam semantic/arti antrian, yaitu proses yang pertama datang, akan dilayani pertama juga), tapi dinyatakan tidak adil karena proses-proses yang perlu waktu lama membuat proses-proses pendek menunggu. Proses-proses tidak penting dapat membuat proses-proses penting menunggu.

FIFO jarang digunakan secara mandiri tapi dikombinasikan dengan skema lain, misalnya: Keputusan berdasarkan prioritas proses, sedangkan untuk proses-proses berprioritas sama diputuskan berdasarkan FIFO.

Kelebihan FIFO

Dalam kriteria efisiensi, penjadwalan FIFO sangat efisien dalam penggunaan proses.
Algoritmanya cukup sederhana

Kelemahan FIFO

*Dalam kriteria adil, penjadwalan FIFO adil dalam arti resmi (dalam semantic/arti antrian) yaitu proses yang pertama datang, akan dilayani pertama juga), tapi dinyatakan tidak adil karena proses-proses yang perlu waktu lama membuat proses-proses pendek menunggu. Proses-proses tidak penting dapat membuat proses-proses penting menunggu.
*Penjadwalan sangat tidak memuaskan karena proses menunggu lama, aktu tanggapnya sangat jelek. *Tidak cocok untuk sistem interaktif.
*Turn around time tidak bagus.
*Throughtput tidak bagus.
*Tidak dapat digunakan untuk sistem waktu nyata (real-time applications).
NB:Turn Arround time adalah waktu yang dihabiskan dari saat proses atau job mulai masuk ke system sampai proses itu diselesaikan system. Waktu yang dimaksud adalah waktu yang dihabiskan proses berada di system, diekspresikan sebagai penjumlahan waktu eksekusi (waktu pelayanan proses/job) dan waktu menunggu dari proses itu, yaitu:
Turn Arround time = waktu eksekusi + waktu menunggu
Sasaran penjadwalan adalah menimbulkan turn arround time
oke deh setelah panjang lebar langsung aja ane kasih source code programnya dengan C++

listing programnya :
# include <stdio.h>
# include <conio.h>
# include <iostream.h>
main()
{
int k=0,ptime[25],n,s=0,i,sum=0;
char name[25][25];
float avg;
printf("n FIFO SCHEDULING PROGRAM n");
printf("n Nama  : Alex Junatan Adiputra n");
printf("n NBI   : 461003167 n");
printf("n MK    : Sistem Operasi n");
printf("n Dosen : Dr.Ir Hotman Pandjaitan MT n");
printf("n n");
printf ("MASUKKAN JUMLAH PROSES: t");
scanf ("%d",&n);
for(i=0;i<n;i++)
{
printf("MASUKKAN NAMA PROSES: t");
printf("%d t",i+1);
scanf("%s",name[i]);
}
printf("n n");
for(i=0;i<n;i++)
{
printf("MASUKKAN LAMA PROSES: t");
printf("%s t",name[i]);
scanf("%d",&ptime[i]);
}
printf("n n");
printf("------------------------------------------");
printf("n| process – name  |   process – time     |n");
printf("------------------------------------------");
printf("n");
for(i=0;i<n;i++)
{
printf("| t %s t  | t t %d t | n",name[i],ptime[i]);
}
printf("------------------------------------------");
printf("n n    ....::: FIFO SCHEDULING :::.... n n");
for(i=0;i<n;i++)
{
printf("t process %s from %d to %d n", name[i],k,(k+ptime[i]));
k+=ptime[i];
}
for(i=0;i<(n-1);i++)
{
s+=ptime[i];
sum+=s;
}
avg=(float)sum/n;
printf("nn Waktu Tunggu Rata-rata: t");
printf("%2fmsec",avg);
sum=avg=s=0;
for(i=0;i<n;i++)
{
s+=ptime[i];
sum+=s;
}
avg=(float)sum/n;
printf("n turn around time is t");
printf("%2fmsec",avg);
getch();
}

Semoga Bermanfaat ...
Selengkapnya...

Rabu, 04 Januari 2012

Program Penjadwalan Proses Menggunakan Shortest Job First Dengan C++


Berikut ini adalah source code program penghitungan waiting time dan turn around time sistem penjadwalan proses menggunakan Shortest Job First dengan C++. Program ini di buat pake aplikasi Array. Tapi sayangnya gag bisa untuk menghitung arrival time. so, cekidot





Ini listing programnya :
# include
# include

main()
{
int k=0,ptime[25],n,s=0,i,sum=0, atime[25],at[25];
char name[25][25], m[25][25];
int t,p,time[10],j,l;
float avg;

printf("===============================================\n");
printf(" PROGRAM PENJADWALAN SHORTEST JOB FIRST (SJF) \n");
printf("===============================================\n\n");
printf ("Masukkan jumlah proses: ");
scanf ("%d",&n);
printf ("\n\n");
for(i=0;i {
printf("Masukkan nama proses ");
printf("%d : ",i+1);
scanf("%s",name[i]);
}
printf("\n \n");

for(i=0;i {
printf("Masukkan lama proses ");
printf("%s : ",name[i]);
scanf("%d",&ptime[i]);
}

printf("\n");
printf("---------------------------------");
printf("\n| Nama Proses \t| Lama Proses \t|\n");
printf("---------------------------------\n");

for(i=0;i {
printf("|\t %s \t|\t %d \t|\n",name[i],ptime[i]);
printf("---------------------------------\n");
}

printf("\n \nPENJADWALAN SJF \n \n");
for(i=0;i {
time[i]=ptime[i];
at[i]=atime[i];
}
for(i=0;i {
for(j=i+1;j {
if(time[i]>time[j])
{
p=time[i];
time[i]=time[j];
time[j]=p;

l=at[i];
at[i]=at[j];
at[j]=l;

strcpy(m[i],name[i]);
strcpy(name[i],name[j]);
strcpy(name[j],m[i]);
}
}
}

printf("Tabel setelah diurutkan berdasarkan SJF");
printf("\n");
printf("---------------------------------");
printf("\n| Nama Proses \t| Lama Proses \t|\n");
printf("---------------------------------\n");

for(i=0;i {
printf("|\t %s \t|\t %d \t|\n",name[i],time[i]);
printf("---------------------------------\n");
}

for(i=0;i {
printf("\nProses %s dari %d ke %d \n",name[i],k,(k+time[i]));
k+=time[i];
}

for(i=0;i<(n-1);i++)
{
s+=time[i];
sum+=s;
}
avg=(float)sum/n;
printf("\n\nRata-rata Waktu Tunggu : \t");
printf("%2f",avg);
sum=avg=s=0;


for(i=0;i {
s+=time[i];
sum+=s;
}
avg=(float)sum/n;
printf("\n\nRata-rata Turn Arround Time : \t");
printf("%2f",avg);
sum=avg=s=0;

printf("\n\n");
printf("\n\n=========================================\n");
printf("Terimakasih telah menggunakan program ini\n");
printf("=========================================\n");
printf("\n");
}
Semoga Bermanfaat ...
Selengkapnya...

Senin, 14 November 2011

Program Binary tree/Pohon Biner dengan C++


setelah sekian lama gak posting sama sekali, rasanya dah kangen banget nih mau nulis di blog jelek ini, kali ini ane pengen posting tugas yang dari pak Ery dosen Desain dan Analisa Algoritma ane, dosen yang dingin tapi kalo udah diajak ngobrol pasti lu semua pasti mikir lagi kalo mau bilang dia killer. gua kasih 2 jempol kalo bisa dapat nilai A kalo mata kuliah lu diampu sama dosen ini (mudah2an doi gak denger, hehehe). oke tanpa bertele2 ini nih source code program Binary tree/Pohon biner yang juga belum ane mengerti .hehehehe. tapi jalan koq 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;
}
}
}

Semoga Bermafaat ...
Selengkapnya...

Senin, 10 Januari 2011

Tips sukses Belajar C++

Menurut Anda susahkan belajar bahasa pemrograman? Terutama bahasa pemrograman C++? Tentu ini menjadi pertenyaan tersendiri untuk Anda. Banyak orang yang belajar bahasa pemrograman C++, namun hanya beberapa yang sukses menaklukkan bahasa pemrograman yang satu ini. Yang lainnya kadang hanya menguasai dasar tanpa bisa terus berkembang. Menjadi seorang programmer tentu harus bisa menguasai minimal 1 atau 2 bahasa pemrograman. Apalagi C++ adalah bahasa pemrograman yang cukup diminati banyak orang di Indonesia. Tercatat setiap dosen Teknologi/Sistem Komputer pasti minimal bisa menguasai pemrograman C++. Lalu dari mana atau bagaimana mereka semua bisa menjadi programmer seperti itu? Mari kita temukan solusinya.

Awal saya kuliah mengenal yang namanya algoritma. Saya sangka algoritma itu adalah matematika karena sekilas katanya yang mirip dengan logaritma dalam matematika. Tapi ternyata tidak! Algoritma berbeda dengan Logaritma. Nah saya mempunyai beberapa tips yang mungkin berguna bagi kalian semua dalam mempelajari bahasa pemrograman, terutama C++. Berikut adalah kiat-kiat sukses belajar pemrograman C++:



  1. Sering-seringlah membaca modul atau buku panduan belajar pemrograman. Ini sangat penting untuk menambah wawasan Anda dalam teori ataupun materi. Bila perlu, tabung uang Anda dan beli satu buku bahasa pemrograman setiap awal bulan. Itulah yang saya lakukan selama ini. Walau tidak semua buku yang saya beli adalah bahasa pemrograman.
  2. Sering-seringlah melatih kemampuan Anda dalam menyelesaikan masalah algoritma pemrograman. Apabila kalian menemukan masalah, cobalah untuk menyelesaikannya kedalam pemrograman. Atau coba-cobalah untuk membuat program tertentu yang menurut kalian menarik. Atau kalian dapat membuat program dalam matematika, contohnya, program matriks dalam C++, atau rumus fisika lainnya.
  3. Practice make perfect! Slogan yang satu ini sangat ampuh dan berguna untuk menguasai pemrograman C++. Karena semakin sering kita latihan, semakin terasah kemampuan kita dalam menyelesaikan masalah. Semakin bertambah ilmu kita dalam membuat program.
  4. Jangan malu bertanya! Banyak para mahasiswa yang malu bertanya ketika sedang mengalami kesulitan dalam memecahkan algoritma pemrograman. Ketika menemui jalan buntu dan tidak bisa menyelesaikannya, biasanya kita menyerah dan pasrah. Ini adalah suatu sikap yang keliru! Sebisa mungkin, tanyakan pada dosen Anda atau pada kakak senior yang mungkin sudah mengetahui masalah Anda.
  5. Ketahui apa yang membuat program error atau perhatikan error handling. Ketika kita meng-compile syntax yang kita buat, terkadang muncul tanda compile gagal, ada syntax yang salah. Nah, disini dituntut ketelitian kita dalam memperbaiki syntax sehingga pada saat di-compile akan sukses. Semakin sering kalian mengalami syntax error, semakin terasah kemampuan kalian dalam memperbaiki program. Asalkan kalian mau berusaha agar tidak terjadi syntax error lagi, pasti kalian bisa. Jangan setiap menemui syntax error kalian langsung menyerah dan cuek.
  6. Kembangkan program yang sudah ada. Apabila kalian berhasil membuat beberapa program, coba kembangkan program tersebut. Misal kalian berhasil membuat 3 program, program luas segitiga, lingkaran, dan volume tabung. Kembangkan ketiga program tersebut menjadi satu program dalam bentuk menu pilihan. Dimana jika kita memilih tombol 1 maka kita akan menuju program luas segitiga dst sampai kita menekan tombol 4 yang artinya keluar dari program. Begitulah kira-kira.
  7. Luangkan waktu satu atau dua jam setiap harinya untuk praktek dan membaca. Lakukan ini diluar jam kampus. Dengan mengalokasikan waktu untuk belajar, maka kalian akan lebih cepat dalam memahami dan menguasai bahasa pemrograman.
Sekian tips yang dapat saya berikan. Semoga bermanfaat bagi Anda yang ingin mempelajari bahasa pemrograman dengan sukses. Salam Informatika

Selengkapnya...

Minggu, 09 Januari 2011

Struktur do-while + contoh Programnya


oke temen-teman langsung aja kali ini saya mau posting materi kuliah beberapa waktu lalu. kali ini tentang penggunaan struktur " do-while ".mungkin bagi yang sudah pernah belajar pemograman tentu hal ini sudah tak asing lagi.perulangan do-while memiliki struktur seperti berikut :
do
{
Pernyataan1;
Pernyataan2;
...
}while (kondisi);

Bagian pernyataan1, pernyataan2, dst akan dijalankan secara berulang sampai kondisi bernilai salah.Namun berbeda dengan while, pengujian kondisi dilakukan di belakang(setelah bagian pernyataan). Jadi bagian pernyataan pada do-while minimal akan dijalankan sekali.
Contoh :

#include <iostream.h>
#include <conio.h>
void main(){
int a= 1;
do
{
cout << a << " ";
a++;
}while(a<= 10);
getch();
}


berikut contoh program sederhana menggunakan struktur do-while. program ini untuk menghitung potongan harga . definisi program ini sebagai berikut:  apabila seseorang seseorang belanja dibawah 50.000 maka akan mendapatkan potongan sebesar 10%, apabila seseorang belanja kurang dari 100.000 maka akan mendapatkan potongan 20%, apabila seseorang belanja kurang dari 200.000 maka akan mendapat potongan 40% dan apabila seseorang belanja lebih dari 200.000 maka mendapat potongan 50%. langsung aja source kodenya #include <iostream.h> #include <conio.h> void main(){ char pilih; do{ int harga,diskon,bayar; clrscr(); cout<<"masukkan harga awal="; cin>>harga;     if(harga<=50000){        diskon=0.1*harga;       bayar=harga-diskon;       cout<<"anda mendapat potongan harga="<<diskon<<endl;       cout<<"jadi anda harus membayar sebesar" <<bayar<<endl;}    else if(harga<=100000){        diskon=0.2*harga;       bayar=harga-diskon;       cout<<"anda mendapat potongan harga="<<diskon<<endl;       cout<<"jadi anda harus membayar sebesar" <<bayar<<endl;}    else if(harga<=200000){        diskon=0.4*harga;       bayar=harga-diskon;       cout<<"anda mendapat potongan harga="<<diskon<<endl;       cout<<"jadi anda harus membayar sebesar" <<bayar<<endl;}    else {diskon=0.5*harga;       bayar=harga-diskon;       cout<<"anda mendapat potongan harga="<<diskon<<endl;       cout<<"jadi anda harus membayar sebesar" <<bayar<<endl;}   cout<<"ingin melanjutkan(y/t)";   cin>>pilih;   }while (pilih=='y');       getch(); }


gimana?jalan gak programnya?
kalo ada yang kurang jelas silahkan mengisi kolom komentar di bawah. pasti saya balas
semoga bermanfaat teman-teman. matur tengkyu
salam informatika :)

Selengkapnya...

 

© free template by Blogspot tutorial

" Blog Pelajar yang selalu ingin belajar "