‘ RinariN ‘

April 15, 2008

GauL dg akhLak, akhLak untuk GauL

Diarsipkan di bawah: uneg-uneg — by rinarin @ 7:51 am

Ngomongin lawan jenis dijamin udah jadi agenda harian remaja. Cewek mana sih yang nggak ada kata cowok dalam kamusnya. Yang cowok juga sama. Pokoknya nggak boleh ketinggalan kalo udah asyik gosipin gebetannya. Seolah lawan jenis selalu mangkal dalam kepala kita. Mengalir dalam darah kita. Dan menghembus dalam desah napas kita. Ini bener-bener red alert !

Bener lho. Pergaulan remaja kian hari kian menunjukkan sinyal-sinyal berbahaya. Di mana aja, kapan aja, cewek-cowok campur baur tak tekendali. Kagak ada remnya. Nyelonong trus kayak rem blong. Kalo mobil tabrakan masih mending penyoknya ke dalem. Coba kalo cewek ditabrak’ cowok, penyoknya kan ke luar. Apa nggak malu? Ini nih satu dari sekian banyak bahaya gaul bebas remaja sekarang. Ini berarti tanda-tanda pergaulan remaja sekarang udah kagak sehat. Hati-hati lho!

Secara alamiah, remaja mulai mengalami pertumbuhan dan perkembangan secara fisik, psikologis, dan sosial. Secara fisik, organ-organ tubuh termasuk organ reproduksi mulai mateng. Secara psikologis, remaja mulai mengurangi ketergantungannya dengan orang tua. Dan secara sosial, remaja mulai mengenal dunia luar. Gaul ama temen-temen sebaya maupun masyarakat luas.

Menurut penelitian baru-baru ini budaya seks bebas sudah menggejalan di kalangan anak muda, ada berita menghebohkan ketika suatu penelitian yang dilakukan oleh Lembaga Studi Cinta dan Kemanusiaan serta Pusat Pelatihan Bisnis dan Humaniora (LSCK PUSBIH) menunjukkan hampir 97,05 persen mahasiswi di Yogyakarta sudah hilang keperawanannya saat kuliah. Yang lebih mengenaskan, semua responden mengaku melakukan hubungan seks tanpa ada paksaan. Semua dilakukan atas dasar suka sama suka dan adanya kebutuhan. Selain itu, ada sebagian responden mengaku melakukan hubungan seks dengan lebih dari satu pasangan dan tidak bersifat komersil. (detik.com). Naudzubillah…

Karena itu sebagai kader muslim kita harus punya etika dalam pergaulan. Menurut Ust Farid Etika pergaulan dalam Islam ada 4 yaitu :
1. Dengan Ukhuwah
2. Menundukkan Pandangan kepada lawan jenis
3. Tidak berduaan dengan lawan jenis (berkhalwat)
4. Memakai hijab

Sehingga hubungan kerjasama antara laki-laki dan perempuan dalam bentuk hubungan yang bersifat umum dalam muamalah, bukan hubungan khusus seperti saling mengunjungi antara laki-laki dan perempuan, atau pergi bertamasya bersama antara laki-laki dan perempuan.

“Akan tiba suatu zaman atas manusia dimana perhatian mereka hanya tertuju pada urusan perut dan kehormatan mereka hanya benda semata-mata. Kiblat mereka hanya urusan wanita (seks), dan agama mereka adalah harta mas dan perak. Mereka adalah makhluk Allah yang terburuk dan tidak akan memperoleh bagian yang menyenangkan di sisi Allah SWT.” (HR. Ad Dailami)

So, udah pada tempatnya kalo kita kudu ngebahas persoalan seks itu dengan penuh tanggung jawab. Artinya, kudu ngerti bahwa seks itu adalah bagian dari perbuatan manusia yang ada hisabnya. Bukannya mau nakutin, sanksi dari Islam buat para pelaku seks bebas itu keras banget. Dalam Islam itu jelas, pelaku zina sanksinya adalah dua macam; buat yang masih bujangan adalah jilid 100 kali ditambah pengasingan selama setahun, sedangkan bagi yang sudah menikah adalah rajam hingga mati. Aturan yang keras ini bersifat pencegahan, supaya orang nggak melakukannya. Juga sebagai penebus atas dosa perzinaan yang sudah ia kerjakan.

program family tree

Diarsipkan di bawah: Java programming — by rinarin @ 7:48 am

import java.util.*;
class Node{
String nama;
int level;
Node parent,sibling,anak;
linkedList child;                // linkedlist yg selevel
public Node(String n){
nama = n;
parent = sibling = anak = null;
child = null;
level = 0;
}
void view(Node berhenti){        // u/ ngeprint anaknya root
// anak root
System.out.println(nama);
// anaknya anak root dst
if(anak!=null){
for(int i=0;i<anak.level;i++)
System.out.print(“   “);
anak.view(anak);        // kalo masih ada yang levelnya dibwh anak root, print
}
// sodara anaknya anak root dst
if(sibling!=berhenti && sibling.parent==this.parent){
for(int i=0;i<sibling.level;i++)
System.out.print(“   “);
sibling.view(berhenti);
}

}
}

class linkedList {
Node head,tail;
public linkedList (){
head = tail = null;
}

Node find(String cari){
Node temp=head;
do{
if(temp.nama.contains(cari)){
return temp;
}
temp = temp.sibling;
}while(temp!=head && temp!=null);
return null;
}
void add(Node input){
// u/ nambah linkedlist child
if(head.child==null){
head.child = new linkedList();
head.child.head = input;
head.child.tail = input;
input.sibling = input;
}
else{
Node temp = head.child.head;
while(temp.parent!=input.parent && temp.sibling!=head.child.head)
temp = temp.sibling;
input.sibling = temp.sibling;
temp.sibling = input;
}
// u/ ngehubungin parent dan anaknya
if(input.parent.anak==null)
input.parent.anak = input;
input.level = input.parent.level + 1;
System.out.println(“Berhasil memasukkan “+input.nama+” sebagai anak dari “+input.parent.nama);
}
}

class Tree{
Node root;
public Tree(){
root = null;
}
void insert(String a,String b){
if(b.equals(“”)){        // sbg root
if(root==null){
root = new Node(a);
System.out.println(“Berhasil memasukkan “+a+” sebagai root”);
}
else
System.out.println(“Input Error!!”);
}
else if(root.nama.contains(b)){        // nambah anak root
if(!menikah(root))
return;
Node baru = new Node(a);
baru.parent = root;
baru.level = 1;
if(root.child==null){
root.child = new linkedList();    // nambahnya dg buat linkedlist baru
root.child.head = baru;
root.child.tail = baru;
root.anak = baru;
baru.sibling = baru;
}
else{
root.child.tail.sibling = baru;
baru.sibling = root.child.head;
root.child.tail = baru;
}
System.out.println(“Berhasil memasukkan “+a+” sebagai anak dari “+b);
}
else{    // nambah cucu root dan seterusnya
linkedList temp = findList(b);
Node input = new Node(a);
if(temp != null){
if(!menikah(temp.find(b)))
return;
input.parent = temp.find(b);
temp.add(input);         // nambah dari linkedlist
}
else
System.out.println(“Tidak ada anggota keluarga bernama “+b);
}
}

void view(){
if(root==null){
System.out.println(“Belum ada data”);
}
else{
System.out.println(root.nama);            // ngeprint root
if(root.anak!=null){
for(int i=0;i<root.anak.level;i++)
System.out.print(“   “);
root.anak.view(root.anak);
}
}
}
linkedList findList (String cari){
linkedList temp = root.child;
while(temp!=null){
if(temp.find(cari)!=null)
return temp;
temp = temp.head.child;
}
return null;
}
void findAll(String nama){
if(root.nama.equals(nama)){
System.out.println(nama+” adalah root”);
}
else{
linkedList temp = findList(nama);
if(temp!=null){
Node p = temp.find(nama);
if(p.sibling==p)
System.out.println(“Tidak ada anggota keluarga yang selevel dengan “+nama);
else{
p = p.sibling;
System.out.print(“Anggota keluarga yang selevel dengan “+nama+” adalah “+p.nama);
while(p.sibling!=temp.find(nama)){
System.out.print(“, “+p.sibling.nama);
p = p.sibling;
}
}
}
else
System.out.println(“Tidak ada anggota keluarga bernama “+nama);
System.out.println();
}
}
void relation(String a,String b){
linkedList temp = findList(a);
linkedList temp2 = findList(b);
if(temp==null || temp2==null){
if(!(root.nama.contains(a) || root.nama.contains(b))){
System.out.println(“Input Error !!”);
return;
}
}
Node satu=null,dua=null;
//kalo salah satunya root
if(temp==null){
satu = root;
dua = temp2.find(b);
}
else if(temp2==null){
dua = root;
satu = temp.find(a);
}
//kalo dua-duanya bukan root
else{
satu = temp.find(a);
dua = temp2.find(b);
}

if(satu!=null && dua!=null){
// dikondisikan satu paling muda(levelnya besar)
if(dua.level>satu.level){
Node s = satu;
satu = dua;
dua = s;
}
if(satu.level == dua.level){
if(satu.parent==dua.parent)
System.out.println(a+” adalah saudara kandung “+b);
else  System.out.println(a+” adalah saudara sepupu “+b);
}
else{
int selisih = satu.level – dua.level;
if(selisih==1){
if(satu.parent==dua)
System.out.println(dua.nama+” adalah orangtua dari “+satu.nama);
else  System.out.println(satu.nama+” adalah keponakan “+dua.nama);
}
else if(selisih==2){
System.out.println(satu.nama+” adalah cucu “+dua.nama);
}
else if(selisih==3){
System.out.println(satu.nama+” adalah cicit “+dua.nama);
}
else{
System.out.println(satu.nama+” adalah canggah “+dua.nama);
}
}
}
}
void marry(String a,String b){
linkedList temp = findList(a);
Node m = null;
if(temp==null){
if(root.nama.equals(a)){
m = root;
}
else{
System.out.println(“Input error !!”);
return;
}
}
else
m = temp.find(a);
m.nama = m.nama + ” ” + b;
System.out.println(“cie..cie.. , akhirnya “+a+” nikah juga sama si “+b);
}
boolean menikah(Node cek){
StringTokenizer st = new StringTokenizer(cek.nama);
if(st.countTokens()!=2){
System.out.println(cek.nama+” belum menikah !!”);
return false;
}
return true;
}
}

public class SilsilahKeluargaKlp76{
public static void main(String[] args){
Scanner input = new Scanner (System.in);
String perintah;
Tree silsilah = new Tree();
StringTokenizer st;
while(true){
System.out.print(“command >> “);
perintah = input.nextLine();
while(perintah.length()<10)
perintah = perintah + ” “;
if(perintah.substring(0,6).equalsIgnoreCase(“insert”)){
st = new StringTokenizer(perintah.substring(7));
if(st.countTokens()==1){
silsilah.insert(st.nextToken(),”");
}
else{
silsilah.insert(st.nextToken(),st.nextToken());
}
}
else if(perintah.substring(0,4).equalsIgnoreCase(“view”)){
System.out.println();
silsilah.view();
System.out.println();
}
else if(perintah.substring(0,8).equalsIgnoreCase(“relation”)){
st = new StringTokenizer(perintah.substring(9));
silsilah.relation(st.nextToken(),st.nextToken());
}
else if(perintah.substring(0,8).equalsIgnoreCase(“find_all”)){
st = new StringTokenizer(perintah.substring(9));
silsilah.findAll(st.nextToken());
}
else if(perintah.substring(0,5).equalsIgnoreCase(“marry”)){
st = new StringTokenizer(perintah.substring(6));
silsilah.marry(st.nextToken(),st.nextToken());
}
else
System.out.println(“Nginput yang bener donkZzz!!!”);
}
}
}

program traversals binary search tree

Diarsipkan di bawah: Java programming — by rinarin @ 7:48 am

// input file .txt

import java.util.*;
import java.io.*;

class Node{
int data;
Node left,right,father;
public Node(int input){
data=input;
this.left=null;
this.right=null;
this.father=null;
}
void cetak(){
System.out.print(data+” “);
}
}

class binaryTree{
Node root;
public binaryTree(){    //bikin binary tree dg root kosong
root=null;
}
boolean isEmpty(){
return(root==null);
}
void insert(int input){
Node baru = new Node(input);
Node parent;

if(isEmpty()){
root = baru;
System.out.print(“Root sekarang : “+input+”\n”);
}

else{
Node now = root;
while(now!=null){
parent = now;
if(input<now.data){    // masuk kiri
System .out.println(input+” ada di kiri “+now.data);
now=now.left;
if(now==null){
parent.left = baru;
}
}
else{                // masuk kanan
System .out.println(input+” ada di kanan “+now.data);
now=now.right;
if(now==null){
parent.right = baru;
}
}
}
}
}// end of insert

void preorder(Node temp){
if(temp!=null){
temp.cetak();
preorder(temp.left);
preorder(temp.right);
}
}// end of preorder

void inorder(Node temp){
if(temp!=null){
inorder(temp.left);
temp.cetak();
inorder(temp.right);
}
}// end of inorder

void postorder(Node temp){
if(temp!=null){
postorder(temp.left);
postorder(temp.right);
temp.cetak();
}
}// end of postorder

}

public class BST{
public static void main(String[] args){
System.out.println(“^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^”);
System.out.println(“    Traversals Binary Search Tree    “);
System.out.println(“    by Rina_74 & Venty_168 Klp 76    \n”);
System.out.println(“^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^”);
Scanner masuk = new Scanner(System.in);
binaryTree a = new binaryTree();
int pilih,isi;

/* INPUTAN FILE dari inputTree.txt */
try{
FileReader p = new FileReader(“inputTree.txt”);
BufferedReader baca = new BufferedReader(p);
StringTokenizer st = new StringTokenizer(baca.readLine());
while(st.hasMoreTokens()){
int s = Integer.parseInt(st.nextToken());
a.insert(s);
}
baca.close();
}catch(Exception e){e.printStackTrace();}

do{
System.out.println(“\n1 >> Traversal PreOrder”);
System.out.println(“2 >> Traversal InOrder”);
System.out.println(“3 >> Traversal PostOrder”);
System.out.println(“4 >> Out of program”);

System.out.print(“Input = “);
pilih = masuk.nextInt();
switch(pilih){
case 1:    System.out.print(“Traversal PreOrder : “);
a.preorder(a.root);
System.out.println();
break;
case 2:    System.out.print(“Traversal InOrder : “);
a.inorder(a.root);
System.out.println();
break;
case 3:    System.out.print(“Traversal PostOrder : “);
a.postorder(a.root);
System.out.println();
break;
case 4: System.out.println(“\nTq 4 ur aTTenTioN ;) \n”);
System.out.close();
default : System.out.println(“Wewh,, inputnya salah!! Jelaz2 antara 1-4..\n”);
}
}while(pilih!=4);
}
}

program simulasi FRS-an

Diarsipkan di bawah: Java programming — by rinarin @ 7:46 am

import java.util.Scanner;
class Peserta {
String nama;
String nrp;
Peserta nextPes,prevPes;    // u/ nge-link
public Peserta (String nama, String nrp){    // contructor
this.nama = nama;
this.nrp = nrp;
}
}

class Kelas {
Peserta head;
Peserta tail;
String nmKlas;
int kapasitas;    // kapasitas kelas
int jumlah;        // kursi yang terisi
Kelas nextKel,prevKel;    // u/ nge-link
public Kelas(String namaKlas,int k){    // constructor
nmKlas = namaKlas;
kapasitas = k;
jumlah = 0;
head = tail = null;
}

void edit(int k) {
kapasitas = k;
}

public Peserta find (String nrp){
Peserta search = head;
while (search!=null){
if(search.nrp.equals(nrp))    // jika search = nrp
return search;
search=search.nextPes;        // posisi search digeser
}
return null;    // jika tidak ada, return null
}

void cetakPeserta(){
System.out.println(“\nKelas “+nmKlas+” (“+jumlah+”/”+kapasitas+”) :”);
Peserta p = head;
while(p != null) {
System.out.println(p.nrp+” – “+p.nama);
p = p.nextPes;
}
}

void addPeserta(Peserta input){

if(head == null) {        // jika belum ada isinya,
head = input;        // input diposisikan sbg head dan tail
tail = input;
jumlah++;            // kursi yang terisi bertambah
}
else if (head.nrp.compareTo(input.nrp) > 0) {    // jika head.nrp > input.nrp
input.nextPes = head;
head.prevPes = input;
head = input;
jumlah++;
}
else if (tail.nrp.compareTo(input.nrp) < 0) {    // jika tail.nrp < input.nrp
tail.nextPes = input;
input.prevPes = tail;
tail = input;
jumlah++;
}
else {
Peserta temp, temp2;
temp = head;

while(temp.nrp.compareTo(input.nrp) < 0) {    // jika temp.nrp < input.nrp
temp = temp.nextPes;
}
temp.prevPes.nextPes = input;
input.prevPes = temp.prevPes;
temp.prevPes = input;
input.nextPes = temp;
jumlah++;
}
}

void removeFirst(){
if(head!=null){
if(head==tail){        // jika hanya ada 1 node
head=tail=null;
jumlah–;
}
else{                // jika ada >1 node
head=head.nextPes;    // posisi head digeser ke next
jumlah–;            // shg otomatis head awal hilang
}
}
}

void removeLast(){
if(head!=null){
if(head==tail){        // jika hanya ada 1 node
head=tail=null;
jumlah–;
}                    // jika ada >1 node
else{
Peserta temp = head;
while(temp.nextPes!=tail){    // di loop hingga bertemu tail
temp=temp.nextPes;
}
tail=temp;
temp.nextPes=null;
jumlah–;
}
}
}

void removePeserta(String nrpPes){
Peserta pointer = find(nrpPes);    // pointer di posisi nrp yg ingin di-del
if(pointer==null)return;
else if(pointer==head)removeFirst();
else if(pointer==tail)removeLast();
else{
Peserta beforeData = head;
while(beforeData.nextPes!=pointer){    // beforeData digeser hingga bertemu pointer
beforeData=beforeData.nextPes;
}
Peserta afterData = pointer.nextPes;
beforeData.nextPes = afterData;
jumlah–;
}
}
}

