-Black Inspiration- -Telor-ceplox- -PROFIL- -Facebook- -Twitter- "* ikhsan_choco@ymail.com "*
Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!!----Stop Dreaming and Start Action Now...!! Jangan lupa kasih komentar demi kemajuan blog ini...!!!

5 Des 2011

Antrian Market (Pamela)



Definisi Queue
Queue bisa di artikan antrian, queue merupakan salah satu contoh aplikasi dari pembuatan double linked list yang cukup sering kita temui dalam kehidupan sehari-hari, misalnya saat Anda mengantri di loket untuk membeli tiket, saat di bank dan tempat-tempat lainnya. Istilah yang cukup sering dipakai seseorang masuk dalam sebuah antrian adalah enqueue. Dalam suatu antrian, yang datang terlebih dahulu akan dilayani lebih dahulu. Istilah yang sering dipakai bila seseorang keluar dari antrian adalah dequeue
Algoritma
Dalam algoritma ini kita mengunakan rumus lokasi(i)=i
Langkah 1
Menyediakan jumlah maksimal dari antrian




[0] [1] [2] [3] [4]
Langkah 2
 Variable “A” masuk dalam antrian


[0] [1] [2] [3] [4]
Langkah 3
 variable “B,C,D,E” masuk dalam antrian



[0] [1] [2] [3] [4]
Langkah 4
 Variable “ A” di hapus dari antrian
 Variable “B” mengisi alamat milik “A” dan begitu juga dengan “C,D,E”


[0] [1] [2] [3] [4]

Langkah 5
 Memasukkan elemen variable baru “ F”


[0] [1] [2] [3] [4]
Program c++
#include
#include
#include
#define maks 5


using namespace std;
class antri{
friend ostream& operator<<(ostream&, const antri&);
public:
antri();
int penuh(int);
int kosong(int);
void cetak();
void enqueue(char);
char dequeue();
void enqueue1(char);
private:
char A[maks];
int banyak;
};

