Skip navigation

Tag Archives: C


Kami Program Studi Teknik Informatika ITB, mengundang Bapak/Ibu untuk mengikuti acara yang bertajuk

Sosialisasi Keilmuan Informatika Untuk Guru SMA/Sederajat

yang merupakan bagian dari rangkaian acara besar

ITB Programming Contest 2010


Sosialisasi Keilmuan Informatika adalah acara berbentuk seminar dengan tema umum keilmuan informatika. Beberapa praktisi pendidikan informatika ternama akan menjadi pembicara dalam seminar ini. Peserta seminar ini adalah guru – guru pendamping peserta Kompetisi Pemrograman Tingkat SMA dan guru – guru bidang Teknologi Informasi dan Komunikasi tingkat SMA/Sederajat yang tertarik untuk mengikuti seminar ini.

Acara ini akan dilaksanakan di Ruang Auditorium gedung Campus Center Timur, Institut Teknologi Bandung pada 26 September 2010 pukul 09.00 – 14.00.

Pendaftaran acara seminar telah dibuka dan dapat dilakukan melalui situs resmi ITB PC 2010, yaitu pada alamat http://kontes.if.itb.ac.id atau pada saat acara berlangsung. Pendaftaran untuk acara ini tidak dipungut biaya.

Informasi lebih lengkap dapat mengunjungi situs http://kontes.if.itb.ac.id atau menghubungi contact person kami:
Karol Danutama 08987818158 / 08179851878
Listiarso Wastuargo 0812 158 124 8
Timotius Nugroho 0859 331 079 00

Demikianlah undangan dari kami selaku panitia ITB Programming Contest 2010. Semoga informasi ini dapat bermanfaat bagi anda. Terima kasih.


Untuk pengguna Linux atau UNIX pasti familiar dengan penggunaan options pada aplikasi berbasis CLI (command line interface). CLI options atau CLI parameter adalah sebuah mekanisme untuk memasukkan variabel ke dalam aplikasi tersebut.
Contohnya untuk di Linux atau UNIX

t76010@server42411:~$ ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print octal escapes for nongraphic characters
      --block-size=SIZE      use SIZE-byte blocks
  -B, --ignore-backups       do not list implied entries ending with ~
  -c                         with -lt: sort by, and show, ctime (time of last
                               modification of file status information)
                               with -l: show ctime and sort by name
                               otherwise: sort by ctime

Sedangkan di Windows pun ada format parameter yang berbeda (seringkali disebut switch) untuk command pada MS-DOS

Displays a list of files and subdirectories in a directory.

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N] [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
[drive:][path][filename]	Specifies drive, directory, and/or files to list.
attributes	

D  Directories                R  Read-only files
H  Hidden files               A  Files ready for archiving
S  System files               -  Prefix meaning not

/B	Uses bare format (no heading information or summary).
/C	Display the thousand separator in file sizes. This is the default. Use /-C to disable display of separator.
/D	Same as wide but files are list sorted by column.
/L	Uses lowercase.

Setiap bahasa pemrograman memiliki fitur parameter untuk memfasilitasi passing variabel ke dalam program. Akan tetapi umumnya bahasa tidak langsung menyediakan format passing variabel seperti di atas yakni melakukan passing variabel secara terstruktur.

Read More »


Di salah satu kuliah yakni High Performance System sering dibutuhkan fungsi untuk menghitung durasi waktu. Salah satu fungsi yang dapat dipakai adalah clock_gettime yang menyediakan ketelitian hingga nanosecond. Fungsi ini menggunakan struktur data yakni timespec yang juga didefinisikan di header time.h.
Read More »


Di ambil dari sini. Sedikit snippet tentang socket programming di C. Pemrograman ini menggunakan fungsi-fungsi socket yang sudah disediakan oleh Linux. Untuk beberapa OS lain seperti BSD dan MacOS kalau gak salah penangannya agak sedikit berbeda.

Read More »


Diambil dari artikel lama di blog

Tugas IF3292 Pemrograman Internet disuruh bikin yang beginian
SCP
Dari semua tugas sebelumnya

  1. HTML Editor with DHTML
  2. Simple CMS with PHP
  3. Web Chess with AJAX

yang paling menarik yet paling susah yang ini……
disuruh bikin protokol sendiri….

tapi sebenarnya kalau dipikir-pikir konsepnya gak terlalu susah…. teknologinya aja yang ribet….

jadi intinya disuruh ngebikin program SCP-like dengan menggunakan socket programming di Linux…..
fungsinya cuman 2 : buat ngopi dan mindahin folder/file dari satu host ke host yang lain…
Read More »


Melanjutkan postingan tentang modul kernel yang dulu.

Biasanya untuk melakukan pemindahan data antara dua buah program cukup dengan menggunakan sebuah file yang dibaca bersama (selain dengan menggunakan IPC). Hal ini cukup sulit untuk dilaksanakan pada modul kernel karena pada dasarnya modul tidak disediakan fungsi file I/O layaknya system call open(). Menulis file pada kernel space menjadi cukup sulit.

Salah satu cara yang mudah melakukan komunikasi antara sebuah kernel module dan user space program adalah dengan menggunakan procfs. Procfs adalah sebuah filesystem yang menyediakan informasi mengenai process-process dalam kernel. Procfs ini dapat dibuka di folder /proc.

$cd /proc
$ls -l | less
dr-xr-xr-x  6 root       root               0 2009-01-07 15:07 1
dr-xr-xr-x  6 root       root               0 2009-01-07 15:07 119
dr-xr-xr-x  6 root       root               0 2009-01-07 15:07 120
dr-xr-xr-x  6 root       root               0 2009-01-07 15:07 121
dr-xr-xr-x  6 root       root               0 2009-01-07 15:07 1369
dr-xr-xr-x  6 root       root               0 2009-01-07 15:07 1372
dr-xr-xr-x  6 root       root               0 2009-01-07 15:07 1385
dr-xr-xr-x  6 root       root               0 2009-01-07 15:07 1392
dr-xr-xr-x  6 root       root               0 2009-01-07 15:07 2

Di sana tersimpan data-data mengenai process yang sedang dijalankan. Folder-folder yang memiliki nama berupa angka merepresentasikan process dengan process ID (PID) yang  sama dengan nama folder tersebut. Di dalam folder tersebut tersimpan data-data mengenai process yang bersangkutan.

Read More »


Salah satu hal yang bisa dilakukan pada modul kernel adalah membuat sebuah sistem yang sifatnya real time. Salah satu contohnya adalah pada tugas terakhir kuliah IF4097 Jaringan Komputer Lanjut. Pada tugas ini kita diminta untuk membuat sebuah modul kernel yang secara periodik mengecek availability sebuah node pada jaringan.

Timer ini dapat diimplementasikan dengan menggunakan struktur data timer_list. Struktur data ini dapat di lihat pada include/linux/timer.h

struct timer_list 
{ 
		struct timer_list *next; 
		struct timer_list *prev; 
		unsigned long expires; 
		unsigned long data; 
		void (*function)(unsigned long); 
}; 

Read More »


Modul kernel adalah sebuah file obyek yang berisi fungsi-fungsi yang dapat digunakan oleh kernel sistem operasi. Tujuan dibuat sebuah modul kernel adalah untuk menyediakan fungsi-fungsi yang tidak disediakan secara default oleh kernel. Modul ini biasanya digunakan sebagai device driver.

Contoh sebuah modul kernel sederhana

/* file contoh.c */
#include <linux/module.h>
static void __init hello_init(void)
{
	printk(KERN_INFO "Hello World!");
}

static void __exit hello_exit(void)
{
	printk(KERN_INFO "Hello World!");
}

module_init(hello_init);
module_exit(hello_exit);

Untuk menjalankan modul ini pertama-tama kode harus dikompilasi. Kompilasi dapat dilakukan dengan menggunakan Makefile seperti di bawah ini

obj-m += contoh.o

all:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

Kompilasi dapat dilakukan dengan menggunakan perintah Make.

Selanjutnya akan terdapat beberapa file termasuk contoh.ko.

Untuk melakukan instalasi cukup jalankan perintah pada shell

#insmod contoh.ko

Untuk membuang modul dari kernel jalankan perintah

#rmmod

Keluaran dapat dilihat dengan menggunakan perintah

#dmesg

Bisa dilihat pada kode di atas, fungsi inisialisasi, yakni fungsi yang dijalankan pertama kali diset dengan menggunakan fungsi module_init, sedangkan fungsi yang dijalankan saat modul dibuang diset dengan menggunakan fungsi module_exit.

Pada dasarnya modul kernel berbeda dengan program biasa. Karena berjalan pada kernel space, modul hanya dapat menggunakan fungsi-fungsi yang disediakan oleh kernel. Modul kernel tidak dapat menggunakan fungsi-fungsi yang disediakan library. Oleh karena itu header file seperti stdio.h, stdlib.h, tidak dapat dipakai dalam modul. Dapat dilihat di atas, untuk melakukan pencetakan ke terminal tidak digunakan fungsi printf melainkan fungsi printk yang pada dasarnya memiliki fungsi dan fitur yang sama.

File yang berisi modul sederhana dan makefilenya dapat diunduh di sini.
NB : Direname dulu ke file zip.


Di dalam UNIX Command, sering dipakai tanda “|”. Tanda “|” adalah pipe, maksudnya stdout dari sebuah program dapat menjadi stdin dari program yang lain. Di dalam C, fitur ini dapat diimplementasikan dengan fungsi pipe(). Di contoh yang ada pada spesifikasi tersebut hanya menangani antara 2 proses.

#include <stdlib .h>
#include <unistd .h>

int main(){
	int fildes[2];
	const int BSIZE = 100;
	char buf[BSIZE];
	ssize_t nbytes;
	int status;
	status = pipe(fildes);
	switch (fork()) {
	case -1: /* Handle error */
	    break;

	case 0:  /* Child - reads from pipe */
	    close(fildes[1]);                       /* Write end is unused */
	    nbytes = read(fildes[0], buf, BSIZE);   /* Get data from pipe */
	    /* At this point, a further read would see end of file ... */
	    close(fildes[0]);                       /* Finished with pipe */
	    exit(EXIT_SUCCESS);

	default:  /* Parent - writes to pipe */
	    close(fildes[0]);                       /* Read end is unused */
	    write(fildes[1], "Hello world\n", 12);  /* Write data on pipe */
	    close(fildes[1]);                       /* Child will see EOF */
	    exit(EXIT_SUCCESS);
	}
}

Fungsi pipe ini akan menyambungkan input dari sebuah filedescriptor menjadi output pada filedescriptor lain. Input/output ini dibaca dengan menggunakan fungsi read() dan write().

Read More »


Di dalam pelatihan nasional TOKI I, peserta akan diperkenalkan kepada bahasa C/C++. Penggunaan bahasa ini adalah lanjutan dari penggunaan bahasa Pascal yang telah peserta gunakan pada Olimpiade Sains Nasional. Sangat banyak kelebihan penggunaan C/C++ daripada Pascal terutama dalam segi kecepatan dan fitur-fitur bahasa.

Pertama-tama peserta akan diperkenalkan kepada beberapa aplikasi terkait dengan pemrograman bahasa C/C++

GCC

GCC atau GNU Compiler Collection adalah kumpulan compiler yang dibuat dalam proyek GNU. Awalnya GCC hanya ditujukan sebagai compiler untuk bahasa C (GNU C Compiler), tapi lama kelamaan berkembang menjadi banyak compiler untuk berbagai bahasa pemrograman seperti untuk C itu sendiri (gcc) dan juga untuk C++ (g++) Kumpulan compiler ini merupakan compiler standard yang terdapat pada  sistem  GNU dan merupakan paket minimal pada hampir semua distribusi Linux meski dapat ditemukan juga pada sistem-sistem operasi berbasis UNIX. Compiler gcc dan g++ merupakan compiler yang ditetapkan untuk digunakan oleh peserta pada IOI 2007 di Kroasia yang lalu.

link : http://gcc.gnu.org

MinGW

MinGW atau Minimalist GNU for Windows adalah paket program pemrograman berbasis GNU yang dapat dijalankan di dalam sistem operasi Windows. Di dalam paket ini sudah meliputi program GCC sendiri. Di dalam persiapan pelatnas ini, peserta diminta untuk membiasakan diri menggunakan lingkungan pemrograman dan kompilasi berbasis command line.

link : http://www.mingw.org

DevC++

DevC++ atau DevCpp adalah sebuah lingkungan pengembangan terintegrasi yang digunakan untuk mengembangkan aplikasi dalam bahasa C/C++. DevC++ ini berjalan di atas sistem operasi Windows dan menggunakan MinGW untuk compiler C/C++nya. Meski demikian DevCpp dikembangkan dalam bahasa Delphi. Aplikasi ini adalah pilihan paling baik untuk mengembangkan aplikasi dalam bahasa C/C++ di atas sistem operasi Windows dalam konteks olimpiade komputer.

link : http://www.bloodshed.net/devcpp.html

%d blogger menyukai ini: