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