ostream& operator<<(ostream& out, const antri& s)
{ cout<<"\n isi queue : ";
for (int i=0;i out<}


antri::antri(){banyak = 0;}

int antri::penuh(int s)
{ return s== maks ? 1:0;}

int antri::kosong(int s)
{ return s== 0 ? 1:0;}

void antri::cetak()
{ cout< cout<<"\n isi queue : ";
for (int i=0;icout<}

void antri::enqueue(char x)
{
cout< cout<<"\n elemen : \t "< cout< if (A[0]=='0') {
A[0] = x;
banyak++;
}
else {
for (int i=banyak;i>=0;i--)
A[i+1] = A[i];
A[0] = x;
banyak++;
}
}

char antri::dequeue(){
char temp=A[--banyak];
cout< cout<<"\n hilangkan elemen -->"< cout< A[banyak]='0';
return temp;
}

void antri::enqueue1(char x)
{
cout< cout<<"\n elemen : \t "< cout< if (A[0]=='0') {
A[0] = x;
banyak++;
}
else {
for (int i=banyak;i>=0;i--)
A[i+1] = A[i];
A[0] = x;
banyak++;
}
}

int main(int argc, char *argv[])
{
antri q;
for(char i='A';i<'F';i++) {
q.enqueue(i);
cout< }
char p=q.dequeue();
q.cetak();
cout<for(char i='F';i<'G';i++) {
q.enqueue1(i);
cout< cout< }
cout<cout<system("PAUSE");
return EXIT_SUCCESS;
}

Program C++ antrian mengunakan link list
#include
#include

using namespace std;
class antri{

public:
antri();
void tambah(int);
void tambahbelakang(int);
void tampil();
void hapus(int);


private:
int data;
antri *berikut,*p;

};

antri::antri(){
p=NULL;
}

void antri::tambah(int info){
antri *q,*t;
if(p==NULL){
p=new antri;
p->data=info;
p->berikut=NULL;
}else{
q=p;
while(q->berikut != NULL)
q=q->berikut;
t=new antri;
t->data=info;
t->berikut=NULL;
q->berikut=t;
}

}


void antri::tambahbelakang(int nilai){
antri *q,*t;
if( p == NULL ) {
p = new antri;
p->data = nilai;
p->berikut = NULL;
} else {
q = p;
while( q->berikut != NULL )
q = q->berikut;
t = new antri;
t->data = nilai;
t->berikut = NULL;
q->berikut = t;
}

}

void antri::tampil(){
antri *i; for(i=p;i!=NULL;i=i->berikut){
cout<data<<" "<<"-> ";
}


}

void antri::hapus(int target){
antri *q,*r;
q=p;
if(q->data==target){
p=q->berikut;
delete q;
return;
}
r=q;
while(q!=NULL){
if(q->data==target){
r->berikut=q->berikut;
delete q;
return;
}
r=q;
q=q->berikut;
}

}

int main(int argc, char *argv[]) {
cout<<"\t ========================================"<cout<<"\t Program simulasi antrian market (pamela)"<cout<<"\t ========================================"<cout<
antri *link=new antri;
int banyak;
cout<<"maksimal antrian: ";
cin>>banyak;
int data[banyak];
for(int i=0;icout<<"Data ke-"<cin>>data[i];
cout<cout<link->tambah(data[i]);
}
link->tampil();
int del;
cout<cout<<"data yang keluar dari antrian: ";
cin>>del;
link->hapus(del);
link->tampil();
int belakang;
cout<cout<<"Elemen baru yang masuk antrian : ";
cin>>belakang;
link->tambahbelakang(belakang);
link->tampil();
cout<
system("PAUSE");
return EXIT_SUCCESS;

}

15 Okt 2011

Array Pushdown stack

Stack adalah kumpulan komponen-komponen yang tersusun membentuk satu garis linear. Bila komponen-komponen ditambahkan (atau dikurangi), maka struktur-struktur tersebut berkembang (atau menyusut).dimana penambahan atau pengurangan komponen dilakukan di satu ujung saja.
Manfaat Stack:

* pengolahan struktur yang "nested" (berisi salinan dirinya sendiri di dalam dirinya), misalnya pengolahan ekspresi aljabar, himpunan dari himpunan.
* implementasi algoritma parsing, evaluasi dan backtracking.
* digunakan OS untuk memungkinkan pemanggilan prosedur secara nested.
* digunakan untuk memungkinkan konversi program rekursif menjadi non-rekursif.
* untuk mendukung mekanisme Pushdown Automata (PDA)
* untuk medukung kompailer mengkonversi infix menjadi postfix dan kemudian mengevaluasi postfix menjadi atomic (assembly) command


Spesifikasi ADT Stack

* Membuat dan menginisialisasi stack S

S = new Stack();

* Pemeriksaan boolean yang benar jika stack S kosong

S.empty();

* Menaruh item X paling atas dalam stack S

S.push(X);

* Mengambil item paling atas dari stack S dan merefernya oleh X

X = S.pop();

* Mendapatkan salinan dari item teratas dari stack S dan merefernya oleh X

X = S.peek();




Contoh Program

#include
#include
#include

using namespace std;

typedef struct
{
int *elems;
int logLength;
int allocLength;
} Stack;

void createStack(Stack *s)
{
s->logLength = 0;
s->allocLength = 4;
s->elems = (int *)malloc(4 * sizeof(int));
assert(s->elems != NULL);
}

void deleteStack(Stack *s)
{
free(s->elems);
s->logLength = 0;
/* free(s) - Don't do this.
The structure is not dynamically allocated */
}

void pushStack(Stack *s, int value)
{
if(s->logLength == s->allocLength) {
/* doubling stratege */
s->allocLength *= 2;
s->elems = (int *)realloc(s->elems,s->allocLength * sizeof(int));
assert(s->elems != NULL);
}

s->elems[s->logLength] = value;
s->logLength++;
}

int popStack(Stack *s)
{
assert(s->logLength > 0);
s->logLength--;
return s->elems[s->logLength];
}

void printStack(Stack *s)
{
for(int i = 0; i < s->logLength; i++) {
cout << s->elems[i] << " ";
}
cout << endl;
return;
}

int main()
{
Stack s;
createStack(&s);
for(int i = 0; i < 10; i++) {
pushStack(&s,i);
}
printStack(&s);
cout << "Pop: " << popStack(&s) << endl;
printStack(&s);
cout << "Pop: " << popStack(&s) << endl;
printStack(&s);

cout << "Stack disposed" << endl;
deleteStack(&s);
printStack(&s);
}
Output from the run is:
0 1 2 3 4 5 6 7 8 9
Pop: 9
0 1 2 3 4 5 6 7 8
Pop: 8
0 1 2 3 4 5 6 7
Stack disposed

Class dan Rekursi c++

#Rekrusif adalah fungsi yang melakukan proses perulangan dengan cara memanggil dirinya sendiri.
#berbeda dengan versi iteratif yang menggunakan perulangan for, while maupun do while.
#Fungsi rekursif dapat dipandang sebagai sebuah “operator”.

*Ciri fungsi rekursif*
#Kasus penyetop. Dalam kasus ini terdapat nilai konstan (return value)
#Kasus pemanggilan rekursif. Dalam kasus ini terdapat pemanggilan fungsi itu sendiri, tetapi harus mengarah kepada kasus penyetop.
Ciri perulangan
-Kapan mulai
-Kapan berhenti
-Berapa kali diulang

contoh program :

#include

class Deret {
friend istream& operator>>(istream&, Deret&);
friend ostream& operator<<(ostream&, Deret&);
public:
long hitung(int);
void cetak(int);
private:
int suku_n;
long hasil;

};

long Deret::hitung(int n) {
if (n==1) return 1;
else return n+hitung(n-1);
}

void Deret::cetak(int n) {
if (n>0) {
cetak(n-1);
cout << "Suku ke : " << n << " = " << hitung(n) << endl;
}
}

istream& operator>>(istream& input, Deret& x) {
cout << "Masukkan integer : ";
input >> x.suku_n;
return input;
}

ostream& operator<<(ostream& output, Deret& x) {
output << "Jumlah Deret : ";
for (int i=1; i<= x.suku_n; i++)
if (i == x.suku_n)
cout << i << " adalah " << endl;
else cout << i << " + ";
x.cetak(x.suku_n);
return output;
}

void main() {
Deret Bilangan;
cin >> Bilangan;
cout << Bilangan << endl;
}

7 Jul 2011

Deret Geometri : Scored Geometry and Geometric Series Addition Results

Geometric series can be written as follows :

a + ar² + ....... + arn-1

a : tribe initial
r : ratio
n : a lot of tribes

For the number of runs formula n geometry like this:

Sn = a(rn-1)/r-1 , jika r>1
= a(1-rn)/1-r , jika r<1 --> Exponential function (in n)

Description:

1. The ratio between two successive rate is fixed
2. Rows of geometry will rise, if for each n apply Un> Un-1
3. Rows of geometry will go down, if for n every valid Un4. Alternately up and down, if r <0
5. Valid relationships Un = Sn - Sn-1
6. If an odd number of tribes, the tribal center
7. Ut = sqrt(U1xUn) = sqrt(U2 X Un-1) dst.
8. If three numbers form a geometric sequence, then to facilitate the calculation, suppose that the numbers it is a / r, a, ar

How do I create a procedure? First we created was a process that makes the value of r can menjasi pangakat accordance with the tribe. After that we created a new loop that prints the value of each array geometry. Step tersakhir ie summing series.
In the picture below procedure, the process may be in the red box and inside the green box is the process of printing spare geometry.

Matrix Symmetry: Program to Check a Matrix Symmetry

This time I will discuss about the matrix symmetry.

Box matrix A is called symmetric if A = AT
Examples of symmetric matrices:



Theorem :
If A and B are symmetric matrices with the same size, and if k is a scalar then AT is a symmetric A + B and A - B is symmetrical kA is symmetrical (AB) T = BTAT = BA

If A is a symmetric matrix that can be in inverse, then A - 1 is a symmetric matrix.
Assume that A is a symmetric matrix and can be in the inverse, that A = AT, then:
(A − 1)T = (AT) − 1 = A − 1
Yang mana membuktikan bahwa A − 1 adalah simetris.

Produk AAT dan ATA
(AAT)T = (AT)TAT = AAT dan (ATA)T = AT(AT)T = ATA
Contoh
A adalah matriks 2 X 3
Which proves that A - 1 is symmetric.

AAT and ATA Products

(AAT) T = (AT) TAT = AAT and (ATA) T = AT (AT) T = ATA
Examples
A is the matrix 2 X 3 :


If A is a matrix that can be in inverse, then the AAT and ATA also be in inverse.

With the above understanding we can create a program to determine a metric symmetry or not. As the procedure can we make something like this:

To better understand the more there is a program that I have prepared to try using the Dev-C + +

Join The Set: The Multiplication On The Set

This time we will discuss the multiplication on the set or the more frequently heard hipunan join. Multiple purpose here is not like multiplying 2 x 3 = 5, but we are combining two or more sets.

For example we have set A and B, A × B means the set of all ordered pairs with the first element of each pair selected from A and the second element selected from B.

Example:
A: {1,2,3} and B: {a, b, c},
then A x B = {(1, a), (1, b), (1, c), (2, a), (2, b), (2, c), (3, a), (3 , b), (3, c)}

After getting the process that occurs over and over - again we can make a program using nested loops. That loop is in the loop. I made ​​it like this: