How to add and define a widget area in WordPress?

In your functions.php, simply add the following code:

function THEMENAME_widgets_init() {
     register_sidebar( array(
          'name' => __( 'My Widget Area', 'THEMENAME' ),
          'id' => 'sidebar-1',
          'description' => __( 'Add widgets here to appear in your sidebar.', 'THEMENAME' ),
          'before_widget' => '<aside id="%1$s" class="widget %2$s">',
          'after_widget' => '</aside>',
          'before_title' => '<h2 class="widget-title">',
          'after_title' => '</h2>',
     ) );
add_action( 'widgets_init', 'THEMENAME_widgets_init' );

1. THEMENAME is user-defined, you may change this according to your actual theme folder name.
2. You need to add a separate code in your HTML structure (e.g. page.php file) to call out the defined widget area.

To print your widget area to your theme file, add the following code:

<?php dynamic_sidebar( 'sidebar-1' ); ?>

Note: sidebar-1 is the class name in the functions.php definition.

I would to add value to your business.