class MK {                // sebagian besar method di MK sama dengan method di Kelas
Kelas head;            // hanya berbeda atributnya
Kelas tail;
public MK(){}

public Kelas find (String kelasApa){
Kelas search = head;
while (search!=null){
if(search.nmKlas.equals(kelasApa))
return search;
search=search.nextKel;
}
return null;
}

Kelas cariPeserta(String nrp) {
Kelas temp = head;
while(temp != null) {
if(temp.find(nrp) != null) {
return temp;
}
temp = temp.nextKel;
}
return null;
}

void cetakKelas(){
Kelas temp;
temp=head;
while (temp!=null){
System.out.print(” “+ temp.nmKlas + ” ” + temp.kapasitas);
temp = temp.nextKel;
}
}

void cetakSemua () {
Kelas temp;
temp = head;
while(temp != null) {
temp.cetakPeserta();
temp = temp.nextKel;
}
}

void addKelas(){
Scanner input = new Scanner(System.in);
System.out.print(“Banyak kelas : “);
String in = input.nextLine();
int bnyk = Integer.parseInt(in);

for(int i=1;i<=bnyk;i++) {
Kelas data;
System.out.print(“Nama kelas : “);
String nama = input.nextLine();
System.out.print(“Kapasitas : “);
in = input.nextLine();
int k = Integer.parseInt(in);
data = new Kelas(nama,k);

if(head == null) {
head = data;
tail = data;
}
else if (head.nmKlas.compareTo(data.nmKlas) > 0) {
data.nextKel = head;
head.prevKel = data;
head = data;
}
else if (tail.nmKlas.compareTo(data.nmKlas) < 0) {
tail.nextKel = data;
data.prevKel = tail;
tail =data;
}
else {
Kelas temp;
temp = head;

while(temp.nmKlas.compareTo(data.nmKlas) < 0) {
temp = temp.nextKel;
}
temp.prevKel.nextKel = data;
data.prevKel = temp.prevKel;
temp.prevKel = data;
data.nextKel = temp;
}

data = null;
System.out.println(“Kelas “+nama+” telah ditambahkan”);
}
}

void cariKelas() {
Scanner input = new Scanner(System.in);
System.out.print(“Masukkan nama kelas : “);
String nama = input.nextLine();
if(find(nama) == null) {
System.out.println(“Kelas tidak ada”);
}
else {
find(nama).cetakPeserta();
}
}

void editKap() {
Scanner input = new Scanner(System.in);
Kelas temp = null;
System.out.print(“Pilih kelas : “);
String kel = input.nextLine();

temp = find(kel);
if(temp == null) {
System.out.println(“Kelas tidak ada”);
}
else {
System.out.println(“Kapasitas sekarang = “+temp.kapasitas);
System.out.println(“Kapasitas baru     = “);
kel = input.nextLine();
int k = Integer.parseInt(kel);
temp.kapasitas = k;
}
}
}
public class prakShift2mataKuliah {
public static void main(String[] args) {
System.out.println(“** PRAKTIKUM MODUL 1 SHIFT 2 PSD 2008 **”);
System.out.println(“             LINKED LIST”);
System.out.println(“            by Kelompok 76″);
System.out.println(“          Rina_74 & Venty_168″);

Scanner input = new Scanner(System.in);

MK matKul = new MK();
int pilihan;
do{
System.out.println(“\nMenu :”);
System.out.println(“1. Menambah kelas”);
System.out.println(“2. Menambah peserta”);
System.out.println(“3. Menghapus peserta”);
System.out.println(“4. Edit kapasitas kelas”);
System.out.println(“5. Cari kelas”);
System.out.println(“6. Cari peserta”);
System.out.println(“7. Tampilkan semua data”);
System.out.println(“8. Keluar”);
System.out.println(“Masukkan pilihan >> “);
String pil = input.nextLine();
pilihan = Integer.parseInt(pil);
switch (pilihan) {
case 1 : matKul.addKelas();
break;
case 2 : tambahPeserta(matKul);
break;
case 3 : hapusPeserta(matKul);
break;
case 4 : matKul.editKap();
break;
case 5 : matKul.cariKelas();
break;
case 6 : cariPeserta(matKul);
break;
case 7 : matKul.cetakSemua();
break;
}
}
while(pilihan != 8);

}

static String inputNRP(){
Scanner input = new Scanner(System.in);
String nrp;
System.out.print(“Masukkan NRP : “);
nrp = input.nextLine();
return nrp;
}

static void cariPeserta(MK matKul) {
String nrp = inputNRP();
if(matKul.cariPeserta(nrp) == null) {
System.out.println(“Peserta tidak ada”);
}
else {
Peserta temp = matKul.cariPeserta(nrp).find(nrp);
System.out.println(temp.nrp+” – “+temp.nama);
System.out.println(“Kelas “+matKul.cariPeserta(nrp).nmKlas);
}
}

static void hapusPeserta(MK matKul) {
String nrp = inputNRP();
if(matKul.cariPeserta(nrp) != null) {
matKul.cariPeserta(nrp).removePeserta(nrp);
}
}

static void tambahPeserta(MK matKul) {
Scanner input = new Scanner(System.in);
String kelas;
Kelas temp = null;
do {
System.out.print(“Pilih kelas : “);
kelas = input.nextLine();
temp = matKul.find(kelas);
if(temp == null){    // cek apakah kelas sudah diciptakan??
System.out.println(“Kelas tidak ada”);
}
else if(temp.jumlah == temp.kapasitas) {    // jika jumlah = kapasitas, tidak bisa tambah peserta
System.out.println(“Kapasitas kelas sudah penuh !!”);
temp = null;
}
}while((temp == null));
Peserta p;
System.out.print(“Masukkan nama : “);
String nama = input.nextLine();
String nrp = inputNRP();
if(matKul.cariPeserta(nrp) != null)
System.out.println(“NRP Anda sudah terdaftar”);

else {
p = new Peserta(nama,nrp);
temp.addPeserta(p);
}
}
}

program sorting dg flip pancake

Diarsipkan di bawah: Java programming — by rinarin @ 7:45 am

import java.util.*;

class martabak {
int diameter;
int index;
martabak next,prev;
public martabak(int d,int i) {
diameter = d;
index = i;
}
}
class Stack{
int max;
int[] urutanFlip = new int[30];
int indexFlip;
martabak head,tail;
public Stack(int max){
head = tail = null;
this.max=max;
indexFlip = 0;
}

boolean isEmpty(){
if(head == null)
return true;
return false;
}

boolean isFull(){
if(head != null && head.index==max)
return true;
return false;
}

int pop(){
if(!isEmpty()){
int temp = head.diameter;
head = head.next;
return temp;
}
return 0;
}

void push(int d,int i){
if(!isFull()){
martabak baru = new martabak (d,i);
if(head == null){
head = tail = baru;
}
else {
baru.next = head;
head.prev = baru;
head = baru;
}
}
}

void cetak(){
System.out.print(“Martabak : “);
martabak temp=head;
while(temp != null) {
System.out.print(temp.diameter+” “);
temp = temp.next;
}
System.out.print(“\n    Flip : ———–> “);
urutanFlip[indexFlip]=0;
for(int i=0;i<=indexFlip;i++){
System.out.print (urutanFlip[i]+” “);
}
System.out.println();
}

void urut(int now){
if(now==max)                //kalo now udah di max
return;
martabak temp = head;
if(head != null)
while(temp.index != now)
temp = temp.next;
martabak big = temp;
for(int i=now;i<=max;i++){
if(big.diameter<temp.diameter){
big=temp;            // nyari index posisi big
}
temp = temp.prev;        // cek ke atas
}

if(big.index==now)            // kalo now itu big
urut(now+1);
else if(big.index==max){    // kalo big udah di max
flip(now);                // ngeflip
cetak();
urut(now+1);
}
else{                        // kalo di tengah2, flip di big shg big ada di atas
flip(big.index);
cetak();
urut(now);
}
}

void flip(int index){
int[] temp = new int[max];
if(index==1){
for(int i=0;i<max;i++){            //di-pop dari bawah
temp[i]=pop();
}
}
else{
martabak pointer = tail;
for(int i=1;i<index;i++){        // yang udah urut
temp[i-1]=pointer.diameter;
pointer = pointer.prev;
}

for(int i=index-1;i<max;i++){    // yang belum urut, dipop
temp[i]=pop();
}
}
head = tail = null;
for(int i=0;i<max;i++){                //dimasukin lagi, shg posisi menjadi terbalik
push(temp[i],i+1);
}
urutanFlip[indexFlip++]=index;
}
}

public class martabak74 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int max;
int[] data;

System.out.print(“Jumlah pesanan martabak : “);
max = input.nextInt();
data = new int[max];
System.out.println(“Diameter martabak pesanan : “);
for(int i=max-1;i>=0;i–){
System.out.print(“–> “);
data[i]=input.nextInt();
}

Stack pesan= new Stack(max);
for (int i=0;i<max;i++){
pesan.push(data[i],i+1);        // data[i] sbg martabak, i+1 sbg index martabak
}

System.out.println(“\nProses sorting martabak…\n”);
pesan.cetak();
pesan.urut(1);
System.out.println(“\nMartabak telah tersorting…!\n”);

}

}

program infix to prefix

Diarsipkan di bawah: Java programming — by rinarin @ 7:44 am

import java.util.Scanner;

class Node {        // node untuk character
char karakter;
Node next,prev;
public Node(char karakter){
this.karakter=karakter;
}
}

class Stack {        // stack untuk menampung character pada operasi
Node head, tail;
public Stack(){
head = tail = null;
}

void push(char sesuatu){
Node baru = new Node(sesuatu);
if(head==null){
head = tail = baru;
}
else {
baru.next = head;
head = baru;
}
}

boolean isEmpty() {
if(head==null)
return true;
return false;
}

char pop(){
if(!isEmpty()){
char kar = head.karakter;
head = head.next;
return kar;
}
return 0;
}

void cetak(){
Node tampung = head;
if(!isEmpty())
while(tampung!=null){
System.out.print(tampung.karakter);
tampung=tampung.next;
}
System.out.println();
}
}
class Check{
boolean hirarki(char a,char b){        // char a = char yg masih dibaca
String operator1 = “*/”;        // char b = char yg udah masuk operandStack
String operator2 = “+-”;        // true if hirarki a<b
String operator3 = “^”;            // false if hirarki a>=b
for(int i=0;i<1;i++){
if(b==operator3.charAt(i) && a!=operator3.charAt(i))
return true;
for(int j=0;j<2;j++){
if(b==operator1.charAt(j)){
for(int k=0;k<2;k++){
if(a==operator2.charAt(k))
return true;
}
}
}

}
return false;
}

boolean isOperand(char k){
String operand = “ABCDEFGHIJKMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz”;
char[] operandArr = operand.toCharArray();
for(int i=0;i<operand.length();i++){
if(k==operandArr[i])
return true;
}
return false;
}
}

