Sabtu, 17 Oktober 2015

[Pengetahuan Baru!] Pemutar Musik!! + Data Penjual dan Pembeli


Hai!! Kali ini aku mau mengajarkan sesuatu yang berbeda dan sekarang kita bisa memutar lagu, pause, continue dan men stop lagu. Oh iya, langsung dari terminal!!
Jadi nanti kita bisa meng-inputkan angka dan akan keluar perintah sesuai, ini nih :
        1. Help, menampilkan daftar perintah
        2. Menampilkan semua lagu
        3. Memutar lagu
        4. Pause setelah t detik
        5. Continue setelah t detik
        6. stop setelah t detik

oh iya sebelum lanjut ke programnya aku mau ngejelasin sedikit tentang IPC atau yang biasa dikenal dengan Interprocess Communication. jadi, Interprocess Communication adalah cara atau mekanisme pertukaran data antara satu proses dengan proses lainnya, baik itu proses yang berada di dalam komputer yang sama, atau komputer jarak jauh yang terhubung melalui jaringan
Contohnya
  • Pipes : Pipe merupakan komunikasi sequensial antar proses yang saling terelasi, namun pipe memiliki kelemahan yaitu hanya bisa digunakan untuk komunikasi antar proses yang saling berhubungan, dan komunikasinya yang dilakukan adalah secara sequensial. 
  • Message Queue : Sistem berkirim pesan adalah proses komunikasi antar bagian sistem untuk membagi variabel yang dibutuhkan. Proses ini menyediakan dua operasi yaitu mengirim pesan dan menerima pesan. 
  • Shared Memory : cara komunikasi antar proses dengan cara mengalokasikan suatu alamat memori untuk dipakai berkomunikasi antar proses. Alamat dan besar alokasi memori yang digunakan biasanya ditentukan oleh pembuat program.
  • Socket : Sebuah aliran data yang dikirim melalui interface jaringan, baik untuk proses yang berbeda pada komputer yang sama atau komputer lain.
ak menggunakan thread untuk pemutar musiknya, ini fungsi mainnya

seperti yang ada di ketentuan angka inputan yang tadi ak bilang diatas inputan 1-6 tadi, kan untuk inputan 4,5,6 kita memasukan "t" juga, atau waktu yang diinginkan untuk meng pause, continue atau stop lagu setelah t detik itu. makanya ada if untuk inputan 4,5,6 dan diminta untuk memasukan detik. untuk inputan 3 atau memutar lagu, makanya ada scan %s untuk menginput judul lagunya.
Lalu untuk fungsinya

fungsi diatas adalah ketika kita memasukan angka 1, maka akan mucul help atau list isi perintah.

naah ini adalah kodingan untuk inputan 2-6.. ada fungsi clear, untuk membersihkan terminalnya.. ls grep .mp3 itu untuk mengambil file yang .mp3 Oh iya aku menggunalan VLC sebagai pemutar di laptopku.
Selamat mencoba!!

Oh iya sebenernya ada soal lainnya~ ak gak cuma bisa membuat pemutar lagu saja skrg. aku juga memiliki sebuah program yang bisa dilakukan untuk penjual dan pembeli. jadi kita membuka 2 terminal, dimana terminal pertama membuka program penjual dan terminal kedua untuk pembeli. program itu bisa mengupdate jumlah barang yang ada, menampilkan stok barang. dari sisi pembeli juga bisa membeli barang + langsung mengupdatenya dan bisa melihat stok yang ada.
Untuk program penjual-pembeli ini, aku menggunakan shared memory!!!
hmmm apa aku kasih spoiler kodingannya aja ya?
mendingan ak tunjukin jalan programnya aja deh~ ehehehe
niiih
Melihat Stok dari penjual
Tampilan Pada terminal penjual
perintah penjual menambahkan stok
Penjual Memasukan Item yang ingin ditambah
Memasukan Jumlah item
 Penjual melihat stok update dan pembeli memasukan input

 Tampilan Stok yang dilihat pembeli

 Pembeli membeli sejumlah barang
update jumlah barang pada penjual






 Yeheeey semoga bisa membantuu!!! :)








[Pengetahuan Baru!] Apasih Daemon?

Daemon adalah proses yang berjalan di balik layar (background) dan tidak berinteraksi langsung dengan user melalui standard input/output

Ini step cara pembuatan Daemon
  • Fork Parent Processs dan penghentian Parent Process
            pid_t pid;
            pid=fork();
            if(pid<0)
            {
                exit(EXIT_FAILURE);
            }
            if(pid>0)
            {
                exit(EXIT_SUCCESS);
            }
  • Mengubah mode file menggunakan UMASK(0);
             umask(0);
  • Membuat Unique Session ID (SID)
            sid=setsid();
            id(sid<0)
            {
                exit(EXIT_FAILURE);
            }
  • Mengubah Directory Kerja
             if((chdir("/"))<0
            {
                exit(EXIT_FAILURE);
            }
  • Menutup File Descriptor Standar
            close(STDIN_FILENO);
            close(STDOUT_FILENO);
            close(STDERR_FILENO);
  • Membuat Loop utama (inti kerja dari daemon)
             while(1)
            {
                sleep(30);
            }
            exit(EXIT_SUCCESS);
Naah, seperti penjelasan daemon diatas jadi Daemon itu bekerjanya dibalik layar dan dia juga  memiliki fungsi yang berjalannya terjadwal. Jika contoh step pembuatan Daemon diatas kalian coba jalankan, maka kalian akan memiliki sebuah program yang bisa mengeluarkan sesuatu setiap 30 detik. Tapi di kodingan atas itu aku ga masukin apa-apa hehehe.. bisa kalian tambain "cout" sesuatu biar terlihat.

Oh iya, selanjutnya aku bakalan ngejelasin soal yang kemarin aku dapet. Jadi kita diminta buat sebuah program untuk mengubah foto menjadi grayscale. jadi stepnya
   @ Membuat sebuah program
   @ Membuka gambar menggunakan ImageViewer
   @ gambar akan dibuat duplikatnya dengan efek grayscale
   @ nama gambar barunya adalah FileLama_copy.jpg
itu yang harus aku buat.

mau liat kodingannya??



Naaah aku mau jelasin singkat aja yaa ehehehe..
    • line 42, jadi kita melihat dari proses yang kita jalankan untuk mencari proses mana yang membuka foto atau .jpg
    • line 44 kita mendeklarasikan dia menjadi tipe_file *untuk di programku hehe*
    • line 53 itu digunakan untuk mengganti karakter ke-5 dari belakang dengan '\0' atau null
    • mulai dari line 55 itu untuk menjadikan namanya FileLama_copy.jpg
    • naah command yang digunakan untuk merubahnya menjadi grayscale adalah yang terdapat di line 61
itu penjalan singkat aja ehehehe.. OhIya!! mau ngingetin ajaa untuk merubah foto menjadi Grayscale, kalian harus punya program mendukung contohnya ImageMagick.. selamat mencoba dan mendownload.
ImageMagick bisa download di 


[Pengetahuan Baru!] Apasih Daemon?

Daemon adalah proses yang berjalan di balik layar (background) dan tidak berinteraksi langsung dengan user melalui standard input/output

Ini step cara pembuatan Daemon
  • Fork Parent Processs dan penghentian Parent Process
            pid_t pid;
            pid=fork();
            if(pid<0)
            {
                exit(EXIT_FAILURE);
            }
            if(pid>0)
            {
                exit(EXIT_SUCCESS);
            }
  • Mengubah mode file menggunakan UMASK(0);
             umask(0);
  • Membuat Unique Session ID (SID)
            sid=setsid();
            id(sid<0)
            {
                exit(EXIT_FAILURE);
            }
  • Mengubah Directory Kerja
             if((chdir("/"))<0
            {
                exit(EXIT_FAILURE);
            }
  • Menutup File Descriptor Standar
            close(STDIN_FILENO);
            close(STDOUT_FILENO);
            close(STDERR_FILENO);
  • Membuat Loop utama (inti kerja dari daemon)
             while(1)
            {
                sleep(30);
            }
            exit(EXIT_SUCCESS);
Naah, seperti penjelasan daemon diatas jadi Daemon itu bekerjanya dibalik layar dan dia juga  memiliki fungsi yang berjalannya terjadwal. Jika contoh step pembuatan Daemon diatas kalian coba jalankan, maka kalian akan memiliki sebuah program yang bisa mengeluarkan sesuatu setiap 30 detik. Tapi di kodingan atas itu aku ga masukin apa-apa hehehe.. bisa kalian tambain "cout" sesuatu biar terlihat.

Oh iya, selanjutnya aku bakalan ngejelasin soal yang kemarin aku dapet. Jadi kita diminta buat sebuah program untuk mengubah foto menjadi grayscale. jadi stepnya
   @ Membuat sebuah program
   @ Membuka gambar menggunakan ImageViewer
   @ gambar akan dibuat duplikatnya dengan efek grayscale
   @ nama gambar barunya adalah FileLama_copy.jpg
itu yang harus aku buat.

mau liat kodingannya??



Naaah aku mau jelasin singkat aja yaa ehehehe..
    • line 42, jadi kita melihat dari proses yang kita jalankan untuk mencari proses mana yang membuka foto atau .jpg
    • line 44 kita mendeklarasikan dia menjadi tipe_file *untuk di programku hehe*
    • line 53 itu digunakan untuk mengganti karakter ke-5 dari belakang dengan '\0' atau null
    • mulai dari line 55 itu untuk menjadikan namanya FileLama_copy.jpg
    • naah command yang digunakan untuk merubahnya menjadi grayscale adalah yang terdapat di line 61
itu penjalan singkat aja ehehehe.. OhIya!! mau ngingetin ajaa untuk merubah foto menjadi Grayscale, kalian harus punya program mendukung contohnya ImageMagick.. selamat mencoba dan mendownload.
ImageMagick bisa download di 


Sabtu, 26 September 2015

[Step-Step] men-download, me-rename file dan membuat folder dalam BASH SCRIPT

udah baca post sebelumnya kan?
ini ada sedikit pengembangannya nih, aku dapet soal untuk melakukan download rename dan membuat folder. ini step-step yang harus dilakukan untuk mengerjakan soalnya
  1. Mendownload file dari website yang diberikan
  2. Me-rename nama file dengan jam, menit, detik ketika mendownload
  3. Membuat folder dengan nama hari, bulan, tanggal ketika file di download
    • apa bila folder sudah ada, maka file tinggal dimasukan kedalam folder yang sudah ada
    • apa bila folder belum ada, maka program harus membuat folder baru dengan nama hari, bulan, tanggal ketika file di download lalu memasukan file ke folder tersebut
  4.  Meng-update tulisan dalam file dengan format yang telah diberikan
naah di case soal yang aku dapet, ceritanya aku harus download file dari "http://10.151.36.201/sisop/jadwal.txt" *cuma bisa di akses di kampus* lalu ku ganti namanya dengan jam_menit_detik aku download, lalu memasukan kedalam folder hari_bulan_tanggal. file yang di download itu berupa jam:menit:detik dan di soal ada penjelasan kalau angka-angka dalam file itu adalah waktu terakhir si pasien minum obat. obat pertama kali diminum pukul 06:00:00 dan diminum lagi setiap 3 jam berikutnya, hanya dihitung hingga pukul  23:59:59 yaa ehehe..
jadi ini kodingan aku


  •  'wget' yang terdapat pada baris ke-2 adalah command yang digunakan untuk mendownload file

  • baris-3 dan 4 itu adalah variabel yang aku pake. dmy(daymonthyear) dan hms(hourminutesecond)

  • 'mv' pada baris ke-5 adalah fungsi untuk cut. jadi disitu ak mengganti file yang tadinya berjudul jadwal menjadi hms atau waktu ketika di download

  • fungsi if yang aku pakai mulai dari line 6-12 itu adalah untuk mengecheck apakah folder dengan nama dmy sudah ada atau belum, kalau belum maka akan dibuat folder baru *lihat line 10, 'mkdir' adalah command membuat folder*

  • untuk line-19 itu aku search di internet bagaimana cara untuk mengambil data yang terdapat dalam file dan di website yang aku temukan penjelasan IFS danlainlainnya seperti ini

  • di line-22 ada ${line:0:2} itu aku mengambil 2 karakter terdepan yang ada dalam file itu lalu aku memastikan apakah angka itu lebih besar dari 6 karena jam pertama minum obat adalah pukul 6. pnerhitungan seberapa banyak dia minum obat adalah (jam/3)-1 dan dia akan mendapatkan hasil yang diinginkan

  • baris-30 adalah cara untuk mengedit data dalam file menggunakan 'sed' karena didalam file ada jam:menit:detik lalu ketika program ini dijalankan, dalam file tersebut akan terisi

    • jam:menit:detik - Pasien *nama pasien* Sudan Minum *hasil kalkulasi* obat 

itulah sedikit yang bisa aku jelasin tentang soal yang kemarin aku dapet. oh iya, sebeneernya setelah aku mendownload, merename dan menaruh file itu di sebuah folder. aku diminta untuk membuat program lain yang fungsinya adalah menjadikan folder hari_bulan_tahun itu menjadi 'tar.gz' dengan nama kelompokku (B18 *pas banget suka angka 18* ) lalu membuat sebuah file 'txt' dengan nama 'log_B18.txt' yang isinya adalah pencatatan waktu setiap kali pengarsipan terjadi.
Ini programnya


semoga membantu ^^

Pendahuluan Sistem Operasi

Haihai, udah lama aku gak nulis di blog ehehehe.. sekarang aku udah semester 3 nih, dan akan mulai menulis-menulis tentang matkul atau mungkin tutorial ehehehe..
aku ada pendahuluan sistem operasi
jadi saat ini aku lagi mempelajari sistem operasi linux, jadi sistem operasi itu software untuk mengontrol dan manajemen perangkat keras serta operasi - operasi dasar dari suatu sistem komputer. ada beberapa contoh perintah yang baru aku pelajari
  • ls: menampilkan isi dari suatu direktori dan elemen elemen filenya.
        contoh: menampilkan help page
            # ls --help
                    Usage: ls [OPTION]... [FILE]..
  • pwd: melihat posisi pengguna sedang berada dimana pada saat itu
        contoh: $ pwd
  • mkdir: membuat direktori
        contoh: mkdir mydir
  • chmod: mengatur hak akses suatu file
        contoh: chmod 644 file.htm
  • chown: mengganti kepemilikan dari suatu file
        contoh: chown chope file.txt
  • chroot: untuk membuat root direktori virtual yang akan menjadikan home direktori suatu pengguna
        contoh: $ chroot /mnt/arch /usr/bin/bash
  • sudo: memberikan otoritas pada user agar bisa mengeksekusi perintah seperti halnya root.
        contoh: sudo -v
  • grep: melakukan pencarian terhadap string yang terdapat pada file.
        contoh: $ grep -r "192.168.1.5" /etc/
  • ps: untuk mengecek suatu proses dalam server.
        contoh: ps -e
               ps -ef
               ps -eF
               ps -ely
  • halt: perintah yang hanya bisa digunakan oleh super user atau root untuk meng-shutdown
        contoh: halt
  • cd: untuk berpindah direktori
        contoh: cd/var/
  • rm: digunakan untuk menghapus file tapi tidak menghapus direktori
        contoh: tm.file.
  • mv: memindahkan suatu file atau mengganti nama filenya.
        contoh: mv/etc/file.txt/var/
  • date: menampilkan atau mengatur tanggal
        contoh: date
  • free: menampilkan penggunaan free memory
        contoh: free -m
  • whoami: menampilkan id user yang sedang digunakan saat ini
        contoh: whoami
  • which: menampilkan lokasi fungsi dasar yang dicari
        contoh: which sh
  • cp: meng-copy file
        contoh: cp/etc/file1.txt/var/
itu contoh beberapa perintah saja~ oh iya aku juga belajar ngoding disana >.< ini ada beberapa syntax yang kemaren aku dapet


cukup ini dulu yaa pendahuluan sisopnya ehehehe semoga membantu :)