Anda di halaman 1dari 13

Raka Rahmadhian Shahputra

H1A022052
POST TEST DASAR PEMROGRAMAN
1. Bahasa C
Pada fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya (kalau pada prosedur
pada parameter yang dikirimkan secara acuan).
Karena nilai balik berada di nama fungsi tersebut, maka fungsi tersebut dapat langsung
digunakan untuk dicetak hasilnya. Atau nilai fungsi tersebut dapat juga langsung dipindahkan
ke pengenal variable yang lainnya.
Nama Prosedur tidak dapat digunakan lagsung tidak seperti pada Nama Fungsi, yang dapat
langsung digunakan dari sebuah prosedur adalah parameternya yang mengandung nilai balik.
Pada dasarnya tidak ada perbedaan yang signifikan antara prosedur dan fungsi pada Bahasa
C, hanya dibedakan dari return value. Jika suatu sub program tersebut memiliki nilai balik
(return value) maka sub program tersebut disebut Function (Fungsi) jika tidak memiliki nilai
balik maka sub program tersebut merupakan prosedure (Procedure).
Contoh fungsi C :
// membuat fungsi say_hello()
void say_hello(){
printf "Hello Selamat Datang!\n";
}

int main(){
// memanggil fungsi say_hello()
say_hello();
say_hello();
say_hello();

return 0;
}

Bahasa python
Fungsi dan Prosedur pada Phyton:

Dalam bahasa pemrograman Python disediakan fungsi dan prosedur. Yang membedakan
antara suatu prosedur dengan suatu fungsi dalam sebuah program adalah masukan dan
keluarannya. Pada prosedur, tidak ada keluaran sedangkan pada fungsi ada keluaran yang
nantinya dapat selanjutnya diolah lagi. Prosedur dan fungsi mempunyai deklarasi sintak yang
sama pada bahasa pemrograman python yaitu dengan menggunakan keyword def. Yang perlu
diingat adalah nama variabel yang digunakan untuk masukan dari fungsi jangan digunakan
untuk proses yang dilakukan dalam fungsi karena jika nilai variabel tersebut akan diisi
dengan nilai terakhir dari proses yang dilakukan.

Contoh
#Membuat Fungsi

def salam():

print ("Halo warga Elektro Unsoed")

## Pemanggilan Fungsi

salam()
2. Source code:
/*Program HitungBonusKaryawan*/
/*Menggolongkan karyawan terlebih dulu lalu menghitung bonus yang didapat*/

// preprocessor
#include <stdio.h>

// main driver
int main()
{

// kamus
int NomorMenu;
int N; /*N adalah lama bekerja*/
int U; /*U adalah umur*/

// algoritma

// cetak menu
printf(" MENU PENGGOLONGAN KARYAWAN \n");
printf(" 1. Staf \n");
printf(" 2. Bukan Staf \n");
printf(" 3. Keluar Program \n");
printf(" Masukan Pilihan Anda(1/2/3)!\n");
scanf("%d", &NomorMenu);

switch (NomorMenu)
{

case 1:
{
printf("Bonus Untuk Staf\n");
printf("Lama kerja(thn)\t: ");
scanf("%d", &N);
printf("Umur\t\t: ");
scanf("%d", &U);

if (N >= 5 && U >= 50)


printf("\"Selamat Anda Mendapat Bonus Sebesar Rp 1000.000\"\n");
else if (U < 50)
printf("\"Selamat Anda Mendapat Bonus Sebesar Rp 300.000\"\n");
else if (N < 5)
printf("\"Selamat Anda Mendapat Bonus Sebesar Rp 500.000\"");
break;
}
case 2:
{
printf("Bonus Untuk Bukan Staf\n");
printf("Lama Kerja(thn)\t: ");
scanf("%d", &N);
printf("Umur\t\t: ");
scanf("%d", &U);
if (N >= 5 && U >= 50)
printf("\"Selamat Anda Mendapat Bonus Rp 400.000\"\n");
else
printf("\"Selamat Anda Mendapat Bonus Rp 250.000\"");
break;
}
case 3:
{
printf("Keluar Program\n");
break;
}
}
return 0;
}

Output :
Pembahasan singkat :
Program ini dijalankan dengan input dari user apakah ia seorang staff atau nonstaff.
Lalu, setelah memilih posisi pekerjaan, program akan dijalankan ke dalam percabangan
berapa tahunkah ia lama bekerja serta berapa umurnya. Program ini akan menunjukkan
jumlah bonus yang diterima oleh pegawai sesuai denga napa yang telah user inputkan.
3. Source Code :
#include<stdio.h>
int main(){
int i,jumlah,uang;
int pecahan[3] = {50000, 20000, 10000};
int pecah[3];
printf("Inputkan jumlah uang yang mau diambil: ");
scanf("%d",&uang);
for(i=0;i<3;i++){
jumlah = uang/pecahan[i];
pecah[i] = jumlah;
uang = uang-(pecahan[i]*jumlah);
}
printf("Anda menerima uang sebagai berikut: \n");
for(i=0;i<3;i++){
if(pecah[i]!=0){
printf("%d lembar ",pecah[i]);
printf("%d\n",pecahan[i]);
}
}
}

