Celoteh Ania

Setitik Ilmu yang Aku Peroleh


Keanehan Soal Latihan SBD

Setelah saya teliti lagi.. ternyata ada keanehan pada soal latihan SBD praktikum. Soalnya yaitu soal01B nomer 10. Di soal hasilnya seperti ini:
hasil query lab
Continue Reading →

Genealogy in Prolog

Yup kali ini saya akan bagi-bagi code genealogy yang saya baut sebagai tugas mata kuliah AI [Artificial Intelegent] [Artificial Intelligent]..

Pasti anak-anak TI binus pada butuh deh..
Secara ini mata kuliah yang pasti diambil di semester 4. Dan klo ketemu dosen yang bernama Diaz Santika kemungkinan besar akan ketemu Prolog-prolog deh,,

Ayo yang mau ambil silakan.. Jangan malu-malu ya,,
Tapi ingat, resiko akibat penggunaan diluar semestinya ditanggung sendiri!
Posting saya ini hanya ditujukan untuk kepentingan edukasi. Jadi tolong belajar ya, jangan nyontek punya saya.
Continue Reading →

UAP PBO saya

Setelah kemaren Belajar UAP, neh sekarang saya kasih code UAP saya..
Seperti biasa C++ based. Harus di atas 95 nih..


#include <constrea.h>
#include <stdlib.h>
#include <string.h>

constream o;

class kendaraan{
protected:
int jarak, kecepatan;
float waktu;
public:
kendaraan(){
jarak = kecepatan = 0;
waktu = 0;
}
void set_jarak(int a){ jarak = a; }
int get_jarak(){ return jarak; }
void set_kecepatan(int a){ kecepatan = a; }
int get_kecepatan(){ return kecepatan; }
float get_waktu();
~kendaraan(){}
};

float kendaraan::get_waktu(){
waktu =(float) jarak/kecepatan + jarak/100*0.1;
return waktu;
}

class mobil : public kendaraan{
int jenis;
long total;
public:
mobil(){
jenis = random(3);
total = 0;
}
long get_total();
char *get_jenis();
~mobil(){}
};

char *mobil::get_jenis(){
char *str = "                     ";
switch(jenis){
case 0:
strcpy(str, "Premium");
break;
case 1:
strcpy(str, "Pertamax");
break;
case 2:
strcpy(str, "Pertamax Plus");
break;
}
return str;
}

long mobil::get_total(){
switch(jenis){
case 0:
total = jarak/10 * 5000;
break;
case 1:
total = jarak/10 * 6000;
break;
case 2:
total = jarak/10 * 7000;
break;
}
return total;
}

char menu(){
o << "Menu Pilihan\n";
o << "1. Kendaraan\n";
o << "2. Mobil\n";
o << "3. Keluar";
return (char) getch();
}

void kend(){
kendaraan obj;
int jrk=0, kec=0;
o << "Kendaraan : \n";
do{
o << "Masukkan jarak tempuh [10..1000] : ";
cin >> jrk;
cin.sync(); cin.clear();
}while(jrk&lt;10 || jrk>1000);
obj.set_jarak(jrk);
do{
o << "Masukkan kecepatan [1..100] : ";
cin >> kec;
cin.sync(); cin.clear();
}while(kec<1 || kec>100);
obj.set_kecepatan(kec);
o < < "Waktu : " << obj.get_waktu() << " jam";
getch();
}

void mobi(){
mobil anak[3];
int jrk=0, kec=0;
for(int i=0; i&lt;3; ++i){
o << "Mobil ke-" << (i+1) << endl;
do{
o << "Masukkan jarak tempuh [10..1000] : ";
cin >> jrk;
cin.sync(); cin.clear();
}while(jrk<10 || jrk>1000);
anak[i].set_jarak(jrk);
do{
o < < "Masukkan kecepatan [1..100] : ";
cin >> kec;
cin.sync(); cin.clear();
}while(kec<1 || kec>100);
anak[i].set_kecepatan(kec);
o << "Waktu : " << anak[i].get_waktu() << " jam\n";
o << "Jenis : " << anak[i].get_jenis() << " menghabiskan Rp. " << anak[i].get_total() << "\n\n";
}
getch();
}

void main(){
randomize();

char tekan = '0';
tekan;

do{
o.clrscr();
tekan =(char) menu();
switch(tekan){
case '1':
o.clrscr();
kend();
break;
case '2':
o.clrscr();
mobi();
break;
}
}while(tekan != '3');
}

Belajar UAP PBO

Nih buat yang males belajar buat UAP PBO, saya kasih cara bikin inheritance + array of class.
Klo mau dihapal silahkan, tapi sesuain dengan soal ya. Intinya InsyaAllah udah memenuhi kriteria untuk soal09D dari LAB.

Ga tau nih di Binus masih pake C++ aja buat pembelajaran PBO (OOP). Padahal bahasa yang lebih Object-Oriented kan ada beberapa. Sebut aja python, smalltalk, dan yang menurut gw paling keren… Ruby!!!
Loh kok jadi curhat gini, dah ah langsung aja, nih:


#include <constrea .h>
constream o;

//bikin class induk, inget data member jadiin protected
class induk{
protected:
char kata[16];
public:
void set_isi(char *isi){
strcpy(kata, isi);
}
char *get_isi(){
return kata;
}
int jum_vokal();
};

//ngitung jumlah vokal
int induk::jum_vokal(){
char vokal[] = "aiueoAIUEO";
int count=0;
for(int i=0; i<strlen(kata); i++){
if(strchr(vokal, kata[i]))
count++;
}
return count;
}

//bikin class anak turunan induk dgn atribut public
class anak : public induk {
public:
//rotate a char to left
void movel();
//rotate a char to right
void mover();
};

void anak::movel(){
char temp[17];
int i;
for(i=1; i<strlen(kata); i++){
temp[i-1] = kata[i];
}
temp[i-1] = kata[0];
temp[i] = 0;
strcpy(kata, temp);
}

void anak::mover(){
char temp[17];
int i;
for(i=1; i<strlen(kata); i++){
temp[i] = kata[i-1];
}
temp[0] = kata[i-1];
temp[i] = 0;
strcpy(kata, temp);
}

void main(){
//array of object dgn static allocation
induk mak;
anak k[2];
o.clrscr();

o << "Ini induk : ";
mak.set_isi("kiye mbok objek k[]");
o << "Jumlah vokal : " << mak.jum_vokal() << "\n\n";

o << "Ini anak pertama : " << endl;
k[0].set_isi("mbuh bae lah");
o << "Jumlah vokal : " << k[0].jum_vokal() << endl;
k[0].movel();
o << "Geser kanan : " << k[0].get_isi() << "\n\n";

o << "Ini anak kedua : ";
k[1].set_isi("mbuh maning bae");
o << "Jumlah vokal : " << k[1].jum_vokal() << endl;
k[1].mover();
o << "Geser ke kanan : " << k[1].get_isi();

getch();
}