Friday, December 27, 2019

Rangkuman Praktikum Sistem Digital


umsida.ac.id
fst.umsida.ac.id

POKOK BAHASAN 1
PENGENALAN GERBANG LOGIKA


1. Gerbang AND
    Syimbol Gerbang

2. Gerbang OR
    Simbol Gerbang


3. Gerbang NOT
    Simbol Gerbang

4. Gerbang NAND
    Simbol Gerbang

5. Gerbang NOR
    Simbol Gerbang

6. Gerbang X-OR
    Simbol Gerbang

6. Gerbang X-NOR
    Simbol Gerbang



POKOK BAHASAN 2
PERSAMAAN BOOLEN DAN PENYEDERHANAAN RANGKAIN LOGIKA DENGAN METODE K-MAP

1.      1. Gambarkan Rangkaian Persamaan logika berikut :
           y = A’BC’D + A’B’C’D’ + A’B’C’D + A’BC’D’ + ABCD’ + A’BCD + ABCD + A’BCD’.

          RANGKAIAN


2. Pada soal No. 1 sederhanakan Persamaan logika dengan K-Map dan Gambarkan Rangkaian dari          hasil penyederhanaannya.

   K-MAP



POKOK BAHASAN 3
MULTIVEL NAND DAN NOR
1. Diketahui sebuah fungsi dengan persamaanY=(A+B)C+ABC+A'B Buatlah rangkaian


2. Ubahlah rangkaian soal no.1 menjadi NAND saja dan rangkaian NOR saja




POKOK BAHASAN 4
RANGKAIAN ARITMATIKA DIGITAL

1. Half Adder

2. Full Adder

3. Half Subtractor

4. Full Subtractor



POKOK BAHASAN 5
ENKODER DAN DOKODER

1. Enkodr 4-2

2. Dekoder 2-4


POKOK BAHASAN 6
MULTIPLEKSER DAN DEMULTIPLEKSER

1. Multiplekser 4-1

2. Demultiplekser 4-2

























Monday, December 9, 2019

Rangkuma Praktikum Algoritma dan Pemrograman


umsida.ac.id
fst.umsida.ac.id


POKOK BAHASAN 1
--------------------------------------------------------------------------------------------------------------------------
INPUT / OUTPUT DAN JENIS DATA
--------------------------------------------------------------------------------------------------------------------------


Setiap program c++ mempunyai bentuk umum seperti dibawah, yaitu : 
# prepocessor directive
 Void main ()
{
            // batang tubuh program utama
}


Penjelasan :

1. Include 
salah satu pengarah prepocessor directive yang tersedia pada c++  prepocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi bentuk umumnya :

        # include < nama file>

Tidak diakhiri tanda semicolon karena bentuk tersebut bukanlah suatu bentuk pernyataan tetapi merupakan bentuk preprocessor directive baris tersebut mengintrusikan kepada kompiler yang menyisipkan file lain dalam hal ini file yang berakhiraran .h file header yaitu file yang berisi sebagai deklrasi contohnya :

# include <iostream.h> : diperlukan pada program yang menggunakan cout

#include<conio.h>        : diperlukan bila melibatkan clrscr() yaitu perintah 
                                         untuk membersihkan layar

# include<iomanip.h> :  diperlukan bila melibatkan set w().yang bermanfaat untuk mengatur lebar dari suatu tampilan data.    

2.   Fungsi main ()
        Fungsi ini menjadi awal dan akhir eksekusi program c++.main adalah nama judul fungsi.melihat bentuk seprti itu dapat kita ambil kesimpulan bahwa batang tubuh program utama , utama, maka dapat dipastikan seorang pemrogram menggunakan minimal sebuah fungsi. Pembahasan lebih lanjut mengenai fungsi akan di terangkan kemudian. Yang sekarang coba ditekankan adalah kita menuliskan program utama kita di dalam sebuah fungsi main().

3.     Komentar
Komentar tidak pernah di compiler. Dalam C++ terdapat 2 jenis komentar, yaitu :
Jenis 1         : /* Komentar anda di letakkan di dalam ini bisa mengapit lebih dari satu 
                      baris */
Jenis 2         : // Komentar anda diletakkan disini (hanya bisa perbaris)

4. Tanda Semicolon
        Tanda semicolon “ : “ digunakan untuk mengakhiri sebuah peryataan. Setiap pernyataan harus diakhiri dengan sebuah tanda semicolon.

