Anda di halaman 1dari 11

LAPORAN PRAKTIKUM

ALGORITMA & PEMROGRAMAN LANJUT


Pertemuan Ke – 6

DISUSUN OLEH :
NAMA : Agnes Belladona Shandy Ayocha
NIM : 175410123

TEKNIK INFORMATIKA

STMIK AKAKOM
YOGYAKARTA
2019
PERTEMUAN KE – 6
Iterasi, Seleksi dalam Fungsi
I. TUJUAN
 Mahasiswa mampu membuat program iterasi maupun seleksi dalam suatu fungsi.

II. DASAR TEORI


Fungsi digunakan untuk mempermudah didalam membuat sebuah program, terutama
program-program yang besar dan banyak melakukan hal yang sama. Fungsi dibagi menjadi 3 yaitu
fungsi void atau fungsi yang tidak menghasilkan nilai, fungsi non void atau fungsi yang menghasilkan
nilai, dan fungsi rekursif yaitu fungsi yang dapat memanggil dirinya sendiri..
III. PEMBAHASAN
 PRAKTIK 1
Program 1
import java.util.Scanner;
public class ProyekIterasiFungsi {
public static void cetakUlang(int nUlang){
for (int i=0;i<nUlang;i++){
System.out.println("Cetak ke "+(i+1));
}
}
public static void main(String[] args) {
int nUlang;
Scanner scan = new Scanner(System.in);
System.out.print("Akan dicetak berapa kali? : ");
nUlang = scan.nextInt();
cetakUlang(nUlang);
}
}
Output

Penjelasan :
Program java diatas menggunakan Scanner yaitu data dapat diinput oleh user melalui keyboard.
Program tersebut menggunakan perulangan for dengan nilai awal 0, batas kurang dari nilai dari nUlang
(nilai yang diinputkan user melalui keyboard) dan counter ditambah satu dari nilai variabel
sebelumnya. Jika user menginputkan angka 3 maka akan muncul tampilan seperti pada kolom output.

 PRAKTIK 2
Program 2
import java.util.Scanner;

public class ProyekIterasiFungsimodif {

public static void cetakUlang(int nUlang, String kata){


int i;
for (i=1;i<nUlang;i++){
System.out.println(kata);
}
}

public static void main(String[] args) {


int nUlang;
String masukan;
Scanner scan = new Scanner(System.in);
System.out.print("Masukan Kalimat : ");
masukan = scan.nextLine();
System.out.print("Akan dicetak berapa kali? : ");
nUlang = scan.nextInt();
cetakUlang(nUlang,masukan);

}
}
Output

Penjelasan :
Program java diatas merupakan program modifikasi menggunakan Scanner dimana data dapat
diinput oleh user melalui keyboard. Program tersebut menggunakan perulangan for dengan nilai awal
0, batas kurang dari nilai dari nUlang (nilai yang diinputkan user melalui keyboard) dan counter
ditambah satu dari nilai variabel sebelumnya. Jika user menginputkan kalimat apa saja dan
menginputkan angka 5 maka akan muncul tampilan seperti pada kolom output.

 PRAKTIK 3
Program 3
import java.util.Scanner;

public class ProyekHitungJumlah {

public static int hitungJumlah(int[] x){


int jum=0;
for (int i=0;i<x.length;i++){
jum += x[i];
}
return jum;
}

public static void main(String[] args) {


int data[] = new int[10];
int jumlah;
Scanner scan = new Scanner(System.in);
for (int i=0;i<10;i++){
System.out.print("Masukkan data ke"+(i+1)+" : ");
data[i] = scan.nextInt();
}
jumlah = hitungJumlah(data);
System.out.println("Jumlah data = "+jumlah);
}
}
Output

Penjelasan :
Program java diatas menggunakan Scanner yaitu data dapat diinput oleh user melalui
keyboard. Program ini merupakan program yang digunakan untuk menjumlahkan 10 bilangan.
Program tersebut menggunakan perulangan for dengan nilai awal 0, batas kurang dari panjang dari x
yang mana system akan secara otomatis membaca panjang dari x dan counter ditambah satu. Program
tersebut menggunakan fungsi non void yaitu dengan membawa nilai dari variabel jum. Dibawahnya
terdapat array 1 dimensi yang dapat menampung 10 data. Pada array tersebut menggunakan
perulangan for dengan nilai awal 0, batas kurang dari 10 dan counter ditambah satu dari nilai variabel
sebelumnya. Maka, tampilan output dari program diatas adalah seperti pada kolom output diatas
dimana user diminta untuk memasukkan bilangan 1 sampai 10 lalu program akan menghitung jumlah
data yang diinputkan tersebut.

 PRAKTIK 4
