Upload
sukeipah-ekusipah
View
58
Download
5
Embed Size (px)
DESCRIPTION
Lembar Jawaban Take Home Test Bahasa Pemrograman C, dengan beberapa penyelesaian soal diantaranya:1. Membuat segitiga terbalik sesuai dengan tampilan yang diinginkan;2. Melakukan pengecekan kata palindrom;3. Perhitungan Pangkat dengan Fungsi Rekursif;4. Pengurutan nilai ascending dan descending dengan array
Citation preview
Program Alih Jenjang D3 ke D4 TMD Batch 6 2012-2013
1/ 8
Laporan Praktikum TMD02 Algoritma dan Struktur Data dengan C
Nama : Sukeipah Yuli Prihatin
email : [email protected]
Laporan : Take Home Test
Soal 1 – Segitiga Terbalik
Source Code: #include <stdio.h> #include <stdlib.h> int main(){ int n,i,j,k; n=10; k=1; for(i=10;i>0;i--){ if(i%2!=0){ for(j=1;j<=k;j++){ printf("%d ",k); } for(j=1;j<=i;j++){ printf("* "); } for(j=1;j<=k;j++){ printf("%d ",k); } printf("\n"); k++; } } system("pause"); return 0; }
Deskripsi singkat:
Soal pertama pada ujian adalah menampilkan segitiga seperti berikut:
1 * * * * * * * * * 1
2 2 * * * * * * * 2 2
3 3 3 * * * * * 3 3 3
4 4 4 4 * * * 4 4 4 4
5 5 5 5 5 * 5 5 5 5 5
Program Alih Jenjang D3 ke D4 TMD Batch 6 2012-2013
2/ 8
Untuk membuat tampilan segitiga diatas, maka diperlukan tiga perulangan,
terdiri dari:
1. Perulangan utama yang melakukan perulangan menurun sebagai
patokan nilai dari bintang-bintang yang akan ditampilkan yang
dinyatakan pada baris perintah for(i=10;i>0;i--).
2. Selanjutnya akan dikondisikan dengan persyaratan apabila hasil sisa
pembagian nilai indeks perulangan utama atau i dengan angka dua
bukan sama dengan 0 (atau bernilai ganjil), yang dinyatakan pada baris
perintah if(i%2!=0), maka akan melakukan eksekusi perulangan-
perulangan selanjutnya.
3. Perulangan kedua dan keempat yang melakukan perulangan menaik
sebanyak nilai k (atau variabel penanda jumlah pencetakan data) untuk
menampilkan nilai dari variabel k.
4. Perulangan ketiga yang melakukan perulangan menaik sebanyak nilai
indeks perulangan pertama untuk menampilkan karakter bintang.
Eksekusi program, sehingga kurang lebih seperti berikut:
Program Alih Jenjang D3 ke D4 TMD Batch 6 2012-2013
3/ 8
Soal 2 – Kata Palindrom
Source Code: #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ int i,panjang,j,bendera=0; char kata[25]; printf("Masukkan kata palindrom :"); gets(kata); panjang = strlen(kata); j = panjang-1; for(i=0;i<panjang;i++){ if(kata[i] == kata[j]){ bendera++; } j--; } if(bendera==panjang){ printf("Kata %s adalah palindrom!\n",kata); }else{ printf("Kata %s bukan palindrom!\n",kata); } system("pause"); return 0; }
Deskripsi singkat:
Soal kedua pada ujian adalah pengecekan sebuah kata apakah ia termasuk kata
palindrom atau bukan. Kata palindrom adalah kata yang susunan dan
pembacaan katanya dari depan atau dari belakang sama persis.
Source code diatas merupakan program yang mampu melakukan pengecekan
kata palindrom. Mulanya program meminta kata-kata palindrom yang akan
dicek dengan menggunakan perintah printf("Masukkan kata palindrom :"); dan
gets(kata);. Selanjutnya variabel inputan ini akan disimpan pada variabel char
kata[25]. Kemudian akan dilakukan pembacaan panjang karakter kata yang
dimasukkan dengan melakukan perintah strlen(kata); yang ditampung dalam
variabel panjang.
Setelah itu pengesetan nilai variabel j sebagai indeks elemen terakhir dari kata
yang dimasukkan. Selanjutnya akan dilakukan perulangan i mulai dari indeks 0
sampai kurang dari panjang kata dimana melakukan perbandingan antara kata
pada indeks elemen ke i atau perulangan dengan indez elemen ke j atau indeks
terakhir. Apabila terdapat kesamaan maka nilai variabel bendera (sebagai
penanda) akan melakukan increment, jika tidak maka tidak akan melakukan
apapun.
Dan terakhir, melakukan pengecekan apakah nilai variabel bendera sama
dengan panjang karakter, jika sama maka dapat dipastikan bahwa kata
tersebut adalah palindrom. Namun jika tidak maka kata tersebut bukan
Program Alih Jenjang D3 ke D4 TMD Batch 6 2012-2013
4/ 8
palindrom.
Eksekusi program kurang lebih akan seperti berikut:
Program Alih Jenjang D3 ke D4 TMD Batch 6 2012-2013
5/ 8
Soal 3 – Nilai Pangkat
Source Code: #include <stdio.h> #include <stdlib.h> int dipangkat(int n, int k){ if(k==0) return 1; else return n*dipangkat(n,k-1); } int main(){ int angka,pangkat; printf("Masukkan Bilangan Pokok :"); scanf("%d",&angka); printf("\nMasukkan Pangkat :"); scanf("%d",&pangkat); printf("\nHasil %d pangkat %d adalah %d\n", angka, pangkat, dipangkat(angka,pangkat) ); system("pause"); return 0; }
Deskripsi singkat:
Soal ketiga pada ujian adalah mencari sebuah nilai perpangkatan nilai dengan
menggunakan rekursi.
Pada source code diatas merupakan program yang mampu melakukan
perhitungan nilai pangkat dengan menggunakan rekursi.
Mulanya program meminta untuk memasukkan inputan bilangan pokok dan
pangkat yang ditandai dengan baris perintah printf("Masukkan Bilangan Pokok :");
scanf("%d",&angka); dan printf("\nMasukkan Pangkat :"); scanf("%d",&pangkat); dimana
kedua inputan tersebut ditampung secara berurutan dengan nama variabel angka
dan pangkat.
Selanjutnya pada baris perintah printf("\nHasil %d pangkat %d adalah %d\n", angka,
pangkat, dipangkat(angka,pangkat) );, akan mencari sebuah nilai hasil
perpangkatan dengan memanggil fungsi dipangkat(angka,pangkat) dengan nilai
variabel angka dan pangkat sebagai parameter fungsi.
Kedua variabel tersebut kemudian akan dibaca sebagai (secara berurutan)
variabel int n dan int k. Dimana pada fungsi tersebut akan dilakukan
pengkondisian apabila nilai variabel bla adalah 0 (pada baris perintah if(k==0) )
maka akan mengembalikan nilai 1 (pada baris perintah return 1;) jika tidak
maka akan mengembalikan nilai perhitungan dari pemanggilan ulang (rekursi)
dari fungsi dengan parameter n dan k yang dikurangi 1 (baris perintah return
n*dipangkat(n,k-1)). Karena pada dasarnya perpangkatan adalah perkalian nilai
bilangan pokok sebanyak k.
Eksekusi program antara lain seperti berikut:
Program Alih Jenjang D3 ke D4 TMD Batch 6 2012-2013
6/ 8
Soal 4 – Sorting Ascending Descending
Source Code: #include <stdio.h> #include <stdlib.h> #include <string.h> int deret[5]; void asc(); void desc(); void show(); int main(){ int i,pilih,bendera=1; for(i=0;i<5;i++){ printf("Masukkan data ke-%i :",i); scanf("%d",&deret[i]); } while(bendera==1){ printf("\nPilihan--------"); printf("\n1. ASC"); printf("\n2. DESC"); printf("\n0. ESC"); printf("\nPilih?"); scanf("%d",&pilih); switch(pilih){ case 0 : bendera=0; break; case 1: asc(); show(); break; case 2: desc(); show(); break; default: printf("Tidak sesuai"); break; } } system("pause"); return 0; } void asc(){ int i,j,temp; for(i=0;i<4;i++){ for(j=(i+1);j<5;j++){ if(deret[i]>deret[j]){ temp = deret[i]; deret[i] = deret[j]; deret[j] = temp; } } } printf("\n ASCENDING \n"); } void desc(){ int i,j,temp; for(i=0;i<4;i++){ for(j=(i+1);j<5;j++){ if(deret[i]<deret[j]){ temp = deret[i]; deret[i] = deret[j]; deret[j] = temp; } } } printf("\n DESCENDING \n");
Program Alih Jenjang D3 ke D4 TMD Batch 6 2012-2013
7/ 8
} void show(){ int i; for(i=0;i<5;i++){ printf("%d\n",deret[i]); } }
Deskripsi singkat:
Soal keempat pada ujian adalah mengurutkan sebuah deret angka agar dapat
melakukan sorting ascending atau descending.
Sebelumnya program akan meminta untuk melakukan input data deretan
angka yang akan disimpan dalam sebuah array dengan nama bla.
Setelah melakukan input, maka akan ditampilkan sebuah menu sederhana
untuk melakukan pengurutan atau sorting ascending (kecil – besar) atau
descending (besar – kecil) yang disajikan dalam sebuah fungsi yang berbeda-
beda.
Pada dasarnya kedua metode pengurutan ascending dan descending sama,
namun perbedaannya hanya pada letak perbandingannya saja. Sehingga kedua
fungsi tersebut memiliki dua buah perulangan dimana terdapat 2 buah
perulangan. Perulangan pertama atau i, merupakan perulangan yang dilakukan
hingga indeks kurang dari 4 kenapa? Karena pada perulangan kedua indeks
terakhir akan secara otomatis dijadikan sebagai nilai terakhir sehingga tidak
perlu untuk dibandingkan lagi.
Pada metode ascending, setelah perulangan akan dilakukan perbandingan
apakah nilai i lebih besar dari nilai elemen pada j? jika ya, maka nilai elemen i
akan di ganti dengan nilai elemen j yang memiliki nilai lebih kecil. Begitu juga
sebaliknya dengan metode descending, setelah perulangan akan dilakukan
perbandingan apakah nilai i lebih kecil dari nilai elemen pada j? jika ya, maka
nilai elemen i akan di ganti dengan nilai elemen j yang memiliki nilai lebih
besar.
Eksekusi program kurang lebih akan seperti dibawah ini:
Program Alih Jenjang D3 ke D4 TMD Batch 6 2012-2013
8/ 8