Latest Entries »

Sudah lama juga tidak menulis….

Kemarin-kemarin saya telah berbagi mengenai pemrograman C++, sekarang saya akan berbagi mengenai Pemrograman Java..
sedikit pengenalan saja mengenai java.
Java adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun 1991. Bahasa ini dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan ­platform independent, yaitu dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer­­. Bahasa ini juga dirancang untuk pemrograman di Internet sehingga dirancang agar aman dan portabel.

untuk lengkapnya bisa mengunjungi :

http://www.master.web.id/mwmag/issue/04/content/tutorial-java-1/tutorial-java-1.html

langsung saja kembali ke topik
yaitu menampilkan Bilangan Deret fibonacci pada java

langsung saja akan saya tunjukkan code pemrogramannya

import java.util.Scanner;
public class Fibonacci
{
	public static void main(String[] args)
	{
		Scanner s = new Scanner(System.in);
		System.out.print("Masukkan berapa deret fibonacci ? ");
		int n = s.nextInt();
		for(int i=1;i<=n;i++)
			System.out.print(fibo(i) + " ");
		System.out.println();
	}

	private static int fibo(int n)
	{
		int f;
		if(n==1 || n==2)
			f=1;
		else
			f = fibo(n-1) + fibo(n-2);
		return f;
	}
}

itu adalah code dari program java untuk menampilkan deret bilangan fibonacci.
jika ada kesulitan silahkan berkomentar atau menghubungi contact dibawah (fast response)

Selamat siang semua,,

kali ini saya akan mencoba posting sebuah program QUEUE tak terbatas menggunakan double linked list.

Double Linked List yaitu sebuah linked list yang mempunyai satu atau lebih data dengan 2 penunjuk, yaitu penunjuk simpul sebelum dan penunjuk simpul sesudah.

Akan saya definisikan terlebih dahulu struktur sebuah double linked list (DNode) sebagai berikut :

typedef int itemtype;
typedef struct simpul dnode;
struct simpul
{
	itemtype data;
	dnode *prev;
	dnode *next;
};

Dan membuat sebuah rumusan QUEUE juga sebagai penunjuknya sebagai berikut :

typedef struct
{
	dnode *front;
	dnode *rear;
} queue;

Setiap membuat linked list diperlukan sebuah fungsi untuk meng alokasikan ke memori. fungsi tersebut bisa menggunakan seperti biasanya :

void alokasi_node(itemtype x)
{
	baru = (dnode *) malloc(sizeof(dnode));
	if(baru==NULL)
	{
		printf("Alokasi GAGAL\n");
		exit(1);
	}
	else
	{
		baru->data = x;
		baru->next = NULL;
		baru->prev = NULL;
	}
}

Dan jangan lupa untuk membuat sebuah variabel global yaitu :

dnode *baru;

Lalu buat beberapa fungsi untuk queue yaitu fungsi inisialisasi, kosong, enqueue, dequeue. contohnya sebagai berikut :

void inisialisasi(queue *q)
{
	q->front = NULL;
	q->rear = NULL;
}

int kosong(queue *q)
{
	return (q->front==NULL && q->rear==NULL);
}

void enqueue(queue *q, itemtype x)
{
	if(kosong(q))
	{
		q->front = baru;
		q->rear = baru;
		printf("Anda Telah Menginput Data Pertama\n");
	}
	else
	{
		baru->prev = q->rear;
		q->rear->next = baru;
		q->rear = baru;
	}
}

itemtype dequeue(queue *q)
{
	dnode *temp;
	if(kosong(q))
	{
		printf("Data Kosong\n");
		return -1000;
	}
	else
	{
		temp = q->front;
		if(q->front==q->rear)
		{
			q->front=NULL;
			q->rear=NULL;
		}
		else
		{
			q->front = q->front->next;
			q->front->prev = NULL;
		}
		return temp->data;
		free(temp);
		temp = NULL;
	}
}

Dan untuk menampilkan data queue yang ada gunakan fungsi tampil seperti dibawah ini :

void tampil(queue *q)
{
	queue temp;
	temp = *q;
	printf("\nData Simpul ==> ");
	while(temp.front!=NULL)
	{
		printf("%d ", temp.front->data);
		temp.front = temp.front->next;
	}
	printf("\n\n");
}

Dan untuk main() bisa direpresentasikan seperti dibawah ini :

void main()
{
	char lagi='y';
	queue simpul;
	itemtype data;
	int pil;
	inisialisasi(&simpul);
	while(lagi=='y' || lagi=='Y')
	{
		system("CLS");
		tampil(&simpul);
		printf("Menu :\n");
		printf("1. Enqueue\n");
		printf("2. Dequeue\n");
		printf("Masukkan pilihan : ");
		scanf("%d", &pil);
		switch(pil)
		{
		case 1 :
			printf("Masukkan data : ");
			scanf("%d", &data);
			alokasi_node(data);
			enqueue(&simpul, data);
			break;
		case 2 :
			dequeue(&simpul);
			break;
		default :
			printf("Pilihan salah\n");
			break;
		}
		fflush(stdin);
		printf("Lagi (y/n) ? ");
		scanf("%c", &lagi);
	}
}

Untuk mendownload contoh program disini

Jika ada yang kurang mengerti dengan program seperti diatas, bisa ditanyakan langsung. tinggalkan komentar anda, kirim pesan email, dan apa saja boleh yang penting bisa bertanya :D :D hehe