5. Mengenal Cout ( dibaca : C out)
        Pernyataan cout merupakan sebuah objek di dalam C++, yang digunakan untuk mengarahkan data ke dalam standar output (cetak pada layar)
Contoh :
Tanda “ << “ merupakan sebuah operator yang disebut operator “penyisipan / peletakan”

6. Mengenal Cin ( dibaca : C in)
        Pernyataan cin merupakan sebuah objek di dalam C++, yang digunakan untuk mengarahkan data ke dalam standar input (masukan pada layar)
Contoh :
Tanda “ >> “ merupakan sebuah operator yang disebut operator “penyisipan / peletakan”

Contoh Program :

1. Menampilkan Text
    #include <stdio.h>
  int main () {
     puts (“Hello word !”); 
  return 0;}

 


#include <stdio.h>
int main (){
      puts("Assalamualaikum , nama saya adalah wildan\n
            Sekarang  saya belajar memprogram memakai bahasa c\n
            Ayo teman teman belajar juga\n 
            sampai jumpa." );
return 0;}


Puts berfungsi untuk menampilkan suatu keluaran ke layar tetapi fungsi puts hanya digunakan  untuk menampilkan nilai string.
printf berfungsi untuk menampilkan suatu keluaran pada layar  dan menampilkan semua jenis data.

2.   Program Mengisi Input Ke Variabel String
             #include <stdio.h>
   main(){
      char nama[50];
      printf("Isikan nama anda : ");
      gets(nama);
      printf("Haii ");
      puts(nama);
        printf("Betul kah, kamu si %s?\n", nama);}  



Angka 50 pada name[50] artinya maksimal string (huruf) yang bisa dimasukkan kedalam variabel name.
Gets digunakan untuk mendefinisikan string yang dimasukkan ke program.

3.  Program Input Ke Variabel Bilangan:Menghitung Akar
#include<stdio.h>
#include<math.h>
   main(){
       int a;
       float d;
       printf("Masukkan nilai a = ");
       scanf("%d", & a);
       d= sqrt (a);
       printf ("akar dari a = %f",d); }


4.  Program Kombinasi Input Output : Data Diri
     #include<stdio.h>
int main(){
     char nama[50],jur[15];
     int angkatan,NIM;
     /* mengisikan data */
     printf("Nama     :"); gets(nama);
     printf("Jurusan   :"); gets(jur);
     printf("Angkatan  :"); scanf("%d",&angkatan);
     printf("NIM       :"); scanf("%d",&NIM);
     /*menampilkan data */
     printf("\n Data anda adalah :\n");
     printf("%s(%s %d/%d)\n",nama,jur,angkatan,NIM);}


5.      Output Input Menggunakan Stream : Dalam C++
      #include<iostream>
Using namespace std;
    int main(){
    cout<<"Hello  word!"<<endl<<"we're in C++ now";}


#include<iostream>
using namespace std;
      int main(){
            char nama[80];
            cout<<"Masukkan nama kamu: ";
            cin>>nama;
            cout<<"Halo "<<nama<<endl;
            cout<<"Betul kan, nama kamu "<<nama;} 



POKOK BAHASAN 2
--------------------------------------------------------------------------------------------------------------------------
STRUKTUR PEMROGRAMAN PENCABANGAN
--------------------------------------------------------------------------------------------------------------------------

1. Percabangan Tunggal IF
    #include<iostream>
using namespace std;
       int main(){
            int umur;
            cout<<"masukkan umur kamu=  ";
            cin >>umur;
                  if (umur  >=60)
                            cout<<"Selamat Siang Mbah"<<endl;
                            cout<<"Salam Buat Cucumu ya"<<endl;
            cout<<"jadi umurmu "<<umur<<"tahun";}


2.  Pencabangan Ganda : If – Else
     #include<iostream>
     using namespace std;
     main (){
          int N;
          cout<<"Masukkan nilai (0 s/d 100) =  ";
          cin>>N;
          if (N>=60)
                   cout<<"Lulus"<<endl;
                   else if (N<60)
                   cout<<"Tidak Lulus"<<endl;}


3. Pencabangan Bertingkat : IF-Else-IF
    #include<iostream>
using namespace std;
int main (){
      int N;
      cout<<"Masukkan nilai=  ";
      cin>>N;
      cout<<"Nilai huruf=  ";
      if (N>=80)
                cout<<"A";
      else if (N>=60)
                cout<<"B"<<endl;
      else if (N>=40)
                cout<<"c"<<endl;
      else if (N<40)
                cout<<"D"<<endl;}





POKOK BAHASAN 3
--------------------------------------------------------------------------------------------------------------------------
STRUKTUR PEMROGRAMAN : LOMPATAN & KALANG
--------------------------------------------------------------------------------------------------------------------------

Sebuah / kelompok intruksi diulang untuk jumlah pengulangan tertentu. Baik yang terdifinisikan sebelumnya ataupun tidak.

Struktur pengulangan terdiri atas dua bagian :
1. Kondisi pengulangan  yaitu  ekspresi  Boolean yang harus di penuhi untuk melaksanakan pengulangan.
2. Isi atau badan pengulangan yaitu satu atau lebih pernyataan (aksi) yang akan  diulang.

Perintah  atau notasi dalam struktur pengulangan  adalah :
1. Pernyataan while
2. Pernyataan do…while
3. Pernyataan for
4.  Pernyataan continue dan break
5. Pernyataan go to

PENJELASAN

 1. Pernyataan WHILE
Pernyataan while merupakan salah satu pernyataan yang berguna untuk memproses suatu pernyataan atau beberapa pernyataan beberapa kali. Pernyataan while memungkinkan statemen-statemen yang ada didalamnya tidak dilakukan sama sekali. Bentuk Umumnya :
while (kondisi){
Pernyataan ;}

 2. Pernyataan DOWHILE
Pernyataan do while mirip seperti pernyataan while hanya saja pada do while
pernyataan yang terdapat didalamnya minimal akan sekali dieksekusi. Bentuk Umumnya :
do {
pernyataan;
} while (kondisi); 

 3. Pernyataan FOR
Pernyataan for digunakan untuk menghasilkan pengulangan(looping) beberapa kali tanpa penggunaan kondisi apapun. Pada umumnya looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya. Pernyataan for digunakan untuk melakukan looping. Pada umumnya looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya. Selama kondisi terpenuhi, maka pernyataan akan terus dieksekusi.
Bentuk Umumnya :
for (inisialisasi ; kondisi ; perubahan)
{
Statement; }

 4. Pernyataan Continue dan Break
Pernyataan break akan selalu terlihat digunakan bila menggunakan pernyataan switch. Pernyataan ini juga digunakan dalam loop. Bila pernyataan ini dieksekusi, maka akan mengakhiri loop dan akan menghentikan itrasi pada saat tersebut.

 5. Pernyataan goto
Pernyataan goto diperlukan untuk melakukan suatu lompatan ke suatu pernyataan berlabel yang ditandai dengan tanda " : ". Bentuk Umumnya :
Go to bawah;
pernyataan 1;
pernyataan 2;

pernyataan 3;

Contoh Program :
1.   Pencabangan Berganda : Switch
#include<iostream>
using namespace std;
int main (){
      char kategori;
      float diskon;
      cout<<"Kategori pelanggan (A/B/C/D/E)= ";
      cin>> kategori;
      switch (kategori) {
      case'A' :
                diskon=40;break;
      case'B' :
                diskon=25;break;
      case'C' :
                diskon=10;break;
      case'D' :
                diskon=0;}

      cout<<"Diskon="<<diskon<<"%";}




2. Lompatan : Label dan Logo
#include<iostream>
using namespace std;
main (){
      cout<<"ini langkah pertama"<<endl;
      goto LABELB;
LABELA:
      cout<<"ini langkah kedua"<<endl;
      goto LABELC;
LABELB:
      cout<<"ini langkah ketiga"<<endl;
      goto LABELA;
LABELC:
      cout<<"ini langkah keempat"<<endl;}




Label sebagai penunjuk dalam proses.
Goto digunakan untuk melompati suatu proses yang lainnya didalam program dan juga bisa
          digunakan sebagai suatu proses pertimbangan

3.   Kalang Bersyarat “Periksa-Jalankan” : While
#include <iostream>
#include <conio.h>
using namespace std;
main()
{     char nama [80];
      int tombol;
      while ((tombol == 'Y')||(tombol == 'y'));  {
                cout << "Masukkan nama anda = ";
                cin >> nama;
                cout << "Hai " << nama << endl << endl;
                cout << "Apakah mau mengulangi (Y/T)?";
                tombol = getch();cin >> tombol;
                cout << endl << endl; }
      cout << "Selesai"; }



POKOK BAHASAN 4
-----------------------------------------------------------------------------------------------------------------------
STRUKTUR PEMROGRAMAN : KALANG
-----------------------------------------------------------------------------------------------------------------------
1.    Memutus Kalang : Break & Continue
     #include <iostream>
     using namespace std;
     int main() {
          int i = 0;
          cout << i;
          do {
                    i++;
                    cout << "- ";            
                     if (i == 4)
                    break;                  
                     cout << i;
               } while (i < 10);           
                    cout << "\nSelesai\n";
     return 0;}


Gantilah break dengan continue, dan jalankan !

#include <iostream>
using namespace std;
int main() {
      int i=0;
      cout<<i;
do{
      i++;
      cout<<"- ";
      if(i==4)
      continue;
      cout<<i;
    }while(i<12);
      cout<<"\nselesai\n";
      return 0;}


Break berfungsi mengeluarkan eksekusi compiler dari struktur program setelah suatu kondisi tertentu dipenuhi.
Continue berfungsi untuk melanjutkan suatu kompile setelah suatu perintah sudah terpenuhi.

2.  Tabel Sinus

#include <stdio.h>
#include <math.h>
int main() {
      const float PI =3.141593;
      int x=0, x2;
      float y,y2;
       puts("Tabel Sinus \n--");
       puts("  x   sin(x)        x   sin(x)");
do{
      y=sin(x/180.0*PI);
      x2=x+180;
      y2=sin(x2/180*PI);
      printf("%4d %8.4f    %4d %8.4f\n", x,y,x2,y2);
      x+=10;}
while (x<=180);
      return 0;}


3.   Kalang FOR untuk Perulangan
#include <iostream>
using namespace std;
int main(){
      int i;
      for(i=1; i<=18; i++){
               cout<<"Kalang Ke- "<<i<<endl;}

return 0;} 


4.    Kalang FOR Bertingkat : Tabel Perkalian

#include <iostream>
#include <iomanip>
using namespace std;
int main(){
     for(int i=1; i<=10; i++){
     for(int j=1; j<=i; j++){
    cout<<setw(5)<<i*j;}
    cout<<end; }
return 0;}


5.  Variabel Larik Pada Perhitungan Nilai Rerata

#include <iostream>
#include <dos.h>
using namespace std;
int main(){
   int N;
   float jumlah, rerata, a[5];
   cout<<"banyaknya nilai= ";cin>>N;
   jumlah = 0;
   for(int i=0; i<N; i++){
     cout<<"Nilai ke-"<<(i+1)<<"=";
     cin>>a[i];
     jumlah=jumlah+a[i] ;}
      rerata=jumlah/N;
      cout<<"Rerata ="<<rerata;
return 0;}


POKOK BAHASAN 5
------------------------------------------------------------------------------------------
VARIABEL LARIK : MATRIKS DAN STRINGS
------------------------------------------------------------------------------------------
1.    Sekup Variabel Dalam Kalang For
#include <iostream>
using namespace std;
int main(){
    int i=5;
    cout<<"diluar kalang i="<<i<<endl;
    for(i=1; i<=10; i++){
      cout<<"di dalam kalang i="<<i<<endl;}
      cout<<"di luar kalang i ="<<i<<endl;
return 0;}



2.    Kalang For Untuk Mengisi Dan Menampilkan Matriks
#include <iostream>
using namespace std;
int main() {
    int i,j,N=3;
    float A[5] [5];
    for(int i=0; i<N; i++) {
        for(int j=0; j<N; j++) {
               cout<<"A("<<i<<","<<j<<") = ";cin>>A[i][j] ; } }
               cout<<"matriks A=\n";
               for(i=0; i<N; i++) {
                         for(j=0; j<N; j++) {
                                   cout<<"\t"<<A[i][j] ; }      
               cout<<endl; }
 return 0; }


3.    String Sebagai Larik Karakter : Caesar Chiper
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main(){
    char terenkripsi[100], tulisan[100];
    int kunci ,panjang, kode;
    cout<<"masukan tulisan ="; gets(tulisan);
      cout<<"masukan nilai kunci = ";cin>>kunci;
      panjang = strlen(tulisan);
      strcpy(terenkripsi,tulisan);
      for(int i=0; i<panjang; i++){
               kode = int(tulisan[i])+kunci;
               if(kode <32)
                  kode = kode +95;
               if(kode>126)
               kode = kode -95;
               terenkripsi[i]= char(kode);}
      cout<<"terenkripsi ="<< terenkripsi <<endl;
return 0;}



POKOK BAHASAN 6
-----------------------------------------------------------------------------------------------------------------------
SORTING ( PENGURUTAN )
-----------------------------------------------------------------------------------------------------------------------
1.    Fungsi Untuk Memotong - Motong Program
#include <iostream>
#include <math.h>
using namespace std;
int N;
float jumlah, rerata, peny, stdrdev, data[100];
void Masukkan_Data(){
      cout << "Banyaknya nilai = ";
      cin >> N;
      for (int i=0; i<N; i++){
               cout << "NIlai ke-" << (i+1) << " = ";
               cin >> data[i]; } }
      void Hitung_Rerata(){
               jumlah = 0;
               for (int i=0; i<N; i++){
                         jumlah = jumlah+data[i];}
               rerata = jumlah/N;}
      void Hitung_Standar_Deviasi(){
               peny = 0;
               for (int i=0; i<N; i++){
                         peny += (data[i] - rerata)*(data[i] - rerata);}
               stdrdev = sqrt(peny/(N-1));}
      void Tampilkan_Hasil(){
               cout << "Jumlah = " << jumlah << endl;
               cout << "Rerata = " << rerata << endl;
               cout << "Standar Deviasi = " << stdrdev << endl;}
      main (){
               Masukkan_Data();
               Hitung_Rerata ();
               Tampilkan_Hasil();}


2.    Program Konversi Suhu

#include <iostream>
using namespace std;
float C_ke_F(float C);
void Mengisi_Input();
void Mengkonversi();
void Menampilkan_Hasil();
main() {
      Mengisi_Input();
      Mengkonversi();
      Menampilkan_Hasil();}
float Suhu_C, Suhu_F; // definisikan variabel
float C_ke_F(float C){
      float F;
      F = 1.8*C+32.0;
      return F;}
      void Mengisi_Input() {
               cout << "Isikan nilai Suhu C = "; // tampilkan tulisan
               cin >> Suhu_C;}       // isikan nilai Suhu C
      void Mengkonversi() {
               Suhu_F = C_ke_F(Suhu_C);} // hitung nilai Suhu F
      void Menampilkan_Hasil() {
               cout << "Temperatur " << Suhu_C << " C = "
                        << Suhu_F << " F" << endl;}

UMSIDA.AC.IDumsida.ac.id

3.    Fungsi Penukaran Dua Buah Variabel
#include<iostream>
using namespace std;
void Tukarkan(int Angka1, int Angka2){
      int temp = Angka1; Angka1 = Angka2;
      Angka2 = temp;}
main(){
      int X = 1, Y = 99 ;
      cout << "Sebelum ditukarkan";
      cout << "\nX = " << X << ", Y = " << Y;
      Tukarkan(X, Y);
      cout << "\nSetelah ditukarkan";
      cout << "\nX = " << Y << ", Y = " << X;}


4.        Menulis Ke File Teks
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
int main (){
    char namafileoutput[]="filesaya.txt";
    char teks[80];
    FILE *fout;
    fout=fopen (namafileoutput, "w");
    cout<<"Ketikkan teks yang ditulsi "
        <<"ke file, akhiri dengan END\n";
    while (1){
              gets(teks);
              if(strcmp(teks,"END")==0)
                break;
              strcat(teks,"\n");
              fputs(teks,fout); }
    fclose (fout);
    cout<<"Selesai"<<endl;
return 0;}


5.        Membaca Dari File Teks
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
int main (){
   char namafileinput[]="filesaya.txt";
   char teks[80];
   FILE *fin;
   fin=fopen(namafileinput, "rt");
   cout<<"Isi file"<<namafileinput<<endl;
   while(1){
   if (fgets(teks, 80, fin)==NULL){
              break;  }
    cout<<teks; }
fclose(fin);
cout<<"selesai"<<endl;
return 0;}