F.A.Q. Jurusan Informatika

Oke, kali ini saya ingin membuat post mengenai jurusan saya lagi dan pertanyaan-pertanyaan yang mungkin biasa ditanyakan oleh siswa-siswi SMA/SMK/MA yang sedang galau jurusan. Mudah-mudahan tulisan saya ini bisa membuka pikiran kalian semua yang selama ini berpikir kalau informatika isinya cuma main komputer, game, dan semacamnya (atau malah lebih parahnya lagi, masih banyak yang mengira kalau ingin jadi master photoshop, Corel Draw, dan sebagainya ya masuk informtaika. You’re totally wrong about this, buddy!).

Karena saking seringnya saya melihat pemikiran-pemikiran yang salah kaprah ini di ineternet, baik di situs-situs seperti Yahoo! Answers atau di komen-komen blog orang, saya jadi terinspirasi untuk meluruskan pandangan-pandangan yang salah tentang jurusan saya ini. Musah-mudahan, istilah salah jurusan, tidak akan pernah sampai keluar dari mulut kalian. Baiklah, langsung saja kita menuju inti dari post ini.

Informatika itu jurusan apa?

Mungkin di internet atau buku-buku banyak yang ditemukan definisi panjang-lebar mengenai apa itu ilmu informatika, tapi di sini saya ingin menjelaskannya dengan lebih sederhana. Daripada bertele-tele, biar saya jelaskan saja bahwa inti dari informatika itu matematika dan logika. Dengan matematika dan logika itu kita bisa membuat program komputer yang bermacam-macam. Kenapa saya bilang matematika dan logika? Karena saya hanya ingin memperjelas bahwa itu yang sesungguhnya dipelajari di jurusan ini. Jangan salah kaprah dengan berpikir bahwa kamu bisa belajar Photoshop, Corel Draw, GIMP, dsb di jurusan ini. Asal tahu saja informatika biasanya masuk di Fakultas Teknik atau MIPA atau biasanya sudah punya fakultas sendiri yaitu Fakultas Ilmu Komputer. Jadi, kalau tujuanmu mau menguasai software-software olah gambar di atas, lebih baik masuk DKV saja.

Di informatika belajar apa?

Kebanyakan yang saya pelajari di jurusan informatika selama ini adalah pemrograman dan matematika. Singkatnya begitu lah. Di semester-semester awal, saya bertemu dengan matematika seperti Kalkulus, Statistika, Probabilitas, lalu berlanjut ke Matematika Diskrit, Aljabar Linear, Riset Operasi, Metode Numerik.

Selain itu, saya juga belajar membuat program menggunakan bahasa C, Java, PHP, JavaScript, dan sebagainya. Kalau mau belajar bahasa lain seperti Ruby, Python, C# (baca C-sharp), maka kalian bisa belajar sendiri. Mata kuliah lain yang mempelajari pemrograman meliputi Struktur Data dan Algoritma, Pemrograman Berorientasi Objek (Object-Oriented Programming/OOP), Pemrograman Web, Basis Data (Database), Rekayasa Perangkat Lunak (Software Engineering), dan sebagainya. Di semester-semester atas, kalian akan bertemu dengan matkul-matkul seperti Teori Bahasa dan Automata, Jaringan Saraf Tiruan, Kriptografi, dsb yang mau tidak mau akan memaksa kalian untuk bertemu dengan yang namanya matematika.

Nah, kalau kalian ingin melihat seperti apa yang saya pelajari di kuliah ini, silahkan melihat-lihat post saya yang lain. Sebagai gambaran ya, di akhir semester 1 kelompok saya membuat program enkripsi untuk melakukan encrypt dan decrypt teks menggunakan algoritma Vigenere dengan bahasa C. Akhir semester 2 kelompok saya membuat program untuk menemukan rute terpendek dari pengiriman barang menggunakan teori Graf dengan bahasa Java. Akhir semester 3 kelompok saya membuat program untuk melakukan sensor kata-kata kasar yang ditemukan di sebuah dokumen menggunakan algoritma string matching. Lalu di semester yang sama pada matkul yang lain saya membuat database kriminalitas menggunakan Java dan Oracle MySQL. Yang pastinya, semakin tinggi semesternya akan semakin besar tantangannya.

Kalau saya ingin masuk informatika, apa yang harus saya persiapkan?

Mungkin akan lebih baik kalau kamu pernah kenal bahasa pemrograman, minimal seperti C, Pascal, atau PHP. Atau setidaknya pernah mencoba mengoprek Linux atau Android. Tapi kalau belum ya ngga apa-apa juga sih. Secara umum tidak ada hal khusus yang harus kamu siapkan untuk masuk informatika. Yang jelas, kamu harus punya mental rasa ingin tahu yang tinggi dalam memecahkan suatu permasalahan. Contoh permasalahan itu seperti apa?

Nih contoh permasalahan logika yang mungkin akan kamu hadapi. Saya ambil dari ProjectEuler.

contoh soal di project euler.

contoh soal di project euler

Bagaimana cara menyelesaikannya? Kalau dicobain satu-satu secara manual pasti capek juga kan. Jadi di sinilah, mengapa komputer dan algoritma itu menjadi penting. Saya menulis program kurang dari 30 baris menggunakan Java untuk menemukan hasil dari abc dengan logika sederhana. Kira-kira begitulah gambarannya.

Saya tidak pintar matematika, tapi saya ingin masuk informatika. Menurut kakak bagaimana?

Hmmm, tidak tahu ya. Yang tahu kemampuan kamu kan ya kamu sendiri. Kalau menurut saya sih, kalau kamu melihat soal matematika yang masih sederhana saja seperti matriks dan integral di SMA sudah pengin muntah, ya jangan masuk informatika. Tapi kalau kamu punya kemauan untuk belajar, ya boleh-boleh saja, karena yang paling penting itu sebenernya bukan seberapa pinter kamu, tapi seberapa besar kamu mau berusaha.

Sekedar cerita saja ya, saya juga ngga pinter-pinter amat soal matematika di SMA. Waktu UN saja (saya ikut UN 2013), nilai matematika saya tidak sampai 8. Tapi alhamdulillah, saya masih bisa survive sejauh ini.

Saya berasal dari jurusan non-IPA di SMA/non-RPL di SMK. Apa saya bisa masuk informatika?

Nah, kalau pertanyaan seperti ini saya juga ngga bisa jawab ya. Kan saya tidak tahu pasti kemampuan kamu seperti apa. Jawaban saya kira-kira sama seperti pertanyaan di atas.

Saya tidak pintar Bahasa Inggris, tapi saya ingin masuk informatika. Menurut kakak bagaimana?

Kemampuan berbahasa Inggris memang ngga wajib di informatika. Tapi, alangkah akan lebih mudah apabila kamu bisa bahasa Inggris. Lagipula, mau masuk jurusan apapun, I really recommend that you can speak English. It’ll really help you a lot! Sebagai tambahan, kadang saya dapat tugas untuk membuat resume dari jurnal-jurnal internasional yang pastinya pakai bahasa Inggris. Imagine if you don’t understand English, Google Transalte will not help a lot.

Belajar di informatika itu susah atau ngga ya?

Jawabannya relatif. Susah atau ngga ya tergantung kamu belajar atau ngga. Yang susah itu mungkin ya karena di informatika pastinya banyak tugas, jadi jangan kaget kalau kamu bakal jarang tidur dan ngga punya banyak waktu luang. Tapi itu tergantung kamu juga sih..

Oke, sekian dulu Frequently Asked Question (FAQ) saya tentang jurusan yang katanya favorit di bidang IPA ini, yang katanya lagi hampir menyamai kedokteran kompetisi masuknya, malah ada yang bilang lebih. Entah memang banyak peminatnya atau karena masih banyak orang yang salah kaprah tentang jurusan ini, tapi mudah-mudahan tulisan saya bermanfaat buat kita semua.

Mohon koreksinya apabila ada kesalahan. Saya juga mohon maaf apabila akibat membaca tulisan saya, Anda menjadi tidak terlalu yakin lagi untuk masuk informatika (at least, I am being honest here). Saya tidak bermaksud untuk menakut-nakuti kok. Malah, apabila Anda semakin termotivasi untuk masuk informatika, saya ikut merasa bahagia hehe. Apabila ada pertanyaan silahkan ditanyakan di komentar. I’ll try to answer it as soon as I can 🙂

Kuliah di Jurusan Informatika?

Setelah sekian lama menghilang ditelan peradaban, akhirnya saya muncul

programming problem

programmers can relate to this

lagi. TADA! Blog ini akhirnya ada post barunya! *background applause*

Kali ini saya ingin menulis tentang bagaimana sengsaranya kuliah di jurusan informatika. Barangkali ada siswa SMA yang sedang butuh referensi, jadi curhatan saya ini tidak menjadi sampah saja. Rasanya kuliah di jurusan informatika? Nano-nano rasanya. Ada senang, ada sedih, ada bingung, ada hampa, ya ada apa saja lah pokoknya.

Semuanya berawal dari kebingungan saya memilih jurusan kuliah. Jangan ditanya seperti apa rasanya waktu itu. Bingung luar biasa. Saya bisanya apa ya? Saya nilainya bagus di mapel apa ya? Saya tertarik apa ya? Setelah sekian lama berpikir untuk menemukan jawaban atas semua pertanyaan di atas, akhirnya saya menemukan juga jawabannya; I am not good at anything! Nah kan, saya sendiri juga belum tahu saya maunya apa waktu itu.

Namun akhirnya, atas saran orang tua, saya memilih jurusan informatika sebagai pilihan pertama di SNMPTN Undangan. Dan alhamdulillah keterima. Padahal kalau dilihat-lihat rapot saya ngga bagus-bagus amat loh. Nilai naik turun kaya roller coaster ngga karuan. Rangking tengah-tengah di kelas. Punya piagam menang lomba pun engga. Ya pokoknya ngga ada yang bisa saya banggakan deh waktu itu. Herannya saya bisa keterima di jurusan yang katanya paling ketat persaingan masuknya. Bahkan kalau di universitas saya, informatika itu jurusan yang keketatan persaingannya melebihi kedokteran. Nah loh..

Yah pada akhirnya saya cuma bisa menerima kenyataan bahwa saya jadi mahasiswi informatika. Tapi selain disebut informatika, ada juga yang menyebutnya ilmu komputer, teknik informatika, dan sebagainya. Hanya, di universitas saya, jurusan ini disebut informatika. Tapi setahu saya itu semua sama saja. Seringnya sih, biar keren, saya sering memperkenalkan diri ke teman-teman luar negeri saya; I am a computer science student *wink*.

Bisa dibilang saya belum punya background coding sama sekali ketika masuk kuliah. Kecuali pengetahuan pas-pasan tentang html/css yang ternyata baru dipakai di semester 4. Selain itu, wah saya ngga tahu apa-apa!

Semester pertama bisa dibilang isinya lebih ke bagaimana cara kita supaya bisa paham tentang konsep pemrograman. Kita belajar apa itu looping, decision making, lalu berlanjut ke array, char/string, dan sebagainya. Hal semacam ini, yang sebenarnya adalah hal paliiiing dasar dari coding, baru diketahui oleh saya. Ya ngga apa-apa juga, karena ternyata saya ngga sendiri. Banyak juga teman-teman saya yang masih newbie dalam hal-hal ini, meskipun ada juga yang sudah level master waktu itu (biasanya karena lulusan SMK atau pernah ikut lomba programming di SMA).

Di semester satu ini juga saya terpaksa harus belajar mandiri. Maksudnya, dulu ketika SMA saya cuma nurut saja dikasih pelajaran ini-itu oleh guru, ketika masuk kuliah saya harus belajar supaya bisa mempelajari sesuatu sendiri, tanpa harus menunggu diterangkan dosen (malah, lebih sering ngga diteranging loh hiks). Kebanyakan, saya harus belajar sendiri. Nah, kebayang kan rasanya. Dulunya saya cuma manut saja sama guru, sekarang saya harus buka-buka buku, obrak-abrik Google, tanya sana-sini buat memahami sesuatu.

Intinya, kalau kamu mau kuliah di informatika, kamu harus mau belajar mandiri dan mau mengembangkan logika kamu. Karena komputer itu dasarnya ya logika. Inget, komputer ga punya perasaan ya, kawan! Dan satu lagi, kalau kamu pengin masuk di jurusan informatika, kamu harus tahan stress!