Semoga bermanfaat.

Untuk membuat stack menggunakan linked list

Coba tulis seperti ini :

#include<stdio.h>
#include<stdlib.h>

typedef int ItemType;
typedef struct simpul node;
struct simpul
{
	ItemType item;
	node *next;
};

struct Stack{
	node *TOS;
};

node *baru;

void awal()
{
	puts("===================================================");
	puts("=         PROGRAM STACK DENGAN LINKED LIST        =");
	puts("===================================================\n");
	puts("NRP   :  7411030828");
	puts("Nama  :  M.Faishal Imam Choiri\n");
}

void allocate_node(ItemType x)
{
	baru = (node *) malloc (sizeof(node));
	if(baru==NULL)
	{
		printf("Alokasi Gagal\n");
		exit(1);
	}
	else
	{
		baru->item=x;
		baru->next=NULL;
	}
}

void inisialisasi(Stack *s)
{
	s->TOS = NULL;
}

int kosong(Stack *s)
{
	return s->TOS==NULL;
}

void push(Stack *s)
{
	baru->next = s->TOS;
	s->TOS = baru;
}

ItemType pop(Stack *s)
{
	node *temp;
	if(kosong(s))
	{
		printf("Data Kosong\n");
		return ' ';
	}
	else
	{
		temp = s->TOS;
		s->TOS = s->TOS->next;
		return temp->item;
		free(temp);
		temp=NULL;
	}
}

void tampil(Stack *s)
{
	Stack bantu;
	bantu = *s;
	printf("\nData Simpul ==>  ");
	while(bantu.TOS!=NULL)
	{
		printf("%d ", bantu.TOS->item);
		bantu.TOS = bantu.TOS->next;
	}
	printf("\n\n");
}

void main()
{
	int pilih, data;
	char lagi='y';
	Stack ujung;

	inisialisasi(&ujung);
	while(lagi=='y')
	{
		system("CLS");
		awal();
		//tampil(&ujung);
		printf("Menu Pilihan : \n");
		printf("1. Push\n");
		printf("2. Pop\n");
		printf("3. Tampilkan Stack\n");
		printf("\nPilih No          : ");
		scanf("%d", &pilih);
		switch(pilih)
		{
		case 1:
			printf("Masukkan data     : ");
			scanf("%d", &data);
			allocate_node(data);
			push(&ujung);
			break;
		case 2:
			pop(&ujung);
			break;
		case 3:
			tampil(&ujung);
			break;
		}
		fflush(stdin);
		printf("Lagi (y/t) ? ");
		scanf("%c", &lagi);
	}
}

Untuk penjelasan akan saya jelaskan lain waktu.

Dan contoh programnya bisa di donwload DISINI

Setelah saya posting contoh-contoh program, mungkin beberapa banyak yang belum memiliki aplikasinya,,

jadi saya upload aplikasi VISUAL STUDIO 6.

saat pengisian Serial Number, isi dengan angka 222 – 2222222

untuk link downloadnya : PART 1   &   PART 2

Mengubah INFIX menjadi POSTFIX menggunakan STACK pada Visual Studio C++

Untuk mengubah notasi infix menjadi postfix digunakan stack untuk menyimpan operator dengan beberapa aturan sebagai berikut

  1. Sediakan stack untuk menyimpan operator (tipe : char)
  2. Algoritma mengubah notasi infix menjadi postfix

[1].    Baca setiap karakter notasi infix dari awal

[2].    Bila operand maka langsung dicetak

[3].    Bila tanda ‘(‘ masukkan stack

[4].    Bila tanda ‘)’ pop dan cetak semua isi stack sampai TOS = ‘(‘. Pop juga tanda ‘(‘ ini, tetapi tidak usah dicetak

[5].    Bila operator : jika stack kosong atau derajad operator lebih tinggi dibanding derajad TOS, push operator ke dalam stack. Jika tidak, pop dan cetak; kemudian ulangi pembandingan dengan TOS. Kemudian di-push

[6].    Jika akhir notasi infix telah tercapai, dan stack masih belum kosong, pop semua isi stack dan cetak hasilnya

Contoh notasi infix :

( A + B ) / (( C – D ) * E ^ F)

Ilustrasi pengubahan notasi infix di atas menjadi notasi postfix secara lengkap tersaji dalam tabel sebagai berikut:

Karakter

dibaca

Isi

Tumpukan

Karakter tercetak Hasil Notasi Postfix

Yang Terbentuk

( (
A ( + A A
+ ( +
B B A B
) + A B +
/ /
( / (
( / ( (
C / ( ( C A B + C
- / ( ( -
D / ( ( - D A B + C D
) / ( - A B + C D -
* / ( *
E / ( * E A B + C D – E
^ / ( * ^
F / ( * ^ F A B + C D – E F
) / ( * ^ A B + C D – E F ^
/ ( * A B + C D – E F ^ *
/
/ A B + C D – E F ^ */

Dari ilustrasi di atas, bisa kita lihat bahwa notasi postfix dari ungkapan:

( A + B ) / (( C – D ) * E ^ F)

adalah

A B + C D – E F ^ */

Untuk Contoh Programnya bisa DOWNLOAD DISINI

Ikuti

Get every new post delivered to your Inbox.