Wednesday, February 22, 2017

Algoritma Pemrograman, Teori dan Praktikum dalam Bahasa Java


1.1.        Pengenalan Algoritma
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. Kata logis disini berarti benar sesuai dengan logika manusia. Untuk menjadi sebuah algoritma, urutan langkah yang ditempuh untuk menyelesaikan masalah harus memberikan hasil yang benar.
Misalkan saja “algoritma aktifitas pagi hari sebelum berangkat kerja” yang dikerjakan oleh seorang eksekutif junior untuk turun dari tempat tidur dan bekerja: (1) Turun dari tempat tidur; (2) melepas piyama; (3) mandi; (4) berpakaian; (5) makan pagi; (6) baca koran; (7) pergi kerja. Rutin ini membuat eksekutif junior bekerja dengan persiapan yang baik untuk membuat keputusan−keputusan kritis. Andaikan langkah yang sama dilakukan dengan urutan yang sedikit berbeda, misalnya: (1) Turun dari tempat tidur; (2) melepas piyama; (3) berpakaian; (4) mandi; (5) baca koran; (6) makan pagi; (7) berangkat kerja. Di dalam kasus ini eksekutif junior tersebut berangkat ke tempat kerja dalam keadaan basah kuyub.

1.2.        pengenalan UML
Unified Modeling Language (UML) belakangan ini merupakan skema representasi grafis yang banyak digunakan secara luas untuk pemodelan sistem berorientasi object. UML ini telah menyatukan berbagai skema notasi populer bersama−sama. Banyak yang merancang sistem mengunakan bahasa ini (dalam bentuk diagram) untuk memodelkan sistem mereka.
UML adalah bahasa grafis yang kompleks dan kaya dengan fitur. Salah satu model diagramnya adalah Activity Diagram. Dalam pembahasan algoritma ini, digram UML yang akan digunakan adalah activity diagram.
Sebuah activity diagram memodelkan aspek dari tingkah laku sistem. Activity  diagram memodel aliran kerja obyek (urutan aktivitas) selama eksekusi program. Activity  diagram adalah flowchart yang memodel aksi yang akan dikerjakan oleh obyek beserta dengan ordenya.

      Sekarang, mari kita lihat contoh activity diagram. Misalkan kita akan membuat activity diagram seseorang yang akan masuk ke dalam sebuah ruangan yang berpintu. Pertama kali yang dikerjakan adalah menuju ke pintu. Kemudian melihat apakah pintu dalam keadaan terbuka atau tertutup. Jika dalam keadaan terbuka, dia langsung masuk. Jika pintu dalam keadaan tertutup, maka orang tersebut akan mengecek apakah pintu dalam keadaan terkunci atau tidak. Kalau terkunci, maka orang tersebut akan mengambil kunci dan membuka pakai kunci, jika tidak terkunci, dia akan langsung membuka pintu. Dengan orang tersebut sudah bisa masuk ke ruangan, maka aktifitas masuk ruangan selesai

Praktikum dalam Bahasa Java 

PERNYATAAN IF

1.            TUJUAN

Mahasiswa dapat memahami pernyataan seleksi dalam java dengan menggunakan IF dan dapat menyelesaikan masalah yang berkaitan dengan seleksi IF baik dalam pemrograman maupun dalam algoritma

2.            TEORI SINGKAT
Pernyataan seleksi dengan IF akan mempunyai beberapa bentuk. Bentuk yang pertama adalah IF dengan satu pilihan. Bentuk umumnya adalah sebagai berikut.
            if (kondisi)
                        pernyataan;



3.            PELAKSANAAN PRAKTIKUM
Dengan menggunakan TextPad ketikkan program program – program berikut
Program 1
import java.util.Scanner;
public class IfSatuPilihan
{
public static void main(String args[])
{
Scanner masuk = new Scanner(System.in);
int bil;
System.out.print("Masukkan bilangan : ");
bil=masuk.nextInt();
if (bil==0)
System.out.println("Bilangan Nol");
}
}

Hasil Output
Masukkan bilangan : 0
Bilangan Nol

masukkan angka 7 dan apa hasilnya?
Modifikasi program diatas sehingga menjadi seperti berikut :

import java.util.Scanner;
public class IfDuaPilihan
{
     public static void main(String args[])
     {
          Scanner masuk = new Scanner(System.in);
          int bil;
          System.out.print("Masukkan bilangan : ");
          bil=masuk.nextInt();
          if (bil==0)
              System.out.println("Bilangan Nol");
          else
          System.out.println("Bilangan Bukan Nol");
     }
}

masukkan angka 7 dan jelaskan hasilnya!

4.            LATIHAN
Program untuk memilih jurusan
import java.util.Scanner;
public class IfJurusan
{
  public static void main(String args[])
  {
       Scanner masuk = new Scanner(System.in);
       int pil;
       System.out.print("Masukkan pilihan : ");
       pil = masuk.nextInt();
       if (pil==1)
        System.out.println("Jurusan MI/D3");
        else if(pil==2)
        System.out.println("Jurusan TK/D3");
        else if(pil==3)
        System.out.println("Jurusan KA/D3");
        else if(pil==4)
        System.out.println("Jurusan TI/S1");
        else if(pil==5)
        System.out.println("Jurusan SI/S1");
        else
        System.out.println("Pilihan Salah!!!");
     }
  }


