Skip to main content

Contoh Bash Scripting untuk Menyelesaikan Suatu Masalah (Membaca dan Mengedit isi File)


Halo, karena aku baru aja masuk semester 3 di jurusan T. Informatika, berikut adalah sedikit yang aku dapat mengenai bash scripting pada linux.
Pertama-tama, apa sih itu bash scripting?
Bash Scripting adalah proses membuat suatu script shell atau program (penterjemah perintah) yang menjembatani user dengan sistem operasi.
Nah, di sini ada contoh masalah yang bisa diselesaikan menggunakan bash scripting. Yuk kita bahas...

Problem:
Ada sebuah file text yang berisi beberapa waktu check up pasien-pasien sebuah rumah sakit. 

Contoh isi file:
08:00:01
10:30:34
11:32:46
15:30:10
17:22:30

Setiap harinya, semua pasien diperbolehkan minum obat mulai jam 6 pagi hingga jam 12 malam dengan selang waktu 3 jam sekali. Yang harus dilakukan adalah menambahkan keterangan jumlah obat yang sudah diminum setiap pasien selama rentang waktu yang telah ditentukan hingga  waktu check up pada file serta memberi nama pasien sesuai abjad dari A dan seterusnya. Buatlah script untuk melakukan hal ini!

Contoh isi file setelah script dijalankan:
08:00:01 - Pasien A Sudah Minum 1 obat
10:30:34 - Pasien B Sudah Minum 2 obat
11:32:46 - Pasien C Sudah Minum 2 obat
15:30:10 Pasien D Sudah Minum 4 obat
17:22:30 Pasien E Sudah Minum 4 obat

Script
Salah satu bash scripting untuk menyelesaikan masalah di atas
Baiklah, mari kita bahas satu persatu.
Gambar 1
Untuk menjalankan program ini, terlebih dahulu kita harus sudah memiliki file text yang berisi waktu check up. Oleh karena itu kita gunakan "filename" sebagai penampung argumen yang akan diinputkan sebagai nama file yang akan diedit.
Gambar 2
Syntax di atas adalah untuk looping dalam membaca file tiap baris atau line karena yang kita butuhkan adalah mengakses waktu dalam file per barisnya. Pada bagian akhir berisi nama file yang akan diakses untuk dijalankan sesuai perintah di dalamnya. Dalam hal ini adalah "$filename" seperti yang tertera pada gambar 1.

Gambar 3
Yang akan dilakukan selanjutnya adalah membaca tiap baris file yang berisi waktu dengan format "HH:MM:SS". Dalam hal ini, sesuai yang diminta, bahwa tiap pasien minum obat dimulai dari pukul 6 dan minum lagi tiap 3 jam sekali. oelh karena itu, yang kita butuhkan adalah hanya jamnya saja. Dengan kata lain, kita perlu mengakses HH yang tertera tiap barisnya.
Nah, kita bisa menggunakan syntax ${line:a:b}. Maksud dari syntax tersebut adalah kita mengambil string pada baris yaitu pada index ke a sebanyak b character(s).
Karena ada kemungkinan penulisan jam dengan angka 0 di depannya misal penulisan jam 01-09, maka kita perlu menggunakan kondisi "if". Jika char pertama samadengan 0, kita set variable "jam" agar menunjukkan angka kedua. Sebaliknya jika tidak, maka set variable "jam" dengan kedua angka tersebut.
Gambar 4
Setelah mendapatkan jam check up dalam angka, kita akan menemukan kondisi lagi di mana waktu check up tersebut apakah lebih dari waktu minum obat untuk kali pertama, pas dengan waktu minum obat untuk kali pertama, atau bahkan kurang. Gambar di atas menunjukkan kondisi apabila kita mendapatkan waktu check up yang lebih dari jam 6 ( -gt yang artinya greater than). Selanjutnya tinggal dikurangi dan dibagi 3. Jangan lupa untuk menambahkan 1 karena pada jam 6 sudah dianggap telah meminum 1 obat. Hasilnya ditampung pada variable obat yang telah menunjukkan jumlah obat yg diminum pasien.
Gambar 5
Kondisi kedua yaitu jam menunjukkan sama dengan 6, maka tinggal set obat dengan 1. 
Gambar 6
Kondisi terakhir apabila jam menunjukkan jurang dari 6, maka tinggal set obat dengan 0.
Gambar 7
Setelah mengetahui jumlah obat yang diminum, barulah edit isi file dengan syntax di atas. Di sini kita akan memasukkan nama pasien dari A dan seterusnya. Untuk itulah kita membutuhkan string "pasien" yang sudah diisi pada gambar 1 dengan alfabet A samai Z. Setelah itu, tinggal kita gunakan string tersebut untuk mengambil 1 huruf saja dengan counter "x" yang pada gambar 1 juga sudah diinisialisasi 0.
Gambar 8
Tambahkan nilai x agar tiap baris pasien memiliki nama yang berlanjut sesuai abjad.
Karena abjad hanya ada 26, dibutuhkan set ulang "x" agar nama pasien bisa kembali ke A lagi dan seterusnya.