Akhirnya semester satu yang penuh pengorbanan itu berakhir juga, saya masuk ke semester selanjutnya. Dan ternyata, masih banyak yang belum saya pelajari! Mata kuliah yang ada semakin sulit dan penuh tantangan dan jangan lupa juga dengan malam-malam di mana saya cuma tidur beberapa jam saja karena tugas, atau karena mencari-cari salah di program buatan sendiri. Pernah juga saya mencari penyebab error di program saya selama hampir sehari semalam, hampir lupa tidur, lupa makan, ya lupa banyak hal. Bahkan nyari salah di program selama berhari-hari pun juga pasti pernah dirasakan.

Semester-semester selanjutnya jangan ditanya lagi seperti apa. Kadang saya jalan ke kampus seperti zombie akibat kurang tidur hehe. Jangan heran kalau dalam satu hari kadang bisa ditagih tiga sampai empat laporan praktikum plus tugas dari dosen. Jadi, malam sebelumnya ya siap-siap aja begadang sambil mantengin laptop.

Selain itu, semakin tinggi semester yang kita masuki, biasanya isinya semakin banyak matematikanya *brb nangis*. Semester awal kamu mungkin masih cuma nemuin statistika, probabilitas, kalkulus. Semakin ke atas, matematikannya bakal semakin banyak. Ada matematika diskrit, aljabar linear, riset operasi, dan matematika-matematika mengerikan lainnya. Yang pastinya kamu harus sabarr…

Sedihnya lagi, ngga semua anak informatika itu bisa ngoding. Jadi, kalau ada tugas kelompok buat projek, bisa jadi kamu yang pinter ngoding bakal jadi korban buat ngoding. Jadi ya tinggal hitung saja probabilitas keberuntungan kamu kalau lagi pembagian kelompok. Apa kamu bakal beruntung dapat temen yang pinter ngoding atau malah kamu sendiri yang jadi korban? Kalau sudah begini, biasanya saya penginnya nangis sambil ngeluarin air mata angka-angka gitu sih.. Tapi saya pribadi, saya percaya kalau semua orang pasti bisa ngoding. Setuju? 😀

Oke mungkin segitu dulu tulisan saya. Kalau saya lagi ngga males mungkin bakal saya tambah lagi isinya. Jadi, gimana, masih mau milih jurusan informatika? 😀

P.S. Programmers can relate to these memes.

programming problem

programming problem

programming problem

Membuat Program Sederhana untuk Menampilkan Bilangan Prima

Kali ini saya akan membahas cara membuat program untuk menampilkan bilangan prima. Pertama, apa sih bilangan prima itu? Oke, singkatnya bilangan prima adalah bilangan yang cuma punya dua faktor saja yaitu angka 1 dan bilangan itu sendiri. Mungkin saya ngga perlu panjang lebar ngejelasin apa itu bilangan prima ya, anak SD aja pasti udah tahu hehe. Tapi, buat yang masih ngotot pengin tahu lagi, contoh bilangan prima itu ada 2, 3, 5, 7, 11, 13, 17, 19, dst. Nah sekarang sudah tahu kan?

Program yang ingin saya bahas sekarang ini bisa menampilkan bilangan prima sejumlah yang kita mau loh.. Misalnya kita
minta 100, maka program ini akan menampilkan 100 bilangan prima pertama, mulai dari 2 sampai 541. Bayangkan kalau kita harus menghitung manual, wah pasti ogah. Oleh karena itu, cuss kita langsung saja melihat source code-nya yang saya tulis dalam bahasa C beserta penjelasannya. Kenapa bahasa C? Karena saya sedang mood pakai C hehe.. Alasan yang tidak mutu sekali.


#include <stdio.h>

//code by www.somerandomcode.wordpress.com

main()
{
    //deklarasikan variabel untuk menyimpan nilai bilangan prima maks
    int maks;
    //deklarasikan variabel untuk melakukan looping
    int x=1, y;
    //deklarasikan variabel untuk menyimpan faktor bilangan
    int faktor;
    puts("Masukkan jumlah bilangan prima");
    //scan bilangan
    scanf("%d", &maks);
    //deklarasikan variabel untuk melakukan looping
    int n=1;
    //selama n belum mencapai jumlah bilangan prima yg
    //dikehendaki, maka looping belum berhenti
    while(n<=maks)
    {
        //set faktor kembali ke 0
        faktor=0;
        //looping untuk setiap bilangan yg ada
        for(y=x; y>=1; y--)
        {
            //jika x bisa dibagi y, berarti y
            //adalah faktor dari x
            if(x%y==0)
            {
                //increment nilai faktor
                faktor++;
            }
        }
        //jika faktornya 2, berarti x bil prima
        if(faktor==2)
        {
            printf("%d\t", x);
            //increment x karena ada bil prima baru ditemukan
            n++;
        }
        //increment x untuk iterasi selanjutnya
        //x adalah bil yg dicek apakah x bil prima
        x++;
    }
}


 

Variabel x adalah variabel yang digunakan sebagai bilangan yang perlu dicek apakah bilangan tersebut bilangan prima atau bukan. Nilai x ini dimulai dari angka 1. Sehingga, nilai x harus bertambah setiap iterasi, menjadi 2, 3, 4, dst. Masing-masing akan dicek apakah ini bilangan prima atau bukan.

Variabel maks adalah variabel untuk menyimpan berapa jumlah bilangan prima yang ingin kita tampilkan. Misalnya kita memasukkan input sebanyak 20, maka program kita ini akan menampilkan 20 bilangan prima pertama.

Variabel n adalah variabel yg digunakan untuk menghitung seberapa banyak bilangan prima yang sudah ditemukan. Nilai n akan bertambah setiap kali sebuah bilangan prima ditemukan. Jika n sudah mencapai maks, maka looping berhenti.

Variabel faktor adalah variabel yang menyimpan berapa faktor yang dimiliki bilangan x yang sedang dicek. Apabila suatu bilangan hanya memiliki 2 faktor, maka bilangan ini adalah bilangan prima. Setiap kali suatu bilangan ditemukan faktornya, maka nilai faktor akan bertambah.

Berikut adalah hasil screenshot pada saat program diminta menampilkan 100 bilangan prima pertama.

prima

Mohon koreksinya apabila ada kesalahan ^^

Program Menghitung Pecahan Uang

Program ini saya buat karena ada adik tingkat saya yang menanyakan PR-nya kepada saya. Ya, namanya juga baru mahasiswa baru, mereka pastinya belum paham betul tentang seluk-beluk coding (saya yang sudah setahun lebih jadi mahasiswa informatika saja masih banyak bingungnya kok), maka program menghitung pecahan uang yang sebenarnya tidak rumit-rumit amat ini akhirnya jadi kelihatan rumit juga buat mereka yang notabenenya baru tahu bahasa pemrograman. Akhirnya, karena pertanyaan mereka itu, saya ikut mikir juga deh. Dan terciptalah program ini, yang saya pikir pasti lebih bermanfaat kalau di-share saja daripada mengendap di laptop saya.

Seperti namanya, Program Menghitung Pecahan Uang ini gunanya ya untuk menghitung pecahan uang. Misalnya, kita punya uang 265.500. Nah, kita ingin mengetahui bagaimana kalau uang tersebut kita pecahkan nilainya jadi kecil-kecil. Sebenarnya, mudah saja, tinggal pecah uangnya menjadi 2 lembar uang 100.00, 1 lembar uang 50.000, 1 lembar uang 10.000, 1 lembar uang 5000, dan 1 keping uang 500. Namun, menjadi tidak sederhana apabila kita diminta membuat programnya, padahal kita belum paham pemrograman. Oleh karena itu, berikut saya sertakan source code-nya dalam bahasa Java.