Program 4
import java.util.Scanner;
public class ProyekHitungJumlahmodif {
public static int hitungRata(int[] x){
int jum=0,avg=0;
for (int i=0;i<x.length;i++){
jum += x[i];
avg=jum / x.length;
}
return avg;
}
public static void main(String[] args) {
int data[] = new int[10];
int jumlah,avg;
Scanner scan = new Scanner(System.in);
for (int i=0;i<10;i++){
System.out.print("Masukkan data ke-"+(i+1)+" : ");
data[i] = scan.nextInt();
}
avg = hitungRata(data);
System.out.println("Rata-rata data = "+avg);
}
}
Output
Penjelasan :
Program java diatas menggunakan Scanner dimana data dapat diinput oleh user melalui keyboard.
Program ini merupakan program yang digunakan untuk menghitung rata-rata 10 bilangan. Program
tersebut menggunakan perulangan for dengan nilai awal 0, batas kurang dari panjang dari x yang mana
system akan secara otomatis membaca panjang dari x dan counter ditambah satu. Program tersebut
menggunakan fungsi non void yaitu dengan membawa nilai dari variabel jum dan nilai dari variabel
avg. Dibawahnya terdapat array 1 dimensi yang dapat menampung 10 data. Pada array tersebut
menggunakan perulangan for dengan nilai awal 0, batas kurang dari 10 dan counter ditambah satu dari
nilai variabel sebelumnya. Maka, tampilan output dari program diatas adalah seperti pada kolom
output diatas dimana user diminta untuk memasukkan bilangan 1 sampai 10 lalu program akan
menghitung rata-rata dari semua data yang diinputkan tersebut.

 PRAKTIK 5
Program 5
import java.util.Scanner;
public class GanjilGenap{
public static boolean cekGenap(int a){
boolean status;
if ((a % 2) == 0){
status = true;
}else {
status = false;
}
return status;
}

public static void main(String[] args) {


Scanner scan = new Scanner(System.in);
int x;
boolean genap;
System.out.print("Masukkan bilangan : ");
x = scan.nextInt();
genap = cekGenap(x);
if (genap){
System.out.println("Bilangan yang dicek ternyata genap");
}else{
System.out.println("Bilangan yang dicek ternyata ganjil");
}
}
}
Output
Penjelasan :
Program java diatas menggunakan Scanner yaitu data dapat diinput oleh user melalui
keyboard. Program ini digunakan untuk mengecek apakah bilangan yang diinputkan ganjil/genap. Jika
nilai dari variabel a (variabel yang diinput oleh user) dimodulo 2 sisa hasil baginya sama dengan 0
maka statusnya adalah true, tetapi apabila sisa hasil baginya tidak sama dengan 0 maka statusnya adalh
false. Program ini menguakan fungsi non void dan membawa nilai true/false sesuai angka yang
diinputkan oleh user. Jika bilangan yang diinpukan oleh user adalah genap maka akan muncul output
“Bilangan yang dicek ternyata genap” tetapi apabila bilangan yang diinputkan user tidak genap maka
akan muncul output “Bilangan yang dicek ternyata ganjil”.

 PRAKTIK 6
Program 6
import java.util.Scanner;
public class ProyekCekGanjilGenapArray {
public static boolean[] cekGanjilGenapArray(int[] x){
boolean hasil[] = new boolean[10];
for (int i=0;i<x.length;i++){
if ((x[i] % 2) == 0){
hasil[i] = true;
}else {
hasil[i] = false;
}
}
return hasil;
}
public static void main(String[] args) {
int data[] = new int[10];
boolean hasilCek[] = new boolean[10];
Scanner scan = new Scanner(System.in);
for (int i=0;i<10;i++){
System.out.print("Masukkan data ke-"+(i+1)+" : ");
data[i] = scan.nextInt();
}
hasilCek = cekGanjilGenapArray(data);
System.out.println("==========================");
System.out.println("=====Hasil Pengecekan=====");
System.out.println("==========================");

for (int i=0;i<10;i++){


System.out.print(" "+data[i]);
System.out.print(" "+hasilCek[i]);
System.out.println();
}
}
}
Output

Penjelasan :
Program java diatas menggunakan Scanner yaitu data dapat diinput oleh user melalui
keyboard. Program diatas menggunakan fungsi non void dimana data tersebut menggunakan tipe data
boolean yaitu dengan membawa nilai true/false sesuai yang diinputkan oleh user. Jika user
menginputkan angka yang dimodulo 2 sisa hasil baginya sama dengan 0 maka system akan membawa
nilai true, sebaliknya system akan membawa nilai false.

 PRAKTIK 7
Program 7
import java.util.Scanner;
public class ProyekCekGanjilGenapArray2 {
public static String[] cekGanjilGenapArray(int[] x){
String hasil[] = new String[10];
for (int i=0;i<x.length;i++){
if ((x[i] % 2) == 0){
hasil[i] = "Genap";
}else {
hasil[i] = "Ganjil";
}
}
return hasil;
}
public static void main(String[] args) {
int data[] = new int[10];
String hasilCek[] = new String[10];
Scanner scan = new Scanner(System.in);
for (int i=0;i<10;i++){
System.out.print("Masukkan data ke-"+(i+1)+" : ");
data[i] = scan.nextInt();
}
hasilCek = cekGanjilGenapArray(data);
System.out.println("==========================");
System.out.println("=====Hasil Pengecekan=====");
System.out.println("==========================");
for (int i=0;i<10;i++){
System.out.print(" "+data[i]);
System.out.print(" "+hasilCek[i]);
System.out.println();
}
}
}
Output

Penjelasan :
Program java diatas menggunakan Scanner yaitu data dapat diinput oleh user melalui
keyboard. Program diatas menggunakan fungsi non void dimana data tersebut menggunakan tipe data
String yaitu dengan membawa pernyataan ganjil atau genap sesuai yang diinputkan oleh user. Jika
user menginputkan angka yang dimodulo 2 sisa hasil baginya sama dengan 0 maka system akan
membawa nilai genap, sebaliknya system akan membawa nilai ganjil.

 PRAKTIK 8
Program 8
import java.util.Scanner;
public class KonversiNilai {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double[] data = new double[10];
char [] keluar = new char[10];
for (int i=0;i<10;i++){
System.out.print("Data ke-"+(i+1)+" : ");
data[i] = scan.nextDouble();
}
System.out.println("=====================");
System.out.println("| Hasil Konversi |");
System.out.println("=====================");
keluar = konversiNilai(data);
//tampil hasil
for (int i=0;i<10;i++){
System.out.println(data[i]+" "+keluar[i]);
}
}
public static char[] konversiNilai(double[] x) {
int n = x.length;
char hasil[] = new char[n];
for (int i = 0; i < n; i++) {
if ((x[i] > 80) && (x[i] <= 100)) {
hasil[i] = 'A';
} else if ((x[i] > 60) && (x[i] <= 80)) {
hasil[i] = 'B';
} else if ((x[i] > 40) && (x[i] <= 60)) {
hasil[i] = 'C';
} else if ((x[i] > 20) && (x[i] <= 40)) {
hasil[i] = 'D';
} else if (x[i] <= 20) {
hasil[i] = 'E';
}
}
return hasil;
}
}
Output

Penjelasan :
Program java diatas menggunakan Scanner yaitu data dapat diinput oleh user melalui
keyboard. Program ini digunakan untuk mengkonversi suatu nilai dari bentuk angka menjadi bentuk
huruf. Program diatas meggunakan array 1 dimensi dengan tipe data double dan char. Program tersebut
menggunakan perulangan for dengan nilai awal 0, batas kurang dari 10 dan counter ditambah satu dari
nilai variabel sebelumnya. Pada bagian pengkonversian, program menggunakan perulangan for
dengan nilai awal 0, batas kurang dari n dan counter ditambah satu dari nilai variabel i sebelumnya.
Jika nilai yang diinputkan berada diantara 81-100 maka akan dikonversi menjadi A, apabila nilai
berada diantara 61-80 maka akan dikonversi menjadi B, apabila nilai berada diantara 41-60 maka akan
dikonversi menjadi C, apabila nilai berada diantara 21-40 maka akan dikonversi menjadi D, apabila
nilai berada dibawah 20 maka akan dikkonversi menjadi E.

 PRAKTIK 9
Program 9
import java.util.Scanner;
public class KonversiNilaimodif {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] data = new int[10];
char [] keluar = new char[10];
for (int i=0;i<10;i++){
System.out.print("Data ke-"+(i+1)+" : ");
data[i] = scan.nextInt();

}
System.out.println("=====================");
System.out.println("| Hasil Konversi |");
System.out.println("=====================");
keluar = konversiNilai(data);
//tampil hasil
for (int i=0;i<=10;i++){
System.out.println(data[i]+" "+keluar[i]);
}

}
public static char[] konversiNilai(int[] x) {
int n = x.length;
char hasil[] = new char[n];
int i=0;
while (i<n){
int a = (int) x[i]/20;
switch(a){
case 1:
hasil[i]='E';
break;
case 2:
hasil[i]='D';
break;
case 3:
hasil[i]='C';
break;
case 4:
hasil[i]='B';
break;
default:
hasil[i]='A';
break;
}
i++;
}
return hasil;
}
}
Output
IV. KESIMPULAN
Dari praktikum di atas dapat disimpulkan bahwa jika kita akan membuat suatu program yang
besar dan banyak melakukan hal yang sama, kita tidak harus membuat lagi perintah-perintah yang
sama tersebut, kita hanya perlu menggunakan fungsi..

V. LISTING
(Terlampir)

Anda mungkin juga menyukai