Program siap dijalankan pada terminal dengan menginputkan nama file yang akan diedit. ^^
Terima kasih dan mohon maaf apabila ada kesalahan :3

Comments

Popular posts from this blog

Software Development Plan

Software Development Plan merupakan deskripsi dari rencana developer dalam pengembangan perangkat lunak. Software development plan atau yang selanjutnya akan kita singkat sebagai SDP, menyediakan pembagian kinerja yang sudah jelas bagi masing-masing anggota serta digunakan sebagai alat untuk memantau proses yang harus diikuti dalam pengembangan perangkat lunak. SDP juga mendeskripsikan secara detail mengenai metode dan pendekatan yang digunakan sebagai acuan dalam setiap aktivitas, organisasi, maupun sumber daya. SDP seharusnya mampu mendokumentasikan semua proses yang berlaku untuk sistem yang akan diperoleh dalam detail level yang cukup, agar SDP dapat digunakan sebagai pedoman penuh bagi para developer . Misalnya, SDP harus mengandung standar, metode, alat, dan tindakan tertentu, penggunaan ulang strategi, dan tanggung jawab yang terkait dengan pengembangan dan kualifikasi semua persyaratan, termasuk keselamatan dan keamanan. SDP dibuat oleh Project Manager u...

Kerangka Acuan Kerja Sistem Internal Media Online

A. PENDAHULUAN Latar Belakang Memasuki era serba digital, dimana semua aspek kehidupan manusianya bergantung pada teknologi yang semakin pesat, membuat gaya hidup manusia tidak bisa lepas dari perangkat-perangkat berteknologi digital serta perangkat lunak yang ter-instail di dalamnya.  Hal ini menjadi sangat penting karena perangkat lunak memang sangat membantu aktifitas manusia menjadi lebih mudah, efisien baik waktu, tempat, tenaga, dan sebagainya, Salah satu diantaranya adalah portal media penyedia jasa informasi seperti koran atau majalah, yang sekarang telah tergantikan dengan adanya portal media online. Berbagai berita dengan berbagai rubik telah tersedia dalam bentuk web dengan berjuta-juta pembaca dan kontributor berita. Dengan kemajuan teknologi, portal media online bahkan bisa mengetahui berapa jumlah pembaca, rubik apa saja yang paling sering dibuka, dan tanggapan mereka mengenai berita melalui fitur komentar dan like atau unlike. Kecepatan dalam pembaharuan be...

Manajemen Proyek Perangkat Lunak

Tidak bisa dipungkiri bahwa sekarang dunia telah berada pada era serba digital, dimana semua aspek kehidupan manusianya bergantung pada teknologi yang semakin pesat. Hal ini membuat gaya hidup manusia tidak bisa lepas dari perangkat-perangkat berteknologi digital serta "perangkat lunak" yang ter-instail di dalamnya.  Nah, yang dimaksud dengan Perangkat Lunak di sini adalah aplikasi yang tidak berwujud atau program komputer dengan sekumpulan instruksi, data, dokumentasi, dan informasi yang bisa dibaca dan ditulis oleh komputer. Hal ini menjadi begitu penting karena perangkat lunak memang sangat membantu aktifitas manusia menjadi lebih mudah, efisien baik waktu, tempat, tenaga, bahan, dan sebagainya, sehingga dapat berdampak pula pada aktifitas lainnya. Dengan begitu, siapa yang tidak mau berkecimpung di dalamnya? Bahkan pemerintah telah mencanangkan sistem US atau Ujian Sekolah akan menggunakan aplikasi digital. Dengan maraknya sistem yang serba digital, de...