Algoritma

Algoritma adalah suatu kumpulan instruksi terstruktur dan terbatas yang dapat diimplementasikan dalam bentuk program komputer untuk menyelesaikan suatu permasalahan komputasi tertentu. Algoritma merupakan bentuk dari suatu strategi atau ‘resep’ yang kalian gunakan untuk menyelesaikan suatu masalah. Informatika-Kelas-X

Tujuan Menulis Algoritma dengan baik dan benar

Algoritma adalah abstraksi dari sebuah program sehingga kemampuan menuliskan algoritma dengan baik akan membantu dalam membuat program yang baik dan benar. Informatika-Kelas-X

Info

Program ditulis agar dapat dipahami oleh mesin, sedangkan algoritma ditulis agar dapat dipahami oleh manusia.

Psudocode

Pseudocode (kode semu atau kode pseudo) adalah suatu bahasa buatan manusia yang sifatnya informal untuk merepresentasikan algoritma. Informatika-Kelas-X

Info

Pseudocode dibuat untuk menutupi kekurangan diagram alir dalam merepresentasikan konsep-konsep pemrograman terstruktur. Pseudocode memungkinkan representasi langkah-langkah yang lebih detail dan dekat dengan bahasa pemrograman.

Baca juga Diagram alir.

Bahasa Pemrograman C

Bahasa Pemrograman C, selanjutnya disebut bahasa C saja, dikembangkan oleh Dennis M. Ritchie dan Brian W. Kernighan pada awal tahun 1970. C memiliki berbagai spesifikasi sebab sejarah yang panjangnya namun spesifikasi yang digunakan paling banyak adalah ISO 9899 yang dibuat ISO/IEC. Versi spesifikasi terbaru ISO 9899 adalah ISO 9899:2018 yang disebut C17.

Proses dan Fungsi Compile

Kompilator (compiler) yang akan membaca kode bahasa C yang telah ditulis dan mengubahnya menjadi bahasa mesin, atau bahasa assembly. Setelah itu, terdapat sebuah assembler yang akan mengubah bahasa mesin tersebut ke dalam kode biner yang dapat dipahami dan dieksekusi oleh komputer. Terakhir, terdapat sebuah penghubung (linker) yang akan menyatukan beberapa berkas yang dihasilkan dalam proses-proses sebelumnya ke dalam sebuah bentuk berkas yang dapat dieksekusi (executable).

Info

Pada awalnya, Perangkat lunak tersebut (diatas) terpisah, tetapi untuk memudahkan, akhirnya, dibuatlah sebuah perangkat lunak terintegrasi yang mencakup semua perangkat lunak di atas. Perangkat lunak tersebut disebut lingkungan pengembangan terpadu (integrated development environment). Untuk bahasa C, beberapa IDE yang biasa digunakan ialah Eclipse, Atom, Code::Blocks, Geany, dan Visual Studio. Selain itu, terdapat juga CppDroid,Mobile C, dan Coding C yang dapat digunakan pada ponsel cerdas.

Tipe-tipe Data Dalam Bahasa C

Nama TipeJenis DataUkuran MemoriRentang
intBilangan Bulat4 byte-2.1x10^9 hingga 2.1x10^9
shortBilangan Bulat2 byte-32768 hingga 32767
longBilangan Bulat8 byte-9.2x10^8 hingga 9.2x10^8
floatBilangan rill4 byte1.2x10^38 hingga 3.4x10^38
doubleBilangan rill8 byte2.3x10^308 hingga 1.7x10^308
charKarakter ASCII1 byte-127 hingga 128

Perhatikan bahwa rentang yang diberikan memungkinkan nilai negatif hingga positif, atau disebut tipe data signed. Apabila kalian menambahkan kata kunci unsigned di depan tipe data, tipe data tersebut hanya akan menampung bilangan positif dengan rentang dari 0 hingga 2^jumlah bit - 1.

Syntax Bahasa Pemrograman C

Variabel

Pada matematika, kalian mengenal variabel sebagai sebuah wadah untuk menyimpan suatu nilai. Variabel pada program memiliki fungsi yang sama. Nilai yang diberikan pada sebuah variabel akan disimpan di memori komputer.

// Variabel dalam C memiliki bentuk 
// <tipe_data> <nama_variabel> = <nilai_awal> (Nilai awal opsional).
int totalHarga = 100;
float pi = 3.14;
char hurufA = 'A';
int apakahTua;

Konstanta

Berbeda dengan variabel yang nilainya dapat berubah, konstanta tidak dapat diubah. Saat dideklarasikan, nilai dari konstanta diberikan dan tidak dapat diubah kembali.

// Cara menulis konstanta sama dengan variabel namun tambahkan `const` didepan.
const float PI = 3.14;

printf() dan scanf()

printf()

printf() // Berfungsi untuk mengirimkan output yang diformat (teks) ke konsol (output standar)
// Contoh
include <stdio.h>
int main() {
	int age = 30;
	printf("Halo, saya berusia %d tahun.\n", age);
	return 0;
 }
// Output
"Halo, saya berusia 30 tahun.";

scanf()

scanf() // Berfungsi untuk membaca input dari input standar (biasanya keyboard)
// Contoh
include <stdio.h>
int main() {
	int num;
	printf("Masukkan bilangan bulat: ");
	scanf("%d", &num); // contoh dimasukkan 10
	printf("Anda memasukkan: %d\n", num);
	return 0;
 }
 // Output
 "Masukan bilangan bulat:";
 "10"; //input
 "Anda memasukkan: 10";

Info

Apakah kalian lihat \n diatas? \n adalah salah satu dari escape sequence. Lihat dibawah untuk contoh lainnya.

\n (newline)
\t (tab)
\v (vertical tab)
\f (new page)
\b (backspace)
\r (carrrige return)
\a (bell, beep)
\\ (garis miring)
\" (tanda kutip ganda)
\` (tanda kutip)

Sebuah \ berarti kita ingin mengescape sebuah karakter. Contohnya Kita ingin menulis “Quote: “Bla-bla-bla” -Blabber” dalam C kita harus mengescape tanda kutip ganda (”) dengan \. Dalam C teks tersebut menjadi “Quote: \“Bla-bla-bla\” -Blabber”.

Format Specifier dalam Bahasa C

Format specifier dalam bahasa pemrograman C adalah kode-kode khusus yang digunakan dalam fungsi printf() dan scanf() untuk menunjukkan bagaimana data harus diformat untuk output atau input. Berikut adalah beberapa format specifier umum:

Tipe Bilangan Bulat:

  • %d: Mencetak atau membaca bilangan bulat desimal bertanda.
  • %i: Sama dengan %d (sering digunakan untuk konsistensi).
  • %u: Mencetak atau membaca bilangan bulat desimal tidak bertanda.
  • %o: Mencetak atau membaca bilangan bulat oktal tidak bertanda (basis 8).
  • %x: Mencetak atau membaca bilangan bulat heksadesimal tidak bertanda (basis 16).
  • %X: Mencetak atau membaca bilangan bulat heksadesimal tidak bertanda dalam huruf besar (basis 16).

Tipe Titik Mengambang:

  • %f: Mencetak atau membaca bilangan titik mengambang presisi tunggal dalam format desimal.
  • %lf: Mencetak atau membaca bilangan titik mengambang presisi ganda dalam format desimal (sering digunakan untuk presisi lebih tinggi).
  • %e: Mencetak atau membaca bilangan titik mengambang dalam notasi ilmiah (misalnya, 1.23e+05).
  • %E: Sama seperti %e tetapi menggunakan eksponen huruf besar (misalnya, 1.23E+05).
  • %g: Mencetak atau membaca bilangan titik mengambang dalam format desimal atau notasi ilmiah, mana yang lebih ringkas.

Tipe Karakter dan String:

  • %c: Mencetak atau membaca satu karakter.
  • %s: Mencetak atau membaca string yang diakhiri null (urutan karakter).

Format Specifier Lainnya:

  • %%: Mencetak tanda persen literal (%) itu sendiri.
  • %p: Mencetak alamat pointer dalam format heksadesimal.

Alur kontrol dalam Bahasa C

Alur kontrol dalam pemrograman C memungkinkan Anda menentukan bagaimana program Anda akan bercabang dan bereaksi berdasarkan kondisi tertentu. Berikut adalah ringkasan singkat dari struktur alur kontrol umum yang digunakan dalam C:

1. Percabangan if-else:

  • Digunakan untuk mengeksekusi blok kode yang berbeda berdasarkan kondisi yang benar atau salah.
  • Sintaks:
if (kondisi) {
  // Blok kode yang dieksekusi jika kondisi benar
} else {
  // Blok kode yang dieksekusi jika kondisi salah
}

Contoh:

int age = 18;
 
if (age >= 18) {
  printf("Anda sudah dewasa.\n");
} else {
  printf("Anda masih belum dewasa.\n");
}

2. Percabangan switch-case:

  • Digunakan untuk mengeksekusi blok kode yang berbeda berdasarkan nilai variabel.
  • Sintaks:
switch (variabel) {
  case nilai1:
    // Blok kode untuk nilai1
    break;
  case nilai2:
    // Blok kode untuk nilai2
    break;
  default:
    // Blok kode default (opsional)
}

Contoh:

char grade = 'B';
 
switch (grade) {
  case 'A':
    printf("Sangat Bagus!\n");
    break;
  case 'B':
    printf("Bagus!\n");
    break;
  case 'C':
    printf("Cukup.\n");
    break;
  default:
    printf("Nilai tidak valid.\n");
}

3. Perulangan while:

  • Digunakan untuk mengulangi blok kode selama kondisi tertentu benar.
  • Sintaks:
while (kondisi) {
  // Blok kode yang diulang
}

Contoh:

int i = 1;
 
while (i <= 5) {
  printf("%d\n", i);
  i++;
}

4. Perulangan do-while:

  • Mirip dengan while, tetapi menjalankan blok kode setidaknya sekali, kemudian mengecek kondisinya.
  • Sintaks:
do {
  // Blok kode yang diulang
} while (kondisi);

Contoh:

int i = 1;
 
do {
  printf("%d\n", i);
  i++;
} while (i <= 5);

Tanggung Jawab Profesi dalam Bidang Informatika

Posisi PerkerjaanDeskripsi dan Tanggung Jawab
Chief Information Officer
(CIO)/Chief Technology
Officer (CTO)
Bertanggung jawab pada seluruh aspek terkait
teknologi informasi di suatu perusahaan.
Computer ProgrammerMenulis program komputer yang telah didesain.
Computer ScientistMenciptakan suatu prinsip, metode, atau praktik baru
di bidang ilmu komputer.
Hardware EngineerMenciptakan, mengimplementasikan, dan menguji
komponen fisik dari komputer.
Software EngineerMengembangkan, merawat, menguji, mengevaluasi,
dan meningkatkan kualitas suatu perangkat lunak
berdasarkan kebutuhan yang telah diberikan oleh
analis sistem atau arsitek.
Software DeveloperMenganalisis kebutuhan pengguna dan software
requirements untuk menentukan kelayakan desain
dalam batasan waktu, risiko, kualitas dan biaya.
Mengembangkan desain sistem, software, prosedur
dan dokumentasi pengujian.
Web DeveloperBertanggung jawab untuk membuat web.
Database AdministratorMengembangkan dan menerapkan pemantauan,
kinerja, kapasitas, dan strategi perluasan database.
Menginstal, mengonfigurasi, meng-upgrade,
memantau, dan melakukan pemeliharaan pada
database.
IT ArchitectMendesain arsitektur teknologi informasi untuk
mendukung proses suatu perusahaan.
Network AdministratorMemelihara, mengoperasikan, mengelola, dan
mendukung infrastruktur jaringan.
Systems AnalystMenganalisis dan menerjemahkan tujuan bisnis
menjadi produk-produk, dalam konteks Informatika,
produk ini disebut computational artefact, yaitu
berupa proses bisnis dan spesifikasi kebutuhan sistem
informasinya.
Security AnalystMenganalisis dan menerjemahkan aspek keamanan
dari sistem yang akan dikembangkan untuk
mendukung tujuan bisnis.
Information ResearcherMenciptakan suatu prinsip, metode, atau praktik baru
untuk mengolah data dan informasi.
Video Game DeveloperMengembangkan perangkat lunak permainan dan
bekerja sama dengan tim profesional kreatif untuk
meningkatkan kualitas permainan.
Health Information
Technician
Mengolah data terkait kesehatan menggunakan
prinsip dan praktik informatika.
Data ScientistMerancang, mengembangkan, dan menerapkan model
statistik prediktif (biasanya pada set data besar)
Data EngineerMengolah data yang dimiliki perusahaan untuk
mendapatkan wawasan baru yang berguna bagi
perusahaan.
Web DesignerMerancang antarmuka pengguna web untuk
memberikan grafik, konten, markup dan skrip.
Mobile Apps developerBertanggung jawab mengembangkan aplikasi dalam
bentuk ponsel cerdas (Mengadaptasi bentuk/dll dari Aplikasi ke bentuk Ponsel Cerdas. Karena PC, Laptop, Tablet, dan Smartphone berbeda dalam banyak Hal.).