Sabtu, 19 November 2011

Batch File Programming

SOAL
  1. Buatlah program untuk mencetak seluruh nama file berekstensi jpg ke sebuah file baru dengan
    nama alljpg.txt
  2. Buatlah program untuk mencetak bilangan genap dari 1 sampai 100 ke sebuah file baru dengan
    nama genap.txt
  3. Buatlah program untuk mencetak bilangan ganjil dari 1 sampai 100 ke sebuah file baru dengan
    nama genap.txt
  4. Buatlah program untuk menghapus seluruh file berikut directory yang ditunjuk oleh parameter
JAWAB
  1. @echo off
    if exist alljpg.txt del alljpg.txt
    for %%x in (*.jpg) do (echo %%x >> alljpg.txt)
  2. @echo off
    if exist genap.txt del genap.txt
    for /l %%x in (2,2,100) do (echo %%x >> genap.txt)
  3. @echo off
    if exist ganjil.txt del ganjil.txt
    for /l %%x in (1,2,100) do (echo %%x >> ganjil.txt)
  4. @echo off
    set dirc=%1
    rd /s /q %dirc%
     

Shell Programming

1. Buatlah program salin.sh yang menyalin file (copy sebagai berikut :
salin.sh file-asal file-tujuan
Dengan ketentuan :
- Bila file asal tidak ada, berikan pesan, salin gagal.
- Bila file tujuan ada dan file tersebut adalah directory, beri pesan bahwa file
tidak bisa disalin ke direktori
- Bila file tujuan ada dan file biasa, beri pesan apakan file tersebut akan
dihapus, bila dijawab dengan “Y”, maka copy file tersebut
- Bila file tujuan belum ada, lakukan copy
Untuk mengambil nama file, gunakan parameter $1 dan $2. Bila jumlah
parameter tidak sama ($#) dengan 2, maka beri pesan exit = -1
#!/bin/sh

if [ $# -ne 2 ]
then
echo "Error, usage: salin.sh file-asal file-tujuan"
exit -1
fi

fasal=$1
ftujuan=$2

echo "salin.sh $fasal $ftujuan"

if [ -f $fasal ]
then
if [ -d $ftujuan ]
then
echo "File tidak bisa disalin ke directory."
exit -1
fi

if [ -f $ftujuan ]
then
echo -n "Timpa ? "
read timpa
if [ $timpa = "Y" -o $timpa = "y" ]
then
cp -f $fasal $ftujuan
fi
else
cp $fasal $ftujuan
fi
else
echo "Salin gagal"
exit -1
fi

2. Buat program yang memeriksa nama direktori, jika parameter tersebut adalah
direktori, maka jalankan instruksi ls –ld pada direktori tersebut. Namakan
program tersebut checkdir.sh. Gunakan notasi [ -d NamaDirektori ] dan pilih
logical && atau || pada level shell.
#!/bin/sh

if [ $# -ne 1 ]
then
echo "Error, usage: checkdir.sh DirectoryName"
exit -1
fi

dirname=$1

[ -d $dirname ] && ls -ld $dirname

3. Dengan shell script pph.sh, hitung PPH per tahun dengan ketentuan
sebagai berikut :
- 10 juta pertama PPH 15%
- 25 juta berikutnya (sisa) PPH 25%
- Bila masih ada sisa, maka sisa tersebut PPH 35%
Contoh :
Gaji 8 juta
PPH = 15% * 8 juta
Gaji 12 juta
PPH =15% * 10 juta + 25% * (12-10) juta
Gaji 60 juta
PPH = 15% * 10 juta + 25% * 25 juta + 35% * (60-10-25) juta
Debugging : untuk melakukan tracing (debug) gunakan opsi –x pada
eksekusi shell.
#!/bin/sh


echo -n "Gaji ? "

read gaji


if [ $gaji -le 10000000 ]

then

ppn1=`expr $gaji \* 15 / 100`

ppn2=0

ppn3=0

else

gaji=`expr $gaji - 10000000`
if [ $gaji -le 25000000 ]

then

ppn1=`expr 10000000 \* 15 / 100`

ppn2=`expr $gaji \* 25 / 100`

ppn3=0

else

ppn1=`expr 10000000 \* 15 / 100`

ppn2=`expr 25000000 \* 25 / 100`

gaji=`expr $gaji - 25000000`

ppn3=`expr $gaji \* 35 / 100`

fi

fi


ppn=`expr $ppn1 + $ppn2 + $ppn3`


echo "PPN = $ppn"

Perintah Dasar Linux

SOAL
1. Perintah apa yang digunakan untuk melihat calendar 1 tahun penuh ?
2. Berikan contoh bab user manual dengan subject user manual !
3. Buat sebuah direktori baru bernama mybackup
4. Pindah direktori ke root direktori (/)
5. Kopi file /etc/hosts ke direktori mybackup
6. Ubah file mybackup/hosts menjadi mybackup/myhosts
7. Tampilkan isi file tersebut menggunakan cat, more dan less. Apa perbedaan dari perintah-perintah tersebut?
8. Hapus direktori mybackup beserta file-file didalamnya.
JAWABAN:
1. Perintah yang digunakan untuk melihat calendar 1 tahun penuh : cal –y
2. Contoh bab user manual dengan subject user manual : man man
3. Membuat sebuah direktori baru bernama mybackup : mkdir mybackup
4. Memindah direktori ke root direktori(/) : cd /
5. Mengcopy file /etc/hosts ke direktori mybackup: cp /etc/hosts ~/mybackup
6. Mengubah : mv ~/mybackup/hosts ~/mybackup/myhosts
7. Menampilkan isi file :
cat ~/mybackup/myhosts : menampilkan keseluruhan isi file walaupun sudah penuh satu layar
more ~/mybackup/myhosts : menampilkan isi file secara per halaman, artinya more akan menghentikan tampilannya pada saat isi file sudah mencapai satu layar
less ~/mybackup/myhosts : penggunaan less sama seperti menggunakan more, tapi less menyediakan fasilitas scroll untuk melihat isi file pada baris berikutnya yang belum terlihat pada layar console sebelumnya.
8. Menghapus direktori beserta file-file didalamnya: rm –r ~/mybackup

Jumat, 18 November 2011

Managing Process

1. Carilah seluruh file .jpg mulai dari root directory (/) dan seluruh sub-sub directory-nya, hasil
pencarian disimpan pada file list_jpg.dat, pencarian dilakukan di background.
2. Temukan kata ‘pattern’ dalam file list_jpg.dat dan simpan hasil pencariannya ke file
list_pattern.dat.
3. Tampilkan seluruh isi file list_jpg secara terurut, tampilkan hasilnya dalam ‘one screen at a time’.
4. Urutkan isi file list_pattern.dat dan simpan hasilnya ke file list_patter_sort.dat.
5. Simpan isi file list_pattern.dat dan list_pattern_sort.dat ke file mypattern.dat.

JAWABAN
Masuk ke admin : su -
Masuk ke root : cd /
1. find -name *.jpg >> list_jpg.dat &
2. find -name "pattern*" < list_jpg.dat >> list_pattern.dat
3. cat list_jpg.dat | sort | less
4. sort list_pattern.dat >> list_pattern_sort.dat
5. cat list_pattern.dat list_pattern_sort.dat >> mypattern.dat