Anda di halaman 1dari 2

Jawaban Test Calon Asisten Laboratorium Komputasi

Departemen Fisika FMIPA Unpad

1. Perhatikan listing program dibawah ini. Jawaban


#include (stdio.h)
main() {
int output(100);
Perbaikan:
#include <stdio.h> // (1) ( ) → < >
int input, number, result, carry, n=0, c; main() {
printf("Input = "); int output[100]; // (2) ( ) → [ ]
scanf("%d", input); int input, number, result, carry, n=0, c;
if(input<0) { printf("Input = ");
printf('Tidak dapat dikonversi dalam program ini/n'); scanf("%d", &input); // (3) tambah &
} if(input<0) {
else { printf("Tidak dapat dikonversi dalam program ini\n"); // (4) /n → \n (5) ‘ ‘ → “ “
for(number=input:number>0:number=result) { }
result=number/2; else {
carry=number%2; for(number=input;number>0;number=result) { // (6) : → ;
output[n]=carry; result=number/2;
if(result=0) { carry=number%2;
break; output[n]=carry;
} if(result==0) { // (7) = → ==
else { break;
n=+1; }
c=n; else {
} n+=1; // (8) =+ → +=
} c=n;
printf("Output = "); }
for(n=n:n>=0:n--); { }
printf("%d", output[n]); printf("Output = ");
} for(n=n;n>=0;n--) { // (9) : → ; (10) hapus ;
printf("/n/n"); printf("%d", output[n]);
} }
return 0; printf("\n\n"); // (11) \n
} }
a. Carilah kesalahan sintaks dari listing berikut, perbaiki dan analisa bagaimana program ini akan berjalan return 0;
b. Bagaimana output dari program jika diberi input: 23, abc, -11 }
1 poin per perbaikan 0-11 poin

Analisa:
• Menjelaskan alur: per proses input integer → konversi decimal ke binary → output biner 5-10 poin
• Menjelaskan konversi: proses konversi dec-bin menggunakan sisa bagi 2 (mod 2) 5-10 poin
• Menjelaskan output: biner ditampilkan dari akhir (array output n sampai 0) 5-10 poin

Output:
• 23 = 10111 3 poin
• abc = 10111000000000001110011/string dibaca sebagai integer lalu dikonversi 3 poin
• -11 = Tidak dapat dikonversi dalam program ini 3 poin

TOTAL NILAI = 50 poin


2. Konsentrasi larutan oksigen jenuh dalam air sebagai fungsi suhu dan konsentrasi klorida diberikan dalam Jawaban
bentuk tabel berikut
Penentuan tren:
Menjelaskan curve fitting 3-5 poin
Menjelaskan metode regresi linier untuk penentuan tren 3-7 poin

Metode:
Menjelaskan metode regresi linier kuadrat terkecil secara matematis 3-5 poin
Membuat flowchart dengan bagian utama: input data, iterasi metode, output 3-7 poin

a. Dengan mengandaikan bahwa data pada tabel berketelitian cukup tinggi,bagaimana cara menentukan tren dari Program:
data tersebut dengan metode numerik? #include <stdio.h>
Gunakan salah satu dari rumus-rumus di bawah ini jika perlu: main() {
float n=6, sx[2]={0}, sxx[2]={0}, sxy[2]={0}, sy[2]={0}, xrata[2], yrata[2], at[2], bt[2];
float x[6]={5,10,15,20,25,30};
float y[2][6]={{11.6,10.3,9.1,8.2,7.4,6.8},{10.5,9.2,8.2,7.4,6.7,6.1}};
int i,j;

for (j=0;j<2;j++) {
for (i=0;i<n;i++) {
sx[j]=sx[j]+x[i];
sy[j]=sy[j]+y[j][i];
sxx[j]=sxx[j]+(x[i]*x[i]);
sxy[j]=sxy[j]+(x[i]*y[j][i]);
}
}

for (j=0;j<2;j++) {
xrata[j]=sx[j]/n;
yrata[j]=sy[j]/n;
b. Jelaskan metode yang digunakan dan nyatakan dalam bentuk flowchart! at[j]=(n*sxy[j]-sx[j]*sy[j])/(n*sxx[j]-sx[j]*sx[j]);
c. Dari flowchart tersebut, buatlah kode program bahasa C untuk melakukan metode tersebut! bt[j]=yrata[j]-at[j]*xrata[j];

printf("Konstanta %d\n",j);
printf("at = %.5f\n", at[j]);
printf("bt = %.5f\n\n", bt[j]);
}
}

• Ada proses input nilai data (langsung di inisialisasi atau input manual) 5 poin
• Ada proses iterasi pengolahan nilai at dan bt 5 poin
• Efisiensi program (kriteria):
a. Penggunaan program untuk 1 data (x-y) 5 poin
b. Penggunaan program untuk 2 data (x1-y1, x2-y2) 8 poin
• Efisiensi variable (kriteria):
a. Penggunaan array dan pengulangan untuk tiap data (1 at-bt) 5 poin
b. Penggunaan array 2D dan pengulangan untuk keseluruhan proses (2 at-bt) 8 poin

Bonus:
Menyertakan proses dan hasil (konstanta garis linier)
a. Untuk Cl 10mg/L, at = -0.192, bt = 12.260 5-10 poin
b. Untuk Cl 20mg/L, at = -0.173, bt = 11.047 5-10 poin

TOTAL NILAI = 70 poin