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,

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.





Senin, 26 Maret 2018

Selasa, 20 Maret 2018

Macam macam Proses dalam Sistem

PENCIPTAAN PROSES





Penciptaan proses meliputi beberapa tahap :


1. Beri satu identifier unik ke proses baru. Isian baru ditambahkan ke tabel proses utama yang berisi satu isian perproses.
2. Alokasikan ruang untuk proses.
3. PCB harus diinisialisasi.
4. Kaitan-kaitan antar tabel dan senarai yang cocok dibuat.
5. Bila diperlukan struktur data lain maka segera dibuat struktur data itu.


PENUNDAAN PROSES (SUSPEND A PROCESS)




1. Penundaan (suspension) adalah operasi penting dan telah diterapkan dengan beragam cara.
2. Penundaan dapat diinisialisasi oleh proses itu sendiri atau proses lain
3. Penundaan biasanya berlangsung singkat dan sering dilakukan sistem untuk memindahkan proses-proses tertentu guna mereduksi beban sistem selama beban puncak.
4. Pada sistem monoprocessor, proses running dapat men-suspend dirinya sendiri karena lak ada proses lain yang juga running yang dapat memerintahkan suspend.
5. Pada sistem multiprocessor, proses running dapat di-suspend proses running lain pada pemroses berbeda. Proses ready hanya dapat di-suspend oleh proses lain.


PROSES PELANJUTAN KEMBALI (RESUME A PROCESS )




1. Jika sistem berfungsi secara buruk dan mungkin gagal maka proses-proses dapat di- suspend agar di-resume setelah masalab diselesaikan.
2. Pemakai yang ragu/khawatir mengenai basil proses dapat men-suspend proses [bukan membuang (abort) proses]. Saat pemakai yakin proses akan berfungsi secara benar maka dapat me-resume (melanjutkan kembali di instruksi saat di-suspend) proses yang di-suspend.
3. Sebagai tanggapan terhadap fluktuasi jangka pendek beban sistem, beberapa proses dapal di-suspend dan di- resume saat beban kembali ke tingkat normal.


PENGHANCURAN / TERMINASI


Proses Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu :


1. Sumber daya-sumber daya yang dipakai dikembalikan.
2. Proses dihancurkan dari senarai atau tabel sistem.
3. PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas).

Message Passing

Message Passing adalah proses komunikasi antar bagian sistem untuk membagi variabel yang dibutuhkan. Proses ini menyediakan dua operasi yaitu mengirim pesan dan menerima pesan. Kegunaan Message Passing :

Shared-memory pada multiprocessor
Shared-memory pada uniprocessor
Sistem terdistribusi
Karakteristik perancangan message passing:

A. Synchronization

a. Send

blocking
nonblocking
b. Receive

blocking
nonblocking
test for arrival
B. Addressing

Direct :

a. Send

b. Receive

explicit
implicit
Indirect :

static
dynamic
ownership
C. Format

a. Content

b. Length

fixed
variable
D. Queuing Discipline

a. FIFO

b. Priority

Langkah-Langkah Shared Memory



Shared memory: Disebut begitu jika video memory disatukan penggunaannya dengan system memory (RAM). Jadi secara fisik hanya ada 1 modul memory yang dipakai bersama oleh video graphics array (VGA) dan sistem.

Langkah-Langkah Membuat Shared Memory :
       1.       Membuat segmen di memori dengan shmget().
       2.       Mendaftarkan (attach) segmen ke data space dari proses dengan shmat().
       3.       Tulis/baca dari memori
       4.       Detach segmen dari data space dari proses dengan shmdt().

shmget()
System call untuk membuat suatu segmen shared memory.
Definisi:
#include <sys/ipc.h>
#include <sys/shm.h>
int shmget(key_t key, size_t size, int shmflg);
shmflg bisa diisi dengan IPC_CREATE, IPC_EXCL, permission.

shmmat()
System call untuk mendaftarkan segmen shared memory ke dalam data space dari suatu proses.
Definisi:
#include <sys/types.h>
#include <sys/shm.h>
void *shmat(int shmid, const void *shmaddr, int shmflg);
Parameter:
Shmid → ID dari shared memory.
Shmaddr → Lokasi shared memory di memori utama.
jika NULL akan dicarikan lokasi pada memori yang ingin ditempati.
Return:
Pointer ke lokasi shared memory.

shmdt()
System call untuk melepaskan segmen shared memory data space dari proses.
Definisi:
#include <sys/types.h>
#include <sys/shm.h>
int shmdt(const void *shmaddr);
Parameter:
Shmaddr → pointer ke lokasi shared memory.
Return:
0 → sukses
(void *) -1 → error

shmctl()
System call untuk mengetahui atau merubah informasi yang berkaitan dengan suatu shared memory.
Definisi:
#include <sys/ipc.h>
#include <sys/shm.h>
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
Argument cmd berisi:
IPC_STAT: mengambil informasi tentang segmen shared memory.
IPC_SET: mengubah informasi tentang segmen shared memory.
IPC_RMID: menandai suatu segmen untuk dibuang ketika semua proses yang menggunakannya sudah melepasnya.
SHM_LOCK: lock suatu segmen, membuatnya tidak bisa di-swap.
SHM_UNLOCK: unlock suatu segmen.

Minggu, 11 Maret 2018

Input Dan Output C++

Program sederhana Penggunaan Proses Input dan Output pada C++
Berikut adalah Kodingnya

Dibawah ini merupakan proses input data user dari keyboard yang meliputi tanggal bulan dan tahun

Dibawah ini merupakan hasil keluaran(Output) dari Proses Input diatas

Hitung Luas Lingkaran C++

Assalamu'alaikum wr.wb
Pada Kesempatan kali ini saya ingin berbagi bagaimana membuat aplikasi penghitung luas lingkaran dengan C++

Berikut penampakan Codingnya

Dan dibawah ini penampakan Hasilnya Silahkan Dicoba