package sisaduit;
import java.util.Scanner;
public class SisaDuit {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int duit;
System.out.println("Masukkan uangmu: ");
duit=scan.nextInt();
int a = duit/100000;
int sisa=duit%100000;
int b=sisa/50000;
sisa=sisa%50000;
int c=sisa/20000;
sisa=sisa%20000;
int d=sisa/10000;
sisa=sisa%10000;
int e=sisa/5000;
sisa=sisa%5000;
int f=sisa/2000;
sisa=sisa%2000;
int g=sisa/1000;
sisa=sisa%1000;
int h=sisa/500;
sisa=sisa%500;
int i=sisa/200;
sisa=sisa%200;
int j=sisa/100;
System.out.println("uang 100k ada "+a+" lembar");
System.out.println("uang 50k ada "+b+" lembar");
System.out.println("uang 20k ada "+c+" lembar");
System.out.println("uang 10k ada "+d+" lembar");
System.out.println("uang 5k ada "+e+" lembar");
System.out.println("uang 2k ada "+f+" lembar");
System.out.println("uang 1k ada "+g+" lembar");
System.out.println("uang 500 ada "+h+" keping");
System.out.println("uang 200 ada "+i+" keping");
System.out.println("uang 100 ada "+j+" keping");
}
}

Bagaimana cara program ini bekerja? Singkatnya, kita menampilkan tulisan Masukan uangmu ke layar sehingga meminta user untuk memasukan sebuah nilai uang. Angka yang dimasukan ini akan disimpan dalam variabel duit. Nah, duit ini kita bagi nilainya dengan 100.000. Hasilnya akan berupa jumlah lembaran uang 100.000 yang kita miliki. Nilai ini akan disimpan dalam variabel a yang bertipe data integer. Setelah itu, kita mencari sisa dari pembagian tadi, caranya yaitu dengan menggunakan mod (%). Sisa ini kita simpan dalam variabel sisa. Jadi, misalnya kita menginput 270.000. Maka hasil dari pembagiannya adalah 2, dan hasil mod-nya adalah 70.000.

Setelah itu, lanjut ke persamaan berikutnya. Kita harus mencari jumlah lembaran uang 50.000 dengan cara nilai sisa yang sudah kita peroleh tadi, yaitu 70.000. Uang 70.000 ini kita bagi dengan 50.000, maka akan kita peroleh nilai 1. Sementara variabel sisa yang memiliki persamaan sisa%50.000 akan menjadi 70.000%50.000, hasilnya yaitu 20.000. Nah, angka 20.000 yang disimpan dalam variabel sisa ini akan digunakan untuk dihitung pada persamaan selanjutnya, yaitu mencari jumlah lembar uang 20.000. Begitu seterusnya hingga mencapai keping uang terkecil yaitu 100. Setelah itu, baru semuanya kita tampilkan ke layar. Nah, gampang kan?

Kalau kalian baru belajar programming dan masih belum paham, jangan berkecil hati. Semua butuh waktu dan kesabaran untuk menguasai sesuatu. Mudah-mudahan bermanfaat 🙂

Hello, World!

Seperti layaknya orang yang baru belajar programming, program yang pertama kali kita buat biasanya adalah program ‘hello world!’. Post saya ini adalah post yang pertama kali saya buat di blog ini seperti halnya program ‘hello, world!’ bagi para programmer newbie. Mungkin memang bukan sebuah post yang penting, tapi post ini adalah post yang akan mengawali post-post saya selanjutnya.

Pertanyaannya adalah apa yang akan saya post di blog ini? Belum tahu pastinya. Hanya niatnya, seperti nama blognya, saya ingin mengepost apa saja yang berhubungan dengan coding dan hal-hal absurd yang berbau informatika lainnya. Memang sudah lama saya berniat untuk membuat blog yang isinya source code yang siapa tahu berguna untuk orang lain, terutama orang-orang yang juga sedang sama-sama baru belajar coding. Hanya, entah kenapa saya menunda-nunda niat saya tersebut. Mungkin memang saya sudah capek dengan semua tugas kuliah dan urusan kampus lainnya atau memang saya dasarnya malas. Yang jelas, blog ini sudah tercipta, sekarang tinggal memastikan apakah saya bakal rajin memposting atau tidak.

Some random code, nama random yang kebetulan masuk ke pikiran saya secara random juga. Bisa jadi isinya akan se-random judulnya. Bisa jadi, isinya boleh dibilang lumayan, tapi sedikit terhambat akibat ketidakpawaian saya menulis. Namun, apapun itu, mudah-mudahan isinya bisa membawa manfaat bagi kita semua. Because sharing is learning! 

😀