Halo! Selamat datang kembali di “Seri Belajar Dasar Pemrograman Bahasa C#“. Pada materi kali ini kita akan membedah anatomi program sederhana bahasa C#.
Setelah menyelesaikan materi ini, sebagai pemula, Anda akan semakin familiar dengan struktur program yang ditulis dengan bahasa C#. Materi ini akan kita mulai dengan membuat sebuah aplikasi console sederhana bernama “Tebak Angka”.
Membuat Program C# Pertama Anda
Sebagai pemanasan sebelum kita mulai membedah anatomi atau konstruksi sebuah program sederhana yang ditulis dengan bahasa C#, kita akan membuat sebuah aplikasi permainan console bernama “Tebak Angka”.
Dalam permainan ini, pemain diharuskan menebak apa angka yang sedang dipikirkan oleh komputer saat ini, sampai tebakannya benar.
Untuk itu, kita akan menulis beberapa baris kode program dengan bahasa C#. Mungkin Anda akan merasa kurang familiar dengan apa yang Anda tulis sekarang. Namun, jangan khawatir! Selama Anda mengikuti Seri Belajar Dasar Pemrograman Bahasa C# dengan baik, sedikit demi sedikit Anda akan mulai familiar dengan setiap baris kode program yang Anda tulis di sini.
Sementara ini, ikuti saja instruksi yang saya berikan. Sudah siap menulis program C# pertama Anda? Ayo kita mulai!
Membuat aplikasi console C# dengan .NET Core
1. Buat sebuah folder bernama “TebakAngka” di lokasi manapun di dalam direktori komputer Anda.
Jika Anda menggunakan sistem operasi Windows, buka folder tersebut, ketik cmd di directory bar pada Windows Explorer, lalu tekan enter untuk membuka command prompt pada direktori tersebut.

2. Ketik dotnet new console
pada command prompt untuk membuat aplikasi console di .NET Core.

Anda akan mendapatkan pesan seperti pada gambar di bawah ini apabila sebuah aplikasi console telah berhasil dibuat.

3. Masih di jendela command prompt, ketik code .
untuk membuka Visual Studio Code (Selanjutnya saya akan menyebutnya VS Code). Perhatikan ada tanda titik “.” setelah code!

4. Setelah VS Code terbuka, tidak lama akan muncul pesan agar Anda menambahkan aset yang diperlukan untuk melakukan debugging seperti pada gambar di bawah ini. Tekan tombol “Yes”.

Perhatikan panel Explorer di sisi kiri editor! Sebuah folder bernama .vscode
akan ditambahkan jika sebelumnya Anda menekan tombol “Yes”.

Menulis kode program menggunakan Visual Studio Code
Arahkan kursor Anda ke panel Explorer, lalu pilih file Program.cs
. VS Code akan menampilkan kode program di dalam file tersebut di panel editor. Hapus baris kode program Console.WriteLine("Hello World!");
yang berada di dalam blok Main()
. Ganti dengan kode program di bawah ini (letakkan di antara tanda { dan } tepat setelah static void Main(string[] args)
).
Console.Clear();
Random random = new Random();
int randNumber = random.Next(0,100);
bool guessed = false;
int guesses = 0;
ConsoleColor prevColor = Console.ForegroundColor;
while (!guessed)
{
Console.Write("Tebak! angka berapa yang saya pikirkan?: ");
int ans = Convert.ToInt32(Console.ReadLine());
guesses += 1;
Console.Clear();
if (ans == randNumber)
{
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine("SELAMAT! Kamu menebaknya dengan BENAR.");
Console.ForegroundColor = prevColor;
Console.WriteLine("Kamu perlu menebak {0} kali.", guesses);
break;
}
else if (ans > randNumber)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Angkanya LEBIH KECIL daripada angka yang kamu tebak.");
Console.ForegroundColor = prevColor;
}
else if (ans < randNumber)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Angkanya LEBIH BESAR daripada angka yang kamu tebak.");
Console.ForegroundColor = prevColor;
}
}
Console.ReadKey();
Tekan ctrl + F5
pada VS Code untuk menjalankan program tanpa melakukan debugging. Atau, Anda bisa menekan ctrl + @
untuk membuka integrated terminal (command prompt yang terintegrasi dengan VS Code), ketik dotnet run
, lalu tekan tombol enter.

Saatnya, bermain! Tebak, angka berapa yang dipikirkan oleh program Anda?

Jika angka tebakan Anda lebih besar dari jawaban, Anda akan mendapatkan pesan seperti pada gambar di bawah ini.

Sebaliknya jika lebih kecil dari jawaban, Anda akan mendapatkan pesan seperti pada gambar di bawah ini.

Setelah Anda menebak angkanya dengan benar, Anda akan mendapatkan pesan seperti pada gambar di bawah ini.

Seru, bukan? Nantinya, setelah menyelesaikan seluruh materi di MahirKoding.id, Anda diharapkan mampu mengembangkan aplikasi yang lebih kompleks dan tentunya lebih seru.
Pemanasan selesai. Sekarang saatnya kita bedah dan kuliti anatomi atau konstruksi dari sebuah program sederhana yang ditulis dengan bahasa pemrograman C#.
Anatomi Program Sederhana Dengan Bahasa C#
Pada saat pertama kali Anda membuka Program.cs
, Anda bisa melihat bahwa .NET Core telah menyediakan beberapa baris kode program sebagai kerangka atau template seperti yang terlihat pada kode program di bawah ini.
using System;
namespace TebakAngka
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
Jika Anda menjalankan kode program di atas, teks “Hello World!” akan ditampilkan di layar console. Kode program ini merupakan konstruksi minimal yang harus dimiliki setiap program C# agar bisa dijalankan. Jika Anda ingin memahami apa maksud dan kegunaan dari setiap baris kode program di atas, ayo kita lanjutkan!
Fungsi using directive dan namespace
Buat sebuah program baru dengan cara yang sama seperti sebelumnya. Beri nama ProgramSederhana. Buka file Program.cs
, lalu hapus baris kode using System;
.
Apa yang terjadi? Coba perhatikan baris Console.WriteLine("Hello World!");
. Muncul garis merah bergelombang (red squiggly) di bawah Console
. Jika Anda mengarahkan kursor tepat di atas Console
, Anda akan mendapatkan pesan eror seperti pada gambar di bawah ini.

Eror seperti di atas muncul karena kini compiler tidak bisa mengenali apa itu Console
di dalam namespace ProgramSederhana
yang berada di dalam file Program.cs
(current context). Mengapa? Karena nama Console
didefinsikan di dalam sebuah file pada Base Class Library (.NET Framework) / Core Library (.NET Core) dengan namespace System
. Agar compiler bisa mengenali nama Console
yang digunakan di dalam Program.cs
, Kita harus mengimpor atau menyertakan namespace System
ke dalam file Program.cs
terlebih dahulu.
Jadi, directive using System;
digunakan untuk menyertakan namespace System
ke dalam suatu context (dalam hal ini kode program di dalam file Program.cs
), agar Anda bisa menggunakan nama-nama yang didefinisikan di namespace tersebut (misal, Console
) dari dalam konteks program Anda (namespace TebakAngka
di dalam file Program.cs
).
Namespace
Namespace digunakan untuk memberi ruang lingkup penamaan class supaya tidak terjadi konflik penamaan apabila terdapat dua buah class berbeda dengan nama yang sama. Untuk mempelajari namespace lebih mendalam, klik tautan di bawah ini.
Fungsi class Program
Bahasa C# pada dasarnya adalah bahasa pemrograman berorientasi objek (OOP). Dalam OOP, setiap kode program harus dienkapsulasi atau dirangkum ke dalam sebuah class. Dalam hal ini, class Program
berfungsi untuk mengenkapsulasi method Main()
.
Jika penjelasan saya masih terasa asing bagi Anda, tidak perlu khawatir. Konsep class dan objek bisa Anda pelajari di materi pemrograman berorientasi objek setelah menyelesaikan seri belajar dasar pemrograman bahasa C#.
Class
Class merupakan sebuah prototype dari sebuah objek dan merupakan jantung dari pemrograman berorientasi objek. Untuk mengenal class lebih lanjut, klik tautan di bawah ini.
Fungsi static Main()
Method Main merupakan entry point atau pintu masuk dari program kita. Maksudnya, method Main()
adalah yang pertama kali dipanggil dan dieksekusi oleh compiler saat program kita dijalankan.
Karena compiler harus segera memanggil dan mengeksekusi method Main()
, maka method tersebut harus didekorasi dengan kata kunci static
. Dalam pemrograman OOP, tanpa kata kunci static
, compiler harus menginstansiasi (mengkreasi) objek dari class Program
terlebih dahulu sebelum mengeksekusi Main()
. Hal ini tentunya tidak memungkinkan!
Coba hapus kata kunci static
pada method Main()
dan jalankan program Anda. Tentunya, Anda akan mendapatkan pesan eror: “Program does not contain a static ‘Main’ method suitable for an entry point“.
Pada template yang dibuat oleh .NET Core, method Main()
memiliki satu buah parameter berupa array dari tipe string bernama args
(Main(string[] args)
). Ketika sebuah method memiliki parameter, artinya method tersebut bisa menerima input yang biasa disebut dengan argumen.
Apabila method Main()
adalah method yang dipanggil oleh compiler, maka kapan kita bisa memberi input berupa argumen ke method Main()
? Jawabannya adalah melalui Command Line Argument.
Apa Itu Command Line Argument?
Tambahkan kode program di bawah ini ke dalam program ProgramSederhana. setelah Console.WriteLine("Hello World!");
.
for (int i = 0; i < args.Length; i++)
Console.WriteLine("Arg: {0}", args[i]);
Buka integrated terminal dengan menekan tombol ctrl + @
pada keyboard (Saya berasumsi, Anda menggunakan VS Code). Beri perintah dotnet run
, lalu tekan tombol enter.
Anda hanya akan melihat tulisan “Hello World!” pada layar console.
Kembali ke integrated terminal. Kali ini beri perintah dotnet run arg1 arg2 arg3
, lalu tekan tombol enter. Kira-kira apa hasil yang akan ditampilkan di layar console? Tulis jawaban Anda di kolom komentar.
Perintah dotnet run
biasa disebut dengan command line. Sedangkan arg1, arg2, dan arg3 adalah argumen yang kita sertakan ketika memberikan perintah dengan command line. Oleh karena itu, arg1, arg2, dan arg3 disebut dengan command line argument.
Penutup
Pada materi kali ini, kita telah berhasil membuat sebuah program dengan bahasa C#.
Kita juga telah mempelajari anatomi atau struktur yang menyusun konstruksi sebuah program C# sederhana. Di mana setiap program yang ditulis dengan bahasa C# biasanya minimal menggunakan using
directive, namespace
, class
, dan method Main()
.
Jika Anda merasa kesulitan dalam memahami materi ini, jangan menyerah! Tulis kesulitan atau pertanyaan Anda di kolom komentar, saya akan membantu.
Selamat belajar!
Kak Dian, kenapa waktu saya Start Withouth Debugging malah muncul pesan:
Unhandled exception. System.IO.IOException: The handle is invalid.
at System.ConsolePal.GetBufferInfo(Boolean throwOnNoConsole, Boolean& succeeded)
at System.ConsolePal.Clear()
at System.Console.Clear()
at TebakAngka.Program.Main(String[] args) in D:\MahirKoding\TebakAngka\Program.cs:line 11
Mohon bantuannya. Terima kasih