LEMBAR KERJA MAHASISWA
PEMROGRAMAN
Dosen: Nina Setiyawati, [Link]., [Link].
Nama :Joseph Heykel Prabawa
NIM :672020057
Ketentuan:
1. Kerjakan secara individu
2. Jawablah setiap pertanyaan pada bidang yang telah
disediakan. Anda bisa menyesuaikan besar bidang dengan
banyak/panjang jawaban Anda
3. Kumpulkan: Soft copy (.pdf); paling lambat Jumat, 19
Maret 2021 paling lambat jam 23.59 dengan nama file:
LKM_PEMROGRAMAN_NIM di assignment yang telah
disediakan.
1. Ubahlah program di bawah ini, implementasikan kembali dengan
menggunakan pernyataan switch
void main() {
int valid_operator = 1;
//valid_operator diinisialisasi dengan logika 1
char operator;
float number1, number2, result;
printf("Masukkan 2 buah bilangan & sebuah operator\n");
printf("dengan format : number1 operator number2\n\n");
scanf("%f %c %f", &number1, &operator, &number2);
if(operator == '*')
result = number1 * number2;
else if(operator == '/') result = number1 / number2;
else if(operator == '+') result = number1 + number2;
else if(operator == '-') result = number1 - number2;
else
valid_operator = 0;
if(valid_operator)
printf("\n%g %c %g adalah %g\n", number1,
operator,number2, result );
else
printf("Invalid operator!\n");
}
Jawaban
Kode program:
#include<stdio.h>
#include<stdlib.h>
void main() {
int valid_operator = 1;
char operator;
float number1, number2, result;
printf("Masukkan 2 buah bilangan & sebuah operator\n");
printf("dengan format : number1 operator number2\n\n");
scanf("%f %c %f", &number1, &operator, &number2);
switch (operator)
{
case '*':
result = number1*number2;
break;
case '/':
result = number1/number2;
break;
case '+':
result = number1+number2;
break;
case '-':
result = number1-number2;
break;
default:
valid_operator=0;
}
if(valid_operator)
printf("\n%g %c %g adalah %g\n", number1, operator,number2, result )
;
else
printf("Invalid operator!\n");
}
Screenshot program:
2. Dengan menggunakan pernyataan continue, buatlah program yang
dapat menampilkan bilangan ganjil dari 1 sampai < n (n diinputkan),
kecuali bilangan ganjil tersebut kelipatan 3. Dan berikan pilihan untuk
mengulang memasukkan batas atau tidak.
Contoh output:
Kode program:
#include <stdio.h>
#include <stdlib.h>
int main (){
int count, bil;
printf("===== Bilangan Ganjil =====\n");
printf("\nMasukkan Batas : ");
scanf("%d", &count);
for ( bil = 1; bil < count; bil+=2)
{
if(bil%3==0)
continue;
printf("%d ", bil);
}
printf("\n");
ulang ();
}
void ulang (){
char ngulang;
printf("Apakah Mau Memasukkan Batas Lainnya[Pilih y untuk iya dan t
untuk tidak] : ");
scanf("%s",&ngulang);
if (ngulang=='y')
{
system("cls");
main();
}
else
{
exit(0);
}
}
Screenshot program:
3. - Definisikan sebuah fungsi ganjil() yang memilliki sebuah parameter
bilangan bulat dan mengembalikan nilai 1 jika parameter yang
diberikan adalah bilangan ganjil dan mengembalikan nilai 0 jika
parameter tsb bukan bilangan ganjil
- Tulislah prototipe fungsi untuk fungsi tersebut
- Buat function main untuk memanggil function ganjil() yang
menerima input sebuah bilangan bulat yang akan ditentukan
ganjil/genapnya. Tampilkan pesannya (ganjil/genap) dalam main().
Kode program:
#include <stdio.h>
#include <stdlib.h>
int ganjil (int);
int main (){
int bil, hasil;
printf("==========================\n");
printf("Check Bilangan Ganjil\n");
printf("==========================\n");
printf("\nMasukkan Bilangan : ");
scanf("%d", &bil);
ganjil(bil);
if (ganjil(bil)==1)
printf("\nBilangan Ganjil\n");
else
printf("\nBilangan Genap\n");
}
int ganjil(int bilangan){
if(bilangan%2==1)
return 1;
else
return 0;
}
Screenshot program:
4. Buatlah program seperti berikut:
Kode program:
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int totalrowcol, rowno, colno;
printf("Masukkan Angka : ");
scanf("%d", &totalrowcol);
printf("\n");
for(int rowno = 1; rowno <= totalrowcol; rowno++)
{
for(int colno = 1; colno <= totalrowcol; colno++)
{
if ((rowno+colno)==(totalrowcol+1))
{
printf("%d", rowno);
}
else
{
printf(".");
}
}
printf("\n");
}
return 0;
}
Screenshot program:
5. Apakah output dari kode program berikut dan berikan analisi
prosesnya!
int nilai1=11;
int nilai2=2;
int nilai3=7;
int proses(int nilai) {
int hasil;
if (nilai < 0) {
return 1;
} else {
hasil= (nilai * 2) + proses(nilai / 2 - 1);
printf("%d\n",hasil);
return hasil;
}
}
void main() {
switch (proses(nilai1) % 3) {
case 0: printf("Santi \n");
break;
case 1: printf("Wahyu \n");
break;
case 2: printf("Udin \n");
break;
}
switch (proses(nilai2) % 3) {
case 0: printf("suka \n");
break;
case 1: printf("hobi \n");
break;
case 2: printf("benci \n");
break;
}
switch (proses(nilai3) % 3) {
case 0: printf("memasak\n");
break;
case 1: printf("berenang\n");
break;
case 2: printf("basket\n");
break;
}
}
Jawaban:
Analisis Proses:
switch (proses(nilai1) % 3) = Udin ( 11 % 3 = 2 )
proses(nilai=11)
return (nilai*2)+ (proses(nilai / 2-1) = 44
proses(nilai= 2)
return (nilai*2)+ (proses(nilai / 2-1) = 8
dst
Udin Benci Berenang
Output:_______________________