Archive for » 2014 «

Data Structure Infix->Postfix

#include
#include
#include

struct stack{
char x;
struct stack *next;
} ;

struct stack *push(struct stack *top, char val){
struct stack *ptr;
ptr=(struct stack*) malloc (sizeof(struct stack*));
ptr->x=val;
if (top==NULL){
top=ptr;
top->next=NULL;
} else {
ptr->next=top;
top=ptr;
}
return top;
}
struct stack *pop (struct stack *top)
{
struct stack *ptr;
ptr=top;
if(top==NULL){
printf(“\n STACK UNDERFLOW”);
}
else
{
top = top -> next;
}

return top;
}
int preced(char val) {
if(val==’+’ || val==’-‘) return 1;
else if (val==’*’ || val==’/’) return 2;
else if (val=='(‘) return 0;
};

void main(){
char infix[51],postf[51]=””;
struct stack *opr;
opr=(struct stack*) malloc (sizeof(struct stack*));
opr=NULL;

int n=0,counter;
do{
printf(“Enter infix string [0-50 digit, single number only] : “);
scanf(“%s”,&infix) ;fflush(stdin);

for(int i=0;i=’0′ && infix[i]<='9')
|| infix[i]=='+'
|| infix[i]=='-'
|| infix[i]=='*'
|| infix[i]=='/'
|| infix[i]=='('
|| infix[i]==')') counter=1;
else {counter=0; break;}
}
} while (counter!=1);

for(int i=0;i=’0’ && infix[i]x!='(‘){
postf[n]=opr->x; n++;
opr=pop(opr);
} opr=pop(opr);
continue;
}

if(opr!=NULL && (preced(infix[i]) x))){
if (preced(infix[i]) == preced(opr->x)){
postf[n]=opr->x; n++;
opr=pop(opr);
opr=push(opr,infix[i]);
} else {
while(opr!=NULL && preced(infix[i]) x)){
postf[n]=opr->x; n++;
opr=pop(opr);
}
opr=push(opr,infix[i]);
}
}
else {
opr=push(opr,infix[i]);
}
}

}
while(opr->next!=NULL){
postf[n]=opr->x; n++;
opr=pop(opr);
} postf[n]=opr->x; n++;
opr=pop(opr);

printf(“\nPostfix: “);
for(int i=0;i<strlen(postf);i++) printf("%c",postf[i]);

getchar();
}

Data Structure Tree

#include
#include

struct stack
{
int data;
struct stack *left,*right,*parent;
} *head,*temp,*curr;

struct stack *push (struct stack *head, int val){
curr=head;
if(head==NULL){
head=(struct stack*) malloc (sizeof(struct stack*));
head->data=val;
head->parent=NULL;
head->left=NULL;
head->right=NULL;
} else {
while(curr!=NULL){
temp=curr;
if(valdata){
curr=curr->left;
} else {
curr=curr->right;
}
}
curr=(struct stack*) malloc (sizeof(struct stack*));
curr->data=val;
curr->parent=temp;
if(curr->datadata){
temp->left=curr;
} else temp->right=curr;
curr->left=NULL;
curr->right=NULL;
}

return head;
}

struct stack *preorder(struct stack *head) {
if (head == NULL) return head;
printf(“%d “,head->data);
preorder(head->left) ;
preorder(head->right);

};

void main()
{
int val;
printf(“Masukkan 10 digit angka [1-50]\n\n”);
for (int i=0;i<10;i++) {
do {
printf("Angka ke-%d : ",i+1);
scanf("%d",&val); fflush(stdin);
} while (val50);
head=push(head,val);
}

printf(“\n”);
preorder(head);

getchar();
}

Tugas Struktur Data 2

#include
#include

struct data{
int angka;
struct data *next;
struct data *prev;
}*head=NULL,*tail,*curr;

void pushbelakang(int angka){
curr=(struct data*)malloc(sizeof(struct data));
curr->angka=angka;
if(head==NULL)
{
head=tail=curr;
tail->next=NULL;
head->prev=NULL;
}
else{
tail->next=curr;
curr->prev=tail;
tail=curr;
tail->next=NULL;
}
}

void pushdepan(int angka){
curr=(struct data*)malloc(sizeof(struct data));
curr->angka=angka;
if(head==NULL)
{
head=tail=curr;
tail->next=NULL;
head->prev=NULL;
}
else{

head->prev=curr;
curr->next=head;
head=curr;
head->prev=NULL;

}
}
void cetak(){
curr=head;
if(head==NULL){
printf(“data kosong”);
}
else
{
printf(“NULL”);
while(curr!=NULL)
{
printf(” %d “,curr->angka);
curr=curr->next;
}
printf(“NULL”);
}
}

void pushmid(int angka){
struct data *temp;
temp=head;

if(head==NULL){
printf(“Data Kosong”);
}
else
{
struct data *temp;

curr=(struct data*)malloc(sizeof(struct data));
curr->angka=angka;
head->next=curr;
curr->prev=head;
curr->next=tail;
tail->prev=curr;
tail->next=NULL;
}

}

void main(){
pushdepan(1);
pushbelakang(3);
cetak();
printf(“\n”);
pushmid(2);
cetak();
printf(“\n”);
pushdepan(5);
pushbelakang(0);
cetak();

getchar();
}

TM2 Object Oriented Programming

TM 02

1. Copy constructorsuatuklasdieksekusijikaobyekklas di-copydenganmekanisme di bawahinikecuali
a. direct assignment b. initialization
c. passing by value c. return by value

2. Fungsianggota yang otomatis di-createolehkompilatormeskipuniatidaksecaraeksplisitditulisolehpemrogramdalamdefinisiklasadalahopsi-opsi di bawahinikecuali
a. default constructor b. copy constructor
c. destructor d. overloaded constructor

3. Level aksesutility functionatauhelper functionsuatuklasadalah
a. public b. protected c. private d. inline

4. Untuk class X, sintakscopy constructoradalah
a. X(& X) b. X(const X&)
c. X(const &X) d. X(X &)

5. C++ classmempunyai
a. satukonstruktordansatu destructor
b. lebihdarisatukonstruktordansatu destructor
c. satukonstruktordanlebihdarisatu destructor
d. lebihdarisatukonstruktordanlebihdarisatu destructor

6. Apakeluarandaripenggalan program berikutini:

class Rational {
public:
Rational() { cout<< “OBYEK LAHIR.\n”; }
~Rational() { cout<< “OBYEK MATI. \n”; }
private:
intnum, den;
};

main() {
{Rational x;
cout<< “SEKARANG x HIDUP.\n”;
}
cout<< “ANTAR BLOK.\n”;
{Rational y;
cout<< “SEKARANG y HIDUP.\n”;
}
}

7. Uraikanapa yang kamuketahuitentang constructor, user defined constructor, default constructor, parameterized constructor, constructor initialization list, copy constructor dan destructor.

8. Uraikanapa yang kamuketahuitentangdefault arguments di C++. Sebutkanapasaja yangdapatdigunakansebagaidevalut value. Mengapanilaiconstanttidakdapatdigunakansebagaidefault valueuntukreference variable?

9. Apa yang dimaksuddenganfunction overloading? Kriteriaapa yang digunakanuntukmenyatakanbahwaduafungsidengannama yang samaadalahberbedasatusama lain.

10. Banyakpenulisbukumenyatakanbahwauntukclass X paling sedikitmempunyaisatuconstructoryaitudefault constructordengan prototype X(). Tetapi John Hubbard dalambukunyaProgramming with C++menyatakanbahwasetiapclass X paling sedikitmempunyaiduaconstructor yaitudefaultX() dancopy constructor yang prototipesintaksnyaadalahX (const X & ), fungsianggotadengansatu parameter danpass by constant reference.

TugasAnda:
a. Kapancopy constructordieksekusi?
b. Untukpenggalankodeberikutberapa kali copy constructordieksekusi?

class Rational {
public : Rational(int n, int d) : num(n), den (d) { }
Rational(const Rational & r) : num(r.num), den(r.den)
{ cout<Jumlah parameter
>Tipe parameter harus berbeda
>Urutan parameter harus berbeda

10.a.
>Jika objek baru dibuat sebelum pengkopian, disitulah saat copy constructor digunakan/dieksekusi.
>sebuah objek dicopy dengan cara inisialisasi deklarasi
>Sebuah objek digunakan sebagai parameter function menggunakan passed by value
>sebuah objek dijadikan nilai return suatu function

b.4 kali

Tugas Struktur Data 1

#include
#include
#include

struct data{
int angka;
struct data *next;
}*head=NULL,*tail,*curr;

void pushbelakang(int angka){
curr=(struct data*)malloc(sizeof(struct data));
curr->angka=angka;
if(head==NULL)
{
head=tail=curr;
tail->next=NULL;
}
else{
tail->next=curr;
tail=curr;
tail->next=NULL;
}
}

void print(){
curr=head;
if(head==NULL){
printf(“data kosong”);
}
else
{
while(curr!=NULL)
{
printf(“%d->”,curr->angka);
curr=curr->next;
}
printf(“NULL”);
}

}

int main(){

for(int i=0;i<10;i++){
int input;
printf("\nMasukkan angka yang ingin ditambahkan: ");
scanf("%d",&input);fflush(stdin);

pushbelakang(input);
print();
}
getchar();
return 0;
}

Tugas PBO tm 1

Patrick Aditya FW /02             PPT/1701293490

TM 01

  1. Ada tiga istilah yang saling berkaitan saat kita mulai mempelajari OOP yaitu ADT (Abstract Data Type), encapsulation dan class. Coba uraikan secara rinci apa yang dimaksud istilah-istilah tersebut. Selain itu berikan contoh-contohnya.

 

  1. Ada tiga karakteristik yang membedakan OOP dengan procedural programming yaitu ADT, inheritance dan dynamic binding, Dua topik teerakhir belum kita pelajari sehingga dalam soal ini kita hanya fokus pada ADT.

a. Apa yang dimaksud dengan ADT?

b. Apa yang dimaksud dengan propterties suatu ADT?

c. Mengapa kita memerlukan ADT?

d. Bagaimana suatu ADT berhubungan dengan ADT lain?

e. Apa yang dimaksud dengan ”…dalam ADT implementasi disembunyikan dari user…” Berikan contohnya.

 

  1. Esensinya tidak perbedaan mendasar antara  struct dan class tetapi kita lebih suka menggunakna class daripada struct. Uraikan mengapa kita lebih suka menggunakan class daripada struct?

 

  1. Esensinya class dan struct adalah sama dalam C++. Perbedaan yang signifikan di antara mereka adalah
    1. default akses class adalah private sedangkan struct adalah private
    2. default akses class adalah private sedangkan struct adalah public
    3. default akses class adalah public sedangkan struct adalah private
    4. default akses class adalah public sedangkan struct adalah public

 

  1. Interface suatu class terdiri dari

a. data anggota                                                    b. prototipe fungsi anggota

c. implementasi fungsi anggota                      d. data anggota dan prototipe fungsi anggota

 

-d1030-

 

1.

I.Tipe data abstrak (ADT) dapat didefinisikan sebagai model matematika dari objek data yang menyempurnakan tipe data dengan cara mengaitkannya dengan fungsi-fungsi yang beroprasi pada data yang bersangkutan.

Contoh ADT

A.Tipe jadi (built-in): boolean, integer, real, array, dll

B.Tipe buatan (user-defined): stack, queue, tree, dll

ADT Built-in:

Boolean

Nilai: true dan false

Operasi: and, or, not, xor, dll

Integer

Nilai: Semua bilangan

Operasi: tambah, kurang, kali, bagi, dll

B. ADT buatan (user-defined) :

Stack (tumpukan)

Nilai : elemen dalam stack

Operasi: create, destroy, push, pop

Queue (antrian)

Nilai: elemen dalam Queue

Operasi: create, destroy, enqueue, dequeue

, dll

 

II.Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instant dari object. class juga merupakan grup suatu object dengan kemiripan attributes/properties, behaviour dan relasi ke object lain.

Contoh class:

public class hewan {

String nama,jenis_kelamin,warna, makan;

public void set_nama(String nm){

nama=nm;

//System.out.println(“Nama aku “+nama);

}

String getnama()

{

return nama;

}

public void set_warna(String wn){

warna=wn;

System.out.println(“Warna aku “+warna);

}

public void makan(String mkn){

makan=mkn;

System.out.println(“makanan aku “+makan);}}

III.Enkapsulasi memiliki arti mengelompokkan program kedalam satu unit sehingga program menjadi mudah digunakan.

—  Mampu menangani berbagai input yang diberikan dan menghasilkan output yang benar.

—  Melindungi program dari pengaksesan variabel kritis oleh proses atau perubahan oleh programer selama tahap pembangunan program.

Contoh Enkapsulasi:

package cobapaket;

import pbo2011.Matriks;

 

public class aplikasimatrik {

int[][] A={{1,1,1},{2,2,2}};

int[][] B={{10,10,10},{20,20,20}};

 

public static void main(String args[])

{

aplikasimatrik am=new aplikasimatrik();

Matriks m=new Matriks();

int[][] C={{2,2,2},{2,2,2},{3,3,3}};

System.out.println(m.coba(“Saya”));

System.out.println(“Matriks A :”);

m.cetakmatrik(am.A);

System.out.println(“Matriks B :”);

m.cetakmatrik(am.B);

System.out.println(“Matriks A + Matris B :”);

m.cetakmatrik(m.matrikjumlah(am.A, am.B));

System.out.println(“Matriks A * Matriks C :”);

System.out.println(“Matriks A * Matriks B :”);

m.cetakmatrik(m.perkalianmatrik(am.A, am.B));

}

}

2. a.Tipe data abstrak (ADT) dapat didefinisikan sebagai model matematika dari objek data yang menyempurnakan tipe data dengan cara mengaitkannya dengan fungsi-fungsi yang beroprasi pada data yang bersangkutan.

b.Properties dari ADT adalah menjelaskan bagaimana object direpresentasikan dalam suatu program.

c. ADT diperlukan karena ADT dapat menyederhanakan program yang kompleks menjadi terorganisasi, dapat dimodifikasi, dan kompilasi terpisah, dan dapat diandalkan dengan menyembunyikan representasi data, sehingga pengguna (user) tidak dapat mengakses objek secara langsung.

d. ADT berhubungan dengan ADT yang lain dengan lain menggunakan access modifier yang merupakan kata kunci yang digunakan untuk menentukan spesifikasi tingkat akses suatu attribute atau method, yaitu public, protected, private.

e. Information hiding dapat membatasi pengaksesan data dari suatu ADT

Public : Bagian class yang dapat diakses oleh umum baik dari dalam maupun dari luar class

Protected : Bagian class yang dapat diakses oleh linkungan internal class dan class turunannya

Private : Bagian class yang hanya dapat diakses oleh linkungan internal class itu sendiri

 

3. . Perbedaan antara Class dan Struct:
– Class adalah sesuatu yang mempunyai data (sifat) dan fungsi (kelakuan) untuk mendeskripsikan suatu objek.
– Struct mendefinisikan tipe data dan memberitahukan kepada Visual C++ untuk memperlakukan koleksi tipe data dasar sebagai satu kesatuan tipe data, yang darinya dapat mendefinisikan variabel dan array variabel.

Kebanyakan memilih class karena kita dapat mengatur settingan class tersebut menjadi private,public ataupun protected sehingga kita dapat mengontrol siapa saja yang dapat mengakses data tersebut sehingga keamanan dan privasi data lebih terjamin.

 

4. Esensinya class dan struct adalah sama dalam C++. Perbedaan yang signifikan di antara mereka adalah default akses class adalah private sedangkan struct adalah public

 

5. Interface suatu class terdiri dari implementasi fungsi anggota.

Hello world!

Welcome to Binusian blog.
This is the first post of any blog.binusian.org member blog. Edit or delete it, then start blogging!
Happy Blogging 🙂