Output :
Pembahasan Singkat :
Program ini berjalan dengan input user, lalu input tersebut akan masuk ke dalam loop
untuk dihitung jumlah serta pecah sehingga uang yang diinginkan akan keluar melalui
perhitungan di dalam loop tersebut. Selanjutnya pecah akan masuk ke dalam loop lalu
dihitung jumlah pecahan dan uangnya yang akan dikeluarkan oleh ATM.
4. Source Code : #include <stdio.h>
int main ()

{
int n, i, j, s, x;
printf ("Program membuat layang-layang\n");
printf ("Masukan jumlah kolom = ");
scanf ("%d",&x);
n = x / 2;
for (i = 1; i <= n; i++)

{
for (j = n; j >= i; j--)
printf (" ");

for (s = 1; s <= i + (i - 1); s++)


printf (" *");
printf ("\n");
}
for (i = 0; i <= n; i++)
{
for (j = 1; j <= i; j++)
printf (" ");
for (s = 0; s >= (i - n) ; s--)
printf (" *");
for (s = 1; s <= (n - i) ; s++)
printf (" *");
printf ("\n");
}
return 0;
}

Output :
Pembahasan Singkat :
Program dijalankan berdasarkan input jumlah kolom dari user. Input dari user tersebut
nantinya akan menjadi diagonal panjang dari layang-layang itu sendiri dan dari input tersebut
akan dilakukan perulangan yang bertujuan untuk membentuk sebuah layang-layang.
5. Source Code :
#include<stdio.h>
#include<math.h>
#include<conio.h>

float determinan(float a[25][25],float k);


void kofaktor(float num[25][25],float f);
void transpose(float num[25][25],float fac[25][25],float r);

int main(){
float a[25][25],k,d;
int i,j;
printf("=====================================\n");
printf("==Program Menghitung Invers Matriks==\n");
printf("=====================================\n");
printf("Masukkan ordo matriks : ");
scanf("%f",&k);
printf("Masukkan elemen dari matriks %.0fX%.0f \n",k,k);
for (i=0;i<k;i++){
for (j=0;j<k;j++){
scanf("%f",&a[i][j]);
if(a[i][j] == 2 || a[i][j] == -2){
a[i][j] = 0;
}
}
}
d=determinan(a,k);
printf("Determinan = %.2f",d);
if (d==0)
printf("\nInverse matriks tidak temukan\n");
else
kofaktor(a,k);
getch();
}

float determinan(float a[25][25],float k){


float s=1,det=0,b[25][25];
int i,j,m,n,c;
if (k==1){
return (a[0][0]);
}
else{
det=0;
for (c=0;c<k;c++){
m=0;
n=0;
for (i=0;i<k;i++){
for (j=0;j<k;j++){
b[i][j]=0;
if (i != 0 && j != c){
b[m][n]=a[i][j];
if (n<(k-2))
n++;
else{
n=0;
m++;
}
}
}
}
det=det + s * (a[0][c] * determinan(b,k-1));
s=-1 * s;
}
}
return (det);
}

void kofaktor(float num[25][25],float f){


float b[25][25],fac[25][25];
int p,q,m,n,i,j;
for (q=0;q<f;q++){
for (p=0;p<f;p++){
m=0;
n=0;
for (i=0;i<f;i++){
for (j=0;j<f;j++){
if (i != q && j != p){
b[m][n]=num[i][j];
if (n<(f-2))
n++;
else{
n=0;
m++;
}
}
}
}
fac[q][p]=pow(-1,q + p) * determinan(b,f-1);
}
}
transpose(num,fac,f);
}

void transpose(float num[25][25],float fac[25][25],float r){


int i,j;
float b[25][25],inverse[25][25],d;

for (i=0;i<r;i++){
for (j=0;j<r;j++){
b[i][j]=fac[j][i];
}
}
d=determinan(num,r);
for (i=0;i<r;i++){
for (j=0;j<r;j++){
inverse[i][j]=b[i][j] / d;
}
}
printf("\n\n\nInverse matriksnya adalah : \n");

for (i=0;i<r;i++){
for (j=0;j<r;j++){
printf("\t%.1f",inverse[i][j]);
}
printf("\n");
}
}
Output :

Pembahasan Singkat :
Program ini program untuk menentukan nilai invers dan determinan dari matriks yang
diinput oleh user, dalam program ini jika user menginput komponen angka 2 maka akan
terganti oleh angka 0, hal tersebut dikarenakan perintah dari soal yaitu Randi trauma dengan
angka 2.Dimana user diminta untuk menginputkan matriks dalam soal yang ada yaitu A dan
B.Program ini menggunakan perulangan incriment untuk mencari deteminan,kofaktor dan
transpose.

Anda mungkin juga menyukai