public class infixPrefix {
public static void main (String[] args){
System.out.print(“Infix Expression\t: “);
Scanner input = new Scanner (System.in);
String infix = input.nextLine();
char[] infixArr = infix.toCharArray();    // char dlm String infix dmskkn kdlm array

Stack temp = new Stack();
Stack prefix = new Stack();
Check ch = new Check();

for(int i = infix.length()-1;i>=0;i–){
if(ch.isOperand(infixArr[i])){    //jika char tmasuk dlm operand
prefix.push(infixArr[i]);    //char tsb di-push ke stack prefix
}
else{    //jika char tdk tmasuk dlm operand (ttp operator)
if(temp.isEmpty()||!ch.hirarki(infixArr[i],temp.head.karakter)){
temp.push(infixArr[i]);
}
else{
while (!temp.isEmpty() && ch.hirarki(infixArr[i],temp.head.karakter)) {
prefix.push(temp.pop());    //top of stack temp di-pop, trus di-push ke prefix
}
temp.push(infixArr[i]);
}
}
}

while(!temp.isEmpty())
prefix.push(temp.pop());
System.out.print(“Prefix Expression\t: “);
prefix.cetak();

}
}

program simulasi Queue, Stack, and make HistoryList

Diarsipkan di bawah: Java programming — by rinarin @ 7:43 am

import java.util.*;

class Node {
String isi;
Node next;
public Node (String input) {
isi = input;
}
}

class Stack {
Node head,tail;
int max;
int count;
public Stack (int m) {
head = tail = null;
max = m;
count = 0;
}

boolean full() {
return (count == max);
}

boolean empty () {
return (count == 0);
}

void push(String input) {
Node baru = new Node (input);
if(!full()) {
if(head == null) {
head = baru;    tail = baru;
}
else {
baru.next = head;
head = baru;
}
count++;
}
else {
System.out.println(“===Error===”);
System.out.println(“Cannot PUSH ‘”+input+”‘, stack overflow”);
System.out.println();
}
}

void pop() {
if(!empty()) {
System.out.println(“===POP ‘”+head.isi+”‘ from stack===”);
head = head.next;
count–;
}
else {
System.out.println(“===Error===”);
System.out.println(“Stack underflow”);
}
System.out.println();
}

void show() {
System.out.println(“===Stack content===”);
Node temp = head;
while(temp != null) {
System.out.println(temp.isi);
temp = temp.next;
}
System.out.println();
}

void hapus () {
while(!empty())
pop();
}
}

class Queue {
Node head,tail;
final int max = 10;
int count;
public Queue () {
head = tail = null;
count = 0;
}

boolean full() {
return (count == max);
}

boolean empty () {
return (count == 0);
}

void deQueue () {
Node temp = head;
if(count==1)
head = tail = null;
else {
head = head.next;
temp = null;
}
count–;
}

void enQueue (String input) {
if(sama(input))
return;
if(full()) {
deQueue();
}
Node baru = new Node(input);
if(empty()) {
head = baru;    tail = baru;
}
else {
tail.next = baru;
tail = baru;
}
count++;
}

boolean sama (String p) {
Node temp = head;
while (temp != null) {
if(p.equals(temp.isi))
return true;
temp = temp.next;
}
return false;
}

void cetak() {
System.out.println(“===COMMAND HISTORY===”);
int n=0;
Node temp = head;
while(temp != null) {
System.out.println((++n)+”. “+temp.isi);
temp = temp.next;
}
System.out.println();
}

void hapus () {
while(!empty())
deQueue();
}
}

public class psdmod2sft1 {
public static void main (String[] args) {
Scanner input = new Scanner (System.in);
Stack s = new Stack(5);
Queue history = new Queue();

String perintah;
while (true) {
System.out.print(“comline>> “);
perintah = input.nextLine();
if(perintah.length() == 1){
int n = Integer.parseInt(perintah);

if(history.head != null) {
Node temp = history.head;
int hitung = 1;
while(hitung<n && temp != null) {
temp = temp.next;
hitung++;
}
perintah = temp.isi;
}
}
if(perintah.substring(0,3).equals(“POP”)) {
if(perintah.length() == 3) {
s.pop();
history.enQueue(perintah);
}
else {
System.out.println(“===Error===”);
System.out.println(“Too many parameters”);
}
}
else if(perintah.substring(0,4).equals(“SHOW”)) {
s.show();
history.enQueue(perintah);
}
else if(perintah.substring(0,4).equals(“HELP”)) {
help();
}
else if(perintah.substring(0,5).equals(“PUSH “)) {
if(perintah.length() > 5) {
s.push(perintah.substring(5));
history.enQueue(perintah);
}
else {
System.out.println(“===Error===”);
System.out.println(“Missing parameter”);
}
}
else if(perintah.substring(0,5).equals(“EMPTY”)) {
s.hapus();
history.enQueue(perintah);
}
else if(perintah.substring(0,7).equals(“HISTORY”)) {
history.cetak();
}
else if(perintah.substring(0,12).equals(“CLEARHISTORY”)) {
history.hapus();
}
}
}

static void help() {
System.out.println(“PUSH\t\t: Memasukkan data ke dalam stack,, diikuti data”);
System.out.println(“POP\t\t: Mengeluarkan data yang ada di top of stack”);
System.out.println(“SHOW\t\t: Menampilkan data yang ada dalam stack”);
System.out.println(“EMPTY\t\t: Mengosongkan isi stack”);
System.out.println(“HISTORY\t\t: Menampilkan command yang telah dilakukan user sebelumnya”);
System.out.println(“CLEARHISTORY\t: Mengosongkan history”);
System.out.println(“HELP\t\t: Lha ini HELP!!\n”);
}
}

