Facebook Follow

Game Logika untuk Programmer Petani, anjing, domba dan sayuran.

Langkah-langkah menyelesaikan game logika 2 1.pertama klik play untuk memulai.

Permaina Logika Asah Kemampuan Berlogika anda dijamin seru ,Keluarga Menyeberangi Jembatan Kayu.

Langkah langkah menyelesaikan Game logika 1.Pertama klik play dulu untuk memulai game

Tugas Praktik Program sederhana C++

Tugas : membuat program untuk menampilkan 1.Nama , 2.NIM,

Senin, 28 Januari 2019

Penjadwalan Algortima FCFS (First Come First Server)

Penjadwalan Algortima FCFS (First Come First  Server)

Algoritma FCFS(First Come First Server) merupakan Proses yang akan tiba terlebih dahulu, maka akan dilayani dahulu.Apabila proses datang pada waktu yang bersamaan maka akan dilayani dengan urutan antrian.Antrian algoritma dengan contoh sebagai berikut:

Dengan proses tiba P4,P3,P2,P1 maka dibuat giant chart seperti dibawah ini :



Selasa, 17 Juli 2018

Membuat Selection Sorting dengan C++



Membuat Selection Sorting Dengan C++



Minggu, 27 Mei 2018

Menampilkan Bintang di dibahasa C++ berdasarkan nilai Inputan dari USER

Menampilkan Bintang di dibahasa C++ berdasarkan nilai Inputan dari USER  penampakannya seperti dibawah ini untuk source codenya silahkan dicoba sendiri ya :D


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

int main(){
int a,b,inp;
   cout<<"N:";cin>>inp;
cout<<endl;
for(a=1;a<=inp;a++){
    cout<<endl;
for(b=1;b<=a;b++){
    cout<<"*"<<"";
}
}
for(a=1;a>=0;a--){
    cout<<endl;
for(b=0;b<=a;b++){
cout<<"*"<<"";
}
}

cout<<"\nN:";cin>>inp;
cout<<endl;

for(a=1;a<=inp;a++){
    cout<<endl;
for(b=1;b<=a;b++){
cout<<"*"<<"";
}
}
for(a=2;a>=0;a--){
    cout<<endl;
for(b=0;b<=a;b++){
cout<<"*"<<"";
}
}

getch();
}

Sabtu, 26 Mei 2018

Rekursif dan Iterasi pada pemrograman bahasa C++


Definisi  tentang Rekursif dan Iterasi


Rekursif adalah fungsi yang memanggil dirinya sendiri secara langsung ataupun tidak, dan proses pemanggilannya itu disebut rekursi.



Prinsif dan proses rekursi:
·         Memiliki kasus non rekursi(sederhana)
·         Kasus awal diarahkan menuju kasus sederhana
·         Mendefinisikan proses rekursi



Bentuk rekursif :
·         Suatu subrutin/fungsi/ prosedur yang memanggil dirinya sendiri.
·         Bentuk dimana pemanggilan subrutin terdapat dalam body subrutin
·         Dengan rekursi, program akan lebih mudah dilihat



Kelebihan perulangan rekursif:
·         Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar
·         Dapat melakukan perulangan dengan batasan fungsi




Kekurangan perulangan rekursif:
·         Tidak bisa melakukan nested loop atau looping bersarang.
·         Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu saja.
·         Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalaya akan menyebabkan stack tak cukup lagi (Stack Overum).
·         Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk





Iterasi adalah sifat tertentu darialgoritma atau program komputer di mana suatu urutan atau lebih dari langkah algoritmik dilakukan di loop program, dapat juga diartikan sebagai suatu proses atau metode yang digunakan secara berulang-ulang (pengulangan) dalam menyelesaikan suatu permasalahan matematik.




Kelebihan Iterasi :
·         Dapat mengakomodasi jika terjadi perubahan pada tahapan pengembangan yang telah dilaksanakan.
·         Dapat disesuaikan agar system bisa dipakai selama hidup software computer.
·         Cocok untuk pengembangan sistem dan perangkat lunak skala besar.
·         Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tahapan karena system terus bekerja selama proses.



Kekurangan Iterasi :
·         Hanya berlaku untuk Short-Lifetime system.
·         Tahapan proses tidak terlihat sedang berada ditahapan mana suatu pekerjaan.
·         Memerlukan alat ukur kemajuan secara regular.
·         Perubahan yang sering terjadi dapat merubah struktur system.
·         Memerlukan tenaga ahli dengan kemampuan tinggi.





Perbedaan dari Rekursif dan Iterasi



Rekursif :
·         Kode program lebih ringkas dan mudah dipahami
·         Membutuhkan alokasi memori yang besar
·         Tidak cocok ketika kinerja tinggi diperlukan, karena terjadi overhead pemanggilan fungsi dalam jumlah yang relatif besar
·         Merupakan fungsi menggunakan IF



Iterasi :
·         Kode program lebih panjang, untuk beberapa kasus solusi iteratif lebih sulit diterapkan
·         Relatif lebih kecil alokasi memorinya
·         Cocok diterapkan ketika kinerja aplikasi harus diterapkan (hanya ada satu kali pemanggilan fungsi)
·         Dapat berjalan pada program yang terdiri dari prosedur (rtidak terdapat fungsi) menggunakan FOR, WHILE, DO-WHILE

contoh program Rekursif

Dibawah ini Source codenya
#include <iostream.h>

#include <conio.h>

long int faktorial( long int a); //Prototype Fungsi

main(){
 long int faktor;
 long int n;
   cout<<"Masukan Nilai Faktorial = ";
   cin>>n;
   faktor = faktorial(n);
   cout<<n<<"! = "<<faktor<<endl;
   getch();
}

long int faktorial( long int a){
   if(a==1 || a==0){
    return(1);
   }else if (a>1){
    return(a*faktorial(a-1));
   }else{
    return(0);
   }
}





#Contoh Program Iterasi


Dibawah ini untuk Source Codenya
#include <stdio.h>
#include <conio.h>
#include <iostream>

int main () {
printf("Program Iterasi Perpangkatan \n\n");
int x,a,hasil;
{
printf ("masukkan nilai x = "); scanf("%d",&x);
printf("masukkan nilai a = "); scanf("%d", &a);
for (int i=0; i<a; i++)
hasil= x*x;
cout<<"hasil pemangkatan "<<x <<"^" <<a <<" = " <<hasil;
}
getch();
}


Membuat Program Perpangkatan Dengan C++ degan metode Rekursif

Hasilnya gambar berikut

Dan dibawah berikut Source Code nya
#include <conio.h>
#include <iostream.h>
int pangkat(int bil, int n){
    if(n == 1){
    return bil;
    }else if(n==0){
    return 1;
    }else{
  return bil*pangkat(bil,n-1);
  }
   }

   int main(){
    int x,y,i;
      cout<<"Menghitung x^y:"<<endl;
      cout<<" X :";
      cin>> x;
      cout<<" Y :";
      cin>> y;
      cout<<x<<"^"<<y;
      cout<<"Hasil :  "<<pangkat(x,y)<<endl;


   getch();
   return (1);
   }


Minggu, 06 Mei 2018

Latihan Array Multidimensi


Latihan Array Multidimensi Pada Bahasa Program C++


Selasa, 27 Maret 2018

Penjadwalan Proses FCFS dan SJF


First Come First Server (FCFS)
Pertama datang, pertama dilayani (First In, First Out atau FIFO) tidak peduli apakah burst time nya panjang atau pendek, sebuah proses yang sedang dikerjakan diselesaikan terlebih dulu barulah proses berikutnya dilayani.
Penjadwalan FCFS merupakan penjadwalan:
         Penjadwalan non-prevebtive (run-to-completion)
         Penjadwalan tidak berprioritas
Ketentuan dari penjadwalan FCFS adalah:
         Proses-proses diberi jatah waktu pemroses, diurut dengan waktu kedatangannya.
         Begitu proses mendapat jatah waktu pemproses, proses dijalankan sampai proses tersebut selesai, walaupun ada proses lain yang datang, proses tersebut berada dalam antrian sistem atau disebut dengan ready queue.
Pada dasarnya algoritma penjadwalan ini cukup adil dalam hal bahasa, karena proses yang datang lebih dulu dikerjakan terlebih dahulu. Dari segi konsep sistem operasi, penjadwalan model ini tidak adil karena proses-proses yang membutuhkan waktu yang lama membuat proses-proses yang memiliki waktu proses yang lebih pendek menunggu sampai proses yang lama tersebut selesai, sedangkan proses-proses yang tidak penting membuat proses penting menunggu.
Penjadwalan FCFS cocok digunakan untuk sistem batch yang sangat jarang melakukan interaksi dengan user secara langsung, tapi tidak cocok digunakan untuk sistem interaktif karena tidak memberi waktu tanggap yang bagus, begitu juga dengan waktu sistem nyata.
Contoh dari penjadwalan FCFS adalah:



Misalnya proses-proses yang akan dikerjakan oleh CPU adalah sebagai berikut:
Pada saat posisi P1 masuk pada waktu 0, maka P1 dijalankan sebanyak 12, dan P2 masuk pada saat 2, P3 pada saat 3, P4 pada saat 5, dan P5 pada waktu 9. Pada posisi 12 P1 selesai dikerjakan, dan P2 akan dieksekusi karena P2 lebih dulu berasa di dalam Ready Queue (RQ) karena pada contoh diatas menggunakan algoritma FCFS (First Come Firs Server) dan begitulah seterusnya sampai semua proses selesai dikerjakan. Setelah semua proses selesai dikerjakan maka dihitung waktu tunggu setiap proses, maka akan ditemukan jumlah waktu tunggu rata-rata dari setiap proses, seperti contoh di bawah ini:
Jadi waktu tunggu setiap proses adalah:



Rata-rata waktu tunggu untuk setiap proses adalah: Avg 65/5 = 13 satuan waktu.
Jika urutan proses pada contoh diatas dibalikkan misal : P5, P4, P3, P2 , P1 dengan waktu menganggur CPU (idle time) antar awaktu 1 dan 2 sehingga panjangnya waktu yang dibutuhkan untuk menyelesaikan lima proses tersebut menjadi 29 atau bertambah satu dari waktu yang dibutuhkan sebelumnya.



Algoritma FCFS termasuk non-preemptive, karena sekali CPU dialokasikan pada suatu proses, maka proses tersebut tetap akan memakai CPU sampai proses tersebut melepaskannya, yaitu jika proses tersebut berhenti atau meminta I/O.
Penggunaan algoritma FCFS yang lebih kompleks dengan menambahkan aktivitas input dan output sebagai berikut:

2.SRF (Shortest Remaining First)

Penjadwalan ini merupakan:

    Penjadwalan preemptive
    Penjadwalan berprioritas dinamis

Penjadwalan SRF merupakan perbaikan dari SJF. SJF merupakan penjadwalan nonpreemptive sedang SRF adalah preemptive yang dapat digunakan untuk sistem timesharing.

Ketentuan:

Pada SRT, proses dengan sisa waktu jalan diestimasi terendah dijalankan, termasuk proses-proses yang baru tiba.

Perbedaan SRF dengan SJF
Pada SJF, begitu proses dieksekusi, proses dijalankan sampai selesai.
 Pada SRT proses sedang berjalan (Running) dapat diambil alih oleh proses baru dengan sisa waktu jalan yang diestimasi lebih rendah.

Kelemahan:

SRT mempunyai overhead yang lebih besar dibandingkan SJF. SRT memerlukan penyimpanan waktu layanan yang telah dihabiskan proses dan kadang-kadang harus menangani peralihan.

 Tibanya proses-proses kecil akan segera dijalankan.
 Proses-proses lebih lama berarti dengan lama dan variasi waktu tunggu lebih lama dibandingkan pada SJF.

Secara teoritis SRT memberi waktu tunggu minimum tapi karena adanya overhead peralihan maka pada situasi tertentu SJF bisa memberi kinerja yang lebih baik dibanding SRT.