Sabtu, 26 September 2015

Bash



Halo, pada kesempatan kali ini saya akan membahas tentang bash scripting dan juga mencoba menyelesaikan beberapa soal agar bisa lebih terbiasa dan tahu tentang aplikasi dari bash scripting itu sendiri. Selamat membaca J
Bash scripting merupakan salah satu jenis pemrograman yang bisa kita lakukan di linux. Selain bash, ada juga jenis pemrograman lain seperti C shell, Korn shell, dll. Bash shell menjadi salah satu opsi yang banyak digunakan oleh kebanyakan orang karena lebih mudah untuk digunakan. Pada bash scripting, yang paling pertama dilakukan setelah kita membuat file baru adalah menyertakan satu sintaks yang menjadi penanda bahwa kita akan membuat shell bertipe bash dengan cara menuliskan:

#!/bin/bash

di baris pertama. Nah untuk mempelajari bash shell lebih jelas, kita dapat menggunakan contoh soal yang sudah saya sediakan.

Mari kita lihat soal – soalnya

Untuk soal pertama kita harus membuat sebuah program yang dapat menampilkan angka – angka prima yang ada hingga batas tertentu. Ketika program dijalankan, kita harus memberikan input yang merupakan batas yang saya sebutkan sebelumnya. Saya telah melakukan penyelesaian untuk masalah ini, ini lah salah satu solusinya:


Pertama – tama, saya membuat array dan mengisinya dengan angka 0. Angka 0 ini akan kita jadikan sebagai penanda bahwa bilangan indeksnya adalah bilangan prima atau bukan. – le pada codingan diatas berarti less than equal to. Jadi jika indeksnya kurang dari 1, maka akan diberi angka 1 dan lainnya diisi dengan angka 0.


Setelah mengisi semua array dengan angka 0, kita mulai menandai kembali mana yang bilangan prima dan mana yang bukan. Caranya adalah dengan mengkalikan indeks dari counter dengan 2. Misalnya pada awalnya, counter berada di angka 2. Lalu, angka 2 ini kita kalikan dengan 2 sehingga menghasilkan angka 4. Berarti bias dipastikan bahwa angka 4 bukan lah bilangan prima karena angka 4 memiliki faktor selain 1 dan angka 4 itu sendiri yaitu angka 2. Sama halnya ketika counter berada di angka 3, maka angka 3 kita kalikan dengan 2 sehingga menghasilkan angka 6. Maka angka 6 bukan bilangan prima. Dan seterusnya ini dilakukan hingga batas yang telah kita inputkan di awal program. Setiap kali counter dikalikan 2, maka isi dari indeks angka tersebut kita ganti dengan angka 1. Misalnya ketika tadi kita mendapatkan hasil dari sebuah perkalian adalah 4, maka angka 0 yang ada di indeks 4 kita ganti dengan angka 1. Dengan seperti ini, kita telah menandai bahwa indeks tersebut bukanlah bilangan prima.

Lalu diakhir program kita tinggal menampilkan angka dari indeks yang memiliki isi 0 karena sebelumnya kita sudah merubah angka 0 pada indeks yang bukan bilangan prima dengan angka 1. Mudah kan? Ini lah hasilnya ketika program dijalankan


Ok, lanjut ke nomor berikutnya.
Di nomor 2 sampai 4, kita diperintahkan untung mendownload sebuah file yang berisikan jadwal minum obat dari sebuah rumah sakit. Yang dari data tersebut akan kita olah hingga kita mendapatkan keterangan berapa obat yang telah pasien – pasien di rumah sakit tersbut minum lalu mengarsipkannya ke dalam bentuk tar.gz. Mari kita mulai.


Pertama – tama, kita mulai dengan membuat variabel untung menyimpan tanggal, bulan, dan tahun ketika kita mendownload file tersebut yang dalam kasus ini adalah variabel x. Kita juga membuat variabel untuk menyimpan jam, menit, detik ketika kita mendownload file tersebut yang dalam kasus ini adalah variabel y. Setelah itu, kita mendownload file tersebut dari alamat yang sudah ada dengan perintah “wget”. Lalu kita merename file yang kita download dengan jam, menit, detik menggunakan perintah “mv” seperti pada baris ke – 4. Setelah itu kita membuat folder baru dengan nama tanggal_bulan_tahun dengan menggunakan perintah “mkdir” seperti pada baris ke – 5. Dan yang terakhir kita pindahkan file yang telah kita download dan rename tadi ke dalam folder yang baru kita buat dengan perintah “mv” seperti pada baris ke – 6.


Langkah berikutnya adalah dengan membuat array dengan nama pasien dan kita isi dengan nama – nama pasien tersebut. Misalnya pada soal ini nama pasiennya adalah A, B, C, D, dst. Lalu disana saya membuat variabel b sebagai counter. Setelah itu kita masuk ke dalam looping. Loop ini berfungsi untuk membaca per baris dari isi file tersebut lalu menyimpannya di variabel line. Di dalam loop ini, pertama saya membuat variabel obat sebagai variabel untuk mengetahui berapa obat yang telah diminum oleh pasien yang ada. Jika kita buka file yang telah kita download sebelumnya, maka akan berisi jam:menit:detik dari jadwal minum obat seorang pasien. Misal:

08:16:40
15:01:32
23:00:13
dst

Nah dalam kasus ini, kita hanya memerlukan jamnya saja sehingga menit dan detiknya bisa kita hiraukan. Karena seperti di dalam soal, seorang pasien minum obat setiap 3 jam sekali, maka kita hanya akan berurusan dengan jamnya saja. Tapi karena isi file tersebut berupa string, maka kita harus mengambil 2 angka pertamanya saja lalu merubahnya menjadi tipe data integer sehingga bisa kita kalkulasikan. Semua itu saya lakukan secara bersamaan dalam satu baris yaitu di baris ke – 6 dan 7. Di baris ke – 6 saya mengambil 2 angka pertama dalam string tersebut. ${line:0:2} berarti saya akan mengambil 2 angka ke kanan dimulai dari indeks ke – 0. Jadi bila kita aplikasikan pada jam 08:16:40, maka nanti hanya akan terambil angka 08. Setelah itu di baris ke – 7, saya melakukan operasi matematis menggunakan perintah “let”. Disitu ada tulisan #0. Tulisan itu digunakan untuk merubah string yang telah kita ambil tadi menjadi integer sehingga bisa kita kalkulasikan pada rumus yang ada. Namun disitu ada satu kondisi bila jamnya kurang dari 3, maka hasilnya bisa jadi minus. Maka dari itu saya menambahkan satu if ke dalam looping saya. Lalu, kita menampilkan jam:menit:detik tadi beserta keterangan berapa obat yang telah diminum si pasien ke dalam file baru yaitu JadwalBaru.txt. Dan di akhir loop, kita menambahkan counternya.

Setelah semuanya selesai, maka kita sampai ke tahao akhir yaitu pengarsipan. Untuk membuat file arsip, kita menggunakan perintah “tar”. Lalu –czvf adalah sebuah perintah dalam library tar yang memiliki fungsinya masing – masing.
c = membuat file arsip baru
z = membuatnya dalam bentuk zip .gz
v = menampilkan pada terminal file – file apa saja yang masuk ke dalam file arsip yang kita buat
f = dapat mengakses file arsip
lalu disebelah perintah – perintah tersebut kita mengetik nama file arsip beserta alamat arsip yang akan kita buat. Langkah terakhir adalah dengan membuat file baru yang berisikan waktu kita mengarsipkannya kedalam file bernama logC08.txt. Voila, jadilah arsipan baru kita yuhuuuuuuuuu~

Nah kita telah membahas soal – soal yang ada mulai dari nomor 1 sampai 4. Bagaimana? Semoga pembahasan yang saya lakukan bisa membantu dalam memahami lagi tentang soal – soal yang ada. Bila ada kritik atau saran bisa mengkomentari tentang postingan saya ini, supaya kedepannya bisa membuat yang lebih baik lagi. Terima kasih, have a nice day ;)











tutorinaja



Halo, selamat dating di blog ku. Blog ini sengaja saya buat untuk memberikan tutorial untuk kalian yang ingin belajar linux walaupun kalian belum memiliki dasar apapun. Untuk postingan saya yang pertama, saya akan sedikir membahas tentang terminal dan beberapa perintah yang bisa kita lakukan pada terminal. Kalau begitu selamat membaca, semoga bermanfaat :)

Ok, jadi di dalam sistem operasi linux, yang pertama kali harus kalian ketahui adalah sebuah fitur di linux yaitu Terminal. Hal ini penting karena kita akan banyak berurusan dengan yang namanya terminal. Untuk membuka terminal itu sendiri, bisa dengan mencari di search engine linux dengan keyword terminal. Maka akan muncul kotak hitam yang kita sebut terminal. Disini kita bisa melakukan berbagai perintah seperti membuat folder, menghapus file, memindahkan file, dan perintah – perintah lainnya tanpa harus membuka dan menelusuri folder – folder yang ada di computer kita. Kita hanya tinggal mengetik perintah – perintah di terminal dan voila semuanya bisa kita lakukan. Ketika kita pertama kali membuka terminal, maka kita sebenarnya sedang berada di folder Home yang ada di komputer kita. Lalu bila kita ingin masuk ke folder lain menggunakan terminal, maka kita bisa menggunakan sebuah perintah yang akan saya bahas di bawah.
Jika ada yang bertanya “Apakah kita bisa membuat program di linux tanpa harus menggunakan aplikasi seperti dev c, codeblocks atau yang lainnya?” Jawabannya adalah kita bisa. Untuk membuat file baru untuk membuat program, kita meggunakan dua perintah, yaitu:

nano (namafile).sh
atau:
gedit (namafile).sh

tapi saya lebih menyarankan menggunakan perintah gedit karena lebih mudah dalam melakukan perbaikan dalam codingan kita bila ada yang ingin kita ganti. 

Di dalam terminal, ada juga perintah – perintah lain yang dapat kita lakukan seperti:

mkdir = membuat folder baru
ls = melihat isi dari direktori dimana kita berada sekarang
cd = mengganti direktori (atau Bahasa gampangnya masuk ke folder lain)
mv = memindahkan sesuatu

dan masih banyak perintah – perintah lain yang bisa kita gunakan. Bila kita bingung kegunaan dari sebuah perintah, maka kita bisa mendapatkan keterangan lengkap dari sebuah perintah dengan menggunakan manualnya. Cara mengaksesnya dengan menambahkan kata “man” di depan perintahnya. Contohnya bila kita ingin membuka manual/petunjuk dari perintah mv, maka kita bisa mengetik pada terminal:

man mv

lalu akan keluar petunjuk lengkap tentang perintah mv. Pertunjuknya ditulis dalam bahasa inggris tentunya, jadi jika kalian bingung bisa menggunakan kamus atau google translate hehe.
Mungkin segitu dulu perkenalan singkat tentang linux dan penggunaannya, semoga bermanfaat dan bisa dipahami. Ingat untuk meninggalkan kritik saran yang membangun agar kedepannya postingan kedepannya bisa lebih baik lagi. Terima kasih, have a nice day ;)