program fibonacci metofe rekursive

Diarsipkan di bawah: Java programming — by rinarin @ 7:43 am

import java.util.Scanner;

class fibonacci{
int rekursi(int a,int b, int n) {
if(n==1)                        // base case
{System.out.print(a+” “);
return a;}
else if(n==2)                    // base case
{System.out.print(a +” “+ b+” “);
return a+b;}
else
{System.out.print(a+” “);
return a + rekursi(b,a+b,n-1);}    // recursive step
}
}

class fibRekursi{
public static void main(String[] args){

System.out.println(“** Fibonacci dengan Recursive **\n”);

Scanner bil1 = new Scanner(System.in);
System.out.print(“Masukkan bil pertama : “);
String ke1 = bil1.nextLine();
int a = Integer.parseInt(ke1);

Scanner bil2 = new Scanner(System.in);
System.out.print(“Masukkan bil kedua : “);
String ke2 = bil2.nextLine();
int b = Integer.parseInt(ke2);

Scanner byk = new Scanner(System.in);
System.out.print(“Masukkan banyak deret : “);
String deret = byk.nextLine();
int n = Integer.parseInt(deret);

fibonacci apa = new fibonacci();
System.out.println(“\nHasilnya = “+apa.rekursi(a,b,n));
}
}

program fibonacci metode iteratif

Diarsipkan di bawah: Java programming — by rinarin @ 7:42 am

import java.util.Scanner;

class fibonacci{
int c,d;
int iterasi(int a, int b, int n){
d=a+b;                        // u/ menampung jumlah awal, yaitu bil ke-1 dan ke-2
for (int ke=3;ke<=n;ke++)    // loop dari bil ke-3 sampai ke-n
{
c=a+b;                    // sbg bil ke-3
System.out.print(c + ” “);
a=b;                     // sbg bil ke-1
b=c;                    // sbg bil ke-2
d=d+c;                    // u/ menampung jumlah sementara
}
System.out.println(“\nHasilnya = ” + d);
return d;
}
}

class fibIteratif{
public static void main(String[] args){

System.out.println(“** Fibonacci dengan Iterative **\n”);

Scanner bil1 = new Scanner(System.in);
System.out.print(“Masukkan bil pertama : “);
String ke1 = bil1.nextLine();
int a = Integer.parseInt(ke1);

Scanner bil2 = new Scanner(System.in);
System.out.print(“Masukkan bil kedua : “);
String ke2 = bil2.nextLine();
int b = Integer.parseInt(ke2);

Scanner byk = new Scanner(System.in);
System.out.print(“Masukkan banyak deret : “);
String deret = byk.nextLine();
int n = Integer.parseInt(deret);

fibonacci apa = new fibonacci();

System.out.print(a+” “+b+” “);

apa.iterasi(a,b,n);
System.out.print(“\n”);
}
}

program ackermann

Diarsipkan di bawah: Java programming — by rinarin @ 7:41 am

import java.util.Scanner;
class fungsi
{
int n;
int m;

public static int A (int m, int n)
{
if (m==0)
return n+1;
else if (m!=0 && n==0)
return A((m-1),1);
else
return A((m-1), A(m,(n-1)));
}
}

public class Ackermann
{
public static void main (String args[])
{
Scanner inputM = new Scanner(System.in);
System.out.print(“Enter value for m: “);
String isiM = inputM.nextLine();
int m = Integer.parseInt(isiM);

Scanner inputN = new Scanner(System.in);
System.out.print(“Enter value for n: “);
String isiN = inputN.nextLine();
int n = Integer.parseInt(isiN);

for (int i=0; i<=m; i++)
{
for (int j=0; j<=n; j++)
{
System.out.println(“The value of A (” + i + “,” + j + “) is ” + fungsi.A(i, j));
}
}
}
}

Halaman Berikutnya »

Didukung oleh WordPress.com