Modul Pemrograman Lanjut 2012
Modul Pemrograman Lanjut 2012
Modul 1
PENGENALAN JAVA DAN
LINGKUNGAN KERJA
Pokok Bahasan
1. Instalasi Java Development Kit (JDK)
2. Pengesetan PATH dan CLASSPATH
3. Latihan Program Java Sederhana
4. Cara mengkompilasi dan menjalankan program Java
5. Troubleshooting
Tujuan
Setelah melakukan Praktikum dalam modul ini diharapkan mahasiswa
mampu :
- Mengenal dan mempersiapkan Lingkungan Kerja Java
- Membuat Program Sederhana dengan Java
- Mengkompilasi dan menjalankan Program Java
- Menganalisa beberapa permasalahan yang terjadi saat pemrograman dan
memberikan solusi
Tugas Pendahuluan
1. Jelaskan apa yang dimaksud dengan Pemrograman Komputer dan
Pemrograman Java?
2. Sebutkan dan jelaskan tentang karakteristik Pemrograman Java!
3. Bandingkan, sebutkan dan jelaskan perbedaan antara pemrograman Java
dan pemrograman C++!
4. Jelaskan apa yang dimaksud dengan compiler dan interpreter Java serta
jelaskan bagaimana Program Java dapat berjalan!
5. Jelaskan apa yang dimaksud dengan Java Development Kit (JDK) dan Java
Runtime Environment (JRE)?
6. Jelaskan apa yang dimaksud dengan PATH dan CLASSPATH serta
bagaimana hubungannya dengan pemrograman Java!
1
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
objek,
diciptakan
oleh
satu
tim
dari
perusahaan
Sun
untuk
membuat
bahasa
pemrograman
baru
yang
ditulis
PATH
sangat
berguna
di
dalam
sistem.
kita meletakkan file-file utama Java (diantaranya java, javac, jdb, dan lainlain).
Sedangkan
pengesetan
CLASSPATH
sangat
berguna untuk
memberitahu sistem dimana kita meletakkan file-file class yang akan kita
libatkan dalam program kita. Pengesetan CLASSPATH ini biasa melibatkan
dua item,
yaitu
tanda (titik)
yang
menandakan
direktori
kerja
dan
tools.jar yang berisikan kumpulan file-file library standar yang disediakan oleh
Java.
2
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Percobaan
Percobaan 1 : Instalasi JDK
Jalankan file Instalasi JDK dan ikuti proses instalasi tahap demi tahap.
Pilihlah direktori penginstalan secara default (bisaanya di c:\jdkxxx dimana
xxx adalah versi JDK yang di-install)
3
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
this
program?");
Lakukan kompilasi pada file tersebut dan amati hasilnya. Kenapa terjadi
kegagalan pada saat kompilasi?. Benahilah kesalahan diatas sehingga program
tersebut dapat berjalan dengan baik.
2. Latihan 2
Tulislah program berikut ini dan simpanlah.
public class Test {
public static void main(String args) {
System.out.println("What's wrong with this program?");
}
}
Orang yang tidak memiliki sesuatu tidak akan bisa memberi manfaat kepada orang lain
4
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Modul 2
ELEMEN DASAR PEMROGRAMAN
JAVA
Pokok Bahasan
1. Keyword
2. Variabel/identifier, Tipe Data dan Nilai/Literal
3. Perubahan Tipe Data
4. Memberi komentar program
5. Instruksi Dasar
Tujuan
Dengan praktikum ini mahasiswa diharapkan dapat mengerti dan memahami
tentang :
1. Keyword
2. Variabel/identifier, Tipe Data dan Nilai/Literal
3. Perubahan Tipe Data
4. Memberi komentar program
5. Instruksi Dasar
Tugas Pendahuluan
1. Jelaskan apa yang dimaksud dengan variable dan identifier!
2. Jelaskan apa yang dimaksud dengan Keyword dan sebutkan daftar
keyword pada Java!
3. Sebutkan dan jelaskan aturan penulisan variable/identifier pada Java!
4. Sebutkan dan jelaskan tipe data dari bahasa pemrograman Java serta
berikan contoh identifikasi tipe data pada Java!
5. Jelaskan apa yang dimaksud dengan konstanta dan berikan contoh
penggunaannya pada Java!
6. Apa yang dimaksud dengan Casting dan jelaskan bagaimana cara
penggunaannya pada pemrograman Java?
5
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Nillai yang diberikan pada variable disebut literal. Beberapa bentuk nilai literal
antara lain:
1. Nilai bilangan bulat
2. Nilai bilangan riel
3. Nilai Boolean
4. Nilai untuk karakter
5. Nilai String
6
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
ditampilkan)
atau
System.out.println(Data
String
yang
akan
ditampilkan)
3. Instruksi input
Ada beberapa bentuk instruksi input pada Java, diantaranya adalah sebagai
berikut :
a. Membaca satu karakter
class bacaHuruf {
public static void main(String args[]) {
char input = (char) -1;
try {
input = (char) System.in.read();
}
catch (Exception e) {System.out.println(error +
e);}
}
}
7
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
}
catch (Exception e) {
System.out.println(Error : +
e.toString());
}
System.out.println(s);
}
}
8
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Jalankan
program
tersebut
kemudian
masukkan
angka
pada
argumennya.
Misalnya :
Percobaan
Percobaan 1 : Menampilkan nilai default dan nilai maksimal dari tipe data
primitif
1. Latihan 1 : Nilai default
public class DefaultValue {
static boolean b;
static char c;
static byte bt;
static short s;
static int i;
static long l;
static float f;
static double d;
public static void main(String args[]) {
System.out.println("Default value b = "
System.out.println("Default value c = "
+ b);
+ c);
9
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
System.out.println("Default
System.out.println("Default
System.out.println("Default
System.out.println("Default
System.out.println("Default
System.out.println("Default
value
value
value
value
value
value
bt
s
i
l
f
d
= "
= "
= "
= "
= "
= "
+ bt);
+ s);
+ i);
+ l);
+ f);
+ d);
} }
Byte.MAX_VALUE;
= Short.MAX_VALUE;
= Integer.MAX_VALUE;
Long.MAX_VALUE;
11
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Jika waktu adalah uang, maka setiap waktu yang digunakan hanya diorientasikan untuk menghasilkan uang.
Sehingga semakin banyak waktu yang dihabiskan, maka semakin banyak uang yang dihasilkan.
Seharusnya, jadikan waktu adalah pedang. Jika digunakan dengan baik maka akan bermanfaat untuk diri kita,
tetapi jika tidak, ada kemungkinan pedang itu pun bisa melukai diri kita.
Sejatinya, segala CITA dapat digapai dengan memanfaatkan waktu sebaik mungkin.
12
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Modul 3
OPERATOR
POKOK BAHASAN
1. Jenis operator
bitwise operator
TUJUAN
Dengan praktikum ini mahasiswa diharapkan dapat:
Tugas Pendahuluan
1. Sebutkan dan jelaskan macam-macam dari masing-masing operator pada
java serta berikan contoh penggunaannya pada program Java!
2. Tuliskan program untuk menghitung operator aritmatika dengan
variable, literal dan operator sebagai berikut.
Variable :
a = 12;
b = 2;
c = a dikalikan b;
operan.
Java mempunyai berbagai macam jenis operator yang dapat digolongkan
menjadi operator aritmatika, increment-decrement, bitwise, boolean, logik,
shift (geser), penugasan, kombinasi dan kondisi. Arithmatic
(operator
aritmatika)
adalah
operator
yang
operator
Keterangan
Operator
+
Operasi penambahan
Operasi pengurangan
Operasi perkalian
Operasi pembagian
Operasi modulus
Increment- decrement
menaikkan
operator
adalah
operator
yang
berguna
untuk
Keterangan
Operator
Berdasarkan
++
increment
--
decrement
urutan
increment-decrement
eksekusi
operator
penaikkan
ini
dapat
dan
penurunan
diklasifikasikan
nilainya,
menjadi
Keterangan
Operator
~
Operasi complement
&
Operasi AND
Operasi OR
Operasi XOR
Boolean operator
operannya bertipe boolean (true atau false). Yang termasuk boolean operator
adalah sebagai berikut :
14
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Logical
Keterangan
Operator
!
&
Operasi AND
Operasi OR
Operasi XOR
&&
||
Keterangan
Operator
==
!=
>
>=
<
<=
Keterangan
Operator
>>
right shift
>>>
<<
left shift
mempersingkat
waktu
penulisan
program.
Yang
termasuk
operator
Combination
Keterangan
Operator
+=
-=
*=
/=
%=
>>=
>>>=
<<=
&=
|=
^=
Percobaan
Percobaan 1 : Menguji Operator Aritmatika
class TestAritmetika {
public static void main (String[] args) {
short x = 6;
int y = 4;
float a = 12.5f;
float b = 7f;
System.out.println(x
System.out.println(x
System.out.println(x
System.out.println(x
System.out.println(x
=
+
*
/
y
y
y
y
+
=
=
=
=
+
+
+
+
+
,
(x
(x
(x
(x
y
+
*
/
= + y);
y));
y));
y));
y));
16
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
System.out.println(x % y = + (x % y));
System.out.println(a = + a + , b = + b);
System.out.println(a / b = + (a / b));
} }
17
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Jika Engkau tidak disibukkan dalam kebaikan, maka Engkau akan dsibukkan dengan
keburukan.
Mari kita manfaatkan waktu kita dengan sebaik-baiknya
18
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Modul 4
PERCABANGAN
POKOK BAHASAN
Jenis percabangan
o If
o If else
o Else if
o Switch
TUJUAN
Dengan praktikum ini mahasiswa diharapkan dapat:
Tugas Pendahuluan
1. Sebutkan dan jelaskan macam-macam dari masing-masing percabangan
pada java serta berikan contoh penggunaannya pada program Java!
(ekspresi_boolean)
Pernyataan1;
19
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
akan
dikerjakan
kalau
harus
bertipe int, short, byte atau char. Sintaks dari switch adalah sebagai
berikut:
switch (ekspresi) {
case nilai1: Pernyataan1;
break;
case nilai2: Pernyataan2;
break;
default: Pernyataan3;
}
Percobaan
Percobaan 1 : Percabangan menggunakan if, if-else dan else-if
class ContohIfElse {
public static void main (String args[]) {
char HurufDepan = (char) -1;
System.out.println(Masukkan huruf depan nama anda: );
try {
HurufDepan = (char) System.in.read();
}
catch (Exception e) {
System.out.println(Error : + e.toString());
}
if (HurufDepan == -1)
System.out.println(Kok, tidak turut perintah!);
else if (HurufDepan == a)
System.out.println(Apa namamu Amin?);
20
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
else if (HurufDepan == b)
System.out.println(Apa namamu Bambang?);
else if (HurufDepan == c)
System.out.println(Apa namamu Charlie?);
else if (HurufDepan == d)
System.out.println(Apa namamu Daud?);
else if (HurufDepan == e)
System.out.println(Apa namamu Endang?);
else System.out.println(Aku belum bisa menebak!);
}
}
21
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Modul 5
PERULANGAN
Pokok Bahasan
Perulangan
o for
o while
o do-while
Tujuan
Setelah melakukan Praktikum dalam modul ini diharapkan mahasiswa
mampu :
Tugas Pendahuluan
1. Sebutkan dan Jelaskan perbedaan antara perulangan for, while dan
do..while pada Java serta berikan contoh penggunaannya masingmasing!
2. Gambarlah
flowchart
untuk
masing-masing
contoh
penggunaan
11
13
15
17
19
22
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
for
while
(kondisi) {
Pernyataan;
do {
Pernyataan;
} while (kondisi);
Kita dapat memberikan kondisi tertentu pada saat terjadi perulangan. Kondisi
23
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
yang mungkin terjadi pada perulangan terdapat 2 macam, yaitu break dan
continue. Break menyebabkan suatu kondisi untuk keluar dari perulangan.
Sedangkan continue memyebabkan suatu kondisi untuk melanjutkan ke
tahapan selanjutnya pada perulangan.
Percobaan
Percobaan 1 : Menampilkan bilangan faktorial
Bilangan bulat faktorial n, ditulis dengan n! adalah dihasilkan dari mengalikan
dari 1 sampai dengan n.
Contohnya 5! = 1 x 2 x 3 x 4 x 5 =120.
Buatlah
program untuk menampilkan tabel hasil faktorial dari suatu bilangan yang
diinputkan (tampilan bilangan rata kanan). Gunakan perulangan for, while
dan do..while
Contoh tampilan :
Masukkan bilangan faktorial? 7
n
n!
24
120
720
5040
24
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Ya Allah, jauhilah aku dari kebingungan, muliakanlah aku dengan cahaya ilmu dan pengertian,
bukakanlah kepadaku makrifat-Mu, dan mudahkanlah bagiku pintu-pintu kurnia-Mu, wahai Yang Paling
Pengasih di antara yang pengasih.
25
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Modul 6
PENGENALAN IDE PADA JAVA
Pokok Bahasan
1. Instalasi NetBeans IDE
2. Java Console pada NetBeans
3. Java GUI pada NetBeans
Tujuan
Setelah melakukan Praktikum dalam modul ini diharapkan mahasiswa
mampu :
1. Mengenal dan mempersiapkan IDE pada Java
2. Membuat Program Console pada NetBeans IDE
3. Membuat Program GUI pada NetBeans IDE
Tugas Pendahuluan
1. Jelaskan apa yang dimaksud (Integrated Development Environment) IDE
pada Java!
2. Sebutkan dan jelaskan contoh-contoh IDE Java!
3. Gambarlah tampilan awal Netbeans IDE kemudian jelaskan masingmasing bagian-bagiannya!
4. Sebutkan dan jelaskan kelebihan dan kekurangan Netbeans IDE!
5. Sebutkan dan jelaskan cara membuat Java File pada NetBeans IDE!
6. Jelaskan apa yang dimaksud dengan Graphical User Interface (GUI)
pada Java!
Percobaan
Percobaan 1 : Instalasi Netbeans IDE
Jalankan file Instalasi NetBeans dan ikuti proses instalasi tahap demi tahap.
Pilihlah direktori penginstalan secara default (bisaanya di C:\Program
Files\NetBeans xxx dimana xxx adalah versi NetBeans yang di-install)
4. Buatlah File Java Console dengan cara klik File New File
5. Pilih Categories : Java, File Types : Java Main Class, kemudian klik Next
6. Isi Class Name. Pastikan,
8. Jalankan program
29
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
30
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
31
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
32
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Modul 7
PEMROGRAMAN VISUAL PADA
JAVA
Pokok Bahasan
1. Komponen Dasar GUI pada Netbeans
2. Pemrograman Visual Java pada Netbeans
Tujuan
Setelah melakukan Praktikum dalam modul ini diharapkan mahasiswa
mampu :
-
Tugas Pendahuluan
1. Jelaskan apa yang dimaksud dengan Swing pada pemrograman Java!
2. Jelaskan apa yang dimaksud dengan AWT pada pemrograman Java!
3. Sebutkan dan jelaskan 5 komponen pemrograman visual pada Netbeans
serta gambarkanlah bentuknya!
4.
Percobaan
Percobaan 1 : Program Aplikasi Hitung Sederhana
1. Buatlah Project dengan nama ProjectNamaMahasiswa
2. Buatlah file Java dengan type : JFrame Form
(Nama file java yang dibuat adalah AplikasiHitungNamaMahasiwa)
34
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Penjumlahan
int a, b;
a=Integer.parseInt(jTextField1.getText());
b=Integer.parseInt(jTextField2.getText());
jTextField3.setText(Integer.toString(a+b));
Pengurangan
int a, b;
a=Integer.parseInt(jTextField1.getText());
b=Integer.parseInt(jTextField2.getText());
jTextField3.setText(Integer.toString(a-b));
Perkalian
int a, b;
a=Integer.parseInt(jTextField1.getText());
b=Integer.parseInt(jTextField2.getText());
jTextField3.setText(Integer.toString(a*b));
35
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Pembagian
int a, b;
a=Integer.parseInt(jTextField1.getText());
b=Integer.parseInt(jTextField2.getText());
jTextField3.setText(Integer.toString(a/b));
5. Jalankan program
36
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Dengan ketentuan :
Jika diklik Simpan maka Data Mahasiswa akan tampil pada komponen
TextArea
37
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
38
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Halaman2NamaMahasiswa.java
Halaman3NamaMahasiswa.java
39
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Pada Halaman1NamaMahasiswa.java
private void
jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Halaman2NamaMahasiswa form2 = new
Halaman2NamaMahasiswa();
form2.a = jTextField1.getText();
form2.b = jTextField4.getText();
form2.c = jTextField5.getText() + " , " +
jComboBox1.getSelectedItem() +
" " + jComboBox2.getSelectedItem() + " " +
jComboBox3.getSelectedItem();
form2.d = jTextField2.getText();
form2.e = jTextField3.getText();
form2.setVisible(true);
this.setVisible(false);
}
private void
jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
System.exit(0);
}
Pada Halaman2NamaMahasiswa.java
40
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
}
private void formWindowOpened(java.awt.event.WindowEvent
evt) {
// TODO add your handling code here:
jLabel3.setText("Nama Calon Mahasiswa : " + a);
}
private void
jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
System.exit(0);
}
Pada Halaman3NamaMahasiswa.java
41
" + d +
"\nJurusan4 : " + e +
"\nPilihan 1 : " + f +
"\nPilihan 2 : " + g
);
}
Halaman1NamaMahasiswa.java
42
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
43
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Halaman2NamaMahasiswa.java
Halaman3NamaMahasiswa.java
44
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Modul 8
PEMROGRAMAN BERBASIS
OBJEK PADA JAVA
Pokok Bahasan
1. Aplikasi Sederhana Pada NetBeans
2. Konsep Kelas dan Objek pada Java
Tujuan
Setelah melakukan Praktikum dalam modul ini diharapkan mahasiswa
mampu :
-
Tugas Pendahuluan
1. Jelaskan apa yang dimaksud dengan Pemrograman Berorientasi Objek
pada Java!
2. Jelaskan apa yang dimaksud dengan objek!
3. Jelaskan apa yang dimaksud dengan class!
4. Jelaskan apa yang dimaksud dengan constructor!
5. Jelaskan apa yang dimaksud dengan inheritas, polimorfisme dan
enkapsulasi!
2. Kelas Konstruktor
-
Konstruktor adalah suatu fungsi khusus yang diberi nama sama dengan
nama kelasnya yang digunakan untuk memberikan nilai pada atribut
kelas dapat dilakukan pada saat objek didefinisika melalui suatu kelas
konstruktor (class constructor)
3. Enkapsulasi
-
4. Pewarisan
-
Inheritance berarti pewarisan pada sub kelas dari suatu kelas, yang bias
dilaksanakan melalui kata kunci extends.
5. Polimorfisme
46
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
47
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
48
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
Percobaan
Percobaan 1 : Bekerja Menu, Popup Menu dan Toolbar
1. Buatlah Program seperti gambar berikut
import java.awt.*;
import javax.swing.*;
49
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE)
;
setTitle("Hello World");
jLabel1.setBackground(new Color(255,204,255));
jLabel1.setFont(new Font("Arial",1,48));
jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
jLabel1.setText("Hello Swing");
jLabel1.setToolTipText("Mengucapkan Hello ...");
jLabel1.setDoubleBuffered(true);
jLabel1.setOpaque(true);
this.add(jLabel1);
Dimension screenSize =
Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width - 393)/2, (screenSize.height 204)/2,293,04);
}
50
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban
3. Daftar Pustaka
51
Program Studi Teknik Informatika
Fakultas Teknik
Universitas PGRI Ronggolawe (UNIROW) Tuban