Skip to content

Commit

Permalink
Merge pull request #4 from danieloeb/main
Browse files Browse the repository at this point in the history
Modul update 2024
  • Loading branch information
AAN-0100 authored Sep 21, 2024
2 parents 26fa622 + f122928 commit c95b078
Show file tree
Hide file tree
Showing 10 changed files with 292 additions and 235 deletions.
115 changes: 68 additions & 47 deletions P1/IntroductiontoCLanguage_ENG.tex

Large diffs are not rendered by default.

224 changes: 124 additions & 100 deletions P1/PengenalanBahasaC_IND.tex

Large diffs are not rendered by default.

63 changes: 33 additions & 30 deletions P2/PerulanganPercabanganArrayString_IND.tex
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,20 @@ \subsection{Ekspresi Perbandingan}
\captionof{table}{Operator Perbandingan \label{tab:operatorcomp}}
\begin{tabular}{|c|l|c|}
\hline
Operator & Nama & \multicolumn{1}{l|}{Contoh Ekspres} \\ \hline
== & Sama Dengan & x == y \\ \hline
!= & Tidak Sama Dengan & x != y \\ \hline
\textgreater{} & Lebih Dari & x \textgreater y \\ \hline
\textless{} & Kurang Dari & x \textless y \\ \hline
\textgreater{}= & Lebih Dari Sama Dengan & x \textgreater{}= y \\ \hline
\textless{}= & Kurang Dari Sama Dengan & x \textless{}= y \\ \hline
\textbf{Operator} & \textbf{Nama} & \multicolumn{1}{l|}{\textbf{Contoh Ekspres}} \\ \hline
== & Sama Dengan & x == y \\ \hline
!= & Tidak Sama Dengan & x != y \\ \hline
\textgreater{} & Lebih Dari & x \textgreater y \\ \hline
\textless{} & Kurang Dari & x \textless y \\ \hline
\textgreater{}= & Lebih Dari Sama Dengan & x \textgreater{}= y \\ \hline
\textless{}= & Kurang Dari Sama Dengan & x \textless{}= y \\ \hline
\end{tabular}
\end{center}

Suatu ekspresi perbandingan akan mengembalikan nilai berupa \verb|true| atau \verb|false| yang ditandakan dengan nilai 0 atau 1.
Suatu ekspresi perbandingan akan mengembalikan nilai berupa \verb|true| atau \verb|false| yang ditandai dengan nilai 0 atau 1.
% A Comparison Expression will return boolean value \verb|true| or \verb|false| which is also represented with the value 1 or 0.
Sebagai contoh:
As example:
%As example:
\begin{verbatim}
printf("%d",0>1); // Akan Mencetak 0 ke layar
printf("%d",0<1); // Akan Mencetak 1 ke layar
Expand All @@ -60,7 +60,7 @@ \subsection{Ekspresi Logika}
\section{Percabangan}
\subsection{Pernyataan If}
% \verb*|if| statement is used to decide which block of code to be executed if the condition is true.
\verb*|if| digunakan untuk menentukan blok kode C yang dijalankan apabila ekspresi kondisi bernilai benar (TRUE),
Pernyataan \verb*|if| digunakan untuk menentukan blok kode C yang dijalankan apabila ekspresi kondisi bernilai benar (TRUE),
\begin{verbatim}
// Block of code before if
if (Condition)
Expand Down Expand Up @@ -101,7 +101,7 @@ \subsection{Pernyataan If}
\end{verbatim}

\subsection{Pernyataan If-else}
Pernyataan else digunakan untuk menentukan blok kode yang di jalankan apabila kondisi salah.
Pernyataan \verb|else| digunakan untuk menentukan blok kode yang di jalankan apabila kondisi salah.
% Else statement is used to decide the block of code to be executed if the condition is false.
\begin{verbatim}
// Blok kode sebelum if
Expand Down Expand Up @@ -151,7 +151,7 @@ \subsection{Pernyataan If-else}
\end{verbatim}

\subsection{Pernyataan if-else if}
Statement \verb|else if| digunakan untuk menjalankan blok kode apabila kondisi statement \verb|if| atau \verb|else if| sebelumnya bernilai salah.
pernyataan \verb|else if| digunakan untuk menjalankan blok kode apabila kondisi statement \verb|if| atau \verb|else if| sebelumnya bernilai salah.
% The \verb|else if| statement is used to run a block of code when the condition in \verb|if| or the previous \verb|else if| is false.
\begin{verbatim}
// blok kode sebelum if
Expand Down Expand Up @@ -231,11 +231,11 @@ \subsection{Pernyataan if-else if}
\end{verbatim}

\subsection{Nested if}
Nested if merupakan konsep di mana di dalam suatu blok if terdapat statement if.
Nested if merupakan konsep di mana di dalam suatu blok if terdapat pernyataan if.
% Nested if is when there is a conditional statements within a block of code inside the conditional statement
\begin{verbatim}
// Blok kode sebelum if
if (Condition1)
if (Condition1)
{
if (Condition2)
{
Expand Down Expand Up @@ -294,8 +294,10 @@ \subsection{Nested if}

\subsection{Tugas Pendahuluan}
\begin{enumerate}
\item Buatlah program yang menerima input 3 buah bilangan bulat A, B, dan C. Outputkanlah 3 bilangan bulat itu ke layar dengan urutan paling kecil ke paling besar. Lakukanlah ini dengan menggunakan statement if, if else, if else if, atau nested if.
%\item Try to make a program that receives 3 integer input A, B, and C. Then outputs those 3 integers to the screen sorted from smallest to largest. Do this only using conditional statements.
\item Apa tujuan dari percabangan dalam pemrograman?
\item Selain menggunakan statement if, percabangan juga bisa dilakukan dengan statement switch-case. Jelaskan apa saja yang kamu ketahui tentang switch-case!
\item Buatlah program yang menerima input 3 buah bilangan bulat A, B, dan C. Outputkanlah 3 bilangan bulat itu ke layar dengan urutan paling besar ke paling kecil. Lakukanlah ini dengan menggunakan statement if, if else, if else if, atau nested if.
%\item Try to make a program that receives 3 integer input A, B, and C. Then outputs those 3 integers to the screen sorted from smallest to largest. Do this only using conditional statements.
\end{enumerate}

\section{Perulangan}
Expand Down Expand Up @@ -351,8 +353,9 @@ \subsection{Perulangan while}
% You can see the line 9 of the code causes the variable \verb|uangSaya| to have its value substracted by 2000 for every loop until \verb|uangSaya| is no longer greater than equal to \verb|hargaRoti|.
% The loop condition will be invalid and finaly exits the loop. Then it prints "Uang saya tidak cukup lagi", the command after the while loop statement.
Kondisi perulangan akan menjadi tidak valid dan akhirnya keluar dari perulangan. Kemudian ia mencetak "Uang saya tidak cukup lagi", perintah setelah pernyataan while loop.

\subsection{do-while loop}
do-while loop sebenarnya sama seperti while loop hanya saja do-while akan menjalankan perintah pada blok kode didalamnya terlebih dahulu sebelum melakukan pengecekan kondisi.
do-while loop sebenarnya sama seperti while loop hanya saja do-while akan menjalankan perintah pada blok kode didalamnya sekali sebelum melakukan pengecekan kondisi.
% do-while loop is very similar to while loop. The only difference is that do-while loop will execute the code block inside it once, and then checks the condition.
\begin{figure}[H]
\centering
Expand Down Expand Up @@ -442,17 +445,18 @@ \subsection{Perulangan for}
}
\end{lstlisting}
\begin{center}
\colorbox{pink}{\parbox{0.8\linewidth}{\textbf{Catatan:} Terdapat keyword break dan continue digunakan untuk mengendalikan (kontrol) alur pada perulangan. Pelajari secara mandiri!}}
\colorbox{pink}{\parbox{0.8\linewidth}{\textbf{Catatan:} Terdapat keyword break dan continue yang bisa digunakan untuk mengendalikan (kontrol) alur pada perulangan. Pelajari secara mandiri!}}
\end{center}

\subsection{Tugas Pendahuluan}
\begin{enumerate}
\item Implementasikan program dalam bahasa C yang menghitung faktorial dari sebuah bilangan bulat non-negatif yang dimasukkan oleh pengguna menggunakan loop do-while. Tampilkan hasilnya.
\item Implementasikan program dalam bahasa C untuk mencari bilangan prima antara 1 dan 100. Gunakan loop for untuk mengiterasi melalui semua angka dan pernyataan continue untuk mengabaikan angka yang bukan prima. Tampilkan semua bilangan prima yang ditemukan.
\item Apa yang terjadi jika kita menuliskan \verb|break;| dalam blok kode sebuah perulangan?
\item Buatlah program dalam bahasa C yang menghitung faktorial dari sebuah bilangan bulat non-negatif yang dimasukkan oleh pengguna menggunakan loop do-while. Tampilkan hasilnya.
\item Buatlah program dalam bahasa C untuk mencari bilangan prima antara 1 dan 100. Gunakan loop for untuk mengiterasi melalui semua angka dan pernyataan continue untuk mengabaikan angka yang bukan prima. Tampilkan semua bilangan prima yang ditemukan.
\end{enumerate}

\section{Array}
Array atau biasa disebut larik adalah koleksi data dimana setiap elemen mempunyai nama yang sama dan bertipe sama. Setiap elemen diakses berdasarkan indeks elemennya.
Array adalah koleksi data dimana setiap elemen mempunyai nama yang sama dan bertipe sama. Setiap elemen diakses berdasarkan indeks elemennya.
% Array is a collection of data where each element of it has the same name(indexed) and data type. Every element in an array can be accessed using its element index.
\subsection{Array 1D}
Variabel array dimensi satu dideklarasikan dengan menentukan jenis elemen dan jumlah elemen yang di perlukan oleh array.
Expand All @@ -465,11 +469,10 @@ \subsection{Array 1D}
\begin{enumerate}
\item \verb*|DataType|.\\
% The data type of the elements in the array, e.g. \verb|float|, \verb|int|, etc.
Jenis elemen data elemen array :\verb*|float|,\verb*|int|,\verb*|char| dsb
Tipe data yang akan digunakan untuk array :\verb*|float|,\verb*|int|,\verb*|char| dsb
\item \verb*|variableName|\\
Namariabel mengikuti aturan pemberian nama variabel,
Nama variabel mengikuti aturan pemberian nama variabel,
% variableName follows the variable naming convention

\item \verb*|arraySize| \\
% Integer more than 0. Defining the number of element an array has.
konstanta integer lebih besar dari 0. \\
Expand Down Expand Up @@ -507,7 +510,7 @@ \subsection{Array 1D}
\end{verbatim}

\subsection{Array 2D dan Array Multidimensi lainnya}%Array 2D dan Array Multidimensi lainnya}
Array dimensi dua pada dasarnya hanya merupakan array dimensi satu dari array dimensi satu. Oleh karena itu, untuk mendeklarasikan array dimensi dua kita dapat menggunakan syntax seperti berikut.
Array dimensi dua pada dasarnya hanya merupakan array dimensi satu di dalam array dimensi satu. Oleh karena itu, untuk mendeklarasikan array dimensi dua kita dapat menggunakan syntax seperti berikut.
% 2D array is basically a 1D array of 1D array. Intuitively, you can define a 2D array like as seen below:
\begin{verbatim}
DataType variableName[arraySize1][arraySize2];
Expand All @@ -528,9 +531,7 @@ \subsection{Array 2D dan Array Multidimensi lainnya}%Array 2D dan Array Multidim

\subsection{Tugas Pendahuluan}
\begin{enumerate}
\item Cobalah inisialisasi suatu array multidimensi dengan menggunakan perulangan for.
% \item Try to initialize a multidimensional array with for loop
\item Buatlah suatu program untuk mengisi data pada suatu array perdasarkan input dari keyboard.
\item Buatlah suatu program yang menerima input dari pengguna berupa angka 1 hingga 9, lalu memasukkan semua angka tersebut ke dalam suatu array!
% \item create a program to fill the data of an array by keyboard input.
\item Apakah yang akan terjadi jika suatu array \verb|arr| diakses dengan \verb|arr[-1]|?
% \item What would happen if an array \verb|arr| is accessed with \verb|arr[-1]|?
Expand All @@ -546,7 +547,7 @@ \subsection{Tugas Pendahuluan}
}
\end{verbatim}
% How many "A" will be printed on the screen if that block of code is executed?
Ada berapa banyakah huruf A yang akan muncul pada layar jika program tersebut dijalankan?
Ada berapa banyak huruf A yang akan muncul pada layar jika program tersebut dijalankan?
\end{enumerate}

\section{String}
Expand Down Expand Up @@ -637,6 +638,8 @@ \subsection{Fungsi-Fungsi String}
\subsection{Tugas Pendahuluan}
\begin{enumerate}
\item Buatlah program dalam bahasa C yang mengambil dua string dari pengguna dan menentukan apakah kedua string tersebut anagram (mengandung karakter yang sama dalam urutan yang berbeda).
Misalnya kata "usap" dan "sapu".
Tampilkan pesan yang sesuai.
\item Jelaskan perbedaan antara string yang dideklarasikan sebagai array karakter (char array) dan string yang dideklarasikan sebagai tipe data string (string literal) dalam bahasa C. Berikan contoh penggunaan keduanya.
\item Sebutkan 5 fungsi yang terdapat pada library \verb|string.h|! jelaskan kegunaan masing-masing fungsi tersebut!
\item Untuk mengeluarkan output string, selain menggunakan \verb|printf()| kita juga bisa menggunakan \verb|puts()|. Jelaskan kelebihan menggunakan \verb|puts()| jika dibandingkan dengan \verb|printf()|!
\end{enumerate}
45 changes: 24 additions & 21 deletions P2/StringArrayBranchingLoop_ENG.tex
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,18 @@ \subsection{Comparasion Expressions}
\captionof{table}{Comparasion Operator\label{tab:operatorcomp}}
\begin{tabular}{|c|l|c|}
\hline
Operator & Name & \multicolumn{1}{l|}{Expression Example} \\ \hline
== & Equal To & x == y \\ \hline
!= & Not Equal To & x != y \\ \hline
\textgreater{} & Greater Than & x \textgreater y \\ \hline
\textless{} & Less Than & x \textless y \\ \hline
\textgreater{}= & Greater Than Equal To & x \textgreater{}= y \\ \hline
\textless{}= & Less Than Equal To & x \textless{}= y \\ \hline
\textbf{Operator} & \textbf{Name} & \multicolumn{1}{l|}{\textbf{Expression Example}} \\ \hline
!= & Not Equal To & x != y \\ \hline
\textgreater{} & Greater Than & x \textgreater y \\ \hline
== & Equal To & x == y \\ \hline
\textless{} & Less Than & x \textless y \\ \hline
\textgreater{}= & Greater Than Equal To & x \textgreater{}= y \\ \hline
\textless{}= & Less Than Equal To & x \textless{}= y \\ \hline
\end{tabular}
\end{center}

% Suatu ekspresi perbandingan akan mengembalikan nilai berupa \verb|true| atau \verb|false| yang ditandakan dengan nilai 0 atau 1.
A Comparison Expression will return boolean value \verb|true| or \verb|false| which is also represented with the value 1 or 0.
A Comparison Expression will return boolean value \verb|true| or \verb|false| which is also represented with the value of 0 or 1.
As example:
\begin{verbatim}
printf("%d",0>1); // Print 0 to the screen
Expand All @@ -47,10 +47,10 @@ \subsection{Logical Expression}
\captionof{table}{Logical Expression \label{tab:operatorlogic}}
\begin{tabular}{|c|l|c|}
\hline
Operator & \multicolumn{1}{c|}{Name} & Expression Example \\ \hline
$\&\&$ & AND & $x<5\; \&\& \;x<10$ \\ \hline
$||$ & OR & $x < 5\; ||\; x < 4 $ \\ \hline
$!$ & NOT & $!(x <5 \&\& x < 10) $ \\ \hline
\textbf{Operator} & \multicolumn{1}{c|}{\textbf{Name}} & \textbf{Expression Example} \\ \hline
$\&\&$ & AND & $x<5\; \&\& \;x<10$ \\ \hline
$||$ & OR & $x < 5\; ||\; x < 4 $ \\ \hline
$!$ & NOT & $!(x <5 \&\& x < 10) $ \\ \hline
\end{tabular}
\end{center}
% Sama seperti ekspresi perbandingan, ekspresi logika akan mengembalikan nilai berupa true atau false
Expand Down Expand Up @@ -101,7 +101,7 @@ \subsection{If Statement}

\subsection{If-else Statement}
% Pernyataan else digunakan untuk menentukan blok kode yang di jalankan apabila kondisi salah.
Else statement is used to decide the block of code to be executed if the condition is false.
\verb|Else| statement is used to decide the block of code to be executed if the condition is false.
\begin{verbatim}
// Block code before if
if (Condition)
Expand Down Expand Up @@ -293,8 +293,10 @@ \subsection{Nested if}

\subsection{Pre-lab Assignment}
\begin{enumerate}
\item what is the purpose of branching in programming?
\item Apart from using if statements, branching can also be done using switch-case statements. Explain what you know about switch-case statement!
% \item Buatlah program yang menerima input 3 buah bilangan bulat A, B, dan C. Outputkanlah 3 bilangan bulat itu ke layar dengan urutan paling kecil ke paling besar. Lakukanlah ini dengan menggunakan statement if, if else, if else if, atau nested if.
\item Try to make a program that receives 3 integer input A, B, and C. Then outputs those 3 integers to the screen sorted from smallest to largest. Do this only using conditional statements.
\item Try to make a program that receives 3 integer input A, B, and C. Then outputs those 3 integers to the screen sorted from largest to smallest. Do this only using conditional statements.
\end{enumerate}

\section{Loop}
Expand Down Expand Up @@ -446,8 +448,9 @@ \subsection{For loop}

\subsection{Pre-lab Assignment}
\begin{enumerate}
\item Implement a program in C that calculates the factorial of a non-negative integer entered by the user using a do-while loop. Show the results.
\item Implement programs in C language to find prime numbers between 1 and 100. Use the for loop to iterate through all numbers and the continue statement to ignore numbers that are not prime. Display all found primes.
\item What happens if we write \verb|break;| in a loop?
\item Try to make a program in C that calculates the factorial of a non-negative integer entered by the user using a do-while loop. Show the results.
\item Try to make a program in C language to find prime numbers between 1 and 100. Use the for loop to iterate through all numbers and the continue statement to ignore numbers that are not prime. Display all found primes.
\end{enumerate}

\section{Array}
Expand Down Expand Up @@ -528,10 +531,7 @@ \subsection{Array 2D and Other Multidimensional Array}%Array 2D dan Array Multid
\subsection{Pre-lab Assignment}
\begin{enumerate}
% \item Cobalah inisialisasi suatu array multidimensi dengan menggunakan perulangan for.
\item Try to initialize a multidimensional array with for loop
% \item Buatlah suatu program untuk mengisi data pada suatu array perdasarkan input dari keyboard.
\item Create a program to fill the data of an array by keyboard input.
% \item Apakah yang akan terjadi jika suatu array \verb|arr| diakses dengan \verb|arr[-1]|?
\item TWrite a program that accepts input numbers 1 to 9 from the user, then inserts all the numbers into an array!
\item What would happen if an array \verb|arr| is accessed with \verb|arr[-1]|?
% \item Apakah yang akan terjadi jika suatu array \verb|arr| dengan ukuran 5 diakses dengan \verb|arr[5]|?
\item What would happen if an array \verb|arr| with size 5 is accessed with \verb|arr[5]|?
Expand Down Expand Up @@ -636,6 +636,9 @@ \subsection{String Functions}

\subsection{Pre-lab Assignment}
\begin{enumerate}
\item Create a program in C programming languae that takes 2 string from the user input and decide whether those 2 string are an anagram (contains the same characters even in different order)
\item Create a program in C programming language that takes 2 string from the user input and decide whether those 2 string are an anagram (contains the same characters even in different order).
For example "night" and "thing".
\item Explain the difference between string that is declared as an array of charater (char array) and a string that is declared as a string data types (string literal). Explain example of using both
\item Name 5 functions from the \verb|string.h| library! explain each function!
\item To get string output, instead of using \verb|printf()| we can also use \verb|puts()|. Explain the advantages of using \verb|puts()| compared to \verb|printf()|!
\end{enumerate}
Loading

0 comments on commit c95b078

Please sign in to comment.