Hasil output
Masukkan pilihan : 4
Jurusan TI/S1
Press any key to continue . . .

5.                TUGAS
Buat program untuk mendapatkan nilai determinan dari persamaan kuadrat. Kemudian akan ditampilkan pernyataan sesuai hasil determinannya.
Rumus: D=b*b-(4*a*c)
D=0 à akar kembar
D>0 à akar beda
D<0 à akar imajiner
Masukkanya  adalah nilai a,b,c
Contoh output :

masukkan nilai a:2
masukkan nilai b:4
masukkan nilai c:2
akar kembar


Untuk Materi Lengkapnya silahkan Download Dibawah, Jangan Lupa Komenya, dijamin materinya lengkap banget, diskripsi diatas hanya sebaigan saja




Share:

STACK , Apa itu Stack dalam Struktur Data

Definisi

Stack disebut juga tumpukan dimana data hanya dapat dimasukkan dan diambil dari satu sisi.
Karena itu, stack bersifat LIFO(Last In First Out).

Operasi yang dapat dilakukan stack adalah:
1.    Menambah (push)
2.    Mengambil (pop)
3.    megecek apakah stack penuh (isFull)
4.    mengecek apakah stack kosong (isEmpty)
5.    membersihkan stack (clear).
6.    Mencetak isi stack (print)

Operasi-operasi stack

Saat ini, kita akan mencoba membuat stack dan  operasi-operasi yang dapat dilakukannya.

1.    Mendefinisikan stack dengan menggunakan struct
typedef struct stack //    Mendefinisikan stack dengan menggunakan struct
{
int top;
char data [15][20];   // menampung 15 data dengan jumlah string max 20 huruf
};






2.    Mendefinisikan max_stack untuk maksimum isi stack
#define max_stack 15

3.    Membuat variable array sebagai implementasi stack
stack tumpuk;

4.    Mendeklarasikan operasi-operasi/fungsi yang dapat dilakukan stack.
a.    Push (menginputkan data pada stack)

void push(char d[20])
{
       tumpuk.top++;
       strcpy(tumpuk.data[tumpuk.top],d);
       printf("data berhasil dimasukkan");
}










b.    Pop (mengambil data pada stack)
void pop()
{
       printf ("data %s terambil",tumpuk.data[tumpuk.top]);
       tumpuk.top--;
}




c.    IsFull(megecek apakah stack penuh)
int isFull()
{
       if (tumpuk.top==max_stack-1)
              return 1;
       else
              return 0;
}








d.    isEmpty(mengecek apakah stack kosong)
int isEmpty()
{
       if (tumpuk.top==-1)
              return 1;
       else
              return 0;
}









e.    clear (membersihkan seluruh isi stack)
void clear()
{
       tumpuk.top=-1;
       printf("semua data terhapus.");

}








f.     print (mencetak seluruh isi stack)
void print()
{
       for (int i=tumpuk.top;i>=0;i--)
              printf ("%s\n",tumpuk.data[i]);
}







QUEUE
Queue disebut juga antrian dimana data masuk di satu sisi dan keluar di sisi yang lain. Karena itu, queue bersifat FIFO(First In First Out).

Saat ini, kita akan mencoba membuat queue dan operasi-operasi yang dapat dilakukannya.

Hal-hal yang perlu dilakukan untuk membuat queue yaitu
1.    Mendefinisikan queue dengan menggunakan struct dimana kita perlu menggunakan variable head dan tail sebagai penanda pada stack.
typedef struct queue //    Mendefinisikan queue dengan menggunakan struct
{
int head;
int tail;
char data [15][20];   // menampung 15 data dengan jumlah string max 20 huruf
};






2.    Mendefinisikan max untuk maksimum isi queue
#define max 15

3.     Membuat variable array sebagai implementasi queue
queue antri;

4.    Mendeklarasikan operasi-operasi/fungsi yang dapat dilakukan queue.
a.    Enqueue (menginputkan data pada queue)
void enqueue(char d[20])
{
       antri.head=0;
       antri.tail++;
       strcpy(antri.data[antri.tail],d);
       printf("data berhasil dimasukkan");
}







b.    Dequeue (mengambil data dari queue)
void dequeue()
{
       printf ("data %s terambil",antri.data[antri.head]);
       for (int i=antri.head;i<=antri.tail;i++)
              strcpy (antri.data[i],antri.data[i+1]);
       antri.tail--;
}





c.   
int isEmpty()
{
       if (antri.tail==-1)
       {
              antri.head=-1;
              return 1;
       }
       else
              return 0;
}
isEmpty (mengecek apakah antrian kosong)










d.    isFull (mengecek apakah antrian penuh)
int isFull()
{
       if (antri.tail==max-1)
              return 1;
       else
              return 0;
}








e.    clear (membersihkan seluruh isi antrian)
void clear()
{
       antri.head=antri.tail=-1;
       printf("semua data terhapus.");

}



f.     Print(mencetak seluruh isi antrian)
void print()
{
       for (int i=0;i<=antri.tail;i++)
              printf ("%s\n",antri.data[i]);
}










Share: