Anda di halaman 1dari 5

1.

Perbedaan antara C++ dengan C#


No Pembeda

C++

C#

Turunan

Turunan dari bahasa C

Turunan dari bahasa C dan C++

Proses Kompilasi

Dikonversi menjadi kode


assembly.

Dikonversi menjadi kode


intermediet.

Manajemen memori

Memori yang dialokasikan


dalam tumpukan dinamis
harus secara eksplisit dihapus

Diatur dengan garbage


collection

Statemen switch

Kondisi tidak bisa berupa


string

Kondisi bisa berupa string

Prototype

Mengenal prototyping

Tidak mengenal prototyping

Inheritance

Mengenal multiple inheritance Tidak mengenal multiple


inheritance

Hak akses class


inheritance

Tidak mengenal internal dan


protected internal

Mengenal internal dan protected


internal

Penutup class

Setelah kurung kurawal


diakhiri semicolon ;

Setelah kurung kurawal tidak


diakhiri semicolon ;

Pointer

Mengenal konsep pointer

Tidak mengenal konsep pointer

10 Minimal

Boleh tidak menggunakan


Minimal harus ada satu class
class. Tapi meggunakan main. dalam program.

2. Dalam inheritance, cara untuk mendefinisikan constructor class tersebut agar


sama dengan constructor superclassnya adalah :
nama_subclass (parameters) : nama_superclass (parameters) {}
Contoh :

3. Fungsi rekursif untuk mengkonversi sebuah bilangan integer ke bentuk biner


yang outputnya dalam bentuk string :
void des_to_bin(int d){
if (d>1){
des_to_bin(d/2);
}
if (d%2==1){
cout<<"1";
}else{
cout<<"0";
}
}
Screenshot dalam program :

4. Pipe adalah metode untuk menghubungkan standar output suatu proses dengan standar input
proses yang lain. Pipe ini merupakan metode komunikasi IPC yang paling tua sepanjang
perkembangan sistem operasi. Komunikasi yang disediakan pipe adalah komunikasi dengan
metode satu arah oleh karena itu disebut half duplex. Fasilitas seperti ini sangat banyak
digunakan ,bahkan di perintah-perintah baris (shell command) seperti
$ls | sort | lp
Perintah diatas menentukan output dari perintah ls, menjadi input perintah sort,
dan output dari perintah sort akan menjadi input dari perintah lp. Data bergerak
melalui half-duplex pipe, dari kiri ke kanan.
Contoh penggunaan pipe:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int main(void)
{
int fd[2], nbytes;
pid_t childpid;
char string[] = "Hello, world!\n";
char readbuffer[80];
pipe(fd);
if((childpid = fork()) == -1)
{
perror("fork");
exit(1);
}
if(childpid == 0)
{
/* Child process closes up input side of pipe */
close(fd[0]);
/* Send "string" through the output side of pipe */
write(fd[1], string, strlen(string));
exit(0);

}
else
{
/* Parent process closes up output side of pipe */
close(fd[1]);
/* Read in a string from the pipe */
nbytes = read(fd[0], readbuffer, sizeof(readbuffer));
printf("Received string: %s", readbuffer);
}
return 0;
}

Fork adalah perintah yang digunakan membuat sebuah proses. Proses baru yang dibuat oleh
perintah fork disebut proses anak. Nilai yang dikembalikan oleh perintah ini ada 2, yaitu pada
child return valuenya adalah 0, sedangkan pada parent return valuenya adalah process id (pid)
child. Hal ini dikarenakan sebuah proses dapat memiliki lebih dari satu child, sehingga proses
induk dapat mengakses proses anak dengan menggunakan pid tersebut. Proses anak dapat
mengerjakan semua perintah setelah perintah fork, dan proses induk akan mengerjakan semua
perintah pada program.
Contoh penggunaan fork:
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
void main()
{
pid_t pid;
int rv;
switch(pid=fork()) {

case -1:
perror("fork"); /* something went wrong */
exit(1); /* parent exits */
case 0:
printf(" CHILD: This is the child process!\n");
printf(" CHILD: My PID is %d\n", getpid());
printf(" CHILD: My parent's PID is %d\n", getppid());
printf(" CHILD: Enter my exit status (make it small): ");
scanf(" %d", &rv);
printf(" CHILD: I'm outta here!\n");
exit(rv);
default:
printf("PARENT: This is the parent process!\n");
printf("PARENT: My PID is %d\n", getpid());
printf("PARENT: My child's PID is %d\n", pid);
printf("PARENT: I'm now waiting for my child to exit()...\n");
wait(&rv);
printf("PARENT: My child's exit status is: %d\n",
WEXITSTATUS(rv));
printf("PARENT: I'm outta here!\n");
}
}

Anda mungkin juga menyukai